NaN 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.
index,bits_hex,sign,quiet_bit,payload_hex,kind
0,0x7ff8000000000000,0,1,0x0000000000000,quiet
1,0x7ff8000000beef01,0,1,0x0000000beef01,quiet
2,0xfff8000000000000,1,1,0x0000000000000,quiet
3,0x7ff0000000000001,0,0,0x0000000000001,signalling
4,0xfff0000000000001,1,0,0x0000000000001,signalling
5,0x7ff7ffffffffffff,0,0,0x7ffffffffffff,signalling
Specifications
- Rows
- 6
- Columns
- 6
- Quiet Bit Position
- 51
- Payload Bits
- 51
- Decodes To
- the paired NaN .npy array
Testing contract
Reference control- Scenario
- Serialize the paired .npy array through your format of choice, reload it, and diff the resulting bit patterns against this file.
- Expected result
- A payload-preserving pipeline reproduces all six rows exactly; a normalising one collapses every row to 0x7ff8000000000000 and the diff shows five changed rows.
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
“NaN Payloads and Signalling NaNs — Bit Reference (.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: 6 rows · 6 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("nan-payloads-and-signalling.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.

- csvIEEE-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.

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