Skip to content
markpaper

src/numbers/grid.ts

v0.1.0 · 445 B

Download file
import { type Dec, decAbs, decCmp, decMul, decSub, isOnStep, snapToStep } from './decimal.js';
export const QFEX_GRID_NOISE: Dec = { mant: 1n, exp: 6 };
export function snapToGrid(raw: Dec, step: Dec): { value: Dec; exact: boolean; noise: boolean } {
  const value = snapToStep(raw, step, 'nearest');
  return {
    value,
    exact: isOnStep(raw, step),
    noise: decCmp(decAbs(decSub(raw, value)), decMul(step, QFEX_GRID_NOISE)) <= 0,
  };
}
All files