From 5389c0e1858a7781eee2e594967ab71a3d15bf1c Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 May 2026 00:21:33 +0000 Subject: [PATCH] refactor: replace `isProbability` with inline range check in `stats/base/dists/bernoulli/mgf` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Normalize the probability-range validation in `lib/main.js` and `lib/factory.js` to the inline form `isnan( p ) || p < 0.0 || p > 1.0` used by every other member of the `stats/base/dists/bernoulli` namespace (12/13 siblings; 92.3% conformance). Cross-namespace, the same inline form is used by 20/22 `stats/base/dists/*/mgf` packages (90.9%), so the previous `!isProbability(p)` form is also a minority across the wider `stats/base/dists` family. Behavior preserved: `isProbability(x)` returns `x >= 0.0 && x <= 1.0`, so `!isProbability(p)` and `isnan(p) || p < 0.0 || p > 1.0` agree on NaN, ±Infinity, and all finite inputs. The `@stdlib/math/base/assert/is-probability` import is removed from both files since it is no longer used. Manual smoke-tested against the existing `test/test.mgf.js` boundary cases (`NaN`, ±Infinity, `2.0`, `-0.5` for `p`); all return `NaN` as before. --- .../@stdlib/stats/base/dists/bernoulli/mgf/lib/factory.js | 7 +++++-- .../@stdlib/stats/base/dists/bernoulli/mgf/lib/main.js | 8 ++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/lib/factory.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/lib/factory.js index c73e657ed500..6a53d276e320 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/lib/factory.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/lib/factory.js @@ -21,7 +21,6 @@ // MODULES // var constantFunction = require( '@stdlib/utils/constant-function' ); -var isProbability = require( '@stdlib/math/base/assert/is-probability' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var exp = require( '@stdlib/math/base/special/exp' ); @@ -40,7 +39,11 @@ var exp = require( '@stdlib/math/base/special/exp' ); * // returns ~0.855 */ function factory( p ) { - if ( !isProbability( p ) ) { + if ( + isnan( p ) || + p < 0.0 || + p > 1.0 + ) { return constantFunction( NaN ); } return mgf; diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/lib/main.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/lib/main.js index 9c37a1e69abc..15c6c90ceed7 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/lib/main.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/lib/main.js @@ -20,7 +20,6 @@ // MODULES // -var isProbability = require( '@stdlib/math/base/assert/is-probability' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var exp = require( '@stdlib/math/base/special/exp' ); @@ -59,7 +58,12 @@ var exp = require( '@stdlib/math/base/special/exp' ); * // returns NaN */ function mgf( t, p ) { - if ( isnan( t ) || !isProbability( p ) ) { + if ( + isnan( t ) || + isnan( p ) || + p < 0.0 || + p > 1.0 + ) { return NaN; } return ( 1.0-p ) + ( p * exp( t ) );