double-double
Version:
Pure double-double precision functions *with strict error bounds*.
22 lines (15 loc) • 358 B
text/typescript
const { EPSILON: eps } = Number;
const u = eps/2;
const es = (eps**2)/2;
const ups = u + es;
/**
* Add one unit in the last place (ulp) to the given number.
*
* * subnormal numbers (and 0) are returned unaltered
*
* @internal
*/
function add1Ulp(n: number) {
return n > 0 ? n + n*ups : n - n*ups;
}
export { add1Ulp }