math.functions: adding e^-1.
This is for calculating e^x-1 for small values more accurately. You can also call expm1(x) function if you want, and it's available on your platform. FUNCTION: double expm1 ( double x )clean-macosx-x86-64
parent
4c48f03fe1
commit
da64b05e6d
|
@ -96,6 +96,28 @@ CONSTANT: log10-factorial-1000 0x1.40f3593ed6f8ep11
|
|||
{ e 1.e-10 } [ 1 e^ ] unit-test~
|
||||
{ 1.0 1.e-10 } [ -1 e^ e * ] unit-test~
|
||||
|
||||
{ 0.0 } [ 0.0 e^-1 ] unit-test
|
||||
{ -0.0 } [ -0.0 e^-1 ] unit-test
|
||||
{ 1/0. } [ 1/0. e^-1 ] unit-test
|
||||
{ -1.0 } [ -1/0. e^-1 ] unit-test
|
||||
{ -1.0 } [ -1/0. e^-1 ] unit-test
|
||||
{ t } [ NAN: 8000000000000 dup e^-1 [ fp-nan-payload ] same? ] unit-test
|
||||
{ 5e-324 } [ 5e-324 e^-1 ] unit-test
|
||||
{ 1e-20 } [ 1e-20 e^-1 ] unit-test
|
||||
{ -5e-324 } [ -5e-324 e^-1 ] unit-test
|
||||
{ -1e-20 } [ -1e-20 e^-1 ] unit-test
|
||||
{ 1.0000000000500000e-10 } [ 1e-10 e^-1 ] unit-test
|
||||
{ 22025.465794806718 } [ 10.0 e^-1 ] unit-test
|
||||
{ -9.999999999500001e-11 } [ -1e-10 e^-1 ] unit-test
|
||||
{ -0.9999546000702375 } [ -10.0 e^-1 ] unit-test
|
||||
{ -1.0 } [ -38.0 e^-1 ] unit-test
|
||||
{ -1.0 } [ -1e50 e^-1 ] unit-test
|
||||
{ 1.9424263952412558e+130 } [ 300 e^-1 ] unit-test
|
||||
{ 1.7976931346824240e+308 } [ 709.78271289328393 e^-1 ] unit-test
|
||||
{ 1/0. } [ 1000.0 e^-1 ] unit-test
|
||||
{ 1/0. } [ 1e50 e^-1 ] unit-test
|
||||
{ 1/0. } [ 1.79e308 e^-1 ] unit-test
|
||||
|
||||
{ 1.0 } [ 0 cosh ] unit-test
|
||||
{ 1.0 } [ 0.0 cosh ] unit-test
|
||||
{ 0.0 } [ 1 acosh ] unit-test
|
||||
|
|
|
@ -239,6 +239,19 @@ M: complex log10 log 10 log / ; inline
|
|||
|
||||
M: bignum log10 [ log10 ] log10-2 (bignum-log) ;
|
||||
|
||||
GENERIC: e^-1 ( x -- e^x-1 )
|
||||
|
||||
M: float e^-1
|
||||
dup abs 0.7 < [
|
||||
dup e^ dup 1.0 = [
|
||||
drop
|
||||
] [
|
||||
[ 1.0 - * ] [ log / ] bi
|
||||
] if
|
||||
] [ e^ 1.0 - ] if ; inline
|
||||
|
||||
M: real e^-1 >float e^-1 ; inline
|
||||
|
||||
GENERIC: cos ( x -- y ) foldable
|
||||
|
||||
M: complex cos
|
||||
|
|
Loading…
Reference in New Issue