diff --git a/lib/node_modules/@stdlib/math/base/special/cexp/manifest.json b/lib/node_modules/@stdlib/math/base/special/cexp/manifest.json index 00d5fd64f7a0..ddfa5646c158 100644 --- a/lib/node_modules/@stdlib/math/base/special/cexp/manifest.json +++ b/lib/node_modules/@stdlib/math/base/special/cexp/manifest.json @@ -38,7 +38,14 @@ "dependencies": [ "@stdlib/math/base/napi/unary", "@stdlib/complex/float64/ctor", - "@stdlib/complex/float64/reim" + "@stdlib/complex/float64/reim", + "@stdlib/math/base/special/exp", + "@stdlib/math/base/special/sincos", + "@stdlib/math/base/assert/is-nan", + "@stdlib/math/base/assert/is-infinite", + "@stdlib/math/base/special/copysign", + "@stdlib/constants/float64/pinf", + "@stdlib/constants/float64/ninf" ] }, { @@ -53,7 +60,14 @@ "libpath": [], "dependencies": [ "@stdlib/complex/float64/ctor", - "@stdlib/complex/float64/reim" + "@stdlib/complex/float64/reim", + "@stdlib/math/base/special/exp", + "@stdlib/math/base/special/sincos", + "@stdlib/math/base/assert/is-nan", + "@stdlib/math/base/assert/is-infinite", + "@stdlib/math/base/special/copysign", + "@stdlib/constants/float64/pinf", + "@stdlib/constants/float64/ninf" ] }, { @@ -68,7 +82,14 @@ "libpath": [], "dependencies": [ "@stdlib/complex/float64/ctor", - "@stdlib/complex/float64/reim" + "@stdlib/complex/float64/reim", + "@stdlib/math/base/special/exp", + "@stdlib/math/base/special/sincos", + "@stdlib/math/base/assert/is-nan", + "@stdlib/math/base/assert/is-infinite", + "@stdlib/math/base/special/copysign", + "@stdlib/constants/float64/pinf", + "@stdlib/constants/float64/ninf" ] } ] diff --git a/lib/node_modules/@stdlib/math/base/special/cexp/src/main.c b/lib/node_modules/@stdlib/math/base/special/cexp/src/main.c index 8ad60aa2f3b5..44ef8126a47f 100644 --- a/lib/node_modules/@stdlib/math/base/special/cexp/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/cexp/src/main.c @@ -17,9 +17,15 @@ */ #include "stdlib/math/base/special/cexp.h" +#include "stdlib/math/base/special/exp.h" +#include "stdlib/math/base/special/sincos.h" +#include "stdlib/math/base/assert/is_nan.h" +#include "stdlib/math/base/assert/is_infinite.h" +#include "stdlib/constants/float64/pinf.h" +#include "stdlib/math/base/special/copysign.h" +#include "stdlib/constants/float64/ninf.h" #include "stdlib/complex/float64/ctor.h" #include "stdlib/complex/float64/reim.h" -#include /** * Evaluates the exponential function of a double-precision complex floating-point number. @@ -48,27 +54,28 @@ stdlib_complex128_t stdlib_base_cexp( const stdlib_complex128_t z ) { stdlib_complex128_reim( z, &re, &im ); - if ( isnan( re ) ){ - re = NAN; + if ( stdlib_base_is_nan( re ) ) { + re = 0.0 / 0.0; // NaN im = ( im == 0.0 ) ? im : re; - } else if ( isinf( im ) ){ - if ( re == INFINITY ) { + } else if ( stdlib_base_is_infinite( im ) ) { + if ( re == STDLIB_CONSTANT_FLOAT64_PINF ) { re = -re; - im = NAN; - } else if ( re == -INFINITY ) { + im = 0.0 / 0.0; // NaN + } else if ( re == STDLIB_CONSTANT_FLOAT64_NINF ) { re = -0.0; - im = copysign( 0.0, im ); + im = stdlib_base_copysign( 0.0, im ); } else { - re = NAN; - im = NAN; + re = 0.0 / 0.0; // NaN + im = 0.0 / 0.0; // NaN } } else { - e = exp( re ); + e = stdlib_base_exp( re ); if ( im == 0.0 ) { re = e; } else { - re = cos( im ) * e; - im = sin( im ) * e; + stdlib_base_sincos( im, &im, &re ); + re *= e; + im *= e; } } return stdlib_complex128( re, im );