From 67765100090062b604aa8c48bd81fd05bec6137d Mon Sep 17 00:00:00 2001 From: the_deeppp Date: Sun, 9 Mar 2025 12:53:46 +0530 Subject: [PATCH 1/3] refactor: update levy median implementation Signed-off-by: the_deeppp --- .../stats/base/dists/levy/median/benchmark/benchmark.js | 5 +++-- .../base/dists/levy/median/benchmark/benchmark.native.js | 5 +++-- .../@stdlib/stats/base/dists/levy/median/test/test.native.js | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/levy/median/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/levy/median/benchmark/benchmark.js index 23325dcd8f8b..3b59e227cfec 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/levy/median/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/levy/median/benchmark/benchmark.js @@ -27,6 +27,7 @@ var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; var median = require( './../lib' ); +var uniform = require('@stdlib/random/base/uniform'); // MAIN // @@ -42,8 +43,8 @@ bench( pkg, function benchmark( b ) { mu = new Float64Array( len ); c = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - mu[ i ] = ( randu() * 100.0 ) - 50.0; - c[ i ] = ( randu() * 20.0 ) + EPS; + mu[ i ] = uniform( -50.0, 50.0 ); + c[ i ] = uniform( EPS, 20.0 + EPS ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/levy/median/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/levy/median/benchmark/benchmark.native.js index 46739e3a12b6..5afcdb194f31 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/levy/median/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/levy/median/benchmark/benchmark.native.js @@ -28,6 +28,7 @@ var randu = require( '@stdlib/random/base/randu' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); var pkg = require( './../package.json' ).name; +var uniform = require('@stdlib/random/base/uniform'); // VARIABLES // @@ -51,8 +52,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { mu = new Float64Array( len ); c = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - mu[ i ] = ( randu() * 100.0 ) - 50.0; - c[ i ] = ( randu() * 20.0 ) + EPS; + mu[ i ] = uniform( -50.0, 50.0 ); + c[ i ] = uniform( EPS, 20.0 + EPS ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/levy/median/test/test.native.js b/lib/node_modules/@stdlib/stats/base/dists/levy/median/test/test.native.js index bd799897c0d4..b142e3924b5c 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/levy/median/test/test.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/levy/median/test/test.native.js @@ -53,9 +53,9 @@ tape( 'main export is a function', opts, function test( t ) { tape( 'if provided `NaN` for any parameter, the function returns `NaN`', opts, function test( t ) { var y = median( NaN, 1.0 ); - t.equal( isnan( y ), true, 'returns NaN' ); + t.equal( isnan( y ), true, 'returns expected value' ); y = median( 1.0, NaN ); - t.equal( isnan( y ), true, 'returns NaN' ); + t.equal( isnan( y ), true, 'returns expected value' ); t.end(); }); From d376a1f10d13c18fd81e31784cb2b675cf573e9f Mon Sep 17 00:00:00 2001 From: the_deeppp Date: Sun, 9 Mar 2025 14:10:18 +0530 Subject: [PATCH 2/3] fixed as per mentioned Signed-off-by: the_deeppp --- .../@stdlib/stats/base/dists/triangular/logcdf/README.md | 5 ++--- .../stats/base/dists/triangular/logcdf/examples/c/example.c | 1 - .../@stdlib/stats/base/dists/triangular/logcdf/lib/native.js | 2 +- .../@stdlib/stats/base/dists/triangular/logcdf/src/main.c | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/README.md b/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/README.md index 90dc3ccc71fb..2b16740c300e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/README.md @@ -121,7 +121,7 @@ y = mylogcdf( 8.0 ); ## Notes -- In virtually all cases, using the `logcdf` or `logcdf` functions is preferable to manually computing the logarithm of the `pdf` or `cdf`, respectively, since the latter is prone to overflow and underflow. +- In virtually all cases, using the `logcdf` or `logcdf` functions is preferable to manually computing the logarithm of the `cdf` or `cdf`, respectively, since the latter is prone to overflow and underflow. @@ -186,7 +186,7 @@ for ( i = 0; i < 25; i++ ) { #### stdlib_base_dists_geometric_logcdf( x, a, b, c ) -Evaluates the natural logarithm of the [cumulative distribution function][cdf] (CDF) for a [triangular][triangular-distribution] distribution with parameters `a` (lower limit), `b` (upper limit) and `c` (mode). +Evaluates the natural logarithm of the [cumulative distribution function][cdf] (CDF) for a [triangular][triangular-distribution] distribution with parameters `a` (lower limit), `b` (upper limit), and `c` (mode). ```c double y = stdlib_base_dists_geometric_logcdf( 0.5, -1.0, 1.0, 0.0 ); @@ -227,7 +227,6 @@ double stdlib_base_dists_geometric_logcdf( const double x, const double a, const #include "stdlib/constants/float64/eps.h" #include #include -#include static double random_uniform( const double min, const double max ) { double v = (double)rand() / ( (double)RAND_MAX + 1.0 ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/examples/c/example.c b/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/examples/c/example.c index d3e25336df23..62d3ea2fa020 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/examples/c/example.c +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/examples/c/example.c @@ -20,7 +20,6 @@ #include "stdlib/constants/float64/eps.h" #include #include -#include static double random_uniform( const double min, const double max ) { double v = (double)rand() / ( (double)RAND_MAX + 1.0 ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/lib/native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/lib/native.js index c062990ec3e4..1a7a63970c86 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/lib/native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/lib/native.js @@ -26,7 +26,7 @@ var addon = require( './../src/addon.node' ); // MAIN // /** -* Evaluates the natural logarithm of the cumulative distribution function (CDF) for a triangular distribution with lower limit `a` and upper limit `b` and mode `c` at a value `x`. +* Evaluates the logarithm of the cumulative distribution function (CDF) for a triangular distribution. * * @private * @param {number} x - input value diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/src/main.c b/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/src/main.c index a83d1c96f0cb..c13d64bbeb39 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/src/main.c +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/src/main.c @@ -52,7 +52,7 @@ double stdlib_base_dists_triangular_logcdf( const double x, const double a, cons if ( x <= c ) { return ( 2.0 * stdlib_base_ln( x - a ) - stdlib_base_ln( ( b - a ) * ( c - a ) ) ); } - if( x < b ){ + if ( x < b ) { return stdlib_base_ln( 1.0 - ( stdlib_base_pow( b - x, 2.0 ) / ( ( b - a ) * ( b - c ) ) ) ); } return 0.0; From 655b291cc52dcd60c18cc1e01fc2967bfe34b910 Mon Sep 17 00:00:00 2001 From: the_deeppp Date: Sun, 9 Mar 2025 16:12:36 +0530 Subject: [PATCH 3/3] fix: updated geometric median documentation Signed-off-by: the_deeppp --- .../@stdlib/stats/base/dists/geometric/median/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/geometric/median/README.md b/lib/node_modules/@stdlib/stats/base/dists/geometric/median/README.md index 71f76b13d2a9..ece2e8007c93 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/geometric/median/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/geometric/median/README.md @@ -154,7 +154,7 @@ Returns the [median][median] of a [geometric][geometric-distribution] distributi ```c double out = stdlib_base_dists_geometric_median( 0.5 ); -// returns 1 +// returns 0 ``` The function accepts the following arguments: @@ -187,7 +187,6 @@ double stdlib_base_dists_geometric_median( const double p ); #include "stdlib/stats/base/dists/geometric/median.h" #include #include -#include static double random_uniform( const double min, const double max ) { double v = (double)rand() / ( (double)RAND_MAX + 1.0 );