HDF5  1.12.0
Data Structures | Macros | Typedefs | Enumerations | Functions
H5Ztrans.c File Reference
#include "H5Zmodule.h"
#include "H5private.h"
#include "H5Eprivate.h"
#include "H5Iprivate.h"
#include "H5MMprivate.h"
#include "H5VMprivate.h"
#include "H5Zpkg.h"

Data Structures

struct  H5Z_datval_ptrs
 
union  H5Z_num_val
 
struct  H5Z_node
 
struct  H5Z_data_xform_t
 
struct  result
 
struct  H5Z_token
 

Macros

#define H5Z_XFORM_DO_OP1(RESL, RESR, TYPE, OP, SIZE)
 
#define H5Z_XFORM_TYPE_OP(RESL, RESR, TYPE, OP, SIZE)
 
#define H5Z_XFORM_DO_OP3(OP)
 
#define H5Z_XFORM_DO_OP4(TYPE)
 
#define H5Z_XFORM_DO_OP5(TYPE, SIZE)
 
#define H5Z_XFORM_DO_OP6(OP)
 

Typedefs

typedef struct H5Z_node H5Z_node
 
typedef struct result H5Z_result
 

Enumerations

enum  H5Z_token_type {
  H5Z_XFORM_ERROR, H5Z_XFORM_INTEGER, H5Z_XFORM_FLOAT, H5Z_XFORM_SYMBOL,
  H5Z_XFORM_PLUS, H5Z_XFORM_MINUS, H5Z_XFORM_MULT, H5Z_XFORM_DIVIDE,
  H5Z_XFORM_LPAREN, H5Z_XFORM_RPAREN, H5Z_XFORM_END
}
 

Functions

herr_t H5Z_xform_eval (H5Z_data_xform_t *data_xform_prop, void *array, size_t array_size, const H5T_t *buf_type)
 
H5Z_data_xform_tH5Z_xform_create (const char *expr)
 
herr_t H5Z_xform_destroy (H5Z_data_xform_t *data_xform_prop)
 
herr_t H5Z_xform_copy (H5Z_data_xform_t **data_xform_prop)
 
hbool_t H5Z_xform_noop (const H5Z_data_xform_t *data_xform_prop)
 
const char * H5Z_xform_extract_xform_str (const H5Z_data_xform_t *data_xform_prop)
 

Macro Definition Documentation

◆ H5Z_XFORM_DO_OP1

#define H5Z_XFORM_DO_OP1 (   RESL,
  RESR,
  TYPE,
  OP,
  SIZE 
)

◆ H5Z_XFORM_DO_OP3

#define H5Z_XFORM_DO_OP3 (   OP)
Value:
{ \
if((tree->lchild->type == H5Z_XFORM_INTEGER) && (tree->rchild->type==H5Z_XFORM_INTEGER)) \
{ \
tree->type = H5Z_XFORM_INTEGER; \
tree->value.int_val = tree->lchild->value.int_val OP tree->rchild->value.int_val; \
H5MM_xfree(tree->lchild); \
H5MM_xfree(tree->rchild); \
tree->lchild = NULL; \
tree->rchild = NULL; \
} \
else if( ( (tree->lchild->type == H5Z_XFORM_FLOAT) || (tree->lchild->type == H5Z_XFORM_INTEGER)) && \
( (tree->rchild->type == H5Z_XFORM_FLOAT) || (tree->rchild->type == H5Z_XFORM_INTEGER))) \
{ \
tree->type = H5Z_XFORM_FLOAT; \
tree->value.float_val = ((tree->lchild->type == H5Z_XFORM_FLOAT) ? tree->lchild->value.float_val : (double)tree->lchild->value.int_val) OP \
((tree->rchild->type == H5Z_XFORM_FLOAT) ? tree->rchild->value.float_val : (double)tree->rchild->value.int_val); \
H5MM_xfree(tree->lchild); \
H5MM_xfree(tree->rchild); \
tree->lchild = NULL; \
tree->rchild = NULL; \
} \
}

◆ H5Z_XFORM_DO_OP4

#define H5Z_XFORM_DO_OP4 (   TYPE)
Value:
{ \
if ((ret_value = (H5Z_node*) H5MM_malloc(sizeof(H5Z_node))) == NULL) \
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "Ran out of memory trying to copy parse tree") \
else \
{ \
ret_value->type = (TYPE); \
if(tree->lchild) \
ret_value->lchild = (H5Z_node*) H5Z_xform_copy_tree(tree->lchild, dat_val_pointers, new_dat_val_pointers); \
else \
ret_value->lchild = NULL; \
if(tree->rchild) \
ret_value->rchild = (H5Z_node*) H5Z_xform_copy_tree(tree->rchild, dat_val_pointers, new_dat_val_pointers); \
else \
ret_value->rchild = NULL; \
} \
}

◆ H5Z_XFORM_DO_OP5

#define H5Z_XFORM_DO_OP5 (   TYPE,
  SIZE 
)
Value:
{ \
TYPE val = ((tree->type == H5Z_XFORM_INTEGER) ? (TYPE)tree->value.int_val : (TYPE)tree->value.float_val); \
H5VM_array_fill(array, &val, sizeof(TYPE), (SIZE)); \
}

◆ H5Z_XFORM_DO_OP6

#define H5Z_XFORM_DO_OP6 (   OP)

◆ H5Z_XFORM_TYPE_OP

#define H5Z_XFORM_TYPE_OP (   RESL,
  RESR,
  TYPE,
  OP,
  SIZE 
)
Value:
{ \
if((TYPE) == H5T_NATIVE_CHAR) \
H5Z_XFORM_DO_OP1((RESL), (RESR), char, OP, (SIZE)) \
else if((TYPE) == H5T_NATIVE_SCHAR) \
H5Z_XFORM_DO_OP1((RESL), (RESR), signed char, OP, (SIZE)) \
else if((TYPE) == H5T_NATIVE_SHORT) \
H5Z_XFORM_DO_OP1((RESL), (RESR), short, OP, (SIZE)) \
else if((TYPE) == H5T_NATIVE_USHORT) \
H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned short, OP, (SIZE)) \
else if((TYPE) == H5T_NATIVE_INT) \
H5Z_XFORM_DO_OP1((RESL), (RESR), int, OP, (SIZE)) \
else if((TYPE) == H5T_NATIVE_UINT) \
H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned int, OP, (SIZE)) \
else if((TYPE) == H5T_NATIVE_LONG) \
H5Z_XFORM_DO_OP1((RESL), (RESR), long, OP, (SIZE)) \
else if((TYPE) == H5T_NATIVE_ULONG) \
H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long, OP, (SIZE)) \
else if((TYPE) == H5T_NATIVE_LLONG) \
H5Z_XFORM_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \
else if((TYPE) == H5T_NATIVE_ULLONG) \
H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \
else if((TYPE) == H5T_NATIVE_FLOAT) \
H5Z_XFORM_DO_OP1((RESL), (RESR), float, OP, (SIZE)) \
else if((TYPE) == H5T_NATIVE_DOUBLE) \
H5Z_XFORM_DO_OP1((RESL), (RESR), double, OP, (SIZE)) \
}

Typedef Documentation

◆ H5Z_node

typedef struct H5Z_node H5Z_node

◆ H5Z_result

typedef struct result H5Z_result

Enumeration Type Documentation

◆ H5Z_token_type

Enumerator
H5Z_XFORM_ERROR 
H5Z_XFORM_INTEGER 
H5Z_XFORM_FLOAT 
H5Z_XFORM_SYMBOL 
H5Z_XFORM_PLUS 
H5Z_XFORM_MINUS 
H5Z_XFORM_MULT 
H5Z_XFORM_DIVIDE 
H5Z_XFORM_LPAREN 
H5Z_XFORM_RPAREN 
H5Z_XFORM_END 

Function Documentation

◆ H5Z_xform_copy()

herr_t H5Z_xform_copy ( H5Z_data_xform_t **  data_xform_prop)

◆ H5Z_xform_create()

H5Z_data_xform_t* H5Z_xform_create ( const char *  expr)

◆ H5Z_xform_destroy()

herr_t H5Z_xform_destroy ( H5Z_data_xform_t data_xform_prop)

◆ H5Z_xform_eval()

herr_t H5Z_xform_eval ( H5Z_data_xform_t data_xform_prop,
void *  array,
size_t  array_size,
const H5T_t buf_type 
)

◆ H5Z_xform_extract_xform_str()

const char* H5Z_xform_extract_xform_str ( const H5Z_data_xform_t data_xform_prop)

◆ H5Z_xform_noop()

hbool_t H5Z_xform_noop ( const H5Z_data_xform_t data_xform_prop)
H5T_NATIVE_ULLONG
#define H5T_NATIVE_ULLONG
Definition: H5Tpublic.h:405
ret_value
ret_value
Definition: H5EAcache.c:412
H5Z_XFORM_INTEGER
@ H5Z_XFORM_INTEGER
Definition: H5Ztrans.c:28
H5T_NATIVE_LONG
#define H5T_NATIVE_LONG
Definition: H5Tpublic.h:402
H5T_NATIVE_FLOAT
#define H5T_NATIVE_FLOAT
Definition: H5Tpublic.h:406
H5T_NATIVE_CHAR
#define H5T_NATIVE_CHAR
Definition: H5Tpublic.h:395
H5MM_malloc
void * H5MM_malloc(size_t size)
Definition: H5MM.c:267
H5T_NATIVE_USHORT
#define H5T_NATIVE_USHORT
Definition: H5Tpublic.h:399
double
*s *s Percent of heap double *() double(h->dblk_size - amount_free)/(double) h -> dblk_size))
H5E_NOSPACE
Invalid arguments to routine Resource unavailable Internal File accessibility Low level I O Function entry exit Object atom Object cache Links B Tree node Symbol table Heap Object header Datatype Dataspace Dataset Data storage Property lists Attribute Data filters External file list References Virtual File Layer Virtual Object Layer Ternary Search Trees Reference Counted Strings Error API Skip Lists Free Space Manager Shared Object Header Messages Extensible Array Fixed Array Plugin for dynamically loaded library Page Buffering API Context Map No error Argument errors Resource errors File accessibility errors Generic low level file I O errors Function entry exit interface errors Object atom related errors Cache related errors Link related errors B tree related errors Object header related errors Group related errors Datatype conversion errors Dataspace errors Property list errors Parallel MPI errors Heap errors Free space errors I O pipeline errors System level errors Plugin errors No error Information is uinitialized Feature is unsupported Inappropriate type Out of range Bad value H5E_NOSPACE
Definition: H5err.txt:117
H5E_RESOURCE
Invalid arguments to routine H5E_RESOURCE
Definition: H5err.txt:47
H5T_NATIVE_LLONG
#define H5T_NATIVE_LLONG
Definition: H5Tpublic.h:404
H5T_NATIVE_INT
#define H5T_NATIVE_INT
Definition: H5Tpublic.h:400
H5T_NATIVE_ULONG
#define H5T_NATIVE_ULONG
Definition: H5Tpublic.h:403
H5Z_node
Definition: H5Ztrans.c:54
H5Z_XFORM_FLOAT
@ H5Z_XFORM_FLOAT
Definition: H5Ztrans.c:29
H5T_NATIVE_DOUBLE
#define H5T_NATIVE_DOUBLE
Definition: H5Tpublic.h:407
H5T_NATIVE_SHORT
#define H5T_NATIVE_SHORT
Definition: H5Tpublic.h:398
H5T_NATIVE_UINT
#define H5T_NATIVE_UINT
Definition: H5Tpublic.h:401
H5T_NATIVE_SCHAR
#define H5T_NATIVE_SCHAR
Definition: H5Tpublic.h:396