`fp+/error``x``y`procedure`fp-/error``x``y`procedure`fp*/error``x``y`procedure`fp//error``x``y`procedure`fpsqr/error``x`procedure`fpsqrt/error``x`procedure`fpexp/error``x`procedure`fpexpm1/error``x`procedureCompute 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.