diff --git a/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/README.md b/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/README.md index af8e9c5798b0..f13d9b339767 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/README.md @@ -64,6 +64,9 @@ var y = mgf( 2.0, 0.0, 3.0 ); y = mgf( 0.5, 0.0, 1.0 ); // returns ~1.016 +y = mgf( 0.0, 2.0, 5.0 ); +// returns 1.0 + y = mgf( -1.0, 4.0, 2.0 ); // returns ~0.024 ``` diff --git a/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/lib/factory.js b/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/lib/factory.js index faf21482b6c5..4dc7fa4743c0 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/lib/factory.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/lib/factory.js @@ -73,6 +73,9 @@ function factory( mu, s ) { return NaN; } st = s * t; + if ( st === 0.0 ) { + return 1.0; + } out = PI_SQUARED * sinh( st ); out /= st * ( PI_SQUARED + ( st*st ) ); out *= exp( mu * t ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/lib/main.js b/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/lib/main.js index 917462d0c594..97c4a035a4c3 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/lib/main.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/lib/main.js @@ -41,6 +41,10 @@ var PI_SQUARED = require( '@stdlib/constants/float64/pi-squared' ); * // returns ~1.016 * * @example +* var y = mgf( 0.0, 2.0, 5.0 ); +* // returns 1.0 +* +* @example * var y = mgf( 1.2, 0.0, 1.0 ); * // returns ~1.098 * @@ -72,6 +76,9 @@ function mgf( t, mu, s ) { return NaN; } st = s * t; + if ( st === 0.0 ) { + return 1.0; + } out = PI_SQUARED * sinh( st ); out /= st * ( PI_SQUARED + ( st*st ) ); out *= exp( mu * t ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/src/main.c index 4666b9ed9d0f..4f297270798b 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/cosine/mgf/src/main.c @@ -43,6 +43,9 @@ double stdlib_base_dists_cosine_mgf( const double t, const double mu, const doub ) { return 0.0/0.0; // NaN } + if ( t == 0.0 ) { + return 1.0; + } const double st = s*t; double out = STDLIB_CONSTANT_FLOAT64_PI_SQUARED * stdlib_base_sinh( st ); out /= st * ( STDLIB_CONSTANT_FLOAT64_PI_SQUARED + ( st*st ) );