diff --git a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/README.md b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/README.md index 426629cec928..3c1945543ece 100644 --- a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/README.md +++ b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/README.md @@ -154,19 +154,19 @@ for ( i = 1; i < 100; i++ ) { Computes the nth non-Fibonacci number. ```c -double out = stdlib_base_nonfibonacci( 1 ); -// returns 4 +double out = stdlib_base_nonfibonacci( 1.0 ); +// returns 4.0 -out = stdlib_base_nonfibonacci( 2 ); -// returns 6 +out = stdlib_base_nonfibonacci( 2.0 ); +// returns 6.0 ``` The function accepts the following arguments: -- **x**: `[in] int32_t` input value. +- **x**: `[in] double` input value. ```c -double stdlib_base_nonfibonacci( const int32_t x ); +double stdlib_base_nonfibonacci( const double x ); ``` @@ -190,12 +190,14 @@ double stdlib_base_nonfibonacci( const int32_t x ); ```c #include "stdlib/math/base/special/nonfibonacci.h" #include -#include + int main( void ) { - int i; - for ( i = 1; i < 12; i++ ) { - double result = stdlib_base_nonfibonacci( i ); - printf( "x: %i => result: %lf", i, result ); + double i; + double v; + + for ( i = 1.0; i < 12.0; i++ ) { + v = stdlib_base_nonfibonacci( i ); + printf( "nonfibonacci(%lf) = %lf\n", i, v ); } } ``` diff --git a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/benchmark/c/native/benchmark.c index ca80cabc520a..43497a40ebd2 100644 --- a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/benchmark/c/native/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/benchmark/c/native/benchmark.c @@ -90,13 +90,13 @@ static double rand_double( void ) { */ static double benchmark( void ) { double elapsed; + double x[ 100 ]; double t; double y; - int x[ 100 ]; int i; for ( i = 0; i < 100; i++ ) { - x[ i ] = (int)floor( (100.0*rand_double()) + 1.0 ); + x[ i ] = floor( (100.0*rand_double()) + 1.0 ); } t = tic(); diff --git a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/examples/c/example.c index b59febe79123..90920949949a 100644 --- a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/examples/c/example.c +++ b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/examples/c/example.c @@ -20,9 +20,11 @@ #include int main( void ) { - int i; - for ( i = 1; i < 12; i++ ) { - double result = stdlib_base_nonfibonacci( i ); - printf( "x: %i => result: %lf\n", i, result ); + double i; + double v; + + for ( i = 1.0; i < 12.0; i++ ) { + v = stdlib_base_nonfibonacci( i ); + printf( "nonfibonacci(%lf) = %lf\n", i, v ); } } diff --git a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/include/stdlib/math/base/special/nonfibonacci.h b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/include/stdlib/math/base/special/nonfibonacci.h index 41f08604caa8..54595bb9c159 100644 --- a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/include/stdlib/math/base/special/nonfibonacci.h +++ b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/include/stdlib/math/base/special/nonfibonacci.h @@ -19,8 +19,6 @@ #ifndef STDLIB_MATH_BASE_SPECIAL_NONFIBONACCI_H #define STDLIB_MATH_BASE_SPECIAL_NONFIBONACCI_H -#include - /* * If C++, prevent name mangling so that the compiler emits a binary file having undecorated names, thus mirroring the behavior of a C compiler. */ @@ -31,7 +29,7 @@ extern "C" { /** * Computes the nth non-Fibonacci number. */ -double stdlib_base_nonfibonacci( const int32_t n ); +double stdlib_base_nonfibonacci( const double n ); #ifdef __cplusplus } diff --git a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/manifest.json b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/manifest.json index 1978632a2bcc..d6160068dce5 100644 --- a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/manifest.json +++ b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/manifest.json @@ -39,7 +39,9 @@ "@stdlib/math/base/napi/unary", "@stdlib/constants/float64/nan", "@stdlib/math/base/special/floor", - "@stdlib/math/base/special/ln" + "@stdlib/math/base/special/ln", + "@stdlib/math/base/assert/is-integer", + "@stdlib/constants/float64/pinf" ] }, { @@ -55,7 +57,9 @@ "dependencies": [ "@stdlib/constants/float64/nan", "@stdlib/math/base/special/floor", - "@stdlib/math/base/special/ln" + "@stdlib/math/base/special/ln", + "@stdlib/math/base/assert/is-integer", + "@stdlib/constants/float64/pinf" ] }, { @@ -71,7 +75,9 @@ "dependencies": [ "@stdlib/constants/float64/nan", "@stdlib/math/base/special/floor", - "@stdlib/math/base/special/ln" + "@stdlib/math/base/special/ln", + "@stdlib/math/base/assert/is-integer", + "@stdlib/constants/float64/pinf" ] } ] diff --git a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/src/addon.c b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/src/addon.c index eb018398169f..dd1aef8efee8 100644 --- a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/src/addon.c +++ b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/src/addon.c @@ -19,4 +19,4 @@ #include "stdlib/math/base/special/nonfibonacci.h" #include "stdlib/math/base/napi/unary.h" -STDLIB_MATH_BASE_NAPI_MODULE_I_D( stdlib_base_nonfibonacci ) +STDLIB_MATH_BASE_NAPI_MODULE_D_D( stdlib_base_nonfibonacci ) diff --git a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/src/main.c b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/src/main.c index 3c39de1c5bf4..bf2b2b852d37 100644 --- a/lib/node_modules/@stdlib/math/base/special/nonfibonacci/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/nonfibonacci/src/main.c @@ -17,10 +17,11 @@ */ #include "stdlib/math/base/special/nonfibonacci.h" +#include "stdlib/math/base/assert/is_integer.h" #include "stdlib/constants/float64/nan.h" +#include "stdlib/constants/float64/pinf.h" #include "stdlib/math/base/special/floor.h" #include "stdlib/math/base/special/ln.h" -#include static const double SQRT5 = 2.23606797749979; static const double LN_PHI = 0.48121182506; @@ -32,31 +33,32 @@ static const double LN_PHI = 0.48121182506; * @return output value * * @example -* double y = stdlib_base_nonfibonacci( 2 ); +* double y = stdlib_base_nonfibonacci( 2.0 ); * // returns 6.0 * * @example -* double y = stdlib_base_nonfibonacci( 1 ); +* double y = stdlib_base_nonfibonacci( 1.0 ); * // returns 4.0 * * @example -* double y = stdlib_base_nonfibonacci( 3 ); +* double y = stdlib_base_nonfibonacci( 3.0 ); * // returns 7.0 * * @example -* double y = stdlib_base_nonfibonacci( -1 ); +* double y = stdlib_base_nonfibonacci( -1.0 ); * // returns NaN */ -double stdlib_base_nonfibonacci( const int32_t n ) { +double stdlib_base_nonfibonacci( const double n ) { + double mut_n; double a; double b; - int32_t mut_n = n; - if ( n < 1 ) { + mut_n = n; + if ( !stdlib_base_is_integer( n ) || n == STDLIB_CONSTANT_FLOAT64_PINF || n < 1.0 ) { return STDLIB_CONSTANT_FLOAT64_NAN; } - mut_n += 1; + mut_n += 1.0; a = stdlib_base_ln( mut_n * SQRT5 ) / LN_PHI; b = stdlib_base_ln( (SQRT5 * (mut_n + a)) - 5.0 + (3.0 / mut_n) ) / LN_PHI;