diff --git a/lib/node_modules/@stdlib/math/base/special/factorial/lib/main.js b/lib/node_modules/@stdlib/math/base/special/factorial/lib/main.js index b7348584ab8..dbbac06a961 100644 --- a/lib/node_modules/@stdlib/math/base/special/factorial/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/factorial/lib/main.js @@ -24,14 +24,10 @@ var isnan = require( '@stdlib/math/base/assert/is-nan' ); var isInteger = require( '@stdlib/math/base/assert/is-integer' ); var gamma = require( '@stdlib/math/base/special/gamma' ); var PINF = require( '@stdlib/constants/float64/pinf' ); +var FLOAT64_MAX_SAFE_NTH_FACTORIAL = require( '@stdlib/constants/float64/max-safe-nth-factorial' ); var FACTORIALS = require( './factorials.json' ); -// VARIABLES // - -var MAX_FACTORIAL = 170; // TODO: consider extracting as a constant - - // MAIN // /** @@ -76,7 +72,7 @@ function factorial( x ) { if ( x < 0 ) { return NaN; } - if ( x <= MAX_FACTORIAL ) { + if ( x <= FLOAT64_MAX_SAFE_NTH_FACTORIAL ) { return FACTORIALS[ x ]; } return PINF; diff --git a/lib/node_modules/@stdlib/math/base/special/factorial/manifest.json b/lib/node_modules/@stdlib/math/base/special/factorial/manifest.json index 9473810a1b2..c02b2150780 100644 --- a/lib/node_modules/@stdlib/math/base/special/factorial/manifest.json +++ b/lib/node_modules/@stdlib/math/base/special/factorial/manifest.json @@ -40,7 +40,8 @@ "@stdlib/math/base/assert/is-nan", "@stdlib/math/base/assert/is-integer", "@stdlib/math/base/special/gamma", - "@stdlib/constants/float64/pinf" + "@stdlib/constants/float64/pinf", + "@stdlib/constants/float64/max-safe-nth-factorial" ] }, { @@ -57,7 +58,8 @@ "@stdlib/math/base/assert/is-nan", "@stdlib/math/base/assert/is-integer", "@stdlib/math/base/special/gamma", - "@stdlib/constants/float64/pinf" + "@stdlib/constants/float64/pinf", + "@stdlib/constants/float64/max-safe-nth-factorial" ] }, { @@ -74,7 +76,8 @@ "@stdlib/math/base/assert/is-nan", "@stdlib/math/base/assert/is-integer", "@stdlib/math/base/special/gamma", - "@stdlib/constants/float64/pinf" + "@stdlib/constants/float64/pinf", + "@stdlib/constants/float64/max-safe-nth-factorial" ] } ] diff --git a/lib/node_modules/@stdlib/math/base/special/factorial/src/main.c b/lib/node_modules/@stdlib/math/base/special/factorial/src/main.c index 83cd7478a83..e4b961a7a5d 100644 --- a/lib/node_modules/@stdlib/math/base/special/factorial/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/factorial/src/main.c @@ -21,9 +21,9 @@ #include "stdlib/math/base/assert/is_integer.h" #include "stdlib/math/base/special/gamma.h" #include "stdlib/constants/float64/pinf.h" +#include "stdlib/constants/float64/max_safe_nth_factorial.h" #include -static const double MAX_FACTORIAL = 170.0; static const double FACTORIALS[ 171 ] = { 1.0, 1.0, @@ -217,7 +217,7 @@ double stdlib_base_factorial( const double x ) { if ( x < 0.0 ) { return 0.0 / 0.0; // NaN } - if ( x <= MAX_FACTORIAL ) { + if ( x <= STDLIB_CONSTANT_FLOAT64_MAX_SAFE_NTH_FACTORIAL ) { return FACTORIALS[ (int32_t)x ]; } return STDLIB_CONSTANT_FLOAT64_PINF;