Skip to content

Commit c20d9e4

Browse files
committed
fix: correct C implementation to return +Infinity when alpha <= 1, update benchmarks
1 parent 5b24fdc commit c20d9e4

File tree

3 files changed

+10
-17
lines changed

3 files changed

+10
-17
lines changed

lib/node_modules/@stdlib/stats/base/dists/pareto-type1/mean/benchmark/benchmark.js

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var Float64Array = require( '@stdlib/array/float64' );
25-
var randu = require( '@stdlib/random/base/randu' );
24+
var uniform = require( '@stdlib/random/array/uniform' );
2625
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2726
var pkg = require( './../package.json' ).name;
2827
var mean = require( './../lib' );
@@ -38,12 +37,8 @@ bench( pkg, function benchmark( b ) {
3837
var i;
3938

4039
len = 100;
41-
alpha = new Float64Array( len );
42-
beta = new Float64Array( len );
43-
for ( i = 0; i < len; i++ ) {
44-
alpha[ i ] = ( randu() * 3.5 ) + 1.5; // alpha must be > 1 for mean to be defined
45-
beta[ i ] = ( randu() * 9.0 ) + 1.0;
46-
}
40+
alpha = uniform( len, 1.5, 5.0 ); // alpha must be > 1 for mean to be defined
41+
beta = uniform( len, 1.0, 10.0 );
4742

4843
b.tic();
4944
for ( i = 0; i < b.iterations; i++ ) {

lib/node_modules/@stdlib/stats/base/dists/pareto-type1/mean/benchmark/benchmark.native.js

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

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var Float64Array = require( '@stdlib/array/float64' );
26-
var randu = require( '@stdlib/random/base/randu' );
25+
var uniform = require( '@stdlib/random/array/uniform' );
2726
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2827
var tryRequire = require( '@stdlib/utils/try-require' );
2928
var pkg = require( './../package.json' ).name;
@@ -47,12 +46,8 @@ bench( pkg + '::native', opts, function benchmark( b ) {
4746
var i;
4847

4948
len = 100;
50-
alpha = new Float64Array( len );
51-
beta = new Float64Array( len );
52-
for ( i = 0; i < len; i++ ) {
53-
alpha[ i ] = ( randu() * 3.5 ) + 1.5; // alpha must be > 1 for mean to be defined
54-
beta[ i ] = ( randu() * 9.0 ) + 1.0;
55-
}
49+
alpha = uniform( len, 1.5, 5.0 ); // alpha must be > 1 for mean to be defined
50+
beta = uniform( len, 1.0, 10.0 );
5651

5752
b.tic();
5853
for ( i = 0; i < b.iterations; i++ ) {

lib/node_modules/@stdlib/stats/base/dists/pareto-type1/mean/src/main.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@
3131
* // returns 2.0
3232
*/
3333
double stdlib_base_dists_pareto_type1_mean( const double alpha, const double beta ) {
34-
if ( stdlib_base_is_nan( alpha ) || stdlib_base_is_nan( beta ) || alpha <= 1.0 || beta <= 0.0 ) {
34+
if ( stdlib_base_is_nan( alpha ) || stdlib_base_is_nan( beta ) || alpha <= 0.0 || beta <= 0.0 ) {
3535
return 0.0 / 0.0; // NaN
3636
}
37+
if ( alpha <= 1.0 ) {
38+
return 1.0 / 0.0; // +Infinity
39+
}
3740
return ( alpha * beta ) / ( alpha - 1.0 );
3841
}

0 commit comments

Comments
 (0)