diff --git a/lib/node_modules/@stdlib/math/base/special/ccis/manifest.json b/lib/node_modules/@stdlib/math/base/special/ccis/manifest.json index 333027c4958..58fca3275df 100644 --- a/lib/node_modules/@stdlib/math/base/special/ccis/manifest.json +++ b/lib/node_modules/@stdlib/math/base/special/ccis/manifest.json @@ -39,7 +39,9 @@ "@stdlib/math/base/napi/unary", "@stdlib/complex/float64/ctor", "@stdlib/complex/float64/reim", - "@stdlib/math/base/special/exp" + "@stdlib/math/base/special/exp", + "@stdlib/math/base/special/cos", + "@stdlib/math/base/special/sin" ] }, { @@ -55,7 +57,9 @@ "dependencies": [ "@stdlib/complex/float64/ctor", "@stdlib/complex/float64/reim", - "@stdlib/math/base/special/exp" + "@stdlib/math/base/special/exp", + "@stdlib/math/base/special/cos", + "@stdlib/math/base/special/sin" ] }, { @@ -71,7 +75,9 @@ "dependencies": [ "@stdlib/complex/float64/ctor", "@stdlib/complex/float64/reim", - "@stdlib/math/base/special/exp" + "@stdlib/math/base/special/exp", + "@stdlib/math/base/special/cos", + "@stdlib/math/base/special/sin" ] } ] diff --git a/lib/node_modules/@stdlib/math/base/special/ccis/src/main.c b/lib/node_modules/@stdlib/math/base/special/ccis/src/main.c index c58cedb141f..8c2b93a6e10 100644 --- a/lib/node_modules/@stdlib/math/base/special/ccis/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/ccis/src/main.c @@ -20,8 +20,8 @@ #include "stdlib/complex/float64/ctor.h" #include "stdlib/complex/float64/reim.h" #include "stdlib/math/base/special/exp.h" -#include - +#include "stdlib/math/base/special/sin.h" +#include "stdlib/math/base/special/cos.h" /** * Evaluates the cis function for a double-precision complex floating-point number. @@ -68,8 +68,9 @@ stdlib_complex128_t stdlib_base_ccis( const stdlib_complex128_t z ) { stdlib_complex128_reim( z, &re, &im ); - y = sin( re ); //TODO: use stdlib function once available - x = cos( re ); //TODO: use stdlib function once available + // TODO: replace with stdlib/math/base/special/sincos + y = stdlib_base_sin( re ); + x = stdlib_base_cos( re ); if( im != 0.0 ){ e = stdlib_base_exp( -im ); y *= e; diff --git a/lib/node_modules/@stdlib/math/base/special/ccis/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/ccis/test/test.native.js index 3d74f95feaa..d6d8d9edaf8 100644 --- a/lib/node_modules/@stdlib/math/base/special/ccis/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/ccis/test/test.native.js @@ -129,8 +129,9 @@ tape( 'the function computes cis(z) for complex z', opts, function test( t ) { if ( real( q ) === cisre[ i ] ) { t.strictEqual( real( q ), cisre[ i ], 'returns expected real component' ); } else { + // NOTE: the results may differ slightly from the reference and JavaScript implementations due to compiler optimizations which may be performed resulting in result divergence. For discussion, see https://github.com/stdlib-js/stdlib/pull/2298#discussion_r1624765205 delta = abs( real( q ) - cisre[ i ] ); - tol = EPS * abs( cisre[ i ] ); + tol = 1.05 * EPS * abs( cisre[ i ] ); t.ok( delta <= tol, 'within tolerance. z: '+re[i]+'+ '+im[i]+'i. real: '+real( q )+'. expected: '+cisre[i]+'. delta: '+delta+'. tol: '+tol+'.' ); } if ( imag( q ) === cisim[ i ] ) {