Skip to content

Commit 208e2a4

Browse files
committed
fix: corrected logic in variance calculation (issue stdlib-js#5901)
1 parent 525aec8 commit 208e2a4

File tree

2 files changed

+34
-33
lines changed

2 files changed

+34
-33
lines changed

lib/node_modules/@stdlib/stats/base/dists/levy/variance/benchmark/benchmark.js

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
var bench = require( '@stdlib/bench' );
2424
var Float64Array = require( '@stdlib/array/float64' );
25-
var randu = require( '@stdlib/random/base/randu' );
25+
var uniform = require( '@stdlib/random/base/uniform' ); // Corrected import
2626
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2727
var EPS = require( '@stdlib/constants/float64/eps' );
2828
var pkg = require( './../package.json' ).name;
@@ -32,31 +32,31 @@ var variance = require( './../lib' );
3232
// MAIN //
3333

3434
bench( pkg, function benchmark( b ) {
35-
var len;
36-
var mu;
37-
var c;
38-
var y;
39-
var i;
40-
41-
len = 100;
42-
mu = new Float64Array( len );
43-
c = new Float64Array( len );
44-
for ( i = 0; i < len; i++ ) {
45-
mu[ i ] = ( randu() * 100.0 ) - 50.0;
46-
c[ i ] = ( randu() * 20.0 ) + EPS;
47-
}
48-
49-
b.tic();
50-
for ( i = 0; i < b.iterations; i++ ) {
51-
y = variance( mu[ i % len ], c[ i % len ] );
52-
if ( isnan( y ) ) {
53-
b.fail( 'should not return NaN' );
54-
}
55-
}
56-
b.toc();
57-
if ( isnan( y ) ) {
58-
b.fail( 'should not return NaN' );
59-
}
60-
b.pass( 'benchmark finished' );
61-
b.end();
35+
var len;
36+
var mu;
37+
var c;
38+
var y;
39+
var i;
40+
41+
len = 100;
42+
mu = new Float64Array( len );
43+
c = new Float64Array( len );
44+
for ( i = 0; i < len; i++ ) {
45+
mu[ i ] = uniform( -50.0, 50.0 ); // Using uniform instead of randu
46+
c[ i ] = uniform( EPS, 20.0 + EPS ); // Using uniform instead of randu
47+
}
48+
49+
b.tic();
50+
for ( i = 0; i < b.iterations; i++ ) {
51+
y = variance( mu[ i % len ], c[ i % len ] );
52+
if ( isnan( y ) ) {
53+
b.fail( 'should not return NaN' );
54+
}
55+
}
56+
b.toc();
57+
if ( isnan( y ) ) {
58+
b.fail( 'should not return NaN' );
59+
}
60+
b.pass( 'benchmark finished' );
61+
b.end();
6262
});

lib/node_modules/@stdlib/stats/base/dists/levy/variance/benchmark/benchmark.native.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,16 @@ var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
2525
var Float64Array = require( '@stdlib/array/float64' );
2626
var tryRequire = require( '@stdlib/utils/try-require' );
27-
var randu = require( '@stdlib/random/base/randu' );
27+
var uniform = require( '@stdlib/random/base/uniform' );
2828
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2929
var EPS = require( '@stdlib/constants/float64/eps' );
3030
var pkg = require( './../package.json' ).name;
3131

3232

3333
// VARIABLES //
3434

35-
var variance = tryRequire( resolve( __dirname, './../lib/native.js' ) );
35+
var levy = require( resolve( __dirname, '../../lib/index.js' ) );
36+
var variance = levy.variance;
3637
var opts = {
3738
'skip': ( variance instanceof Error )
3839
};
@@ -51,8 +52,8 @@ bench( pkg+'::native', opts, function benchmark( b ) {
5152
mu = new Float64Array( len );
5253
c = new Float64Array( len );
5354
for ( i = 0; i < len; i++ ) {
54-
mu[ i ] = ( randu() * 100.0 ) - 50.0;
55-
c[ i ] = ( randu() * 20.0 ) + EPS;
55+
mu[ i ] = uniform( -50.0, 50.0 );
56+
c[ i ] = uniform( EPS, 20.0 );
5657
}
5758

5859
b.tic();
@@ -68,4 +69,4 @@ bench( pkg+'::native', opts, function benchmark( b ) {
6869
}
6970
b.pass( 'benchmark finished' );
7071
b.end();
71-
});
72+
});

0 commit comments

Comments
 (0)