Need for missing functions log1p and expm1
Posted: Wed Aug 18, 2021 8:42 am
Dear Sir,
For small x << 1, ln(1+x) and exp(x)-1 and sinh(x) are close to x. This means there is loss of several digits of precision when calculating exp(x)-1 from exp(x) because we taking difference of two numbers almost equal to one another and to 1. Likewise there is similar error in ln1+x) and sinh(x) when calculated from ln(x) and exp(x) for small x.
ANSI Forth, C, and x87 FPU provide instructions expm1(x) and log1p(x) to meet this need. Once expm1 and log1p are provided, accurate computation of sinh, asinh, tanh, atanh also becomes possible for small x.
Therefore I request that expm1 and log1p be provided in newLisp.
For small x << 1, ln(1+x) and exp(x)-1 and sinh(x) are close to x. This means there is loss of several digits of precision when calculating exp(x)-1 from exp(x) because we taking difference of two numbers almost equal to one another and to 1. Likewise there is similar error in ln1+x) and sinh(x) when calculated from ln(x) and exp(x) for small x.
ANSI Forth, C, and x87 FPU provide instructions expm1(x) and log1p(x) to meet this need. Once expm1 and log1p are provided, accurate computation of sinh, asinh, tanh, atanh also becomes possible for small x.
Therefore I request that expm1 and log1p be provided in newLisp.