Skip to content

Commit 27e866e

Browse files
stdlib-botiraandrushko
authored andcommitted
refactor(stats/base/dists/studentized-range): optimize RNG in benchmarks (stdlib-js#4987)
--- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: passed - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- type: pre_push_report description: Results of running various checks prior to pushing changes. report: - task: run_javascript_examples status: na - task: run_c_examples status: na - task: run_cpp_examples status: na - task: run_javascript_readme_examples status: na - task: run_c_benchmarks status: na - task: run_cpp_benchmarks status: na - task: run_fortran_benchmarks status: na - task: run_javascript_benchmarks status: na - task: run_julia_benchmarks status: na - task: run_python_benchmarks status: na - task: run_r_benchmarks status: na - task: run_javascript_tests status: na ---
1 parent 9a18dc7 commit 27e866e

File tree

4 files changed

+46
-18
lines changed

4 files changed

+46
-18
lines changed

lib/node_modules/@stdlib/blas/ext/base/gapxsumkbn/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,9 +160,9 @@ console.log( v );
160160
## See Also
161161

162162
- <span class="package-name">[`@stdlib/blas/ext/base/dapxsumkbn`][@stdlib/blas/ext/base/dapxsumkbn]</span><span class="delimiter">: </span><span class="description">add a constant to each double-precision floating-point strided array element and compute the sum using an improved Kahan–Babuška algorithm.</span>
163-
- <span class="package-name">[`@stdlib/blas/ext/base/gapxsum`][@stdlib/blas/ext/base/gapxsum]</span><span class="delimiter">: </span><span class="description">add a constant to each strided array element and compute the sum.</span>
163+
- <span class="package-name">[`@stdlib/blas/ext/base/gapxsum`][@stdlib/blas/ext/base/gapxsum]</span><span class="delimiter">: </span><span class="description">add a scalar constant to each strided array element and compute the sum.</span>
164164
- <span class="package-name">[`@stdlib/blas/ext/base/gsumkbn`][@stdlib/blas/ext/base/gsumkbn]</span><span class="delimiter">: </span><span class="description">calculate the sum of strided array elements using an improved Kahan–Babuška algorithm.</span>
165-
- <span class="package-name">[`@stdlib/blas/ext/base/sapxsumkbn`][@stdlib/blas/ext/base/sapxsumkbn]</span><span class="delimiter">: </span><span class="description">add a constant to each single-precision floating-point strided array element and compute the sum using an improved Kahan–Babuška algorithm.</span>
165+
- <span class="package-name">[`@stdlib/blas/ext/base/sapxsumkbn`][@stdlib/blas/ext/base/sapxsumkbn]</span><span class="delimiter">: </span><span class="description">add a scalar constant to each single-precision floating-point strided array element and compute the sum using an improved Kahan–Babuška algorithm.</span>
166166

167167
</section>
168168

lib/node_modules/@stdlib/math/base/special/deg2radf/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ int main( void ) {
168168
## See Also
169169

170170
- <span class="package-name">[`@stdlib/math/base/special/deg2rad`][@stdlib/math/base/special/deg2rad]</span><span class="delimiter">: </span><span class="description">convert an angle from degrees to radians.</span>
171+
- <span class="package-name">[`@stdlib/math/base/special/rad2degf`][@stdlib/math/base/special/rad2degf]</span><span class="delimiter">: </span><span class="description">convert an angle from radians to degrees (single-precision).</span>
171172

172173
</section>
173174

@@ -181,6 +182,8 @@ int main( void ) {
181182

182183
[@stdlib/math/base/special/deg2rad]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/deg2rad
183184

185+
[@stdlib/math/base/special/rad2degf]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/rad2degf
186+
184187
<!-- </related-links> -->
185188

186189
</section>

lib/node_modules/@stdlib/stats/base/dists/studentized-range/cdf/benchmark/benchmark.js

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

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var Float64Array = require( '@stdlib/array/float64' );
25+
var uniform = require( '@stdlib/random/base/uniform' );
2526
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2627
var pkg = require( './../package.json' ).name;
2728
var cdf = require( './../lib' );
@@ -30,18 +31,26 @@ var cdf = require( './../lib' );
3031
// MAIN //
3132

3233
bench( pkg, function benchmark( b ) {
34+
var len;
3335
var v;
3436
var r;
3537
var q;
3638
var y;
3739
var i;
3840

41+
len = 100;
42+
q = new Float64Array( len );
43+
r = new Float64Array( len );
44+
v = new Float64Array( len );
45+
for ( i = 0; i < len; i++ ) {
46+
q[ i ] = uniform( 0, 12.0 );
47+
r[ i ] = uniform( 2.0, 22.0 );
48+
v[ i ] = uniform( 2.0, 22.0 );
49+
}
50+
3951
b.tic();
4052
for ( i = 0; i < b.iterations; i++ ) {
41-
q = randu() * 12.0;
42-
r = ( randu()*20.0 ) + 2.0;
43-
v = ( randu()*20.0 ) + 2.0;
44-
y = cdf( q, r, v );
53+
y = cdf( q[ i % len ], r[ i % len ], v[ i % len ] );
4554
if ( isnan( y ) ) {
4655
b.fail( 'should not return NaN' );
4756
}
@@ -56,6 +65,7 @@ bench( pkg, function benchmark( b ) {
5665

5766
bench( pkg+':factory', function benchmark( b ) {
5867
var mycdf;
68+
var len;
5969
var r;
6070
var q;
6171
var v;
@@ -65,11 +75,15 @@ bench( pkg+':factory', function benchmark( b ) {
6575
v = 5.0;
6676
r = 3.0;
6777
mycdf = cdf.factory( v, r );
78+
len = 100;
79+
q = new Float64Array( len );
80+
for ( i = 0; i < len; i++ ) {
81+
q[ i ] = uniform( 0, 1.0 );
82+
}
6883

6984
b.tic();
7085
for ( i = 0; i < b.iterations; i++ ) {
71-
q = randu();
72-
y = mycdf( q );
86+
y = mycdf( q[ i % len ] );
7387
if ( isnan( y ) ) {
7488
b.fail( 'should not return NaN' );
7589
}

lib/node_modules/@stdlib/stats/base/dists/studentized-range/quantile/benchmark/benchmark.js

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

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var Float64Array = require( '@stdlib/array/float64' );
25+
var uniform = require( '@stdlib/random/base/uniform' );
2526
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2627
var pkg = require( './../package.json' ).name;
2728
var quantile = require( './../lib' );
@@ -30,18 +31,24 @@ var quantile = require( './../lib' );
3031
// MAIN //
3132

3233
bench( pkg, function benchmark( b ) {
34+
var len;
3335
var v;
3436
var r;
3537
var p;
3638
var y;
3739
var i;
38-
40+
len = 100;
41+
p = new Float64Array( len );
42+
r = new Float64Array( len );
43+
v = new Float64Array( len );
44+
for ( i = 0; i < len; i++ ) {
45+
p[ i ] = uniform( 0.0, 1.0 );
46+
r[ i ] = uniform( 2.0, 22.0 );
47+
v[ i ] = uniform( 2.0, 22.0 );
48+
}
3949
b.tic();
4050
for ( i = 0; i < b.iterations; i++ ) {
41-
p = randu();
42-
r = ( randu()*20.0 ) + 2.0;
43-
v = ( randu()*20.0 ) + 2.0;
44-
y = quantile( p, r, v );
51+
y = quantile( p[ i % len ], r[ i % len ], v[ i % len ] );
4552
if ( isnan( y ) ) {
4653
b.fail( 'should not return NaN' );
4754
}
@@ -56,6 +63,7 @@ bench( pkg, function benchmark( b ) {
5663

5764
bench( pkg+':factory', function benchmark( b ) {
5865
var myquantile;
66+
var len;
5967
var r;
6068
var p;
6169
var v;
@@ -65,11 +73,14 @@ bench( pkg+':factory', function benchmark( b ) {
6573
v = 5.0;
6674
r = 3.0;
6775
myquantile = quantile.factory( v, r );
68-
76+
len = 100;
77+
p = new Float64Array( len );
78+
for ( i = 0; i < len; i++ ) {
79+
p[ i ] = uniform( 0.0, 1.0 );
80+
}
6981
b.tic();
7082
for ( i = 0; i < b.iterations; i++ ) {
71-
p = randu();
72-
y = myquantile( p );
83+
y = myquantile( p[ i % len ] );
7384
if ( isnan( y ) ) {
7485
b.fail( 'should not return NaN' );
7586
}

0 commit comments

Comments
 (0)