From b0639472175808254213fd35d2902e52b998b4cc Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Sat, 20 Jul 2024 14:14:50 +0530 Subject: [PATCH] refactor: reduce code complexity PR-URL: https://github.com/stdlib-js/stdlib/pull/2632 Co-authored-by: Athan Reines Reviewed-by: Athan Reines Signed-off-by: Athan Reines --- .../@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 03f6b69e0c4..0d1f7f26402 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 91d5709bd13..7a0ba5fa974 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( (double)b ); } exp = stdlib_base_floor( exp - n + 1.0 ); - s = stdlib_base_pow( base, stdlib_base_abs( exp ) ); + s = stdlib_base_pow( (double)b, stdlib_base_abs( exp ) ); // Check for overflow: if ( stdlib_base_is_infinite( s ) ) {