From da216e6bfda4721b025794975523e9332cb0592f Mon Sep 17 00:00:00 2001 From: hrshya Date: Wed, 19 Mar 2025 22:47:27 +0530 Subject: [PATCH] bench: update random value generation --- .../special/floor10/benchmark/benchmark.js | 7 ++++--- .../floor10/benchmark/benchmark.native.js | 7 ++++--- .../floor10/benchmark/c/native/benchmark.c | 9 ++++++--- .../math/base/special/floor10/test/test.js | 20 +++++++++---------- .../base/special/floor10/test/test.native.js | 18 ++++++++--------- .../special/floor2/benchmark/benchmark.js | 7 ++++--- .../floor2/benchmark/benchmark.native.js | 7 ++++--- .../floor2/benchmark/c/native/benchmark.c | 9 ++++++--- .../math/base/special/floor2/test/test.js | 16 +++++++-------- .../base/special/floor2/test/test.native.js | 14 ++++++------- 10 files changed, 62 insertions(+), 52 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/floor10/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/floor10/benchmark/benchmark.js index e9faa3c88191..96a926853ffa 100644 --- a/lib/node_modules/@stdlib/math/base/special/floor10/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/math/base/special/floor10/benchmark/benchmark.js @@ -21,7 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/array/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var floor10 = require( './../lib' ); @@ -34,10 +34,11 @@ bench( pkg, function benchmark( b ) { var y; var i; + x = uniform( 100, -5.0e6, 5.0e6 ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*1.0e7 ) - 5.0e6; - y = floor10( x ); + y = floor10( x[ i%x.length ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/math/base/special/floor10/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/floor10/benchmark/benchmark.native.js index 03eff001ea8a..fb293d74650f 100644 --- a/lib/node_modules/@stdlib/math/base/special/floor10/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/math/base/special/floor10/benchmark/benchmark.native.js @@ -22,7 +22,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/array/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); var pkg = require( './../package.json' ).name; @@ -43,10 +43,11 @@ bench( pkg+'::native', opts, function benchmark( b ) { var y; var i; + x = uniform( 100, -5.0e6, 5.0e6 ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu() * 1.0e7 ) - 5.0e6; - y = floor10( x ); + y = floor10( x[ i%x.length ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/math/base/special/floor10/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/floor10/benchmark/c/native/benchmark.c index e7cc8911bb93..fd12b113112a 100644 --- a/lib/node_modules/@stdlib/math/base/special/floor10/benchmark/c/native/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/special/floor10/benchmark/c/native/benchmark.c @@ -91,15 +91,18 @@ static double rand_double( void ) { */ static double benchmark( void ) { double elapsed; - double x; + double x[ 100 ]; double y; double t; int i; + for ( i = 0; i < 100; i++ ) { + x[ i ] = ( 1.0e7 * rand_double() ) - 5.0e6; + } + t = tic(); for ( i = 0; i < ITERATIONS; i++ ) { - x = ( 1.0e7 * rand_double() ) - 5.0e6; - y = stdlib_base_floor10( x ); + y = stdlib_base_floor10( x[ i%100 ] ); if ( y != y ) { printf( "should not return NaN\n" ); break; diff --git a/lib/node_modules/@stdlib/math/base/special/floor10/test/test.js b/lib/node_modules/@stdlib/math/base/special/floor10/test/test.js index 2eaf474aa4eb..8ab58d11da56 100644 --- a/lib/node_modules/@stdlib/math/base/special/floor10/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/floor10/test/test.js @@ -42,35 +42,35 @@ tape( 'the function returns `+0` if provided `+0`', function test( t ) { var v; v = floor10( 0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = floor10( +0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); t.end(); }); tape( 'the function returns `-0` if provided `-0`', function test( t ) { var v = floor10( -0.0 ); - t.strictEqual( isNegativeZero( v ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( v ), true, 'returns expected value' ); t.end(); }); tape( 'the function returns `NaN` if provided a `NaN`', function test( t ) { var v = floor10( NaN ); - t.strictEqual( isnan( v ), true, 'returns NaN' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); t.end(); }); tape( 'the function returns `+infinity` if provided `+infinity`', function test( t ) { var v = floor10( PINF ); - t.strictEqual( v, PINF, 'returns +infinity' ); + t.strictEqual( v, PINF, 'returns expected value' ); t.end(); }); tape( 'the function returns `-infinity` if provided `-infinity`', function test( t ) { var v = floor10( NINF ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); t.end(); }); @@ -80,11 +80,11 @@ tape( 'the function overflows if provided a sufficiently large negative value', x = -pow( 10.0, 308 ); v = floor10( x + (x/2.0) ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); x = -pow( 10.0, 308 ); v = floor10( x + (x/3.0) ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); t.end(); }); @@ -95,11 +95,11 @@ tape( 'the function underflows if provided a sufficiently small positive value', x = pow( 10.0, -323 ); v = floor10( x - (x/2.0) ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); x = pow( 10.0, -323 ); v = floor10( x - (x/3.0) ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/floor10/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/floor10/test/test.native.js index fb54786818e6..1f782192571e 100644 --- a/lib/node_modules/@stdlib/math/base/special/floor10/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/floor10/test/test.native.js @@ -51,17 +51,17 @@ tape( 'the function returns `+0` if provided `+0`', opts, function test( t ) { var v; v = floor10( 0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = floor10( +0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); t.end(); }); tape( 'the function returns `-0` if provided `-0`', opts, function test( t ) { var v = floor10( -0.0 ); - t.strictEqual( isNegativeZero( v ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( v ), true, 'returns expected value' ); t.end(); }); @@ -73,13 +73,13 @@ tape( 'the function returns `NaN` if provided a `NaN`', opts, function test( t ) tape( 'the function returns `+infinity` if provided `+infinity`', opts, function test( t ) { var v = floor10( PINF ); - t.strictEqual( v, PINF, 'returns +infinity' ); + t.strictEqual( v, PINF, 'returns expected value' ); t.end(); }); tape( 'the function returns `-infinity` if provided `-infinity`', opts, function test( t ) { var v = floor10( NINF ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); t.end(); }); @@ -89,11 +89,11 @@ tape( 'the function overflows if provided a sufficiently large negative value', x = -pow( 10.0, 308 ); v = floor10( x + (x/2.0) ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); x = -pow( 10.0, 308 ); v = floor10( x + (x/3.0) ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); t.end(); }); @@ -104,11 +104,11 @@ tape( 'the function underflows if provided a sufficiently small positive value', x = pow( 10.0, -323 ); v = floor10( x - (x/2.0) ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); x = pow( 10.0, -323 ); v = floor10( x - (x/3.0) ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/floor2/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/floor2/benchmark/benchmark.js index 54abb78fd794..8dd5caf1dda8 100644 --- a/lib/node_modules/@stdlib/math/base/special/floor2/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/math/base/special/floor2/benchmark/benchmark.js @@ -21,7 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/array/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var floor2 = require( './../lib' ); @@ -34,10 +34,11 @@ bench( pkg, function benchmark( b ) { var y; var i; + x = uniform( 100, -5.0e6, 5.0e6 ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*1.0e7 ) - 5.0e6; - y = floor2( x ); + y = floor2( x[ i%x.length ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/math/base/special/floor2/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/floor2/benchmark/benchmark.native.js index 25514c35498f..394803e88967 100644 --- a/lib/node_modules/@stdlib/math/base/special/floor2/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/math/base/special/floor2/benchmark/benchmark.native.js @@ -22,7 +22,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/array/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); var pkg = require( './../package.json' ).name; @@ -43,10 +43,11 @@ bench( pkg+'::native', opts, function benchmark( b ) { var y; var i; + x = uniform( 100, -5.0e6, 5.0e6 ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu() * 1.0e7 ) - 5.0e6; - y = floor2( x ); + y = floor2( x[ i%x.length ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/math/base/special/floor2/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/floor2/benchmark/c/native/benchmark.c index 5a7517400139..d82b7f22c0cd 100644 --- a/lib/node_modules/@stdlib/math/base/special/floor2/benchmark/c/native/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/special/floor2/benchmark/c/native/benchmark.c @@ -91,15 +91,18 @@ static double rand_double( void ) { */ static double benchmark( void ) { double elapsed; - double x; + double x[ 100 ]; double y; double t; int i; + for ( i = 0; i < 100; i++ ) { + x[ i ] = ( 1.0e7 * rand_double() ) - 5.0e6; + } + t = tic(); for ( i = 0; i < ITERATIONS; i++ ) { - x = ( 1.0e7 * rand_double() ) - 5.0e6; - y = stdlib_base_floor2( x ); + y = stdlib_base_floor2( x[ i%100 ] ); if ( y != y ) { printf( "should not return NaN\n" ); break; diff --git a/lib/node_modules/@stdlib/math/base/special/floor2/test/test.js b/lib/node_modules/@stdlib/math/base/special/floor2/test/test.js index b81588c1065d..99bcce5a3a7d 100644 --- a/lib/node_modules/@stdlib/math/base/special/floor2/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/floor2/test/test.js @@ -44,35 +44,35 @@ tape( 'the function returns `+0` if provided `+0`', function test( t ) { var v; v = floor2( 0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = floor2( +0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); t.end(); }); tape( 'the function returns `-0` if provided `-0`', function test( t ) { var v = floor2( -0.0 ); - t.strictEqual( isNegativeZero( v ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( v ), true, 'returns expected value' ); t.end(); }); tape( 'the function returns `NaN` if provided a `NaN`', function test( t ) { var v = floor2( NaN ); - t.strictEqual( isnan( v ), true, 'returns NaN' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); t.end(); }); tape( 'the function returns `+infinity` if provided `+infinity`', function test( t ) { var v = floor2( PINF ); - t.strictEqual( v, PINF, 'returns +infinity' ); + t.strictEqual( v, PINF, 'returns expected value' ); t.end(); }); tape( 'the function returns `-infinity` if provided `-infinity`', function test( t ) { var v = floor2( NINF ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); t.end(); }); @@ -88,11 +88,11 @@ tape( 'the function overflows if provided a sufficiently large negative value', x = -exp2( 1023 ); v = floor2( x + (x/2.0) ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); x = -exp2( 1023 ); v = floor2( x + (x/3.0) ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/floor2/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/floor2/test/test.native.js index 695b26010f35..730e2ebec8b4 100644 --- a/lib/node_modules/@stdlib/math/base/special/floor2/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/floor2/test/test.native.js @@ -53,17 +53,17 @@ tape( 'the function returns `+0` if provided `+0`', opts, function test( t ) { var v; v = floor2( 0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = floor2( +0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); t.end(); }); tape( 'the function returns `-0` if provided `-0`', opts, function test( t ) { var v = floor2( -0.0 ); - t.strictEqual( isNegativeZero( v ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( v ), true, 'returns expected value' ); t.end(); }); @@ -75,13 +75,13 @@ tape( 'the function returns `NaN` if provided a `NaN`', opts, function test( t ) tape( 'the function returns `+infinity` if provided `+infinity`', opts, function test( t ) { var v = floor2( PINF ); - t.strictEqual( v, PINF, 'returns +infinity' ); + t.strictEqual( v, PINF, 'returns expected value' ); t.end(); }); tape( 'the function returns `-infinity` if provided `-infinity`', opts, function test( t ) { var v = floor2( NINF ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); t.end(); }); @@ -97,11 +97,11 @@ tape( 'the function overflows if provided a sufficiently large negative value', x = -exp2( 1023 ); v = floor2( x + (x/2.0) ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); x = -exp2( 1023 ); v = floor2( x + (x/3.0) ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); t.end(); });