Skip to content

Commit 9cff95d

Browse files
chore: update random number generation function in triangular/logpdf
PR-URL: #5266 Co-authored-by: Philipp Burckhardt <[email protected]> Reviewed-by: Philipp Burckhardt <[email protected]> Signed-off-by: Philipp Burckhardt <[email protected]>
1 parent 6d7317a commit 9cff95d

File tree

4 files changed

+27
-24
lines changed

4 files changed

+27
-24
lines changed

lib/node_modules/@stdlib/stats/base/dists/triangular/logpdf/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ y = mylogpdf( 12.0 );
134134
<!-- eslint no-undef: "error" -->
135135

136136
```javascript
137-
var randu = require( '@stdlib/random/base/randu' );
137+
var uniform = require( '@stdlib/random/base/uniform' );
138138
var logpdf = require( '@stdlib/stats/base/dists/triangular/logpdf' );
139139

140140
var a;
@@ -145,10 +145,10 @@ var y;
145145
var i;
146146

147147
for ( i = 0; i < 25; i++ ) {
148-
x = randu() * 30.0;
149-
a = randu() * 10.0;
150-
b = a + (randu() * 40.0);
151-
c = a + ((b-a) * randu());
148+
x = uniform( 0.0, 30.0 );
149+
a = uniform( 0.0, 10.0 );
150+
b = uniform( a, a + 40.0 );
151+
c = uniform( a, b );
152152
y = logpdf( x, a, b, c );
153153
console.log( 'x: %d, a: %d, b: %d, c: %d, ln(f(x;a,b,c)): %d', x.toFixed( 4 ), a.toFixed( 4 ), b.toFixed( 4 ), c.toFixed( 4 ), y.toFixed( 4 ) );
154154
}

lib/node_modules/@stdlib/stats/base/dists/triangular/logpdf/benchmark/benchmark.js

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

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var uniform = require( '@stdlib/random/base/uniform' );
2525
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2626
var Float64Array = require( '@stdlib/array/float64' );
2727
var EPS = require( '@stdlib/constants/float64/eps' );
@@ -45,12 +45,11 @@ bench( pkg, function benchmark( b ) {
4545
min = new Float64Array( len );
4646
max = new Float64Array( len );
4747
mode = new Float64Array( len );
48-
4948
for ( i = 0; i < len; i++ ) {
50-
x[ i ] = randu() * 30.0;
51-
min[ i ] = randu() * 10.0;
52-
max[ i ] = min[ i ] + ( randu() * 40.0 ) + EPS;
53-
mode[ i ] = min[ i ] + ( ( max[ i ] - min[ i ] ) * randu() );
49+
x[ i ] = uniform( 0.0, 30.0 );
50+
min[ i ] = uniform( 0.0, 10.0 );
51+
max[ i ] = uniform( min[ i ] + EPS, 40.0 + EPS + min[ i ] );
52+
mode[ i ] = uniform( min[ i ], max[ i ] );
5453
}
5554

5655
b.tic();
@@ -73,19 +72,24 @@ bench( pkg+':factory', function benchmark( b ) {
7372
var mode;
7473
var min;
7574
var max;
75+
var len;
7676
var x;
7777
var y;
7878
var i;
7979

80+
len = 100;
8081
min = -1.5;
8182
max = 1.5;
8283
mode = 0.5;
8384
mylogpdf = logpdf.factory( min, max, mode );
85+
x = new Float64Array( len );
86+
for ( i = 0; i < len; i++ ) {
87+
x[ i ] = uniform( -2.0, 2.0 );
88+
}
8489

8590
b.tic();
8691
for ( i = 0; i < b.iterations; i++ ) {
87-
x = ( randu()*2.0 ) - 2.0;
88-
y = mylogpdf( x );
92+
y = mylogpdf( x[ i%x.length ] );
8993
if ( isnan( y ) ) {
9094
b.fail( 'should not return NaN' );
9195
}

lib/node_modules/@stdlib/stats/base/dists/triangular/logpdf/benchmark/benchmark.native.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
2525
var Float64Array = require( '@stdlib/array/float64' );
26-
var randu = require( '@stdlib/random/base/randu' );
26+
var uniform = require( '@stdlib/random/base/uniform' );
2727
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2828
var tryRequire = require( '@stdlib/utils/try-require' );
2929
var EPS = require( '@stdlib/constants/float64/eps' );
@@ -54,12 +54,11 @@ bench( pkg+'::native', opts, function benchmark( b ) {
5454
min = new Float64Array( len );
5555
max = new Float64Array( len );
5656
mode = new Float64Array( len );
57-
5857
for ( i = 0; i < len; i++ ) {
59-
x[ i ] = randu() * 30.0;
60-
min[ i ] = randu() * 10.0;
61-
max[ i ] = min[ i ] + ( randu() * 40.0 ) + EPS;
62-
mode[ i ] = min[ i ] + ( ( max[ i ] - min[ i ] ) * randu() );
58+
x[ i ] = uniform( 0.0, 30.0 );
59+
min[ i ] = uniform( 0.0, 10.0 );
60+
max[ i ] = uniform( min[ i ] + EPS, 40.0 + EPS + min[ i ] );
61+
mode[ i ] = uniform( max[ i ], max[ i ] );
6362
}
6463

6564
b.tic();

lib/node_modules/@stdlib/stats/base/dists/triangular/logpdf/examples/index.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
'use strict';
2020

21-
var randu = require( '@stdlib/random/base/randu' );
21+
var uniform = require( '@stdlib/random/base/uniform' );
2222
var logpdf = require( './../lib' );
2323

2424
var a;
@@ -29,10 +29,10 @@ var y;
2929
var i;
3030

3131
for ( i = 0; i < 25; i++ ) {
32-
x = randu() * 30.0;
33-
a = randu() * 10.0;
34-
b = a + (randu() * 40.0);
35-
c = a + ((b-a) * randu());
32+
x = uniform( 0.0, 30.0 );
33+
a = uniform( 0.0, 10.0 );
34+
b = uniform( a, a + 40.0 );
35+
c = uniform( a, b );
3636
y = logpdf( x, a, b, c );
3737
console.log( 'x: %d, a: %d, b: %d, c: %d, ln(f(x;a,b,c)): %d', x.toFixed( 4 ), a.toFixed( 4 ), b.toFixed( 4 ), c.toFixed( 4 ), y.toFixed( 4 ) );
3838
}

0 commit comments

Comments
 (0)