diff --git a/lib/node_modules/@stdlib/math/base/special/fibonacci/README.md b/lib/node_modules/@stdlib/math/base/special/fibonacci/README.md index 6f43fad959a8..73cd16c1a80b 100644 --- a/lib/node_modules/@stdlib/math/base/special/fibonacci/README.md +++ b/lib/node_modules/@stdlib/math/base/special/fibonacci/README.md @@ -185,10 +185,10 @@ out = stdlib_base_fibonacci( 1 ); The function accepts the following arguments: -- **n**: `[in] int32_t` input value. +- **n**: `[in] double` input value. ```c -double stdlib_base_fibonacci( const int32_t n ); +double stdlib_base_fibonacci( const double n ); ``` @@ -212,15 +212,14 @@ double stdlib_base_fibonacci( const int32_t n ); ```c #include "stdlib/math/base/special/fibonacci.h" #include -#include int main( void ) { - int32_t i; + double i; double v; - for ( i = 0; i < 79; i++ ) { + for ( i = 0.0; i < 79.0; i++ ) { v = stdlib_base_fibonacci( i ); - printf( "fibonacci(%d) = %lf\n", i, v ); + printf( "fibonacci(%lf) = %lf\n", i, v ); } } ``` diff --git a/lib/node_modules/@stdlib/math/base/special/fibonacci/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/fibonacci/benchmark/c/native/benchmark.c index 9d87e5d1812a..98a68ae88712 100644 --- a/lib/node_modules/@stdlib/math/base/special/fibonacci/benchmark/c/native/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/special/fibonacci/benchmark/c/native/benchmark.c @@ -91,13 +91,13 @@ static double rand_double( void ) { */ static double benchmark( void ) { double elapsed; - int32_t x[ 100 ]; + double x[ 100 ]; double t; double y; int i; for ( i = 0; i < 100; i++ ) { - x[ i ] = (int32_t)floor( 40.0*rand_double() ); + x[ i ] = floor( 40.0*rand_double() ); } t = tic(); diff --git a/lib/node_modules/@stdlib/math/base/special/fibonacci/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/fibonacci/examples/c/example.c index f944c7bc22f6..63f6bcf8465e 100644 --- a/lib/node_modules/@stdlib/math/base/special/fibonacci/examples/c/example.c +++ b/lib/node_modules/@stdlib/math/base/special/fibonacci/examples/c/example.c @@ -18,14 +18,13 @@ #include "stdlib/math/base/special/fibonacci.h" #include -#include int main( void ) { - int32_t i; + double i; double v; - for ( i = 0; i < 79; i++ ) { + for ( i = 0.0; i < 79.0; i++ ) { v = stdlib_base_fibonacci( i ); - printf( "fibonacci(%d) = %lf\n", i, v ); + printf( "fibonacci(%lf) = %lf\n", i, v ); } } diff --git a/lib/node_modules/@stdlib/math/base/special/fibonacci/include/stdlib/math/base/special/fibonacci.h b/lib/node_modules/@stdlib/math/base/special/fibonacci/include/stdlib/math/base/special/fibonacci.h index ebd08a3adef8..9b3ca28c8541 100644 --- a/lib/node_modules/@stdlib/math/base/special/fibonacci/include/stdlib/math/base/special/fibonacci.h +++ b/lib/node_modules/@stdlib/math/base/special/fibonacci/include/stdlib/math/base/special/fibonacci.h @@ -19,8 +19,6 @@ #ifndef STDLIB_MATH_BASE_SPECIAL_FIBONACCI_H #define STDLIB_MATH_BASE_SPECIAL_FIBONACCI_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 Fibonacci number. */ -double stdlib_base_fibonacci( const int32_t n ); +double stdlib_base_fibonacci( const double n ); #ifdef __cplusplus } diff --git a/lib/node_modules/@stdlib/math/base/special/fibonacci/lib/main.js b/lib/node_modules/@stdlib/math/base/special/fibonacci/lib/main.js index ddb9025dc212..39bdbb4a5835 100644 --- a/lib/node_modules/@stdlib/math/base/special/fibonacci/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/fibonacci/lib/main.js @@ -21,7 +21,7 @@ // MODULES // var isnan = require( '@stdlib/math/base/assert/is-nan' ); -var isInteger = require( '@stdlib/math/base/assert/is-integer' ); +var isNonnegativeInteger = require( '@stdlib/math/base/assert/is-nonnegative-integer' ); var MAX_FIBONACCI = require( '@stdlib/constants/float64/max-safe-nth-fibonacci' ); var FIBONACCI = require( './fibonacci.json' ); @@ -77,8 +77,7 @@ var FIBONACCI = require( './fibonacci.json' ); function fibonacci( n ) { if ( isnan( n ) || - isInteger( n ) === false || - n < 0 || + !isNonnegativeInteger( n ) || n > MAX_FIBONACCI ) { return NaN; diff --git a/lib/node_modules/@stdlib/math/base/special/fibonacci/manifest.json b/lib/node_modules/@stdlib/math/base/special/fibonacci/manifest.json index d7640f5ce464..58d2fa022134 100644 --- a/lib/node_modules/@stdlib/math/base/special/fibonacci/manifest.json +++ b/lib/node_modules/@stdlib/math/base/special/fibonacci/manifest.json @@ -37,7 +37,8 @@ "libpath": [], "dependencies": [ "@stdlib/math/base/napi/unary", - "@stdlib/constants/float64/max-safe-nth-fibonacci" + "@stdlib/constants/float64/max-safe-nth-fibonacci", + "@stdlib/math/base/assert/is-nonnegative-integer" ] }, { @@ -51,7 +52,8 @@ "libraries": [], "libpath": [], "dependencies": [ - "@stdlib/constants/float64/max-safe-nth-fibonacci" + "@stdlib/constants/float64/max-safe-nth-fibonacci", + "@stdlib/math/base/assert/is-nonnegative-integer" ] }, { @@ -65,7 +67,8 @@ "libraries": [], "libpath": [], "dependencies": [ - "@stdlib/constants/float64/max-safe-nth-fibonacci" + "@stdlib/constants/float64/max-safe-nth-fibonacci", + "@stdlib/math/base/assert/is-nonnegative-integer" ] } ] diff --git a/lib/node_modules/@stdlib/math/base/special/fibonacci/src/addon.c b/lib/node_modules/@stdlib/math/base/special/fibonacci/src/addon.c index b029ac660485..8b57af70bd9e 100644 --- a/lib/node_modules/@stdlib/math/base/special/fibonacci/src/addon.c +++ b/lib/node_modules/@stdlib/math/base/special/fibonacci/src/addon.c @@ -19,4 +19,4 @@ #include "stdlib/math/base/special/fibonacci.h" #include "stdlib/math/base/napi/unary.h" -STDLIB_MATH_BASE_NAPI_MODULE_I_D( stdlib_base_fibonacci ) +STDLIB_MATH_BASE_NAPI_MODULE_D_D( stdlib_base_fibonacci ) diff --git a/lib/node_modules/@stdlib/math/base/special/fibonacci/src/main.c b/lib/node_modules/@stdlib/math/base/special/fibonacci/src/main.c index 7e3572c45f2f..ab5deb4a02ce 100644 --- a/lib/node_modules/@stdlib/math/base/special/fibonacci/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/fibonacci/src/main.c @@ -18,6 +18,9 @@ #include "stdlib/math/base/special/fibonacci.h" #include "stdlib/constants/float64/max_safe_nth_fibonacci.h" +#include "stdlib/math/base/assert/is_nonnegative_integer.h" +#include +#include static const int64_t fibonacci_value[ 79 ] = { 0, @@ -108,12 +111,12 @@ static const int64_t fibonacci_value[ 79 ] = { * @return output value * * @example -* double out = stdlib_base_fibonacci( 1 ); -* // returns 1 +* double out = stdlib_base_fibonacci( 1.0 ); +* // returns 1.0 */ -double stdlib_base_fibonacci( const int32_t n ) { - if ( n < 0 || n > STDLIB_CONSTANT_FLOAT64_MAX_SAFE_NTH_FIBONACCI ) { +double stdlib_base_fibonacci( const double n ) { + if ( !stdlib_base_is_nonnegative_integer( n ) || n > STDLIB_CONSTANT_FLOAT64_MAX_SAFE_NTH_FIBONACCI ) { return 0.0 / 0.0; // NaN } - return fibonacci_value[ n ]; + return fibonacci_value[ (size_t)n ]; }