Page tree

The following datatypes are predefined in HDF5.

IEEE floating point datatypes

  • 32-bit and 64-bit
  • Big-endian and little-endian
        H5T_IEEE_F32BE
        H5T_IEEE_F32LE
        H5T_IEEE_F64BE
        H5T_IEEE_F64LE

Standard datatypes

  • Signed integer (2's complement), unsigned integer, and bitfield
  • 8-bit, 16-bit, 32-bit, and 64-bit
  • Big-endian and little-endian
        H5T_STD_I8BE
        H5T_STD_I8LE
        H5T_STD_I16BE
        H5T_STD_I16LE
        H5T_STD_I32BE
        H5T_STD_I32LE
        H5T_STD_I64BE
        H5T_STD_I64LE
        H5T_STD_U8BE 
        H5T_STD_U8LE
        H5T_STD_U16BE
        H5T_STD_U16LE
        H5T_STD_U32BE
        H5T_STD_U32LE
        H5T_STD_U64BE 
        H5T_STD_U64LE
        H5T_STD_B8BE
        H5T_STD_B8LE
        H5T_STD_B16BE 
        H5T_STD_B16LE
        H5T_STD_B32BE
        H5T_STD_B32LE
        H5T_STD_B64BE 
        H5T_STD_B64LE
  • Object reference or dataset region reference
        H5T_STD_REF_OBJ
        H5T_STD_REF_DSETREG 

UNIX-specific string datatypes

  • 32-bit and 64-bit
  • Big-endian and little-endian
        H5T_UNIX_D32BE
        H5T_UNIX_D32LE
        H5T_UNIX_D64BE
        H5T_UNIX_D64LE

C-specific string datatype

  • String datatype in C (size defined in bytes rather than in bits)
        H5T_C_S1

Fortran-specific string datatype

  • String datatype in Fortran (as defined for the HDF5 C library)
        H5T_FORTRAN_S1

Intel-specific datatypes

  • For Intel CPUs
  • Little-endian
  • Signed integer (2's complement), unsigned integer, bitfield, and IEEE floating point
  • 8-bit, 16-bit, 32-bit, and 64-bit
        H5T_INTEL_I8
        H5T_INTEL_I16
        H5T_INTEL_I32
        H5T_INTEL_I64

        H5T_INTEL_U8
        H5T_INTEL_U16
        H5T_INTEL_U32
        H5T_INTEL_U64
        H5T_INTEL_B8
        H5T_INTEL_B16
        H5T_INTEL_B32
        H5T_INTEL_B64

        H5T_INTEL_F32
        H5T_INTEL_F64

DEC Alpha-specific datatypes

  • For DEC Alpha CPUs
  • Little-endian
  • Signed integer (2's complement), unsigned integer, bitfield, and IEEE floating point
  • 8-bit, 16-bit, 32-bit, and 64-bit
        H5T_ALPHA_I8
        H5T_ALPHA_I16
        H5T_ALPHA_I32
        H5T_ALPHA_I64

        H5T_ALPHA_U8
        H5T_ALPHA_U16
        H5T_ALPHA_U32
        H5T_ALPHA_U64
        H5T_ALPHA_B8
        H5T_ALPHA_B16
        H5T_ALPHA_B32
        H5T_ALPHA_B64

        H5T_ALPHA_F32
        H5T_ALPHA_F64

OpenVMS DEC Alpha-specific datatypes

  • For OpenVMS on DEC Alpha CPUs
  • VAX byte order
  • 32- and 64-bit floating point
        H5T_VAX_F32 (Corresponds to F_Floating type)
        H5T_VAX_F64 (Corresponds to G_Floating type)

MIPS-specific datatypes

  • For MIPS CPUs, commonly used in SGI system
  • Big-endian
  • Signed integer (2's complement), unsigned integer, bitfield, and IEEE floating point
  • 8-bit, 16-bit, 32-bit, and 64-bit
        H5T_MIPS_I8
        H5T_MIPS_I16
        H5T_MIPS_I32
        H5T_MIPS_I64

        H5T_MIPS_U8
        H5T_MIPS_U16
        H5T_MIPS_U32
        H5T_MIPS_U64
        H5T_MIPS_B8
        H5T_MIPS_B16
        H5T_MIPS_B32
        H5T_MIPS_B64

        H5T_MIPS_F32
        H5T_MIPS_F64

Predefined native datatypes

These are the datatypes detected by H5detect. Their names differ from other HDF5 datatype names as follows:

  • Instead of a class name, precision, and byte order as the last component, they have a C-like datatype name.
  • If the datatype begins with U, then it is the unsigned version of the integer datatype; other integer datatypes are signed.
  • The datatype LLONG corresponds to C's long_long and LDOUBLE is long_double. These datatypes might be the same as LONG and DOUBLE, respectively.
        H5T_NATIVE_CHAR
        H5T_NATIVE_SCHAR        
        H5T_NATIVE_UCHAR        

        H5T_NATIVE_SHORT        
        H5T_NATIVE_USHORT       

        H5T_NATIVE_INT          
        H5T_NATIVE_UINT         

        H5T_NATIVE_LONG         
        H5T_NATIVE_ULONG        
        H5T_NATIVE_LLONG        
        H5T_NATIVE_ULLONG       
        H5T_NATIVE_FLOAT        
        H5T_NATIVE_DOUBLE       
        H5T_NATIVE_LDOUBLE

        H5T_NATIVE_B8
        H5T_NATIVE_B16
        H5T_NATIVE_B32
        H5T_NATIVE_B64

        H5T_NATIVE_OPAQUE       
        H5T_NATIVE_HADDR
        H5T_NATIVE_HSIZE
        H5T_NATIVE_HSSIZE
        H5T_NATIVE_HERR
        H5T_NATIVE_HBOOL

ANSI C9x-specific native integer datatypes

  • Signed integer (2's complement) and unsigned integer
  • 8-bit, 16-bit, 32-bit, and 64-bit
  • LEAST -- storage to use least amount of space
    FAST -- storage to maximize performance
        H5T_NATIVE_INT8
        H5T_NATIVE_UINT8
        H5T_NATIVE_INT_LEAST8
        H5T_NATIVE_UINT_LEAST8
        H5T_NATIVE_INT_FAST8 
        H5T_NATIVE_UINT_FAST8

        H5T_NATIVE_INT16
        H5T_NATIVE_UINT16
        H5T_NATIVE_INT_LEAST16
        H5T_NATIVE_UINT_LEAST16
        H5T_NATIVE_INT_FAST16
        H5T_NATIVE_UINT_FAST16
        H5T_NATIVE_INT32
        H5T_NATIVE_UINT32
        H5T_NATIVE_INT_LEAST32
        H5T_NATIVE_UINT_LEAST32
        H5T_NATIVE_INT_FAST32
        H5T_NATIVE_UINT_FAST32

        H5T_NATIVE_INT64
        H5T_NATIVE_UINT64
        H5T_NATIVE_INT_LEAST64
        H5T_NATIVE_UINT_LEAST64 
        H5T_NATIVE_INT_FAST64
        H5T_NATIVE_UINT_FAST64

Fortran API datatypes

  • Datatypes defined for both the Fortran90 and Fortran2003 APIs, unless otherwise noted
  • Native integer, single-precision real, double-precision real, and character
        H5T_NATIVE_INTEGER
        H5T_NATIVE_REAL
        H5T_NATIVE_DOUBLE
        H5T_NATIVE_CHARACTER 
  • Signed integer (2's complement), unsigned integer, and IEEE floating point
  • 8-bit, 16-bit, 32-bit, and 64-bit
  • Big-endian and little-endian
        H5T_STD_I8BE
        H5T_STD_I8LE
        H5T_STD_I16BE
        H5T_STD_I16LE
        H5T_STD_I32BE
        H5T_STD_I32LE
        H5T_STD_I64BE
        H5T_STD_I64LE
        H5T_STD_U8BE
        H5T_STD_U8LE
        H5T_STD_U16BE
        H5T_STD_U16LE
        H5T_STD_U32BE
        H5T_STD_U32LE
        H5T_STD_U64BE
        H5T_STD_U64LE
        H5T_IEEE_F32BE
        H5T_IEEE_F32LE
        H5T_IEEE_F64BE
        H5T_IEEE_F64LE
  • Object reference or dataset region reference
        H5T_STD_REF_OBJ
        H5T_STD_REF_DSETREG

--- Last Modified: September 13, 2018 | 03:56 PM