From 9376bb8a4712adda725a66028f25e538d5818767 Mon Sep 17 00:00:00 2001 From: Shubh Mehta <93862397+Shubh942@users.noreply.github.com> Date: Wed, 27 Mar 2024 12:06:46 +0000 Subject: [PATCH 1/6] refactor blas/ext/base/dnanasumors to follow current project conventions --- .../blas/ext/base/dnanasumors/README.md | 32 ++--- .../base/dnanasumors/benchmark/benchmark.js | 21 ++-- .../dnanasumors/benchmark/benchmark.native.js | 17 +-- .../benchmark/benchmark.ndarray.js | 21 ++-- .../benchmark/benchmark.ndarray.native.js | 17 +-- .../ext/base/dnanasumors/examples/index.js | 17 +-- .../blas/ext/base/dnanasumors/include.gypi | 2 +- .../blas/ext/base/dnanasumors/lib/index.js | 4 +- .../blas/ext/base/dnanasumors/lib/ndarray.js | 4 +- .../base/dnanasumors/lib/ndarray.native.js | 13 +- .../blas/ext/base/dnanasumors/manifest.json | 114 +++++++++++------ .../blas/ext/base/dnanasumors/src/addon.c | 48 +++++++ .../blas/ext/base/dnanasumors/src/addon.cpp | 117 ------------------ .../base/dnanasumors/test/test.dnanasumors.js | 18 ++- .../test/test.dnanasumors.native.js | 18 ++- .../ext/base/dnanasumors/test/test.ndarray.js | 18 ++- .../dnanasumors/test/test.ndarray.native.js | 16 +-- 17 files changed, 191 insertions(+), 306 deletions(-) create mode 100644 lib/node_modules/@stdlib/blas/ext/base/dnanasumors/src/addon.c delete mode 100644 lib/node_modules/@stdlib/blas/ext/base/dnanasumors/src/addon.cpp diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md index f5ab266c5de0..51dd0538a4c0 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md @@ -71,16 +71,14 @@ The function has the following parameters: - **x**: input [`Float64Array`][@stdlib/array/float64]. - **stride**: index increment for `x`. -The `N` and `stride` parameters determine which elements in `x` are accessed at runtime. For example, to compute the sum of absolute values ([_L1_ norm][l1norm]) every other element in `x`, +The `N` and stride parameters determine which elements in the strided array are accessed at runtime. For example, to compute the sum of absolute values ([_L1_ norm][l1norm]) every other element in `x`, ```javascript var Float64Array = require( '@stdlib/array/float64' ); -var floor = require( '@stdlib/math/base/special/floor' ); var x = new Float64Array( [ 1.0, 2.0, NaN, -7.0, NaN, 3.0, 4.0, 2.0 ] ); -var N = floor( x.length / 2 ); -var v = dnanasumors( N, x, 2 ); +var v = dnanasumors( 4, x, 2 ); // returns 5.0 ``` @@ -90,14 +88,11 @@ Note that indexing is relative to the first index. To introduce an offset, use [ ```javascript var Float64Array = require( '@stdlib/array/float64' ); -var floor = require( '@stdlib/math/base/special/floor' ); var x0 = new Float64Array( [ 2.0, 1.0, NaN, -2.0, -2.0, 2.0, 3.0, 4.0 ] ); var x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element -var N = floor( x0.length / 2 ); - -var v = dnanasumors( N, x1, 2 ); +var v = dnanasumors( 4, x1, 2 ); // returns 9.0 ``` @@ -123,12 +118,10 @@ While [`typed array`][mdn-typed-array] views mandate a view offset based on the ```javascript var Float64Array = require( '@stdlib/array/float64' ); -var floor = require( '@stdlib/math/base/special/floor' ); var x = new Float64Array( [ 2.0, 1.0, NaN, -2.0, -2.0, 2.0, 3.0, 4.0 ] ); -var N = floor( x.length / 2 ); -var v = dnanasumors.ndarray( N, x, 2, 1 ); +var v = dnanasumors.ndarray( 4, x, 2, 1 ); // returns 9.0 ``` @@ -154,22 +147,11 @@ var v = dnanasumors.ndarray( N, x, 2, 1 ); ```javascript -var randu = require( '@stdlib/random/base/randu' ); -var round = require( '@stdlib/math/base/special/round' ); -var Float64Array = require( '@stdlib/array/float64' ); +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; +var filledarrayBy = require( '@stdlib/array/filled-by' ); var dnanasumors = require( '@stdlib/blas/ext/base/dnanasumors' ); -var x; -var i; - -x = new Float64Array( 10 ); -for ( i = 0; i < x.length; i++ ) { - if ( randu() < 0.2 ) { - x[ i ] = NaN; - } else { - x[ i ] = round( randu()*100.0 ); - } -} +var x = filledarrayBy( 10, 'float64', discreteUniform( 0, 100 ) ); console.log( x ); var v = dnanasumors( x.length, x, 1 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js index 319855459bf2..2f51eef8a30a 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js @@ -21,14 +21,19 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ).factory; +var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); -var Float64Array = require( '@stdlib/array/float64' ); var pkg = require( './../package.json' ).name; var dnanasumors = require( './../lib/dnanasumors.js' ); +// VARIABLES // + +var rand = uniform( -100.0, 100.0 ); + + // FUNCTIONS // /** @@ -39,17 +44,7 @@ var dnanasumors = require( './../lib/dnanasumors.js' ); * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x; - var i; - - x = new Float64Array( len ); - for ( i = 0; i < x.length; i++ ) { - if ( randu() < 0.2 ) { - x[ i ] = NaN; - } else { - x[ i ] = ( randu()*20.0 ) - 10.0; - } - } + var x = filledarrayBy( len, 'float64', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js index 7a1dc21b2c33..efa4a70e96c5 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js @@ -22,10 +22,10 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ).factory; +var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); -var Float64Array = require( '@stdlib/array/float64' ); var tryRequire = require( '@stdlib/utils/try-require' ); var pkg = require( './../package.json' ).name; @@ -36,6 +36,7 @@ var dnanasumors = tryRequire( resolve( __dirname, './../lib/dnanasumors.native.j var opts = { 'skip': ( dnanasumors instanceof Error ) }; +var rand = uniform( -100.0, 100.0 ); // FUNCTIONS // @@ -48,17 +49,7 @@ var opts = { * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x; - var i; - - x = new Float64Array( len ); - for ( i = 0; i < x.length; i++ ) { - if ( randu() < 0.2 ) { - x[ i ] = NaN; - } else { - x[ i ] = ( randu()*20.0 ) - 10.0; - } - } + var x = filledarrayBy( len, 'float64', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js index 52f83177967b..a16e4d43f1fe 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js @@ -21,14 +21,19 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ).factory; +var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); -var Float64Array = require( '@stdlib/array/float64' ); var pkg = require( './../package.json' ).name; var dnanasumors = require( './../lib/ndarray.js' ); +// VARIABLES // + +var rand = uniform( -100.0, 100.0 ); + + // FUNCTIONS // /** @@ -39,17 +44,7 @@ var dnanasumors = require( './../lib/ndarray.js' ); * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x; - var i; - - x = new Float64Array( len ); - for ( i = 0; i < x.length; i++ ) { - if ( randu() < 0.2 ) { - x[ i ] = NaN; - } else { - x[ i ] = ( randu()*20.0 ) - 10.0; - } - } + var x = filledarrayBy( len, 'float64', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js index b4d35c82f78e..87d446dd696f 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js @@ -22,10 +22,10 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ).factory; +var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); -var Float64Array = require( '@stdlib/array/float64' ); var tryRequire = require( '@stdlib/utils/try-require' ); var pkg = require( './../package.json' ).name; @@ -36,6 +36,7 @@ var dnanasumors = tryRequire( resolve( __dirname, './../lib/ndarray.native.js' ) var opts = { 'skip': ( dnanasumors instanceof Error ) }; +var rand = uniform( -100.0, 100.0 ); // FUNCTIONS // @@ -48,17 +49,7 @@ var opts = { * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x; - var i; - - x = new Float64Array( len ); - for ( i = 0; i < x.length; i++ ) { - if ( randu() < 0.2 ) { - x[ i ] = NaN; - } else { - x[ i ] = ( randu()*20.0 ) - 10.0; - } - } + var x = filledarrayBy( len, 'float64', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js index b7e4333c5c95..66a253e6965a 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js @@ -18,22 +18,11 @@ 'use strict'; -var randu = require( '@stdlib/random/base/randu' ); -var round = require( '@stdlib/math/base/special/round' ); -var Float64Array = require( '@stdlib/array/float64' ); +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; +var filledarrayBy = require( '@stdlib/array/filled-by' ); var dnanasumors = require( './../lib' ); -var x; -var i; - -x = new Float64Array( 10 ); -for ( i = 0; i < x.length; i++ ) { - if ( randu() < 0.2 ) { - x[ i ] = NaN; - } else { - x[ i ] = round( randu()*100.0 ); - } -} +var x = filledarrayBy( 10, 'float64', discreteUniform( -100.0, 100.0 ) ); console.log( x ); var v = dnanasumors( x.length, x, 1 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/include.gypi b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/include.gypi index 868c5c12e852..26476a8c2655 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/include.gypi +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/include.gypi @@ -36,7 +36,7 @@ # Source files: 'src_files': [ - '<(src_dir)/addon.cpp', + '<(src_dir)/addon.c', ' +#include + +/** +* Receives JavaScript callback invocation data. +* +* @private +* @param env environment under which the function is invoked +* @param info callback data +* @return Node-API value +*/ +static napi_value addon( napi_env env, napi_callback_info info ) { + STDLIB_NAPI_ARGV( env, info, argv, argc, 3 ); + STDLIB_NAPI_ARGV_INT64( env, N, argv, 0 ); + STDLIB_NAPI_ARGV_INT64( env, strideX, argv, 2 ); + STDLIB_NAPI_ARGV_STRIDED_FLOAT64ARRAY( env, X, N, strideX, argv, 1 ); + + napi_value v; + napi_status status = napi_create_double( env, stdlib_strided_dnanasumors( N, X, strideX ), &v ); + assert( status == napi_ok ); + + return v; +} + +STDLIB_NAPI_MODULE_EXPORT_FCN( addon ) \ No newline at end of file diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/src/addon.cpp b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/src/addon.cpp deleted file mode 100644 index 40ddd45dc896..000000000000 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/src/addon.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2020 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -#include "stdlib/blas/ext/base/dnanasumors.h" -#include -#include -#include -#include -#include - -/** -* Add-on namespace. -*/ -namespace stdlib_blas_ext_base_dnanasumors { - - /** - * Computes the sum of absolute values (L1 norm) of double-precision floating-point strided array elements, ignoring `NaN` values and using ordinary recursive summation. - * - * ## Notes - * - * - When called from JavaScript, the function expects three arguments: - * - * - `N`: number of indexed elements - * - `X`: input array - * - `stride`: stride length - */ - napi_value node_dnanasumors( napi_env env, napi_callback_info info ) { - napi_status status; - - size_t argc = 3; - napi_value argv[ 3 ]; - status = napi_get_cb_info( env, info, &argc, argv, nullptr, nullptr ); - assert( status == napi_ok ); - - if ( argc < 3 ) { - napi_throw_error( env, nullptr, "invalid invocation. Must provide 3 arguments." ); - return nullptr; - } - - napi_valuetype vtype0; - status = napi_typeof( env, argv[ 0 ], &vtype0 ); - assert( status == napi_ok ); - if ( vtype0 != napi_number ) { - napi_throw_type_error( env, nullptr, "invalid argument. First argument must be a number." ); - return nullptr; - } - - bool res; - status = napi_is_typedarray( env, argv[ 1 ], &res ); - assert( status == napi_ok ); - if ( res == false ) { - napi_throw_type_error( env, nullptr, "invalid argument. Second argument must be a Float64Array." ); - return nullptr; - } - - napi_valuetype vtype2; - status = napi_typeof( env, argv[ 2 ], &vtype2 ); - assert( status == napi_ok ); - if ( vtype2 != napi_number ) { - napi_throw_type_error( env, nullptr, "invalid argument. Third argument must be a number." ); - return nullptr; - } - - int64_t N; - status = napi_get_value_int64( env, argv[ 0 ], &N ); - assert( status == napi_ok ); - - int64_t stride; - status = napi_get_value_int64( env, argv[ 2 ], &stride ); - assert( status == napi_ok ); - - napi_typedarray_type vtype1; - size_t xlen; - void *X; - status = napi_get_typedarray_info( env, argv[ 1 ], &vtype1, &xlen, &X, nullptr, nullptr ); - assert( status == napi_ok ); - if ( vtype1 != napi_float64_array ) { - napi_throw_type_error( env, nullptr, "invalid argument. Second argument must be a Float64Array." ); - return nullptr; - } - if ( (N-1)*llabs(stride) >= (int64_t)xlen ) { - napi_throw_range_error( env, nullptr, "invalid argument. Second argument has insufficient elements based on the associated stride and the number of indexed elements." ); - return nullptr; - } - - napi_value v; - status = napi_create_double( env, stdlib_strided_dnanasumors( N, (double *)X, stride ), &v ); - assert( status == napi_ok ); - - return v; - } - - napi_value Init( napi_env env, napi_value exports ) { - napi_status status; - napi_value fcn; - status = napi_create_function( env, "exports", NAPI_AUTO_LENGTH, node_dnanasumors, NULL, &fcn ); - assert( status == napi_ok ); - return fcn; - } - - NAPI_MODULE( NODE_GYP_MODULE_NAME, Init ) -} // end namespace stdlib_blas_ext_base_dnanasumors diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.js index 1a1df886fbf6..73d2cc7133df 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.js @@ -21,7 +21,6 @@ // MODULES // var tape = require( 'tape' ); -var floor = require( '@stdlib/math/base/special/floor' ); var Float64Array = require( '@stdlib/array/float64' ); var dnanasumors = require( './../lib/dnanasumors.js' ); @@ -35,7 +34,7 @@ tape( 'main export is a function', function test( t ) { }); tape( 'the function has an arity of 3', function test( t ) { - t.strictEqual( dnanasumors.length, 3, 'has expected arity' ); + t.strictEqual( dnanasumors.length, 3, 'return expected value' ); t.end(); }); @@ -106,9 +105,9 @@ tape( 'if provided an `N` parameter equal to `1`, the function returns the first }); tape( 'the function supports a `stride` parameter', function test( t ) { - var N; var x; var v; + var N; x = new Float64Array([ 1.0, // 0 @@ -123,17 +122,16 @@ tape( 'the function supports a `stride` parameter', function test( t ) { NaN ]); - N = floor( x.length / 2 ); - v = dnanasumors( N, x, 2 ); + v = dnanasumors( 5, x, 2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); }); tape( 'the function supports a negative `stride` parameter', function test( t ) { - var N; var x; var v; + var N; x = new Float64Array([ NaN, // 4 @@ -148,8 +146,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) 2.0 ]); - N = floor( x.length / 2 ); - v = dnanasumors( N, x, -2 ); + v = dnanasumors( 5, x, -2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -170,8 +167,8 @@ tape( 'if provided a `stride` parameter equal to `0`, the function returns the f tape( 'the function supports view offsets', function test( t ) { var x0; var x1; - var N; var v; + var N; x0 = new Float64Array([ 2.0, @@ -188,9 +185,8 @@ tape( 'the function supports view offsets', function test( t ) { ]); x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element - N = floor(x1.length / 2); - v = dnanasumors( N, x1, 2 ); + v = dnanasumors( 5, x1, 2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.native.js index 821a29f4f9dd..24efc1a84c2b 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.native.js @@ -22,7 +22,6 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); -var floor = require( '@stdlib/math/base/special/floor' ); var Float64Array = require( '@stdlib/array/float64' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -44,7 +43,7 @@ tape( 'main export is a function', opts, function test( t ) { }); tape( 'the function has an arity of 3', opts, function test( t ) { - t.strictEqual( dnanasumors.length, 3, 'has expected arity' ); + t.strictEqual( dnanasumors.length, 3, 'return expected value' ); t.end(); }); @@ -197,9 +196,9 @@ tape( 'if provided an `N` parameter equal to `1`, the function returns the first }); tape( 'the function supports a `stride` parameter', opts, function test( t ) { - var N; var x; var v; + var N; x = new Float64Array([ 1.0, // 0 @@ -214,17 +213,16 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { NaN ]); - N = floor( x.length / 2 ); - v = dnanasumors( N, x, 2 ); + v = dnanasumors( 5, x, 2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); }); tape( 'the function supports a negative `stride` parameter', opts, function test( t ) { - var N; var x; var v; + var N; x = new Float64Array([ NaN, // 4 @@ -239,8 +237,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test 2.0 ]); - N = floor( x.length / 2 ); - v = dnanasumors( N, x, -2 ); + v = dnanasumors( 5, x, -2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -261,8 +258,8 @@ tape( 'if provided a `stride` parameter equal to `0`, the function returns the f tape( 'the function supports view offsets', opts, function test( t ) { var x0; var x1; - var N; var v; + var N; x0 = new Float64Array([ 2.0, @@ -279,9 +276,8 @@ tape( 'the function supports view offsets', opts, function test( t ) { ]); x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element - N = floor(x1.length / 2); - v = dnanasumors( N, x1, 2 ); + v = dnanasumors( 5, x1, 2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.js index c243ecbcdae2..cf754842bcca 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.js @@ -21,7 +21,6 @@ // MODULES // var tape = require( 'tape' ); -var floor = require( '@stdlib/math/base/special/floor' ); var Float64Array = require( '@stdlib/array/float64' ); var dnanasumors = require( './../lib/ndarray.js' ); @@ -35,7 +34,7 @@ tape( 'main export is a function', function test( t ) { }); tape( 'the function has an arity of 4', function test( t ) { - t.strictEqual( dnanasumors.length, 4, 'has expected arity' ); + t.strictEqual( dnanasumors.length, 4, 'return expected value' ); t.end(); }); @@ -106,9 +105,9 @@ tape( 'if provided an `N` parameter equal to `1`, the function returns the first }); tape( 'the function supports a `stride` parameter', function test( t ) { - var N; var x; var v; + var N; x = new Float64Array([ 1.0, // 0 @@ -123,17 +122,16 @@ tape( 'the function supports a `stride` parameter', function test( t ) { NaN ]); - N = floor( x.length / 2 ); - v = dnanasumors( N, x, 2, 0 ); + v = dnanasumors( 5, x, 2, 0 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); }); tape( 'the function supports a negative `stride` parameter', function test( t ) { - var N; var x; var v; + var N; x = new Float64Array([ NaN, // 4 @@ -148,8 +146,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) 2.0 ]); - N = floor( x.length / 2 ); - v = dnanasumors( N, x, -2, 8 ); + v = dnanasumors( 5, x, -2, 8 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -168,9 +165,9 @@ tape( 'if provided a `stride` parameter equal to `0`, the function returns the f }); tape( 'the function supports an `offset` parameter', function test( t ) { - var N; var x; var v; + var N; x = new Float64Array([ 2.0, @@ -184,9 +181,8 @@ tape( 'the function supports an `offset` parameter', function test( t ) { NaN, NaN // 4 ]); - N = floor( x.length / 2 ); - v = dnanasumors( N, x, 2, 1 ); + v = dnanasumors( 5, x, 2, 1 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.native.js index f3d421d0de05..f1004a11fd20 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.native.js @@ -22,7 +22,6 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); -var floor = require( '@stdlib/math/base/special/floor' ); var Float64Array = require( '@stdlib/array/float64' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -115,9 +114,9 @@ tape( 'if provided an `N` parameter equal to `1`, the function returns the first }); tape( 'the function supports a `stride` parameter', opts, function test( t ) { - var N; var x; var v; + var N; x = new Float64Array([ 1.0, // 0 @@ -132,17 +131,16 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { NaN ]); - N = floor( x.length / 2 ); - v = dnanasumors( N, x, 2, 0 ); + v = dnanasumors( 5, x, 2, 0 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); }); tape( 'the function supports a negative `stride` parameter', opts, function test( t ) { - var N; var x; var v; + var N; x = new Float64Array([ NaN, // 4 @@ -157,8 +155,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test 2.0 ]); - N = floor( x.length / 2 ); - v = dnanasumors( N, x, -2, 8 ); + v = dnanasumors( 5, x, -2, 8 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -177,9 +174,9 @@ tape( 'if provided a `stride` parameter equal to `0`, the function returns the f }); tape( 'the function supports an `offset` parameter', opts, function test( t ) { - var N; var x; var v; + var N; x = new Float64Array([ 2.0, @@ -193,9 +190,8 @@ tape( 'the function supports an `offset` parameter', opts, function test( t ) { NaN, NaN // 4 ]); - N = floor( x.length / 2 ); - v = dnanasumors( N, x, 2, 1 ); + v = dnanasumors( 5, x, 2, 1 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); From 416232c6f09694e9ab7bd54da5b76f4796f1cd95 Mon Sep 17 00:00:00 2001 From: Shubh Mehta <93862397+Shubh942@users.noreply.github.com> Date: Wed, 27 Mar 2024 21:28:04 +0000 Subject: [PATCH 2/6] refactor --- .../ext/base/dnanasumors/test/test.dnanasumors.js | 11 ++++++----- .../base/dnanasumors/test/test.dnanasumors.native.js | 9 ++++++--- .../blas/ext/base/dnanasumors/test/test.ndarray.js | 7 +++++-- .../ext/base/dnanasumors/test/test.ndarray.native.js | 9 ++++++--- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.js index 73d2cc7133df..03957c1bd2cb 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.js @@ -121,8 +121,8 @@ tape( 'the function supports a `stride` parameter', function test( t ) { NaN, // 4 NaN ]); - - v = dnanasumors( 5, x, 2 ); + N = 5; + v = dnanasumors( N, x, 2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -145,8 +145,8 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) 4.0, // 0 2.0 ]); - - v = dnanasumors( 5, x, -2 ); + N = 5; + v = dnanasumors( N, x, -2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -186,7 +186,8 @@ tape( 'the function supports view offsets', function test( t ) { x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element - v = dnanasumors( 5, x1, 2 ); + N = 5 + v = dnanasumors( N, x1, 2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.native.js index 24efc1a84c2b..0b8e07702a04 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.native.js @@ -213,7 +213,8 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { NaN ]); - v = dnanasumors( 5, x, 2 ); + N = 5; + v = dnanasumors( N, x, 2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -237,7 +238,8 @@ tape( 'the function supports a negative `stride` parameter', opts, function test 2.0 ]); - v = dnanasumors( 5, x, -2 ); + N = 5; + v = dnanasumors( N, x, -2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -277,7 +279,8 @@ tape( 'the function supports view offsets', opts, function test( t ) { x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element - v = dnanasumors( 5, x1, 2 ); + N = 5; + v = dnanasumors( N, x1, 2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.js index cf754842bcca..041cb064ba61 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.js @@ -122,6 +122,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) { NaN ]); + N = 5; v = dnanasumors( 5, x, 2, 0 ); t.strictEqual( v, 9.0, 'returns expected value' ); @@ -146,7 +147,8 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) 2.0 ]); - v = dnanasumors( 5, x, -2, 8 ); + N = 5; + v = dnanasumors( N, x, -2, 8 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -182,7 +184,8 @@ tape( 'the function supports an `offset` parameter', function test( t ) { NaN // 4 ]); - v = dnanasumors( 5, x, 2, 1 ); + N = 5; + v = dnanasumors( N, x, 2, 1 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.native.js index f1004a11fd20..7057750adf56 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.native.js @@ -131,7 +131,8 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { NaN ]); - v = dnanasumors( 5, x, 2, 0 ); + N = 5; + v = dnanasumors( N, x, 2, 0 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -155,7 +156,8 @@ tape( 'the function supports a negative `stride` parameter', opts, function test 2.0 ]); - v = dnanasumors( 5, x, -2, 8 ); + N = 5; + v = dnanasumors( N, x, -2, 8 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -191,7 +193,8 @@ tape( 'the function supports an `offset` parameter', opts, function test( t ) { NaN // 4 ]); - v = dnanasumors( 5, x, 2, 1 ); + N = 5; + v = dnanasumors( N, x, 2, 1 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); From f19b1e6417605233828e074914b3e34074adae9e Mon Sep 17 00:00:00 2001 From: Philipp Burckhardt Date: Sun, 14 Apr 2024 09:55:34 -0400 Subject: [PATCH 3/6] chore: restore generation of NaN values for benchmarks --- .../@stdlib/blas/ext/base/dnanasumors/README.md | 12 ++++++++++-- .../ext/base/dnanasumors/benchmark/benchmark.js | 15 +++++++++------ .../dnanasumors/benchmark/benchmark.native.js | 11 +++++++++-- .../dnanasumors/benchmark/benchmark.ndarray.js | 15 +++++++++------ .../benchmark/benchmark.ndarray.native.js | 11 +++++++++-- .../blas/ext/base/dnanasumors/examples/index.js | 12 ++++++++++-- 6 files changed, 56 insertions(+), 20 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md index 51dd0538a4c0..8ee602996b81 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md @@ -147,11 +147,19 @@ var v = dnanasumors.ndarray( 4, x, 2, 1 ); ```javascript -var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ); +var bernoulli = require( '@stdlib/random/base/bernoulli' ); var filledarrayBy = require( '@stdlib/array/filled-by' ); var dnanasumors = require( '@stdlib/blas/ext/base/dnanasumors' ); -var x = filledarrayBy( 10, 'float64', discreteUniform( 0, 100 ) ); +function rand() { + if ( bernoulli() < 0.2 ) { + return NaN; + } + return discreteUniform( 0, 100 ); +} + +var x = filledarrayBy( 10, 'float64', rand ); console.log( x ); var v = dnanasumors( x.length, x, 1 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js index 2f51eef8a30a..7f4387beca79 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var uniform = require( '@stdlib/random/base/uniform' ).factory; +var uniform = require( '@stdlib/random/base/uniform' ); +var bernoulli = require( '@stdlib/random/base/bernoulli' ); var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); @@ -29,11 +30,6 @@ var pkg = require( './../package.json' ).name; var dnanasumors = require( './../lib/dnanasumors.js' ); -// VARIABLES // - -var rand = uniform( -100.0, 100.0 ); - - // FUNCTIONS // /** @@ -47,6 +43,13 @@ function createBenchmark( len ) { var x = filledarrayBy( len, 'float64', rand ); return benchmark; + function rand() { + if ( bernoulli() < 0.2 ) { + return NaN; + } + return uniform( -10.0, 10.0 ); + } + function benchmark( b ) { var v; var i; diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js index efa4a70e96c5..e08d1738ebbb 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js @@ -22,7 +22,8 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var uniform = require( '@stdlib/random/base/uniform' ).factory; +var uniform = require( '@stdlib/random/base/uniform' ); +var bernoulli = require( '@stdlib/random/base/bernoulli' ); var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); @@ -36,7 +37,6 @@ var dnanasumors = tryRequire( resolve( __dirname, './../lib/dnanasumors.native.j var opts = { 'skip': ( dnanasumors instanceof Error ) }; -var rand = uniform( -100.0, 100.0 ); // FUNCTIONS // @@ -52,6 +52,13 @@ function createBenchmark( len ) { var x = filledarrayBy( len, 'float64', rand ); return benchmark; + function rand() { + if ( bernoulli() < 0.2 ) { + return NaN; + } + return uniform( -10.0, 10.0 ); + } + function benchmark( b ) { var v; var i; diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js index a16e4d43f1fe..3e4add9aff36 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var uniform = require( '@stdlib/random/base/uniform' ).factory; +var uniform = require( '@stdlib/random/base/uniform' ); +var bernoulli = require( '@stdlib/random/base/bernoulli' ); var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); @@ -29,11 +30,6 @@ var pkg = require( './../package.json' ).name; var dnanasumors = require( './../lib/ndarray.js' ); -// VARIABLES // - -var rand = uniform( -100.0, 100.0 ); - - // FUNCTIONS // /** @@ -47,6 +43,13 @@ function createBenchmark( len ) { var x = filledarrayBy( len, 'float64', rand ); return benchmark; + function rand() { + if ( bernoulli() < 0.2 ) { + return NaN; + } + return uniform( -10.0, 10.0 ); + } + function benchmark( b ) { var v; var i; diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js index 87d446dd696f..22f2569a4a4d 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js @@ -22,7 +22,8 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var uniform = require( '@stdlib/random/base/uniform' ).factory; +var uniform = require( '@stdlib/random/base/uniform' ); +var bernoulli = require( '@stdlib/random/base/bernoulli' ); var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); @@ -36,7 +37,6 @@ var dnanasumors = tryRequire( resolve( __dirname, './../lib/ndarray.native.js' ) var opts = { 'skip': ( dnanasumors instanceof Error ) }; -var rand = uniform( -100.0, 100.0 ); // FUNCTIONS // @@ -52,6 +52,13 @@ function createBenchmark( len ) { var x = filledarrayBy( len, 'float64', rand ); return benchmark; + function rand() { + if ( bernoulli() < 0.2 ) { + return NaN; + } + return uniform( -10.0, 10.0 ); + } + function benchmark( b ) { var v; var i; diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js index 66a253e6965a..18cf087edcd9 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js @@ -18,11 +18,19 @@ 'use strict'; -var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ); +var bernoulli = require( '@stdlib/random/base/bernoulli' ); var filledarrayBy = require( '@stdlib/array/filled-by' ); var dnanasumors = require( './../lib' ); -var x = filledarrayBy( 10, 'float64', discreteUniform( -100.0, 100.0 ) ); +function rand() { + if ( bernoulli() < 0.2 ) { + return NaN; + } + return discreteUniform( 0, 100 ); +} + +var x = filledarrayBy( 10, 'float64', rand ); console.log( x ); var v = dnanasumors( x.length, x, 1 ); From f51186a6e64794666292c6a4efe809d2ae9427c1 Mon Sep 17 00:00:00 2001 From: Philipp Burckhardt Date: Sun, 14 Apr 2024 09:56:13 -0400 Subject: [PATCH 4/6] test: skip variable assignment --- .../ext/base/dnanasumors/test/test.dnanasumors.js | 12 +++--------- .../base/dnanasumors/test/test.dnanasumors.native.js | 12 +++--------- .../blas/ext/base/dnanasumors/test/test.ndarray.js | 10 ++-------- .../ext/base/dnanasumors/test/test.ndarray.native.js | 12 +++--------- 4 files changed, 11 insertions(+), 35 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.js index 03957c1bd2cb..f97f48efdaa5 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.js @@ -107,7 +107,6 @@ tape( 'if provided an `N` parameter equal to `1`, the function returns the first tape( 'the function supports a `stride` parameter', function test( t ) { var x; var v; - var N; x = new Float64Array([ 1.0, // 0 @@ -121,8 +120,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) { NaN, // 4 NaN ]); - N = 5; - v = dnanasumors( N, x, 2 ); + v = dnanasumors( 5, x, 2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -131,7 +129,6 @@ tape( 'the function supports a `stride` parameter', function test( t ) { tape( 'the function supports a negative `stride` parameter', function test( t ) { var x; var v; - var N; x = new Float64Array([ NaN, // 4 @@ -145,8 +142,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) 4.0, // 0 2.0 ]); - N = 5; - v = dnanasumors( N, x, -2 ); + v = dnanasumors( 5, x, -2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -168,7 +164,6 @@ tape( 'the function supports view offsets', function test( t ) { var x0; var x1; var v; - var N; x0 = new Float64Array([ 2.0, @@ -186,8 +181,7 @@ tape( 'the function supports view offsets', function test( t ) { x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element - N = 5 - v = dnanasumors( N, x1, 2 ); + v = dnanasumors( 5, x1, 2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.native.js index 0b8e07702a04..68daea1d23bf 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.dnanasumors.native.js @@ -198,7 +198,6 @@ tape( 'if provided an `N` parameter equal to `1`, the function returns the first tape( 'the function supports a `stride` parameter', opts, function test( t ) { var x; var v; - var N; x = new Float64Array([ 1.0, // 0 @@ -213,8 +212,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { NaN ]); - N = 5; - v = dnanasumors( N, x, 2 ); + v = dnanasumors( 5, x, 2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -223,7 +221,6 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { tape( 'the function supports a negative `stride` parameter', opts, function test( t ) { var x; var v; - var N; x = new Float64Array([ NaN, // 4 @@ -238,8 +235,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test 2.0 ]); - N = 5; - v = dnanasumors( N, x, -2 ); + v = dnanasumors( 5, x, -2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -261,7 +257,6 @@ tape( 'the function supports view offsets', opts, function test( t ) { var x0; var x1; var v; - var N; x0 = new Float64Array([ 2.0, @@ -279,8 +274,7 @@ tape( 'the function supports view offsets', opts, function test( t ) { x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element - N = 5; - v = dnanasumors( N, x1, 2 ); + v = dnanasumors( 5, x1, 2 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.js index 041cb064ba61..3858f0ab9564 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.js @@ -107,7 +107,6 @@ tape( 'if provided an `N` parameter equal to `1`, the function returns the first tape( 'the function supports a `stride` parameter', function test( t ) { var x; var v; - var N; x = new Float64Array([ 1.0, // 0 @@ -122,7 +121,6 @@ tape( 'the function supports a `stride` parameter', function test( t ) { NaN ]); - N = 5; v = dnanasumors( 5, x, 2, 0 ); t.strictEqual( v, 9.0, 'returns expected value' ); @@ -132,7 +130,6 @@ tape( 'the function supports a `stride` parameter', function test( t ) { tape( 'the function supports a negative `stride` parameter', function test( t ) { var x; var v; - var N; x = new Float64Array([ NaN, // 4 @@ -147,8 +144,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) 2.0 ]); - N = 5; - v = dnanasumors( N, x, -2, 8 ); + v = dnanasumors( 5, x, -2, 8 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -169,7 +165,6 @@ tape( 'if provided a `stride` parameter equal to `0`, the function returns the f tape( 'the function supports an `offset` parameter', function test( t ) { var x; var v; - var N; x = new Float64Array([ 2.0, @@ -184,8 +179,7 @@ tape( 'the function supports an `offset` parameter', function test( t ) { NaN // 4 ]); - N = 5; - v = dnanasumors( N, x, 2, 1 ); + v = dnanasumors( 5, x, 2, 1 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.native.js index 7057750adf56..b50ff22d8081 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/test/test.ndarray.native.js @@ -116,7 +116,6 @@ tape( 'if provided an `N` parameter equal to `1`, the function returns the first tape( 'the function supports a `stride` parameter', opts, function test( t ) { var x; var v; - var N; x = new Float64Array([ 1.0, // 0 @@ -131,8 +130,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { NaN ]); - N = 5; - v = dnanasumors( N, x, 2, 0 ); + v = dnanasumors( 5, x, 2, 0 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -141,7 +139,6 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { tape( 'the function supports a negative `stride` parameter', opts, function test( t ) { var x; var v; - var N; x = new Float64Array([ NaN, // 4 @@ -156,8 +153,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test 2.0 ]); - N = 5; - v = dnanasumors( N, x, -2, 8 ); + v = dnanasumors( 5, x, -2, 8 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); @@ -178,7 +174,6 @@ tape( 'if provided a `stride` parameter equal to `0`, the function returns the f tape( 'the function supports an `offset` parameter', opts, function test( t ) { var x; var v; - var N; x = new Float64Array([ 2.0, @@ -193,8 +188,7 @@ tape( 'the function supports an `offset` parameter', opts, function test( t ) { NaN // 4 ]); - N = 5; - v = dnanasumors( N, x, 2, 1 ); + v = dnanasumors( 5, x, 2, 1 ); t.strictEqual( v, 9.0, 'returns expected value' ); t.end(); From e7e3be6b5e19cbfa81c4d418cfc0249e4b2751aa Mon Sep 17 00:00:00 2001 From: Philipp Burckhardt Date: Sun, 14 Apr 2024 10:02:13 -0400 Subject: [PATCH 5/6] fix: add missing dependency to manifest.json --- .../@stdlib/blas/ext/base/dnanasumors/manifest.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/manifest.json b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/manifest.json index 7caa72292e8f..1921744e0d79 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/manifest.json +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/manifest.json @@ -41,7 +41,8 @@ "@stdlib/napi/export", "@stdlib/napi/argv", "@stdlib/napi/argv-int64", - "@stdlib/napi/argv-strided-float64array" + "@stdlib/napi/argv-strided-float64array", + "@stdlib/math/base/assert/is-nan" ] }, { From 09ede1b55a0b2a938fd3e1ae267eb7b544634476 Mon Sep 17 00:00:00 2001 From: Philipp Burckhardt Date: Sun, 14 Apr 2024 16:04:42 -0400 Subject: [PATCH 6/6] chore: fix bernoulli invocations --- lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md | 2 +- .../@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js | 2 +- .../blas/ext/base/dnanasumors/benchmark/benchmark.native.js | 2 +- .../blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js | 2 +- .../ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js | 2 +- .../@stdlib/blas/ext/base/dnanasumors/examples/index.js | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md index 8ee602996b81..a1fc33e940dd 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md @@ -153,7 +153,7 @@ var filledarrayBy = require( '@stdlib/array/filled-by' ); var dnanasumors = require( '@stdlib/blas/ext/base/dnanasumors' ); function rand() { - if ( bernoulli() < 0.2 ) { + if ( bernoulli( 0.5 ) < 0.2 ) { return NaN; } return discreteUniform( 0, 100 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js index 7f4387beca79..b54a99206d8e 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js @@ -44,7 +44,7 @@ function createBenchmark( len ) { return benchmark; function rand() { - if ( bernoulli() < 0.2 ) { + if ( bernoulli( 0.5 ) < 0.2 ) { return NaN; } return uniform( -10.0, 10.0 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js index e08d1738ebbb..17e6900b6f29 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js @@ -53,7 +53,7 @@ function createBenchmark( len ) { return benchmark; function rand() { - if ( bernoulli() < 0.2 ) { + if ( bernoulli( 0.5 ) < 0.2 ) { return NaN; } return uniform( -10.0, 10.0 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js index 3e4add9aff36..024d234af4a9 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js @@ -44,7 +44,7 @@ function createBenchmark( len ) { return benchmark; function rand() { - if ( bernoulli() < 0.2 ) { + if ( bernoulli( 0.5 ) < 0.2 ) { return NaN; } return uniform( -10.0, 10.0 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js index 22f2569a4a4d..c83c2d339424 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js @@ -53,7 +53,7 @@ function createBenchmark( len ) { return benchmark; function rand() { - if ( bernoulli() < 0.2 ) { + if ( bernoulli( 0.5 ) < 0.2 ) { return NaN; } return uniform( -10.0, 10.0 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js index 18cf087edcd9..d0fc3d44817b 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js @@ -24,7 +24,7 @@ var filledarrayBy = require( '@stdlib/array/filled-by' ); var dnanasumors = require( './../lib' ); function rand() { - if ( bernoulli() < 0.2 ) { + if ( bernoulli( 0.5 ) < 0.2 ) { return NaN; } return discreteUniform( 0, 100 );