chickadee » math » fp*/error

fp+/error x yprocedure
fp-/error x yprocedure
fp*/error x yprocedure
fp//error x yprocedure
fpsqr/error xprocedure
fpsqrt/error xprocedure
fpexp/error xprocedure
fpexpm1/error xprocedure

Compute the same values as (fp+ x y), (fp- x y), (fp* x y), (fp/ x y), (fp* x x), (fpsqrt x), (fpexp x) and (fpexpm1 x), but return the normally rounded-off low-order bits as the second value. The result is an unboxed double-double.

Use these functions to generate double-double numbers directly from the results of floating-point operations.

For fpexp/error and fpexpm1/error, the largest observed error is 3 ulps. (See fp2ulp.) For the rest, the largest observed error is 0.5 ulps.