IEEE-754 float64 Boundary Values — Bit-Level CSV (.csv)
Every value in the float64 boundary array decomposed into its shortest decimal representation, its C99 hexadecimal float form, and its raw sign, exponent and mantissa fields. It turns 'the numbers came back wrong' into a diff you can point at a single bit.
case,decimal_repr,hex_float,bits_hex,sign,exponent_raw,mantissa_hex,classification
positive zero,0.0,0x0.0p+0,0x0000000000000000,0,0,0x0000000000000,positive zero
negative zero,-0.0,-0x0.0p+0,0x8000000000000000,1,0,0x0000000000000,negative zero
smallest subnormal,5e-324,0x0.0000000000001p-1022,0x0000000000000001,0,0,0x0000000000001,subnormal
largest subnormal,2.225073858507201e-308,0x0.fffffffffffffp-1022,0x000fffffffffffff,0,0,0xfffffffffffff,subnormal
smallest normal,2.2250738585072014e-308,0x1.0000000000000p-1022,0x0010000000000000,0,1,0x0000000000000,normal
machine epsilon,2.220446049250313e-16,0x1.0000000000000p-52,0x3cb0000000000000,0,971,0x0000000000000,normal
one plus epsilon,1.0000000000000002,0x1.0000000000001p+0,0x3ff0000000000001,0,1023,0x0000000000001,normal
one,1.0,0x1.0000000000000p+0,0x3ff0000000000000,0,1023,0x0000000000000,normal
largest finite,1.7976931348623157e+308,0x1.fffffffffffffp+1023,0x7fefffffffffffff,0,2046,0xfffffffffffff,normal
positive infinity,inf,inf,0x7ff0000000000000,0,2047,0x0000000000000,infinity
negative infinity,-inf,-inf,0xfff0000000000000,1,2047,0x0000000000000,infinity
quiet NaN,nan,nan,0x7ff8000000000000,0,2047,0x8000000000000,NaN
two to the 53,9007199254740992.0,0x1.0000000000000p+53,0x4340000000000000,0,1076,0x0000000000000,normal
two to the 53 plus one,9007199254740992.0,0x1.0000000000000p+53,0x4340000000000000,0,1076,0x0000000000000,normal
one tenth,0.1,0x1.999999999999ap-4,0x3fb999999999999a,0,1019,0x999999999999a,normal
pi,3.141592653589793,0x1.921fb54442d18p+1,0x400921fb54442d18,0,1024,0x921fb54442d18,normal
Specifications
- Rows
- 16
- Columns
- 8
- Columns Include
- decimal repr, C99 hex float, raw bits, sign, exponent, mantissa
- Decodes To
- the paired .npy array
- Notation
- shortest round-trip decimal
Testing contract
Reference control- Scenario
- Reconstruct each value from its bits_hex column and compare against the decimal_repr column and the paired .npy array.
- Expected result
- Every reconstruction matches its decimal_repr and the corresponding .npy element bit for bit, with negative zero showing bits 0x8000000000000000 and sign 1.
What is a .csv file?
CSV (Comma-Separated Values) is a plain-text tabular format where rows are lines and fields are separated by commas, with quoting rules for values that contain delimiters, quotes, or newlines. It has no formal type system and depends on encoding and dialect conventions. It is the most portable format for tabular data exchange.
How to use this file
Use an example CSV to test parsers against quoting and embedded-delimiter edge cases, header handling, encoding detection, and import pipelines into databases or spreadsheets.
How to use this file for testing
“IEEE-754 float64 Boundary Values — Bit-Level CSV (.csv)” is a deterministic Novus Examples fixture for Scientific data, Editor testing, Conversion testing. Citation catalogs (BibTeX, RIS), chemistry structures (MDL Molfile, PDB), and gridded binary data (NetCDF, FITS) — for testing reference managers, molecule viewers, and scientific-data loaders.
Documented properties for this file: 16 rows · 8 columns. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Scientific fixtures are small, valid, and fully synthetic — no real organism, patient, sample, or observation. Point your parser or loader at the file and check it reads the documented records, variables, or headers; binary formats ship a readable twin or metadata listing for comparison.
Code examples
import pandas as pd
df = pd.read_csv("ieee754-float64-boundaries.csv")
print(df.head())
print(df.dtypes)Related files
- csvfloat64 Subnormal Ladder — Reference Table (.csv)Each rung of the subnormal ladder with its bit pattern, decimal value, C99 hex float and remaining significant bits, plus the value a flush-to-zero pipeline would produce instead. It makes gradual underflow a table you can diff rather than a behaviour you have to infer.

- csvfloat64 to float32 Precision Loss — Per-Value Error (.csv)Twelve doubles narrowed to single precision with the absolute, relative and ULP error of each, plus whether the value survived unchanged. It covers the three distinct ways narrowing fails: rounding, overflow to infinity at 1e39, and demotion to a subnormal at 1e-40.

- csvIEEE-754 float32 Boundary Values — Bit-Level CSV (.csv)The float32 boundary values split into sign, 8-bit exponent and 23-bit mantissa alongside their decimal forms. Use it to check a single-precision encoder field by field rather than guessing which end of the number went wrong.

- csvNaN Payloads and Signalling NaNs — Bit Reference (.csv)The six NaN bit patterns broken into sign bit, quiet bit and payload so the difference between a quiet and a signalling NaN is a column rather than folklore. It is the reference for testing whether a serializer preserves NaN payloads or normalises them all to one canonical pattern.

- csvRaw float64 Endian Pair — Byte-Level Reference (.csv)Every value in the raw endian pair with its exact byte sequence in both orders, so a decoder can be checked offset by offset instead of value by value. Negative zero and the subnormal entries are the rows where a byte-order mistake stops looking like a mistake.

- csvChemistry Fixture Molecule Index (.csv)One row per molecule used across the chemistry fixtures, with formula, molecular weight, SMILES and the atom and bond counts each file should yield. It is the oracle a cheminformatics toolkit can be scored against without needing a second toolkit to generate the answers.

Generated by generation/scientific.py. Free for any use, no attribution required — license.