HDF5 documents and links Introduction to HDF5 HDF5 User Guide | And in this document, the HDF5 Reference Manual H5 H5A H5D H5E H5F H5G H5I H5P H5R H5S H5T H5Z Tools Datatypes

# HDF5 Predefined Datatypes

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 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 datatype

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

            H5T_C_S1

#### FORTRAN-specific 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

#### 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), unsigned integer, and bitfield
- 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

#### FORTRAN90 API datatypes

- Datatypes defined for the FORTRAN90 APIs
- 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

HDF5 documents and links Introduction to HDF5 HDF5 User Guide | And in this document, the HDF5 Reference Manual H5 H5A H5D H5E H5F H5G H5I H5P H5R H5S H5T H5Z Tools Datatypes