float64 Subnormal Ladder — Gradual Underflow (.npy)
A ten-step ladder from the smallest representable double up across the subnormal boundary into normal range, showing precision degrading to a single significant bit. Any pipeline running with flush-to-zero enabled turns the first eight entries into plain zeros without reporting anything.
| Bits | Value | Class | Significant bits |
|---|---|---|---|
| 0x0000000000000001 | 5e-324 | subnormal | 1 |
| 0x0000000000000002 | 1e-323 | subnormal | 1 |
| 0x0000000000000010 | 8e-323 | subnormal | 1 |
| 0x0008000000000000 | 1.1125369292536007e-308 | subnormal | 1 |
| 0x000fffffffffffff | 2.225073858507201e-308 | subnormal | 52 |
| 0x0010000000000000 | 2.2250738585072014e-308 | NORMAL — the boundary | 53 |
Specifications
- Dtype
- float64
- Elements
- 10
- Subnormal Count
- 8
- Normal Count
- 2
- Smallest
- 4.9406564584124654e-324
- Boundary
- 2.2250738585072014e-308 is the smallest normal
- Precision At Bottom
- 1 significant bit
Testing contract
Expected to pass- Scenario
- Load the array and count how many elements are non-zero and how many are subnormal.
- Expected result
- All ten elements are non-zero and exactly eight are subnormal; under flush-to-zero the first eight read as 0.0 and the non-zero count drops to two.
What is a .npy file?
NPY is NumPy's native binary format for a single array. A short header records the dtype, shape, and memory order, followed by the raw array bytes, so an array round-trips exactly without any text parsing. It is the standard way to persist embeddings, tensors, and numeric matrices in the Python data stack.
How to use this file
Use an example .npy to test array loaders (numpy.load), tensor and embedding pipelines, and converters between .npy, JSON, and columnar formats like Parquet.
How to use this file for testing
“float64 Subnormal Ladder — Gradual Underflow (.npy)” is a deterministic Novus Examples fixture for Scientific data, Error handling. 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: NPY · 208 bytes. 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.
Related files
- npyfloat64 to float32 Precision Loss — Paired Array (.npy)The precision-loss cases as a two-column float64 array holding the original value beside its float32 round trip, both kept at double width so the difference itself is representable. Subtracting the columns gives the error directly without a second narrowing step.

- npyIEEE-754 float32 Boundary Values (.npy)The single-precision counterpart of the float64 boundary array, including the 2^24 integer limit where consecutive whole numbers stop being representable. Widening float32 to float64 and back must preserve every one of these bit patterns.

- jsonIEEE-754 float64 Boundary Values — JSON With No NaN Literal (.json)The same boundary values as strict RFC 8259 JSON, where non-finite numbers are null in the numeric field and text in the string field because the standard has no NaN or Infinity literal. It is the fixture for the encoder that emits bare NaN and produces JSON nothing else will parse.

- npyIEEE-754 float64 Boundary Values (.npy)The sixteen structurally distinct float64 values a numeric pipeline has to survive, in binary form: both zeros, both subnormal limits, the smallest normal, epsilon, the largest finite value, both infinities, a quiet NaN and the 2^53 integer boundary. Round-tripping this array is the minimum bar for any float64 codec.

- jsonIntegers Beyond 2^53 in JSON — Silent Identifier Corruption (.json)Six large integers written both as JSON numbers and as strings, including the 2^53 boundary where consecutive integers stop being distinguishable in a double. A parser backed by doubles turns 9007199254740993 into 9007199254740992 and reports no error at all.

- npyNaN Payloads and Signalling NaNs (.npy)Six distinct NaN bit patterns — quiet, signalling, signed and payload-carrying — stored as float64. They are all NaN and none equals another, so any code that deduplicates, sorts or hashes them by value is doing something undefined and this array proves it.

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