Files
clawhdf5/crates/clawhdf5/tests/fixtures/mx_floats_hdf5_2_2.ddl
T
osobhandClaude Opus 5.5 bce07e9cb9
CI / test-arm64 (pull_request) Successful in 1m38s
CI / test (pull_request) Successful in 31m22s
feat: check HDF5 2.x small floats against libhdf5 2.2.0
Fixture written by libhdf5 2.2.0 (built from tag 2.2.0) through ctypes:
every bit pattern of FP4 E2M1, FP6 E2M3/E3M2, FP8 E4M3/E5M2 and a
bfloat16 LE/BE set, as datasets and attributes, with what H5Dread/H5Aread
return into double and float and the conversion exceptions libhdf5
raises. clawhdf5 already decoded every value as libhdf5 does, including
an all-ones exponent as inf/NaN in the OCP formats that have none
(documented as a deliberate match in known-issues).

- data_read: NaNs of non-native float layouts get libhdf5's bits (sign
  kept, every mantissa bit set) in f64 and f32.
- h5rs dump/ls name these types as h5dump/h5ls 2.x do
  (H5T_FLOAT_F4E2M1, "FP4 E2M1 4-bit float", float4-e2m1 ...), checked
  against h5dump 2.2.0's output of the fixture.
- Python bindings read them as h5py 3.16 does (float32 for bfloat16,
  float16 for the 1-byte formats, file byte order, same bytes as h5py);
  writing them in 'r+' is refused.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-28 21:25:03 -05:00

291 lines
15 KiB
SQL

HDF5 "mx_floats_hdf5_2_2.h5" {
GROUP "/" {
ATTRIBUTE "bf16be" {
DATATYPE H5T_FLOAT_BFLOAT16BE
DATASPACE SIMPLE { ( 20 ) / ( 20 ) }
DATA {
(0): 0, -0, 1, -1, 1.5, -2.25, 3.14062, 1.00781, 9.18355e-41,
(9): -9.18355e-41, 1.16631e-38, 1.17549e-38, 3.38953e+38, -3.38953e+38,
(14): inf, -inf, nan, nan, -nan, nan
}
}
ATTRIBUTE "bf16le" {
DATATYPE H5T_FLOAT_BFLOAT16LE
DATASPACE SIMPLE { ( 20 ) / ( 20 ) }
DATA {
(0): 0, -0, 1, -1, 1.5, -2.25, 3.14062, 1.00781, 9.18355e-41,
(9): -9.18355e-41, 1.16631e-38, 1.17549e-38, 3.38953e+38, -3.38953e+38,
(14): inf, -inf, nan, nan, -nan, nan
}
}
ATTRIBUTE "f4e2m1" {
DATATYPE H5T_FLOAT_F4E2M1
DATASPACE SIMPLE { ( 16 ) / ( 16 ) }
DATA {
(0): 0, 0.5, 1, 1.5, 2, 3, inf, nan, -0, -0.5, -1, -1.5, -2, -3, -inf,
(15): -nan
}
}
ATTRIBUTE "f6e2m3" {
DATATYPE H5T_FLOAT_F6E2M3
DATASPACE SIMPLE { ( 64 ) / ( 64 ) }
DATA {
(0): 0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1, 1.125, 1.25,
(11): 1.375, 1.5, 1.625, 1.75, 1.875, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5,
(23): 3.75, inf, nan, nan, nan, nan, nan, nan, nan, -0, -0.125, -0.25,
(35): -0.375, -0.5, -0.625, -0.75, -0.875, -1, -1.125, -1.25, -1.375,
(44): -1.5, -1.625, -1.75, -1.875, -2, -2.25, -2.5, -2.75, -3, -3.25,
(54): -3.5, -3.75, -inf, -nan, -nan, -nan, -nan, -nan, -nan, -nan
}
}
ATTRIBUTE "f6e3m2" {
DATATYPE H5T_FLOAT_F6E3M2
DATASPACE SIMPLE { ( 64 ) / ( 64 ) }
DATA {
(0): 0, 0.0625, 0.125, 0.1875, 0.25, 0.3125, 0.375, 0.4375, 0.5, 0.625,
(10): 0.75, 0.875, 1, 1.25, 1.5, 1.75, 2, 2.5, 3, 3.5, 4, 5, 6, 7, 8,
(25): 10, 12, 14, inf, nan, nan, nan, -0, -0.0625, -0.125, -0.1875,
(36): -0.25, -0.3125, -0.375, -0.4375, -0.5, -0.625, -0.75, -0.875, -1,
(45): -1.25, -1.5, -1.75, -2, -2.5, -3, -3.5, -4, -5, -6, -7, -8, -10,
(58): -12, -14, -inf, -nan, -nan, -nan
}
}
ATTRIBUTE "f8e4m3" {
DATATYPE H5T_FLOAT_F8E4M3
DATASPACE SIMPLE { ( 256 ) / ( 256 ) }
DATA {
(0): 0, 0.00195312, 0.00390625, 0.00585938, 0.0078125, 0.00976562,
(6): 0.0117188, 0.0136719, 0.015625, 0.0175781, 0.0195312, 0.0214844,
(12): 0.0234375, 0.0253906, 0.0273438, 0.0292969, 0.03125, 0.0351562,
(18): 0.0390625, 0.0429688, 0.046875, 0.0507812, 0.0546875, 0.0585938,
(24): 0.0625, 0.0703125, 0.078125, 0.0859375, 0.09375, 0.101562,
(30): 0.109375, 0.117188, 0.125, 0.140625, 0.15625, 0.171875, 0.1875,
(37): 0.203125, 0.21875, 0.234375, 0.25, 0.28125, 0.3125, 0.34375,
(44): 0.375, 0.40625, 0.4375, 0.46875, 0.5, 0.5625, 0.625, 0.6875,
(52): 0.75, 0.8125, 0.875, 0.9375, 1, 1.125, 1.25, 1.375, 1.5, 1.625,
(62): 1.75, 1.875, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5, 3.75, 4, 4.5, 5,
(75): 5.5, 6, 6.5, 7, 7.5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20,
(91): 22, 24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80,
(107): 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240,
(120): inf, nan, nan, nan, nan, nan, nan, nan, -0, -0.00195312,
(130): -0.00390625, -0.00585938, -0.0078125, -0.00976562, -0.0117188,
(135): -0.0136719, -0.015625, -0.0175781, -0.0195312, -0.0214844,
(140): -0.0234375, -0.0253906, -0.0273438, -0.0292969, -0.03125,
(145): -0.0351562, -0.0390625, -0.0429688, -0.046875, -0.0507812,
(150): -0.0546875, -0.0585938, -0.0625, -0.0703125, -0.078125,
(155): -0.0859375, -0.09375, -0.101562, -0.109375, -0.117188, -0.125,
(161): -0.140625, -0.15625, -0.171875, -0.1875, -0.203125, -0.21875,
(167): -0.234375, -0.25, -0.28125, -0.3125, -0.34375, -0.375, -0.40625,
(174): -0.4375, -0.46875, -0.5, -0.5625, -0.625, -0.6875, -0.75,
(181): -0.8125, -0.875, -0.9375, -1, -1.125, -1.25, -1.375, -1.5,
(189): -1.625, -1.75, -1.875, -2, -2.25, -2.5, -2.75, -3, -3.25, -3.5,
(199): -3.75, -4, -4.5, -5, -5.5, -6, -6.5, -7, -7.5, -8, -9, -10, -11,
(212): -12, -13, -14, -15, -16, -18, -20, -22, -24, -26, -28, -30, -32,
(225): -36, -40, -44, -48, -52, -56, -60, -64, -72, -80, -88, -96,
(237): -104, -112, -120, -128, -144, -160, -176, -192, -208, -224,
(247): -240, -inf, -nan, -nan, -nan, -nan, -nan, -nan, -nan
}
}
ATTRIBUTE "f8e5m2" {
DATATYPE H5T_FLOAT_F8E5M2
DATASPACE SIMPLE { ( 256 ) / ( 256 ) }
DATA {
(0): 0, 1.52588e-05, 3.05176e-05, 4.57764e-05, 6.10352e-05,
(5): 7.62939e-05, 9.15527e-05, 0.000106812, 0.00012207, 0.000152588,
(10): 0.000183105, 0.000213623, 0.000244141, 0.000305176, 0.000366211,
(15): 0.000427246, 0.000488281, 0.000610352, 0.000732422, 0.000854492,
(20): 0.000976562, 0.0012207, 0.00146484, 0.00170898, 0.00195312,
(25): 0.00244141, 0.00292969, 0.00341797, 0.00390625, 0.00488281,
(30): 0.00585938, 0.00683594, 0.0078125, 0.00976562, 0.0117188,
(35): 0.0136719, 0.015625, 0.0195312, 0.0234375, 0.0273438, 0.03125,
(41): 0.0390625, 0.046875, 0.0546875, 0.0625, 0.078125, 0.09375,
(47): 0.109375, 0.125, 0.15625, 0.1875, 0.21875, 0.25, 0.3125, 0.375,
(55): 0.4375, 0.5, 0.625, 0.75, 0.875, 1, 1.25, 1.5, 1.75, 2, 2.5, 3,
(67): 3.5, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56,
(84): 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 448, 512,
(97): 640, 768, 896, 1024, 1280, 1536, 1792, 2048, 2560, 3072, 3584,
(108): 4096, 5120, 6144, 7168, 8192, 10240, 12288, 14336, 16384, 20480,
(118): 24576, 28672, 32768, 40960, 49152, 57344, inf, nan, nan, nan,
(128): -0, -1.52588e-05, -3.05176e-05, -4.57764e-05, -6.10352e-05,
(133): -7.62939e-05, -9.15527e-05, -0.000106812, -0.00012207,
(137): -0.000152588, -0.000183105, -0.000213623, -0.000244141,
(141): -0.000305176, -0.000366211, -0.000427246, -0.000488281,
(145): -0.000610352, -0.000732422, -0.000854492, -0.000976562,
(149): -0.0012207, -0.00146484, -0.00170898, -0.00195312, -0.00244141,
(154): -0.00292969, -0.00341797, -0.00390625, -0.00488281, -0.00585938,
(159): -0.00683594, -0.0078125, -0.00976562, -0.0117188, -0.0136719,
(164): -0.015625, -0.0195312, -0.0234375, -0.0273438, -0.03125,
(169): -0.0390625, -0.046875, -0.0546875, -0.0625, -0.078125, -0.09375,
(175): -0.109375, -0.125, -0.15625, -0.1875, -0.21875, -0.25, -0.3125,
(182): -0.375, -0.4375, -0.5, -0.625, -0.75, -0.875, -1, -1.25, -1.5,
(191): -1.75, -2, -2.5, -3, -3.5, -4, -5, -6, -7, -8, -10, -12, -14,
(204): -16, -20, -24, -28, -32, -40, -48, -56, -64, -80, -96, -112,
(216): -128, -160, -192, -224, -256, -320, -384, -448, -512, -640,
(226): -768, -896, -1024, -1280, -1536, -1792, -2048, -2560, -3072,
(235): -3584, -4096, -5120, -6144, -7168, -8192, -10240, -12288,
(243): -14336, -16384, -20480, -24576, -28672, -32768, -40960, -49152,
(251): -57344, -inf, -nan, -nan, -nan
}
}
DATASET "bf16be" {
DATATYPE H5T_FLOAT_BFLOAT16BE
DATASPACE SIMPLE { ( 20 ) / ( 20 ) }
DATA {
(0): 0, -0, 1, -1, 1.5, -2.25, 3.14062, 1.00781, 9.18355e-41,
(9): -9.18355e-41, 1.16631e-38, 1.17549e-38, 3.38953e+38, -3.38953e+38,
(14): inf, -inf, nan, nan, -nan, nan
}
}
DATASET "bf16le" {
DATATYPE H5T_FLOAT_BFLOAT16LE
DATASPACE SIMPLE { ( 20 ) / ( 20 ) }
DATA {
(0): 0, -0, 1, -1, 1.5, -2.25, 3.14062, 1.00781, 9.18355e-41,
(9): -9.18355e-41, 1.16631e-38, 1.17549e-38, 3.38953e+38, -3.38953e+38,
(14): inf, -inf, nan, nan, -nan, nan
}
}
DATASET "f4e2m1" {
DATATYPE H5T_FLOAT_F4E2M1
DATASPACE SIMPLE { ( 16 ) / ( 16 ) }
DATA {
(0): 0, 0.5, 1, 1.5, 2, 3, inf, nan, -0, -0.5, -1, -1.5, -2, -3, -inf,
(15): -nan
}
}
DATASET "f4e2m1_pad" {
DATATYPE H5T_FLOAT_F4E2M1
DATASPACE SIMPLE { ( 16 ) / ( 16 ) }
DATA {
(0): 0, 0.5, 1, 1.5, 2, 3, inf, nan, -0, -0.5, -1, -1.5, -2, -3, -inf,
(15): -nan
}
}
DATASET "f6e2m3" {
DATATYPE H5T_FLOAT_F6E2M3
DATASPACE SIMPLE { ( 64 ) / ( 64 ) }
DATA {
(0): 0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1, 1.125, 1.25,
(11): 1.375, 1.5, 1.625, 1.75, 1.875, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5,
(23): 3.75, inf, nan, nan, nan, nan, nan, nan, nan, -0, -0.125, -0.25,
(35): -0.375, -0.5, -0.625, -0.75, -0.875, -1, -1.125, -1.25, -1.375,
(44): -1.5, -1.625, -1.75, -1.875, -2, -2.25, -2.5, -2.75, -3, -3.25,
(54): -3.5, -3.75, -inf, -nan, -nan, -nan, -nan, -nan, -nan, -nan
}
}
DATASET "f6e2m3_pad" {
DATATYPE H5T_FLOAT_F6E2M3
DATASPACE SIMPLE { ( 64 ) / ( 64 ) }
DATA {
(0): 0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1, 1.125, 1.25,
(11): 1.375, 1.5, 1.625, 1.75, 1.875, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5,
(23): 3.75, inf, nan, nan, nan, nan, nan, nan, nan, -0, -0.125, -0.25,
(35): -0.375, -0.5, -0.625, -0.75, -0.875, -1, -1.125, -1.25, -1.375,
(44): -1.5, -1.625, -1.75, -1.875, -2, -2.25, -2.5, -2.75, -3, -3.25,
(54): -3.5, -3.75, -inf, -nan, -nan, -nan, -nan, -nan, -nan, -nan
}
}
DATASET "f6e3m2" {
DATATYPE H5T_FLOAT_F6E3M2
DATASPACE SIMPLE { ( 64 ) / ( 64 ) }
DATA {
(0): 0, 0.0625, 0.125, 0.1875, 0.25, 0.3125, 0.375, 0.4375, 0.5, 0.625,
(10): 0.75, 0.875, 1, 1.25, 1.5, 1.75, 2, 2.5, 3, 3.5, 4, 5, 6, 7, 8,
(25): 10, 12, 14, inf, nan, nan, nan, -0, -0.0625, -0.125, -0.1875,
(36): -0.25, -0.3125, -0.375, -0.4375, -0.5, -0.625, -0.75, -0.875, -1,
(45): -1.25, -1.5, -1.75, -2, -2.5, -3, -3.5, -4, -5, -6, -7, -8, -10,
(58): -12, -14, -inf, -nan, -nan, -nan
}
}
DATASET "f6e3m2_pad" {
DATATYPE H5T_FLOAT_F6E3M2
DATASPACE SIMPLE { ( 64 ) / ( 64 ) }
DATA {
(0): 0, 0.0625, 0.125, 0.1875, 0.25, 0.3125, 0.375, 0.4375, 0.5, 0.625,
(10): 0.75, 0.875, 1, 1.25, 1.5, 1.75, 2, 2.5, 3, 3.5, 4, 5, 6, 7, 8,
(25): 10, 12, 14, inf, nan, nan, nan, -0, -0.0625, -0.125, -0.1875,
(36): -0.25, -0.3125, -0.375, -0.4375, -0.5, -0.625, -0.75, -0.875, -1,
(45): -1.25, -1.5, -1.75, -2, -2.5, -3, -3.5, -4, -5, -6, -7, -8, -10,
(58): -12, -14, -inf, -nan, -nan, -nan
}
}
DATASET "f8e4m3" {
DATATYPE H5T_FLOAT_F8E4M3
DATASPACE SIMPLE { ( 256 ) / ( 256 ) }
DATA {
(0): 0, 0.00195312, 0.00390625, 0.00585938, 0.0078125, 0.00976562,
(6): 0.0117188, 0.0136719, 0.015625, 0.0175781, 0.0195312, 0.0214844,
(12): 0.0234375, 0.0253906, 0.0273438, 0.0292969, 0.03125, 0.0351562,
(18): 0.0390625, 0.0429688, 0.046875, 0.0507812, 0.0546875, 0.0585938,
(24): 0.0625, 0.0703125, 0.078125, 0.0859375, 0.09375, 0.101562,
(30): 0.109375, 0.117188, 0.125, 0.140625, 0.15625, 0.171875, 0.1875,
(37): 0.203125, 0.21875, 0.234375, 0.25, 0.28125, 0.3125, 0.34375,
(44): 0.375, 0.40625, 0.4375, 0.46875, 0.5, 0.5625, 0.625, 0.6875,
(52): 0.75, 0.8125, 0.875, 0.9375, 1, 1.125, 1.25, 1.375, 1.5, 1.625,
(62): 1.75, 1.875, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5, 3.75, 4, 4.5, 5,
(75): 5.5, 6, 6.5, 7, 7.5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20,
(91): 22, 24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80,
(107): 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240,
(120): inf, nan, nan, nan, nan, nan, nan, nan, -0, -0.00195312,
(130): -0.00390625, -0.00585938, -0.0078125, -0.00976562, -0.0117188,
(135): -0.0136719, -0.015625, -0.0175781, -0.0195312, -0.0214844,
(140): -0.0234375, -0.0253906, -0.0273438, -0.0292969, -0.03125,
(145): -0.0351562, -0.0390625, -0.0429688, -0.046875, -0.0507812,
(150): -0.0546875, -0.0585938, -0.0625, -0.0703125, -0.078125,
(155): -0.0859375, -0.09375, -0.101562, -0.109375, -0.117188, -0.125,
(161): -0.140625, -0.15625, -0.171875, -0.1875, -0.203125, -0.21875,
(167): -0.234375, -0.25, -0.28125, -0.3125, -0.34375, -0.375, -0.40625,
(174): -0.4375, -0.46875, -0.5, -0.5625, -0.625, -0.6875, -0.75,
(181): -0.8125, -0.875, -0.9375, -1, -1.125, -1.25, -1.375, -1.5,
(189): -1.625, -1.75, -1.875, -2, -2.25, -2.5, -2.75, -3, -3.25, -3.5,
(199): -3.75, -4, -4.5, -5, -5.5, -6, -6.5, -7, -7.5, -8, -9, -10, -11,
(212): -12, -13, -14, -15, -16, -18, -20, -22, -24, -26, -28, -30, -32,
(225): -36, -40, -44, -48, -52, -56, -60, -64, -72, -80, -88, -96,
(237): -104, -112, -120, -128, -144, -160, -176, -192, -208, -224,
(247): -240, -inf, -nan, -nan, -nan, -nan, -nan, -nan, -nan
}
}
DATASET "f8e5m2" {
DATATYPE H5T_FLOAT_F8E5M2
DATASPACE SIMPLE { ( 256 ) / ( 256 ) }
DATA {
(0): 0, 1.52588e-05, 3.05176e-05, 4.57764e-05, 6.10352e-05,
(5): 7.62939e-05, 9.15527e-05, 0.000106812, 0.00012207, 0.000152588,
(10): 0.000183105, 0.000213623, 0.000244141, 0.000305176, 0.000366211,
(15): 0.000427246, 0.000488281, 0.000610352, 0.000732422, 0.000854492,
(20): 0.000976562, 0.0012207, 0.00146484, 0.00170898, 0.00195312,
(25): 0.00244141, 0.00292969, 0.00341797, 0.00390625, 0.00488281,
(30): 0.00585938, 0.00683594, 0.0078125, 0.00976562, 0.0117188,
(35): 0.0136719, 0.015625, 0.0195312, 0.0234375, 0.0273438, 0.03125,
(41): 0.0390625, 0.046875, 0.0546875, 0.0625, 0.078125, 0.09375,
(47): 0.109375, 0.125, 0.15625, 0.1875, 0.21875, 0.25, 0.3125, 0.375,
(55): 0.4375, 0.5, 0.625, 0.75, 0.875, 1, 1.25, 1.5, 1.75, 2, 2.5, 3,
(67): 3.5, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56,
(84): 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 448, 512,
(97): 640, 768, 896, 1024, 1280, 1536, 1792, 2048, 2560, 3072, 3584,
(108): 4096, 5120, 6144, 7168, 8192, 10240, 12288, 14336, 16384, 20480,
(118): 24576, 28672, 32768, 40960, 49152, 57344, inf, nan, nan, nan,
(128): -0, -1.52588e-05, -3.05176e-05, -4.57764e-05, -6.10352e-05,
(133): -7.62939e-05, -9.15527e-05, -0.000106812, -0.00012207,
(137): -0.000152588, -0.000183105, -0.000213623, -0.000244141,
(141): -0.000305176, -0.000366211, -0.000427246, -0.000488281,
(145): -0.000610352, -0.000732422, -0.000854492, -0.000976562,
(149): -0.0012207, -0.00146484, -0.00170898, -0.00195312, -0.00244141,
(154): -0.00292969, -0.00341797, -0.00390625, -0.00488281, -0.00585938,
(159): -0.00683594, -0.0078125, -0.00976562, -0.0117188, -0.0136719,
(164): -0.015625, -0.0195312, -0.0234375, -0.0273438, -0.03125,
(169): -0.0390625, -0.046875, -0.0546875, -0.0625, -0.078125, -0.09375,
(175): -0.109375, -0.125, -0.15625, -0.1875, -0.21875, -0.25, -0.3125,
(182): -0.375, -0.4375, -0.5, -0.625, -0.75, -0.875, -1, -1.25, -1.5,
(191): -1.75, -2, -2.5, -3, -3.5, -4, -5, -6, -7, -8, -10, -12, -14,
(204): -16, -20, -24, -28, -32, -40, -48, -56, -64, -80, -96, -112,
(216): -128, -160, -192, -224, -256, -320, -384, -448, -512, -640,
(226): -768, -896, -1024, -1280, -1536, -1792, -2048, -2560, -3072,
(235): -3584, -4096, -5120, -6144, -7168, -8192, -10240, -12288,
(243): -14336, -16384, -20480, -24576, -28672, -32768, -40960, -49152,
(251): -57344, -inf, -nan, -nan, -nan
}
}
}
}