From fec3357692f1659651cb2b06632a473c300f32ad Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI <gunjjoshi8372@gmail.com> Date: Sat, 20 Jul 2024 10:41:00 +0530 Subject: [PATCH 1/2] refactor: remove extra if block, use b instead of base --- .../@stdlib/math/base/special/floorsd/lib/main.js | 6 +----- .../@stdlib/math/base/special/floorsd/src/main.c | 10 ++++------ 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/floorsd/lib/main.js b/lib/node_modules/@stdlib/math/base/special/floorsd/lib/main.js index 03f6b69e0c43..0d1f7f26402d 100644 --- a/lib/node_modules/@stdlib/math/base/special/floorsd/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/floorsd/lib/main.js @@ -64,11 +64,7 @@ function floorsd( x, n, b ) { isnan( x ) || isnan( n ) || n < 1 || - isInfinite( n ) - ) { - return NaN; - } - if ( + isInfinite( n ) || isnan( b ) || b <= 0 || isInfinite( b ) diff --git a/lib/node_modules/@stdlib/math/base/special/floorsd/src/main.c b/lib/node_modules/@stdlib/math/base/special/floorsd/src/main.c index 91d5709bd136..1c498e982975 100644 --- a/lib/node_modules/@stdlib/math/base/special/floorsd/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/floorsd/src/main.c @@ -40,7 +40,6 @@ * // returns 0.03125 */ double stdlib_base_floorsd( const double x, const int32_t n, const int32_t b ) { - int32_t base; double exp; double s; double y; @@ -48,19 +47,18 @@ double stdlib_base_floorsd( const double x, const int32_t n, const int32_t b ) { if ( stdlib_base_is_nan( x ) || n < 1 || b <= 0 ) { return 0.0 / 0.0; // NaN } - base = b; if ( stdlib_base_is_infinite( x ) || x == 0.0 ) { return x; } - if ( base == 10 ) { + if ( b == 10 ) { exp = stdlib_base_log10( stdlib_base_abs( x ) ); - } else if ( base == 2 ) { + } else if ( b == 2 ) { exp = stdlib_base_float64_exponent( stdlib_base_abs( x ) ); } else { - exp = stdlib_base_ln( stdlib_base_abs( x ) ) / stdlib_base_ln( base ); + exp = stdlib_base_ln( stdlib_base_abs( x ) ) / stdlib_base_ln( b ); } exp = stdlib_base_floor( exp - n + 1.0 ); - s = stdlib_base_pow( base, stdlib_base_abs( exp ) ); + s = stdlib_base_pow( b, stdlib_base_abs( exp ) ); // Check for overflow: if ( stdlib_base_is_infinite( s ) ) { From 20adc398fc7aa57e0f33e39ec446b521e753fec0 Mon Sep 17 00:00:00 2001 From: Athan <kgryte@gmail.com> Date: Sat, 20 Jul 2024 01:39:27 -0700 Subject: [PATCH 2/2] Apply suggestions from code review Signed-off-by: Athan <kgryte@gmail.com> --- lib/node_modules/@stdlib/math/base/special/floorsd/src/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/floorsd/src/main.c b/lib/node_modules/@stdlib/math/base/special/floorsd/src/main.c index 1c498e982975..7a0ba5fa9745 100644 --- a/lib/node_modules/@stdlib/math/base/special/floorsd/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/floorsd/src/main.c @@ -55,10 +55,10 @@ double stdlib_base_floorsd( const double x, const int32_t n, const int32_t b ) { } else if ( b == 2 ) { exp = stdlib_base_float64_exponent( stdlib_base_abs( x ) ); } else { - exp = stdlib_base_ln( stdlib_base_abs( x ) ) / stdlib_base_ln( b ); + exp = stdlib_base_ln( stdlib_base_abs( x ) ) / stdlib_base_ln( (double)b ); } exp = stdlib_base_floor( exp - n + 1.0 ); - s = stdlib_base_pow( b, stdlib_base_abs( exp ) ); + s = stdlib_base_pow( (double)b, stdlib_base_abs( exp ) ); // Check for overflow: if ( stdlib_base_is_infinite( s ) ) {