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 ) ) {