From 655dc7f39d81f7f6f85ab1752871bef640183956 Mon Sep 17 00:00:00 2001 From: hrshya Date: Wed, 26 Mar 2025 13:57:02 +0530 Subject: [PATCH] bench: update random value generation --- .../base/special/minn/benchmark/benchmark.js | 16 ++++--- .../base/special/minn/benchmark/c/benchmark.c | 13 +++--- .../math/base/special/minn/test/test.js | 44 +++++++++---------- .../base/special/modf/benchmark/benchmark.js | 11 ++--- .../modf/benchmark/benchmark.native.js | 7 +-- .../base/special/modf/benchmark/c/benchmark.c | 9 ++-- .../modf/benchmark/c/native/benchmark.c | 9 ++-- .../base/special/modf/test/test.assign.js | 16 +++---- .../math/base/special/modf/test/test.main.js | 16 +++---- .../base/special/modf/test/test.native.js | 16 +++---- .../nonfibonaccif/benchmark/benchmark.js | 4 +- .../benchmark/benchmark.native.js | 4 +- .../base/special/pdiff/benchmark/benchmark.js | 9 ++-- .../pdiff/benchmark/benchmark.native.js | 9 ++-- .../special/pdiff/benchmark/c/benchmark.c | 13 +++--- .../pdiff/benchmark/c/native/benchmark.c | 13 +++--- .../math/base/special/pdiff/test/test.js | 32 +++++++------- .../base/special/pdiff/test/test.native.js | 32 +++++++------- 18 files changed, 147 insertions(+), 126 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/minn/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/minn/benchmark/benchmark.js index e7bfb3b364cf..901c412ba2cc 100644 --- a/lib/node_modules/@stdlib/math/base/special/minn/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/math/base/special/minn/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 minn = require( './../lib' ); @@ -35,11 +35,12 @@ bench( pkg, function benchmark( b ) { var z; var i; + x = uniform( 100, -500.0, 500.0 ); + y = uniform( 100, -500.0, 500.0 ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*1000.0 ) - 500.0; - y = ( randu()*1000.0 ) - 500.0; - z = minn( x, y ); + z = minn( x[ i%x.length ], y[ i%y.length ] ); if ( isnan( z ) ) { b.fail( 'should not return NaN' ); } @@ -58,11 +59,12 @@ bench( pkg+'::built-in', function benchmark( b ) { var z; var i; + x = uniform( 100, -500.0, 500.0 ); + y = uniform( 100, -500.0, 500.0 ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*1000.0 ) - 500.0; - y = ( randu()*1000.0 ) - 500.0; - z = Math.min( x, y ); // eslint-disable-line stdlib/no-builtin-math + z = Math.min( x[ i%x.length ], y[ i%y.length ] ); // eslint-disable-line stdlib/no-builtin-math if ( isnan( z ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/math/base/special/minn/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/math/base/special/minn/benchmark/c/benchmark.c index e4d077862066..7cac1bab2c1b 100644 --- a/lib/node_modules/@stdlib/math/base/special/minn/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/special/minn/benchmark/c/benchmark.c @@ -90,17 +90,20 @@ static double rand_double( void ) { */ static double benchmark( void ) { double elapsed; - double x; - double y; + double x[ 100 ]; + double y[ 100 ]; double z; double t; int i; + for ( i = 0; i < 100; i++ ) { + x[ i ] = ( 1000.0*rand_double() ) - 500.0; + y[ i ] = ( 1000.0*rand_double() ) - 500.0; + } + t = tic(); for ( i = 0; i < ITERATIONS; i++ ) { - x = ( 1000.0*rand_double() ) - 500.0; - y = ( 1000.0*rand_double() ) - 500.0; - z = fmin( x, y ); + z = fmin( x[ i%100 ], y[ i%100 ] ); if ( z != z ) { printf( "should not return NaN\n" ); break; diff --git a/lib/node_modules/@stdlib/math/base/special/minn/test/test.js b/lib/node_modules/@stdlib/math/base/special/minn/test/test.js index fd7ef9b90c3f..c9d9d9211ab9 100644 --- a/lib/node_modules/@stdlib/math/base/special/minn/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/minn/test/test.js @@ -41,16 +41,16 @@ tape( 'the function returns `NaN` if provided a `NaN`', function test( t ) { var v; v = minn( NaN, 3.14 ); - t.strictEqual( isnan( v ), true, 'returns NaN' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = minn( 3.14, NaN ); - t.strictEqual( isnan( v ), true, 'returns NaN' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = minn( NaN ); - t.strictEqual( isnan( v ), true, 'returns NaN' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = minn( 3.14, 4.2, NaN ); - t.strictEqual( isnan( v ), true, 'returns NaN' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); t.end(); }); @@ -59,23 +59,23 @@ tape( 'the function returns `-Infinity` if provided `-Infinity`', function test( var v; v = minn( NINF, 3.14 ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); v = minn( 3.14, NINF ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); v = minn( NINF ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); v = minn( 3.14, 4.2, NINF ); - t.strictEqual( v, NINF, 'returns -infinity' ); + t.strictEqual( v, NINF, 'returns expected value' ); t.end(); }); tape( 'the function returns `+infinity` if not provided any arguments', function test( t ) { var v = minn(); - t.strictEqual( v, PINF, 'returns +infinity' ); + t.strictEqual( v, PINF, 'returns expected value' ); t.end(); }); @@ -83,25 +83,25 @@ tape( 'the function returns a correctly signed zero', function test( t ) { var v; v = minn( +0.0, -0.0 ); - t.strictEqual( isNegativeZero( v ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( v ), true, 'returns expected value' ); v = minn( -0.0, +0.0 ); - t.strictEqual( isNegativeZero( v ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( v ), true, 'returns expected value' ); v = minn( -0.0, -0.0 ); - t.strictEqual( isNegativeZero( v ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( v ), true, 'returns expected value' ); v = minn( +0.0, +0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = minn( -0.0 ); - t.strictEqual( isNegativeZero( v ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( v ), true, 'returns expected value' ); v = minn( +0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = minn( +0.0, -0.0, +0.0 ); - t.strictEqual( isNegativeZero( v ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( v ), true, 'returns expected value' ); t.end(); }); @@ -110,22 +110,22 @@ tape( 'the function returns the minimum value', function test( t ) { var v; v = minn( 4.2, 3.14 ); - t.strictEqual( v, 3.14, 'returns min value' ); + t.strictEqual( v, 3.14, 'returns expected value' ); v = minn( -4.2, 3.14 ); - t.strictEqual( v, -4.2, 'returns min value' ); + t.strictEqual( v, -4.2, 'returns expected value' ); v = minn( 3.14 ); - t.strictEqual( v, 3.14, 'returns min value' ); + t.strictEqual( v, 3.14, 'returns expected value' ); v = minn( PINF ); - t.strictEqual( v, PINF, 'returns min value' ); + t.strictEqual( v, PINF, 'returns expected value' ); v = minn( 4.2, 3.14, -1.0 ); - t.strictEqual( v, -1.0, 'returns min value' ); + t.strictEqual( v, -1.0, 'returns expected value' ); v = minn( 4.2, 3.14, -1.0, -3.14 ); - t.strictEqual( v, -3.14, 'returns min value' ); + t.strictEqual( v, -3.14, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/modf/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/modf/benchmark/benchmark.js index 07a2e144a346..fddf9d138e87 100644 --- a/lib/node_modules/@stdlib/math/base/special/modf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/math/base/special/modf/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 isArray = require( '@stdlib/assert/is-array' ); var pkg = require( './../package.json' ).name; var modf = 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 = modf( x ); + y = modf( x[ i%x.length ] ); if ( typeof y !== 'object' ) { b.fail( 'should return an array' ); } @@ -56,12 +57,12 @@ bench( pkg+':assign', function benchmark( b ) { var y; var i; + x = uniform( 100, -5.0e6, 5.0e6 ); out = [ 0.0, 0.0 ]; b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*1.0e7 ) - 5.0e6; - y = modf.assign( x, out, 1, 0 ); + y = modf.assign( x[ i%x.length ], out, 1, 0 ); if ( typeof y !== 'object' ) { b.fail( 'should return an array' ); } diff --git a/lib/node_modules/@stdlib/math/base/special/modf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/modf/benchmark/benchmark.native.js index 01e2772e0a3d..64a3cbac4e06 100644 --- a/lib/node_modules/@stdlib/math/base/special/modf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/math/base/special/modf/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 isArray = require( '@stdlib/assert/is-array' ); 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 = modf( x ); + y = modf( x[ i%x.length ] ); if ( typeof y !== 'object' ) { b.fail( 'should return an array' ); } diff --git a/lib/node_modules/@stdlib/math/base/special/modf/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/math/base/special/modf/benchmark/c/benchmark.c index edab8aad48d0..c40137ee8946 100644 --- a/lib/node_modules/@stdlib/math/base/special/modf/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/special/modf/benchmark/c/benchmark.c @@ -91,15 +91,18 @@ static double rand_double( void ) { static double benchmark( void ) { double elapsed; double iptr; - 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 = modf( x, &iptr ); + y = modf( x[ i%100 ], &iptr ); if ( y != y ) { printf( "should not return NaN\n" ); break; diff --git a/lib/node_modules/@stdlib/math/base/special/modf/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/modf/benchmark/c/native/benchmark.c index 3f03a7fb06fe..c36b38dd30ef 100644 --- a/lib/node_modules/@stdlib/math/base/special/modf/benchmark/c/native/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/special/modf/benchmark/c/native/benchmark.c @@ -92,15 +92,18 @@ static double rand_double( void ) { static double benchmark( void ) { double integral; 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; - stdlib_base_modf( x, &integral, &y ); + stdlib_base_modf( x[ i%100 ], &integral, &y ); if ( y != y || integral != integral) { printf( "unexpected results\n" ); break; diff --git a/lib/node_modules/@stdlib/math/base/special/modf/test/test.assign.js b/lib/node_modules/@stdlib/math/base/special/modf/test/test.assign.js index 636492e2dbb0..c78790c9b7cc 100644 --- a/lib/node_modules/@stdlib/math/base/special/modf/test/test.assign.js +++ b/lib/node_modules/@stdlib/math/base/special/modf/test/test.assign.js @@ -159,8 +159,8 @@ tape( 'if provided `+0`, the function returns `[+0,+0]`', function test( t ) { out = [ 0.0, 0.0 ]; parts = modf( +0.0, out, 1, 0 ); t.equal( parts, out, 'returns output array' ); - t.strictEqual( isPositiveZero( parts[0] ), true, 'returns +0' ); - t.strictEqual( isPositiveZero( parts[1] ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( parts[0] ), true, 'returns expected value' ); + t.strictEqual( isPositiveZero( parts[1] ), true, 'returns expected value' ); t.end(); }); @@ -171,8 +171,8 @@ tape( 'if provided `-0`, the function returns `[-0,-0]`', function test( t ) { out = [ 0.0, 0.0 ]; parts = modf( -0.0, out, 1, 0 ); t.equal( parts, out, 'returns output array' ); - t.strictEqual( isNegativeZero( parts[0] ), true, 'returns -0' ); - t.strictEqual( isNegativeZero( parts[1] ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( parts[0] ), true, 'returns expected value' ); + t.strictEqual( isNegativeZero( parts[1] ), true, 'returns expected value' ); t.end(); }); @@ -184,7 +184,7 @@ tape( 'if provided `+infinity`, the function returns `[+infinity,+0]`', function parts = modf( PINF, out, 1, 0 ); t.equal( parts, out, 'returns output array' ); t.strictEqual( parts[0], PINF, 'returns +infinity' ); - t.strictEqual( isPositiveZero( parts[1] ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( parts[1] ), true, 'returns expected value' ); t.end(); }); @@ -196,7 +196,7 @@ tape( 'if provided `-infinity`, the function returns `[-infinity,-0]`', function parts = modf( NINF, out, 1, 0 ); t.equal( parts, out, 'returns output array' ); t.strictEqual( parts[0], NINF, 'returns -infinity' ); - t.strictEqual( isNegativeZero( parts[1] ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( parts[1] ), true, 'returns expected value' ); t.end(); }); @@ -207,8 +207,8 @@ tape( 'if provided `NaN`, the function returns `[NaN,NaN]`', function test( t ) out = [ 0.0, 0.0 ]; parts = modf( NaN, out, 1, 0 ); t.equal( parts, out, 'returns output array' ); - t.strictEqual( isnan( parts[0] ), true, 'returns NaN' ); - t.strictEqual( isnan( parts[1] ), true, 'returns NaN' ); + t.strictEqual( isnan( parts[0] ), true, 'returns expected value' ); + t.strictEqual( isnan( parts[1] ), true, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/modf/test/test.main.js b/lib/node_modules/@stdlib/math/base/special/modf/test/test.main.js index 11dddf4484a2..56405832084a 100644 --- a/lib/node_modules/@stdlib/math/base/special/modf/test/test.main.js +++ b/lib/node_modules/@stdlib/math/base/special/modf/test/test.main.js @@ -138,35 +138,35 @@ tape( 'the function decomposes a number into integral and fractional parts (subn tape( 'if provided `+0`, the function returns `[+0,+0]`', function test( t ) { var parts = modf( +0.0 ); - t.strictEqual( isPositiveZero( parts[0] ), true, 'returns +0' ); - t.strictEqual( isPositiveZero( parts[1] ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( parts[0] ), true, 'returns expected value' ); + t.strictEqual( isPositiveZero( parts[1] ), true, 'returns expected value' ); t.end(); }); tape( 'if provided `-0`, the function returns `[-0,-0]`', function test( t ) { var parts = modf( -0.0 ); - t.strictEqual( isNegativeZero( parts[0] ), true, 'returns -0' ); - t.strictEqual( isNegativeZero( parts[1] ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( parts[0] ), true, 'returns expected value' ); + t.strictEqual( isNegativeZero( parts[1] ), true, 'returns expected value' ); t.end(); }); tape( 'if provided `+infinity`, the function returns `[+infinity,+0]`', function test( t ) { var parts = modf( PINF ); t.strictEqual( parts[0], PINF, 'returns +infinity' ); - t.strictEqual( isPositiveZero( parts[1] ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( parts[1] ), true, 'returns expected value' ); t.end(); }); tape( 'if provided `-infinity`, the function returns `[-infinity,-0]`', function test( t ) { var parts = modf( NINF ); t.strictEqual( parts[0], NINF, 'returns -infinity' ); - t.strictEqual( isNegativeZero( parts[1] ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( parts[1] ), true, 'returns expected value' ); t.end(); }); tape( 'if provided `NaN`, the function returns `[NaN,NaN]`', function test( t ) { var parts = modf( NaN ); - t.strictEqual( isnan( parts[0] ), true, 'returns NaN' ); - t.strictEqual( isnan( parts[1] ), true, 'returns NaN' ); + t.strictEqual( isnan( parts[0] ), true, 'returns expected value' ); + t.strictEqual( isnan( parts[1] ), true, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/modf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/modf/test/test.native.js index 177a8adc85dd..39386ee511d3 100644 --- a/lib/node_modules/@stdlib/math/base/special/modf/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/modf/test/test.native.js @@ -147,35 +147,35 @@ tape( 'the function decomposes a number into integral and fractional parts (subn tape( 'if provided `+0`, the function returns `[+0,+0]`', opts, function test( t ) { var parts = modf( +0.0 ); - t.strictEqual( isPositiveZero( parts[0] ), true, 'returns +0' ); - t.strictEqual( isPositiveZero( parts[1] ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( parts[0] ), true, 'returns expected value' ); + t.strictEqual( isPositiveZero( parts[1] ), true, 'returns expected value' ); t.end(); }); tape( 'if provided `-0`, the function returns `[-0,-0]`', opts, function test( t ) { var parts = modf( -0.0 ); - t.strictEqual( isNegativeZero( parts[0] ), true, 'returns -0' ); - t.strictEqual( isNegativeZero( parts[1] ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( parts[0] ), true, 'returns expected value' ); + t.strictEqual( isNegativeZero( parts[1] ), true, 'returns expected value' ); t.end(); }); tape( 'if provided `+infinity`, the function returns `[+infinity,+0]`', opts, function test( t ) { var parts = modf( PINF ); t.strictEqual( parts[0], PINF, 'returns +infinity' ); - t.strictEqual( isPositiveZero( parts[1] ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( parts[1] ), true, 'returns expected value' ); t.end(); }); tape( 'if provided `-infinity`, the function returns `[-infinity,-0]`', opts, function test( t ) { var parts = modf( NINF ); t.strictEqual( parts[0], NINF, 'returns -infinity' ); - t.strictEqual( isNegativeZero( parts[1] ), true, 'returns -0' ); + t.strictEqual( isNegativeZero( parts[1] ), true, 'returns expected value' ); t.end(); }); tape( 'if provided `NaN`, the function returns `[NaN,NaN]`', opts, function test( t ) { var parts = modf( NaN ); - t.strictEqual( isnan( parts[0] ), true, 'returns NaN' ); - t.strictEqual( isnan( parts[1] ), true, 'returns NaN' ); + t.strictEqual( isnan( parts[0] ), true, 'returns expected value' ); + t.strictEqual( isnan( parts[1] ), true, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/nonfibonaccif/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/nonfibonaccif/benchmark/benchmark.js index 4ad7a4c031a0..0dc127ff279d 100644 --- a/lib/node_modules/@stdlib/math/base/special/nonfibonaccif/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/math/base/special/nonfibonaccif/benchmark/benchmark.js @@ -21,7 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/array/discrete-uniform' ); +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); var pkg = require( './../package.json' ).name; var nonfibonaccif = require( './../lib' ); @@ -34,7 +34,7 @@ bench( pkg, function benchmark( b ) { var y; var i; - x = randu( 100, 1, 100 ); + x = discreteUniform( 100, 1, 100 ); b.tic(); for ( i = 0; i < b.iterations; i++ ) { diff --git a/lib/node_modules/@stdlib/math/base/special/nonfibonaccif/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/nonfibonaccif/benchmark/benchmark.native.js index d73228d5fd3c..ea6a231cfe35 100644 --- a/lib/node_modules/@stdlib/math/base/special/nonfibonaccif/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/math/base/special/nonfibonaccif/benchmark/benchmark.native.js @@ -22,7 +22,7 @@ var resolve = require( 'path' ).resolve; var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); -var randu = require( '@stdlib/random/array/discrete-uniform' ); +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); var tryRequire = require( '@stdlib/utils/try-require' ); var bench = require( '@stdlib/bench' ); var pkg = require( './../package.json' ).name; @@ -43,7 +43,7 @@ bench( pkg+'::native', opts, function benchmark( b ) { var y; var i; - x = randu( 100, 1, 100 ); + x = discreteUniform( 100, 1, 100 ); b.tic(); for ( i = 0; i < b.iterations; i++ ) { diff --git a/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/benchmark.js index 7c43046b6802..b9bc5ef857e6 100644 --- a/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/math/base/special/pdiff/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 pdiff = require( './../lib' ); @@ -35,11 +35,12 @@ bench( pkg, function benchmark( b ) { var z; var i; + x = uniform( 100, -500.0, 500.0 ); + y = uniform( 100, -500.0, 500.0 ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*1000.0 ) - 500.0; - y = ( randu()*1000.0 ) - 500.0; - z = pdiff( x, y ); + z = pdiff( x[ i%x.length ], y[ i%y.length ] ); if ( isnan( z ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/benchmark.native.js index 90b2206c0d37..936783812f2b 100644 --- a/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/math/base/special/pdiff/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; @@ -44,11 +44,12 @@ bench( pkg+'::native', opts, function benchmark( b ) { var z; var i; + x = uniform( 100, -500.0, 500.0 ); + y = uniform( 100, -500.0, 500.0 ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*1000.0 ) - 500.0; - y = ( randu()*1000.0 ) - 500.0; - z = pdiff( x, y ); + z = pdiff( x[ i%x.length ], y[ i%y.length ] ); if ( isnan( z ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/c/benchmark.c index 566f0867f9cd..e9a545098a4f 100644 --- a/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/c/benchmark.c @@ -108,16 +108,19 @@ double pdiff( double x, double y ) { static double benchmark( void ) { double elapsed; double t; - double x; - double y; + double x[ 100 ]; + double y[ 100 ]; double z; int i; + for ( i = 0; i < 100; i++ ) { + x[ i ] = ( 1000.0*rand_double() ) - 500.0; + y[ i ] = ( 1000.0*rand_double() ) - 500.0; + } + t = tic(); for ( i = 0; i < ITERATIONS; i++ ) { - x = ( 1000.0*rand_double() ) - 500.0; - y = ( 1000.0*rand_double() ) - 500.0; - z = pdiff( x, y ); + z = pdiff( x[ i%100 ], y[ i%100 ] ); if ( z != z ) { printf( "should not return NaN\n" ); break; diff --git a/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/c/native/benchmark.c index 7bc6dcf21161..9d3a38a3ae79 100644 --- a/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/c/native/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/special/pdiff/benchmark/c/native/benchmark.c @@ -92,16 +92,19 @@ static double rand_double( void ) { static double benchmark( void ) { double elapsed; double t; - double x; - double y; + double x[ 100 ]; + double y[ 100 ]; double z; int i; + for ( i = 0; i < 100; i++ ) { + x[ i ] = ( 1000.0*rand_double() ) - 500.0; + y[ i ] = ( 1000.0*rand_double() ) - 500.0; + } + t = tic(); for ( i = 0; i < ITERATIONS; i++ ) { - x = ( 1000.0*rand_double() ) - 500.0; - y = ( 1000.0*rand_double() ) - 500.0; - z = stdlib_base_pdiff( x, y ); + z = stdlib_base_pdiff( x[ i%100 ], y[ i%100 ] ); if ( z != z ) { printf( "should not return NaN\n" ); break; diff --git a/lib/node_modules/@stdlib/math/base/special/pdiff/test/test.js b/lib/node_modules/@stdlib/math/base/special/pdiff/test/test.js index db38eec7c788..b9335e35ebae 100644 --- a/lib/node_modules/@stdlib/math/base/special/pdiff/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/pdiff/test/test.js @@ -41,13 +41,13 @@ tape( 'the function returns `NaN` if provided a `NaN`', function test( t ) { var v; v = pdiff( NaN, 3.14 ); - t.strictEqual( isnan( v ), true, 'returns NaN' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = pdiff( 3.14, NaN ); - t.strictEqual( isnan( v ), true, 'returns NaN' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = pdiff( NaN, NaN ); - t.strictEqual( isnan( v ), true, 'returns NaN' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); t.end(); }); @@ -56,17 +56,17 @@ tape( 'the function returns `+infinity` if the first argument is `+infinity`', f var v; v = pdiff( PINF, 3.14 ); - t.strictEqual( v, PINF, 'returns +infinity' ); + t.strictEqual( v, PINF, 'returns expected value' ); v = pdiff( PINF, NINF ); - t.strictEqual( v, PINF, 'returns +infinity' ); + t.strictEqual( v, PINF, 'returns expected value' ); t.end(); }); tape( 'the function returns `0` if both arguments are `+infinity`', function test( t ) { var v = pdiff( PINF, PINF ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); t.end(); }); @@ -74,22 +74,22 @@ tape( 'the function returns positive zero if the difference between the first an var v; v = pdiff( +0.0, -0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = pdiff( -0.0, +0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = pdiff( -0.0, -0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = pdiff( +0.0, +0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = pdiff( 3.14, 3.14 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = pdiff( 3.14, 4.2 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); t.end(); }); @@ -98,13 +98,13 @@ tape( 'the function returns the positive difference between `x` and `y`', functi var v; v = pdiff( 4.2, 3.14 ); - t.strictEqual( v, 1.06, 'returns the positive difference' ); + t.strictEqual( v, 1.06, 'returns expected value' ); v = pdiff( -4.2, 3.14 ); - t.strictEqual( v, 0.0, 'returns the positive difference' ); + t.strictEqual( v, 0.0, 'returns expected value' ); v = pdiff( -4.2, -5.2 ); - t.strictEqual( v, 1.0, 'returns the positive difference' ); + t.strictEqual( v, 1.0, 'returns expected value' ); t.end(); }); @@ -115,7 +115,7 @@ tape( 'the function returns `+infinity` if overflow occurs', function test( t ) half = FLOAT64_MAX / 2.0; v = pdiff( half, -(half*1.5) ); - t.strictEqual( v, PINF, 'returns +infinity' ); + t.strictEqual( v, PINF, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/pdiff/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/pdiff/test/test.native.js index 9d48649978b6..19ee3fd04aa0 100644 --- a/lib/node_modules/@stdlib/math/base/special/pdiff/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/pdiff/test/test.native.js @@ -50,13 +50,13 @@ tape( 'the function returns `NaN` if provided a `NaN`', opts, function test( t ) var v; v = pdiff( NaN, 3.14 ); - t.strictEqual( isnan( v ), true, 'returns NaN' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = pdiff( 3.14, NaN ); - t.strictEqual( isnan( v ), true, 'returns NaN' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = pdiff( NaN, NaN ); - t.strictEqual( isnan( v ), true, 'returns NaN' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); t.end(); }); @@ -65,17 +65,17 @@ tape( 'the function returns `+infinity` if the first argument is `+infinity`', o var v; v = pdiff( PINF, 3.14 ); - t.strictEqual( v, PINF, 'returns +infinity' ); + t.strictEqual( v, PINF, 'returns expected value' ); v = pdiff( PINF, NINF ); - t.strictEqual( v, PINF, 'returns +infinity' ); + t.strictEqual( v, PINF, 'returns expected value' ); t.end(); }); tape( 'the function returns `0` if both arguments are `+infinity`', opts, function test( t ) { var v = pdiff( PINF, PINF ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); t.end(); }); @@ -83,22 +83,22 @@ tape( 'the function returns positive zero if the difference between the first an var v; v = pdiff( +0.0, -0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = pdiff( -0.0, +0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = pdiff( -0.0, -0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = pdiff( +0.0, +0.0 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = pdiff( 3.14, 3.14 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); v = pdiff( 3.14, 4.2 ); - t.strictEqual( isPositiveZero( v ), true, 'returns +0' ); + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); t.end(); }); @@ -107,13 +107,13 @@ tape( 'the function returns the positive difference between `x` and `y`', opts, var v; v = pdiff( 4.2, 3.14 ); - t.strictEqual( v, 1.06, 'returns the positive difference' ); + t.strictEqual( v, 1.06, 'returns expected value' ); v = pdiff( -4.2, 3.14 ); - t.strictEqual( v, 0.0, 'returns the positive difference' ); + t.strictEqual( v, 0.0, 'returns expected value' ); v = pdiff( -4.2, -5.2 ); - t.strictEqual( v, 1.0, 'returns the positive difference' ); + t.strictEqual( v, 1.0, 'returns expected value' ); t.end(); }); @@ -124,7 +124,7 @@ tape( 'the function returns `+infinity` if overflow occurs', opts, function test half = FLOAT64_MAX / 2.0; v = pdiff( half, -(half*1.5) ); - t.strictEqual( v, PINF, 'returns +infinity' ); + t.strictEqual( v, PINF, 'returns expected value' ); t.end(); });