Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/RegisteredFilterPlugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -707,7 +707,7 @@ Granular BitRound (GBR) is a lossy pre-compression filter for floating-point sci

GBR works by determining, **per dataset chunk**, the finest absolute precision that is worth preserving, and then rounding every value to the nearest multiple of that precision interval. Values that fall on the same multiple become identical at the bit level, and adjacent values that round to nearby multiples differ only in their low-order mantissa bits. Both effects create the repetition and structure that lossless compressors exploit.

The precision interval $\delta$ is derived from two inputs: the observed range of values in the chunk (the difference between the maximum and minimum) and a user-specified count of significant decimal digits `NSD` to retain: $\delta = (\texttt{chunk\_max} - \texttt{chunk\_min}) / 10^{NSD}$. Each value is then rounded to the nearest multiple of $\delta$ using round-half-to-even (banker's rounding), which ensures that rounding errors are symmetrically distributed around zero and do not accumulate a systematic bias across an ensemble of values. The absolute error introduced to any single value is: $|\epsilon| ≤ \delta / 2$.
The precision interval $\delta$ is derived from two inputs: the observed range of values in the chunk (the difference between the maximum and minimum) and a user-specified count of significant decimal digits `NSD` to retain: $\delta = (\texttt{chunk\\_max} - \texttt{chunk\\_min}) / 10^{NSD}$. Each value is then rounded to the nearest multiple of $\delta$ using round-half-to-even (banker's rounding), which ensures that rounding errors are symmetrically distributed around zero and do not accumulate a systematic bias across an ensemble of values. The absolute error introduced to any single value is: $|\epsilon| ≤ \delta / 2$.

This means the absolute uncertainty introduced to any value scales with the spread of the data around it. If a dataset's values all cluster in a narrow band the quantization interval is correspondingly fine, and very little precision is lost. If a different chunk of the same dataset shows a wider spread, the interval widens proportionally, always preserving exactly `NSD` decimal digits of resolution relative to the data's own dynamic range.

Expand Down
Loading