From a2d93f4db77bd733e9fbefd000fd414682613e2d Mon Sep 17 00:00:00 2001 From: shivam Ahir <11shivam00@gmail.com> Date: Wed, 20 Mar 2024 18:13:58 +0530 Subject: [PATCH 01/19] refactor dsumors --- .../ext/base/dsumors/benchmark/benchmark.js | 15 +++--- .../dsumors/benchmark/benchmark.native.js | 14 ++---- .../dsumors/benchmark/benchmark.ndarray.js | 16 +++---- .../benchmark/benchmark.ndarray.native.js | 13 ++--- .../blas/ext/base/dsumors/docs/repl.txt | 14 ++---- .../blas/ext/base/dsumors/examples/index.js | 13 ++--- .../blas/ext/base/dsumors/include.gypi | 2 +- .../blas/ext/base/dsumors/lib/index.js | 4 +- .../blas/ext/base/dsumors/lib/ndarray.js | 4 +- .../ext/base/dsumors/lib/ndarray.native.js | 13 ++--- .../blas/ext/base/dsumors/manifest.json | 7 ++- .../@stdlib/blas/ext/base/dsumors/src/addon.c | 48 +++++++++++++++++++ .../ext/base/dsumors/test/test.dsumors.js | 15 +++--- .../base/dsumors/test/test.dsumors.native.js | 15 +++--- .../ext/base/dsumors/test/test.ndarray.js | 9 ++-- .../base/dsumors/test/test.ndarray.native.js | 9 ++-- 16 files changed, 112 insertions(+), 99 deletions(-) create mode 100644 lib/node_modules/@stdlib/blas/ext/base/dsumors/src/addon.c diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js index 2446db8c6eda..c3f1d730476e 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js @@ -21,13 +21,16 @@ // 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 dsumors = require( './../lib/dsumors.js' ); +// VARIABLES // + +var rand = uniform( -100.0, 100.0 ); // FUNCTIONS // @@ -39,13 +42,7 @@ var dsumors = require( './../lib/dsumors.js' ); * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x; - var i; - - x = new Float64Array( len ); - for ( i = 0; i < x.length; i++ ) { - x[ i ] = ( randu()*10.0 ) - 20.0; - } + var x = filledarrayBy( len, 'float32', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js index 406f158e1823..0d4666a2a881 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/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,7 +36,7 @@ var dsumors = tryRequire( resolve( __dirname, './../lib/dsumors.native.js' ) ); var opts = { 'skip': ( dsumors instanceof Error ) }; - +var rand = uniform( -100.0, 100.0 ); // FUNCTIONS // @@ -48,13 +48,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++ ) { - x[ i ] = ( randu()*10.0 ) - 20.0; - } + var x = filledarrayBy( len, 'float32', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.js index 2961c777d748..9919c5df175d 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.js @@ -21,13 +21,17 @@ // 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 dsumors = require( './../lib/ndarray.js' ); +// VARIABLES // + +var rand = uniform( -100.0, 100.0 ); + // FUNCTIONS // @@ -39,13 +43,7 @@ var dsumors = 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++ ) { - x[ i ] = ( randu()*10.0 ) - 20.0; - } + var x = filledarrayBy( len, 'float32', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js index e6809293cf7e..da17397018c8 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/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; @@ -37,6 +37,7 @@ var opts = { 'skip': ( dsumors instanceof Error ) }; +var rand = uniform( -100.0, 100.0 ); // FUNCTIONS // @@ -48,13 +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++ ) { - x[ i ] = ( randu()*10.0 ) - 20.0; - } + var x = filledarrayBy( len, 'float32', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/docs/repl.txt b/lib/node_modules/@stdlib/blas/ext/base/dsumors/docs/repl.txt index 23fb5364af5f..420a80decd12 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/docs/repl.txt +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/docs/repl.txt @@ -3,8 +3,7 @@ Computes the sum of double-precision floating-point strided array elements using ordinary recursive summation. - The `N` and `stride` parameters determine which elements in `x` are accessed - at runtime. + The `N` and `stride` parameters determine which elements in the strided array are accessed at runtime. Indexing is relative to the first index. To introduce an offset, use a typed array view. @@ -36,17 +35,13 @@ // Using `N` and `stride` parameters: > x = new {{alias:@stdlib/array/float64}}( [ -2.0, 1.0, 1.0, -5.0, 2.0, -1.0 ] ); - > var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 ); - > var stride = 2; - > {{alias}}( N, x, stride ) + > {{alias}}( 3, x, 2 ) 1.0 // Using view offsets: > var x0 = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0 ] ); > var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); - > N = {{alias:@stdlib/math/base/special/floor}}( x0.length / 2 ); - > stride = 2; - > {{alias}}( N, x1, stride ) + > {{alias}}( 3, x1, 2 ) -1.0 {{alias}}.ndarray( N, x, stride, offset ) @@ -85,8 +80,7 @@ // Using offset parameter: > var x = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0 ] ); - > var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 ); - > {{alias}}.ndarray( N, x, 2, 1 ) + > {{alias}}.ndarray( 3, x, 2, 1 ) -1.0 See Also diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/examples/index.js index d9392ff9f122..f1274c3d2696 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/examples/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/examples/index.js @@ -18,18 +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 dsumors = require( './../lib' ); -var x; -var i; - -x = new Float64Array( 10 ); -for ( i = 0; i < x.length; i++ ) { - x[ i ] = round( randu()*100.0 ); -} +var x = filledarrayBy( 10, 'float32', discreteUniform( -100.0, 100.0 ) ); console.log( x ); var v = dsumors( x.length, x, 1 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/include.gypi b/lib/node_modules/@stdlib/blas/ext/base/dsumors/include.gypi index 868c5c12e852..26476a8c2655 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/include.gypi +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/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, stride, argv, 2 ); + STDLIB_NAPI_ARGV_STRIDED_FLOAT64ARRAY( env, X, N, stride, argv, 1 ); + + napi_value v; + napi_status status = napi_create_double( env, stdlib_strided_dsumors( N, (double *)X, stride ), &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/dsumors/test/test.dsumors.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.js index 678e3173cd42..07f938a0a145 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.js @@ -21,7 +21,6 @@ // MODULES // var tape = require( 'tape' ); -var floor = require( '@stdlib/math/base/special/floor' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var Float64Array = require( '@stdlib/array/float64' ); var dsumors = require( './../lib/dsumors.js' ); @@ -36,7 +35,7 @@ tape( 'main export is a function', function test( t ) { }); tape( 'the function has an arity of 3', function test( t ) { - t.strictEqual( dsumors.length, 3, 'has expected arity' ); + t.strictEqual( dsumors.length, 3, 'returns expected value' ); t.end(); }); @@ -95,9 +94,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 @@ -110,7 +109,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) { 2.0 ]); - N = floor( x.length / 2 ); + N = 4; v = dsumors( N, x, 2 ); t.strictEqual( v, 5.0, 'returns expected value' ); @@ -118,9 +117,9 @@ tape( 'the function supports a `stride` parameter', function test( t ) { }); tape( 'the function supports a negative `stride` parameter', function test( t ) { - var N; var x; var v; + var N; x = new Float64Array([ 1.0, // 3 @@ -133,7 +132,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) 2.0 ]); - N = floor( x.length / 2 ); + N = 4; v = dsumors( N, x, -2 ); t.strictEqual( v, 5.0, 'returns expected value' ); @@ -155,8 +154,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, @@ -171,7 +170,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 = floor(x1.length / 2); + N = 4; v = dsumors( N, x1, 2 ); t.strictEqual( v, 5.0, 'returns expected value' ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js index 00ab0926c156..4dbc5b34aa76 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js @@ -22,7 +22,6 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); -var floor = require( '@stdlib/math/base/special/floor' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var Float64Array = require( '@stdlib/array/float64' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -45,7 +44,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( dsumors.length, 3, 'has expected arity' ); + t.strictEqual( dsumors.length, 3, 'returns expected value' ); t.end(); }); @@ -186,9 +185,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 @@ -201,7 +200,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { 2.0 ]); - N = floor( x.length / 2 ); + N = 4; v = dsumors( N, x, 2 ); t.strictEqual( v, 5.0, 'returns expected value' ); @@ -209,9 +208,9 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { }); tape( 'the function supports a negative `stride` parameter', opts, function test( t ) { - var N; var x; var v; + var N; x = new Float64Array([ 1.0, // 3 @@ -224,7 +223,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test 2.0 ]); - N = floor( x.length / 2 ); + N = 4; v = dsumors( N, x, -2 ); t.strictEqual( v, 5.0, 'returns expected value' ); @@ -246,8 +245,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, @@ -262,7 +261,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 = floor(x1.length / 2); + N = 4; v = dsumors( N, x1, 2 ); t.strictEqual( v, 5.0, 'returns expected value' ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.js index 41b420851e1b..c29655f80e3f 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.js @@ -21,7 +21,6 @@ // MODULES // var tape = require( 'tape' ); -var floor = require( '@stdlib/math/base/special/floor' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var Float64Array = require( '@stdlib/array/float64' ); var dsumors = require( './../lib/ndarray.js' ); @@ -36,7 +35,7 @@ tape( 'main export is a function', function test( t ) { }); tape( 'the function has an arity of 4', function test( t ) { - t.strictEqual( dsumors.length, 4, 'has expected arity' ); + t.strictEqual( dsumors.length, 4, 'returns expected value' ); t.end(); }); @@ -110,7 +109,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) { 2.0 ]); - N = floor( x.length / 2 ); + N = 4; v = dsumors( N, x, 2, 0 ); t.strictEqual( v, 5.0, 'returns expected value' ); @@ -133,7 +132,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) 2.0 ]); - N = floor( x.length / 2 ); + N = 4; v = dsumors( N, x, -2, 6 ); t.strictEqual( v, 5.0, 'returns expected value' ); @@ -167,7 +166,7 @@ tape( 'the function supports an `offset` parameter', function test( t ) { 3.0, 4.0 // 3 ]); - N = floor( x.length / 2 ); + N = 4; v = dsumors( N, x, 2, 1 ); t.strictEqual( v, 5.0, 'returns expected value' ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.native.js index 0443bb0c824c..a7923ccf8a6a 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/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 isnan = require( '@stdlib/math/base/assert/is-nan' ); var Float64Array = require( '@stdlib/array/float64' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -45,7 +44,7 @@ tape( 'main export is a function', opts, function test( t ) { }); tape( 'the function has an arity of 4', opts, function test( t ) { - t.strictEqual( dsumors.length, 4, 'has expected arity' ); + t.strictEqual( dsumors.length, 4, 'returns expected value' ); t.end(); }); @@ -119,7 +118,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { 2.0 ]); - N = floor( x.length / 2 ); + N = 4; v = dsumors( N, x, 2, 0 ); t.strictEqual( v, 5.0, 'returns expected value' ); @@ -142,7 +141,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test 2.0 ]); - N = floor( x.length / 2 ); + N = 4; v = dsumors( N, x, -2, 6 ); t.strictEqual( v, 5.0, 'returns expected value' ); @@ -176,7 +175,7 @@ tape( 'the function supports an `offset` parameter', opts, function test( t ) { 3.0, 4.0 // 3 ]); - N = floor( x.length / 2 ); + N = 4; v = dsumors( N, x, 2, 1 ); t.strictEqual( v, 5.0, 'returns expected value' ); From c045c8e3a5131417d51818f8a137cde32a1d42fb Mon Sep 17 00:00:00 2001 From: shivam Ahir <11shivam00@gmail.com> Date: Wed, 20 Mar 2024 18:14:29 +0530 Subject: [PATCH 02/19] deleted addon.cpp --- .../blas/ext/base/dsumors/src/addon.cpp | 117 ------------------ 1 file changed, 117 deletions(-) delete mode 100644 lib/node_modules/@stdlib/blas/ext/base/dsumors/src/addon.cpp diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/src/addon.cpp b/lib/node_modules/@stdlib/blas/ext/base/dsumors/src/addon.cpp deleted file mode 100644 index 10518ee60ab1..000000000000 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/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/dsumors.h" -#include -#include -#include -#include -#include - -/** -* Add-on namespace. -*/ -namespace stdlib_blas_ext_base_dsumors { - - /** - * Computes the sum of double-precision floating-point strided array elements 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_dsumors( 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_dsumors( 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_dsumors, NULL, &fcn ); - assert( status == napi_ok ); - return fcn; - } - - NAPI_MODULE( NODE_GYP_MODULE_NAME, Init ) -} // end namespace stdlib_blas_ext_base_dsumors From 4b6fa1c98c0faf1b0a13c736fbba18dcc1447104 Mon Sep 17 00:00:00 2001 From: shivam Ahir <11shivam00@gmail.com> Date: Wed, 20 Mar 2024 18:19:34 +0530 Subject: [PATCH 03/19] added readme --- .../@stdlib/blas/ext/base/dsumors/README.md | 27 +++++-------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md b/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md index 21960f05b181..0984334adb51 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md @@ -56,16 +56,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 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 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, 2.0, -7.0, -2.0, 3.0, 4.0, 2.0 ] ); -var N = floor( x.length / 2 ); -var v = dsumors( N, x, 2 ); +var v = dsumors( ,4 x, 2 ); // returns 5.0 ``` @@ -75,14 +73,12 @@ 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, 2.0, -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 = dsumors( N, x1, 2 ); +var v = dsumors( 4, x1, 2 ); // returns 5.0 ``` @@ -108,12 +104,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, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0 ] ); -var N = floor( x.length / 2 ); -var v = dsumors.ndarray( N, x, 2, 1 ); +var v = dsumors.ndarray( 4, x, 2, 1 ); // returns 5.0 ``` @@ -139,18 +133,11 @@ var v = dsumors.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 dsumors = require( '@stdlib/blas/ext/base/dsumors' ); -var x; -var i; - -x = new Float64Array( 10 ); -for ( i = 0; i < x.length; i++ ) { - x[ i ] = round( randu()*100.0 ); -} +var x = filledarrayBy(10, 'float32', discreteUniform(0, 100)); console.log( x ); var v = dsumors( x.length, x, 1 ); From 22a31e1809d22ce7b24d28992dae67685d45b461 Mon Sep 17 00:00:00 2001 From: shivam Ahir <11shivam00@gmail.com> Date: Wed, 20 Mar 2024 18:23:11 +0530 Subject: [PATCH 04/19] coorected readme --- lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md b/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md index 0984334adb51..1c1403462e93 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md @@ -137,7 +137,7 @@ var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; var filledarrayBy = require( '@stdlib/array/filled-by' ); var dsumors = require( '@stdlib/blas/ext/base/dsumors' ); -var x = filledarrayBy(10, 'float32', discreteUniform(0, 100)); +var x = filledarrayBy(10, 'float64', discreteUniform(0, 100)); console.log( x ); var v = dsumors( x.length, x, 1 ); From 495ffb81d2e1be643b177e5a8886d67795540dc9 Mon Sep 17 00:00:00 2001 From: shivam Ahir <11shivam00@gmail.com> Date: Wed, 20 Mar 2024 21:09:28 +0530 Subject: [PATCH 05/19] correction from float32 to float64 --- .../@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js | 2 +- .../@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js | 2 +- .../blas/ext/base/dsumors/benchmark/benchmark.ndarray.js | 2 +- .../blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js | 2 +- .../@stdlib/blas/ext/base/dsumors/examples/index.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js index c3f1d730476e..fcde54375a6f 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js @@ -42,7 +42,7 @@ var rand = uniform( -100.0, 100.0 ); * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x = filledarrayBy( len, 'float32', rand ); + var x = filledarrayBy( len, 'float64', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js index 0d4666a2a881..f7566ea8ec1b 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js @@ -48,7 +48,7 @@ var rand = uniform( -100.0, 100.0 ); * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x = filledarrayBy( len, 'float32', rand ); + var x = filledarrayBy( len, 'float64', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.js index 9919c5df175d..0b2545cef450 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.js @@ -43,7 +43,7 @@ var rand = uniform( -100.0, 100.0 ); * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x = filledarrayBy( len, 'float32', rand ); + var x = filledarrayBy( len, 'float64', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js index da17397018c8..291567f9e812 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js @@ -49,7 +49,7 @@ var rand = uniform( -100.0, 100.0 ); * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x = filledarrayBy( len, 'float32', rand ); + var x = filledarrayBy( len, 'float64', rand ); return benchmark; function benchmark( b ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/examples/index.js index f1274c3d2696..135bb82786bc 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/examples/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/examples/index.js @@ -22,7 +22,7 @@ var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; var filledarrayBy = require( '@stdlib/array/filled-by' ); var dsumors = require( './../lib' ); -var x = filledarrayBy( 10, 'float32', discreteUniform( -100.0, 100.0 ) ); +var x = filledarrayBy( 10, 'float64', discreteUniform( -100.0, 100.0 ) ); console.log( x ); var v = dsumors( x.length, x, 1 ); From aa3b57cdc8685cc5e17eb16a5e5b88483365439b Mon Sep 17 00:00:00 2001 From: Shivam <11shivam00@gmail.com> Date: Wed, 20 Mar 2024 23:41:20 +0530 Subject: [PATCH 06/19] Update README.md --- lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md b/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md index 1c1403462e93..2da56647b77b 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md @@ -63,7 +63,7 @@ var Float64Array = require( '@stdlib/array/float64' ); var x = new Float64Array( [ 1.0, 2.0, 2.0, -7.0, -2.0, 3.0, 4.0, 2.0 ] ); -var v = dsumors( ,4 x, 2 ); +var v = dsumors( 4,x, 2 ); // returns 5.0 ``` From fbbfb7c1867345d8dd22df2711776962eadd19d8 Mon Sep 17 00:00:00 2001 From: Shivam <11shivam00@gmail.com> Date: Fri, 22 Mar 2024 14:09:18 +0530 Subject: [PATCH 07/19] Update test.dsumors.js Signed-off-by: Shivam <11shivam00@gmail.com> --- .../@stdlib/blas/ext/base/dsumors/test/test.dsumors.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.js index 07f938a0a145..1bbcb525fdeb 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.js @@ -109,8 +109,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) { 2.0 ]); - N = 4; - v = dsumors( N, x, 2 ); + v = dsumors( 4, x, 2 ); t.strictEqual( v, 5.0, 'returns expected value' ); t.end(); @@ -132,8 +131,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) 2.0 ]); - N = 4; - v = dsumors( N, x, -2 ); + v = dsumors( 4, x, -2 ); t.strictEqual( v, 5.0, 'returns expected value' ); t.end(); @@ -170,9 +168,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 = 4; - v = dsumors( N, x1, 2 ); + v = dsumors( 4, x1, 2 ); t.strictEqual( v, 5.0, 'returns expected value' ); t.end(); From c4fd192a2bafacd5811e49d9f8efefa77d62c124 Mon Sep 17 00:00:00 2001 From: Shivam <11shivam00@gmail.com> Date: Fri, 22 Mar 2024 14:10:31 +0530 Subject: [PATCH 08/19] Update test.dsumors.native.js Signed-off-by: Shivam <11shivam00@gmail.com> --- .../blas/ext/base/dsumors/test/test.dsumors.native.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js index 4dbc5b34aa76..39068c89bf52 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js @@ -200,8 +200,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { 2.0 ]); - N = 4; - v = dsumors( N, x, 2 ); + v = dsumors( 4, x, 2 ); t.strictEqual( v, 5.0, 'returns expected value' ); t.end(); @@ -223,8 +222,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test 2.0 ]); - N = 4; - v = dsumors( N, x, -2 ); + v = dsumors( 4, x, -2 ); t.strictEqual( v, 5.0, 'returns expected value' ); t.end(); @@ -261,9 +259,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 = 4; - v = dsumors( N, x1, 2 ); + v = dsumors( 4, x1, 2 ); t.strictEqual( v, 5.0, 'returns expected value' ); t.end(); From d69e261e8be476aff1f5226064cf8187c9b1cc12 Mon Sep 17 00:00:00 2001 From: Shivam <11shivam00@gmail.com> Date: Fri, 22 Mar 2024 14:11:37 +0530 Subject: [PATCH 09/19] Update test.ndarray.js Signed-off-by: Shivam <11shivam00@gmail.com> --- .../@stdlib/blas/ext/base/dsumors/test/test.ndarray.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.js index c29655f80e3f..5ee98b01d0d7 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.js @@ -109,8 +109,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) { 2.0 ]); - N = 4; - v = dsumors( N, x, 2, 0 ); + v = dsumors( 4, x, 2, 0 ); t.strictEqual( v, 5.0, 'returns expected value' ); t.end(); @@ -132,8 +131,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) 2.0 ]); - N = 4; - v = dsumors( N, x, -2, 6 ); + v = dsumors( 4, x, -2, 6 ); t.strictEqual( v, 5.0, 'returns expected value' ); t.end(); @@ -166,9 +164,8 @@ tape( 'the function supports an `offset` parameter', function test( t ) { 3.0, 4.0 // 3 ]); - N = 4; - v = dsumors( N, x, 2, 1 ); + v = dsumors( 4, x, 2, 1 ); t.strictEqual( v, 5.0, 'returns expected value' ); t.end(); From 9aa915b36a6963f1e36e5558209e5a379f4b9a73 Mon Sep 17 00:00:00 2001 From: Shivam <11shivam00@gmail.com> Date: Fri, 22 Mar 2024 14:12:35 +0530 Subject: [PATCH 10/19] Update test.ndarray.native.js Signed-off-by: Shivam <11shivam00@gmail.com> --- .../blas/ext/base/dsumors/test/test.ndarray.native.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.native.js index a7923ccf8a6a..611b1b266ff3 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.native.js @@ -118,8 +118,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { 2.0 ]); - N = 4; - v = dsumors( N, x, 2, 0 ); + v = dsumors( 4, x, 2, 0 ); t.strictEqual( v, 5.0, 'returns expected value' ); t.end(); @@ -141,8 +140,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test 2.0 ]); - N = 4; - v = dsumors( N, x, -2, 6 ); + v = dsumors( 4, x, -2, 6 ); t.strictEqual( v, 5.0, 'returns expected value' ); t.end(); @@ -175,9 +173,8 @@ tape( 'the function supports an `offset` parameter', opts, function test( t ) { 3.0, 4.0 // 3 ]); - N = 4; - v = dsumors( N, x, 2, 1 ); + v = dsumors( 4, x, 2, 1 ); t.strictEqual( v, 5.0, 'returns expected value' ); t.end(); From 78666dad9e92175e7df89e0a8876a8db60086713 Mon Sep 17 00:00:00 2001 From: Shivam <11shivam00@gmail.com> Date: Fri, 22 Mar 2024 14:13:16 +0530 Subject: [PATCH 11/19] Update index.js Signed-off-by: Shivam <11shivam00@gmail.com> --- lib/node_modules/@stdlib/blas/ext/base/dsumors/lib/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/lib/index.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/lib/index.js index a69386e4d5b6..ef301ffd2f7c 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/lib/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/lib/index.js @@ -28,9 +28,8 @@ * var dsumors = require( '@stdlib/blas/ext/base/dsumors' ); * * var x = new Float64Array( [ 1.0, -2.0, 2.0 ] ); -* var N = x.length; * -* var v = dsumors( N, x, 1 ); +* var v = dsumors( 3, x, 1 ); * // returns 1.0 * * @example From 9bc022ca18c1fba592db310f70adb647d7e0047e Mon Sep 17 00:00:00 2001 From: Shivam <11shivam00@gmail.com> Date: Fri, 22 Mar 2024 14:14:31 +0530 Subject: [PATCH 12/19] Update benchmark.js Signed-off-by: Shivam <11shivam00@gmail.com> --- .../@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js index fcde54375a6f..2d1239be2f59 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js @@ -32,6 +32,7 @@ var dsumors = require( './../lib/dsumors.js' ); var rand = uniform( -100.0, 100.0 ); + // FUNCTIONS // /** From a65cb818d4d20e5e5e5fdb27c3fa48369c4b0da3 Mon Sep 17 00:00:00 2001 From: Shivam <11shivam00@gmail.com> Date: Fri, 22 Mar 2024 14:14:50 +0530 Subject: [PATCH 13/19] Update benchmark.native.js Signed-off-by: Shivam <11shivam00@gmail.com> --- .../@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js index f7566ea8ec1b..8b672c697421 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.native.js @@ -38,6 +38,7 @@ var opts = { }; var rand = uniform( -100.0, 100.0 ); + // FUNCTIONS // /** From 7160fc7ad8d781de56eea20dc9ec6af9ce769f6a Mon Sep 17 00:00:00 2001 From: Shivam <11shivam00@gmail.com> Date: Fri, 22 Mar 2024 14:15:20 +0530 Subject: [PATCH 14/19] Update benchmark.ndarray.native.js Signed-off-by: Shivam <11shivam00@gmail.com> --- .../blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js index 291567f9e812..968891660d53 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.native.js @@ -39,6 +39,7 @@ var opts = { var rand = uniform( -100.0, 100.0 ); + // FUNCTIONS // /** From 0310bff684dcb7d935887fb8252c4a7e0ab26fd4 Mon Sep 17 00:00:00 2001 From: Shivam <11shivam00@gmail.com> Date: Fri, 22 Mar 2024 18:32:03 +0530 Subject: [PATCH 15/19] Update README.md Signed-off-by: Shivam <11shivam00@gmail.com> --- lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md b/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md index 2da56647b77b..4a140e0e7e33 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md @@ -56,7 +56,7 @@ 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 the strided array are accessed at runtime. For example, to compute the sum of 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 every other element in `x`, ```javascript var Float64Array = require( '@stdlib/array/float64' ); From 4076f82dec8e85e17ba0b922a7018492c6d72e3b Mon Sep 17 00:00:00 2001 From: shivam Ahir <11shivam00@gmail.com> Date: Sun, 24 Mar 2024 16:09:18 +0530 Subject: [PATCH 16/19] docs: resolve suggestion by mentor --- .../@stdlib/blas/ext/base/dsumors/README.md | 5 +- .../ext/base/dsumors/benchmark/benchmark.js | 1 + .../dsumors/benchmark/benchmark.ndarray.js | 1 + .../blas/ext/base/dsumors/docs/repl.txt | 4 +- .../blas/ext/base/dsumors/manifest.json | 79 ++++++++++--------- .../@stdlib/blas/ext/base/dsumors/src/addon.c | 2 +- 6 files changed, 48 insertions(+), 44 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md b/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md index 4a140e0e7e33..a68ee7615de1 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/README.md @@ -63,7 +63,7 @@ var Float64Array = require( '@stdlib/array/float64' ); var x = new Float64Array( [ 1.0, 2.0, 2.0, -7.0, -2.0, 3.0, 4.0, 2.0 ] ); -var v = dsumors( 4,x, 2 ); +var v = dsumors( 4, x, 2 ); // returns 5.0 ``` @@ -77,7 +77,6 @@ var Float64Array = require( '@stdlib/array/float64' ); var x0 = new Float64Array( [ 2.0, 1.0, 2.0, -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 v = dsumors( 4, x1, 2 ); // returns 5.0 ``` @@ -137,7 +136,7 @@ var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; var filledarrayBy = require( '@stdlib/array/filled-by' ); var dsumors = require( '@stdlib/blas/ext/base/dsumors' ); -var x = filledarrayBy(10, 'float64', discreteUniform(0, 100)); +var x = filledarrayBy( 10, 'float64', discreteUniform( 0, 100 ) ); console.log( x ); var v = dsumors( x.length, x, 1 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js index 2d1239be2f59..9b3e2d4bef0d 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.js @@ -28,6 +28,7 @@ var pow = require( '@stdlib/math/base/special/pow' ); var pkg = require( './../package.json' ).name; var dsumors = require( './../lib/dsumors.js' ); + // VARIABLES // var rand = uniform( -100.0, 100.0 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.js index 0b2545cef450..70a66dd7eb52 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/benchmark/benchmark.ndarray.js @@ -28,6 +28,7 @@ var pow = require( '@stdlib/math/base/special/pow' ); var pkg = require( './../package.json' ).name; var dsumors = require( './../lib/ndarray.js' ); + // VARIABLES // var rand = uniform( -100.0, 100.0 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/docs/repl.txt b/lib/node_modules/@stdlib/blas/ext/base/dsumors/docs/repl.txt index 420a80decd12..185990e3e948 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/docs/repl.txt +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/docs/repl.txt @@ -3,7 +3,8 @@ Computes the sum of double-precision floating-point strided array elements using ordinary recursive summation. - The `N` and `stride` parameters determine which elements in the strided array are accessed at runtime. + The `N` and `stride` parameters determine which elements in + the strided array are accessed at runtime. Indexing is relative to the first index. To introduce an offset, use a typed array view. @@ -44,6 +45,7 @@ > {{alias}}( 3, x1, 2 ) -1.0 + {{alias}}.ndarray( N, x, stride, offset ) Computes the sum of double-precision floating-point strided array elements using ordinary recursive summation and alternative indexing semantics. diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/manifest.json b/lib/node_modules/@stdlib/blas/ext/base/dsumors/manifest.json index b0d77cd5e67f..fcf264c7b32a 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/manifest.json +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/manifest.json @@ -1,45 +1,46 @@ { "options": {}, "fields": [ - { - "field": "src", - "resolve": true, - "relative": true - }, - { - "field": "include", - "resolve": true, - "relative": true - }, - { - "field": "libraries", - "resolve": false, - "relative": false - }, - { - "field": "libpath", - "resolve": true, - "relative": false - } + { + "field": "src", + "resolve": true, + "relative": true + }, + { + "field": "include", + "resolve": true, + "relative": true + }, + { + "field": "libraries", + "resolve": false, + "relative": false + }, + { + "field": "libpath", + "resolve": true, + "relative": false + } ], "confs": [ - { - "src": [ - "./src/dsumors.c" - ], - "include": [ - "./include" - ], - "libraries": [ - "-lm" - ], - "libpath": [], - "dependencies": [ - "stdlib/napi/export.h", - "stdlib/napi/argv.h", - "stdlib/napi/argv_int64.h", - "stdlib/napi/argv_strided_float64array.h" - ] - } + { + "src": [ + "./src/dsumors.c" + ], + "include": [ + "./include" + ], + "libraries": [ + "-lm" + ], + "libpath": [], + "dependencies": [ + "@stdlib/napi/export", + "@stdlib/napi/argv", + "@stdlib/napi/argv-int64", + "@stdlib/napi/argv-strided-float64array" + ] + } ] -} + } + \ No newline at end of file diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/src/addon.c b/lib/node_modules/@stdlib/blas/ext/base/dsumors/src/addon.c index 009cc9f3f54a..60e7069451c4 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/src/addon.c +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/src/addon.c @@ -39,7 +39,7 @@ static napi_value addon( napi_env env, napi_callback_info info ) { STDLIB_NAPI_ARGV_STRIDED_FLOAT64ARRAY( env, X, N, stride, argv, 1 ); napi_value v; - napi_status status = napi_create_double( env, stdlib_strided_dsumors( N, (double *)X, stride ), &v ); + napi_status status = napi_create_double( env, stdlib_strided_dsumors( N, X, stride ), &v ); assert( status == napi_ok ); return v; From 1a951d5077cd85c043163567fb8e195a5cf5c9cd Mon Sep 17 00:00:00 2001 From: shivam Ahir <11shivam00@gmail.com> Date: Sun, 24 Mar 2024 16:13:25 +0530 Subject: [PATCH 17/19] docs: remove N from test files --- .../@stdlib/blas/ext/base/dsumors/test/test.dsumors.js | 3 --- .../@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js | 3 --- .../@stdlib/blas/ext/base/dsumors/test/test.ndarray.js | 3 --- .../@stdlib/blas/ext/base/dsumors/test/test.ndarray.native.js | 3 --- 4 files changed, 12 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.js index 1bbcb525fdeb..f0efe66c5128 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.js @@ -96,7 +96,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 @@ -118,7 +117,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([ 1.0, // 3 @@ -153,7 +151,6 @@ tape( 'the function supports view offsets', function test( t ) { var x0; var x1; var v; - var N; x0 = new Float64Array([ 2.0, diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js index 39068c89bf52..9f01b98c8b10 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.dsumors.native.js @@ -187,7 +187,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 @@ -209,7 +208,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([ 1.0, // 3 @@ -244,7 +242,6 @@ tape( 'the function supports view offsets', opts, function test( t ) { var x0; var x1; var v; - var N; x0 = new Float64Array([ 2.0, diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.js index 5ee98b01d0d7..aa96547800b5 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.js @@ -94,7 +94,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 N; var x; var v; @@ -116,7 +115,6 @@ tape( 'the function supports a `stride` parameter', function test( t ) { }); tape( 'the function supports a negative `stride` parameter', function test( t ) { - var N; var x; var v; @@ -150,7 +148,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 N; var x; var v; diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.native.js index 611b1b266ff3..cf7249ed6bd2 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/test/test.ndarray.native.js @@ -103,7 +103,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 N; var x; var v; @@ -125,7 +124,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 N; var x; var v; @@ -159,7 +157,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 N; var x; var v; From 9d55a7b4bffa5a832c9bf1bba553dad9a2a9c461 Mon Sep 17 00:00:00 2001 From: shivam Ahir <11shivam00@gmail.com> Date: Sun, 24 Mar 2024 16:52:23 +0530 Subject: [PATCH 18/19] fix: add benchmark and example to manifest --- .../blas/ext/base/dsumors/manifest.json | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/manifest.json b/lib/node_modules/@stdlib/blas/ext/base/dsumors/manifest.json index fcf264c7b32a..83c744823530 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/manifest.json +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/manifest.json @@ -1,5 +1,7 @@ { - "options": {}, + "options": { + "task": "build" + }, "fields": [ { "field": "src", @@ -24,6 +26,7 @@ ], "confs": [ { + "task": "build", "src": [ "./src/dsumors.c" ], @@ -40,6 +43,33 @@ "@stdlib/napi/argv-int64", "@stdlib/napi/argv-strided-float64array" ] + }, + { + "task": "benchmark", + "src": [ + "./src/dsumors.c" + ], + "include": [ + "./include" + ], + "libraries": [ + "-lm" + ], + "dependencies": [] + }, + { + "task": "examples", + "src": [ + "./src/dsumors.c" + ], + "include": [ + "./include" + ], + "libraries": [ + "-lm" + ], + "libpath": [], + "dependencies": [] } ] } From 293d6685ba8367120b15130d37ec51a2a3c6e3dd Mon Sep 17 00:00:00 2001 From: Philipp Burckhardt Date: Sun, 24 Mar 2024 14:15:46 -0400 Subject: [PATCH 19/19] style: fix indentation Signed-off-by: Philipp Burckhardt --- .../blas/ext/base/dsumors/manifest.json | 149 +++++++++--------- 1 file changed, 74 insertions(+), 75 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsumors/manifest.json b/lib/node_modules/@stdlib/blas/ext/base/dsumors/manifest.json index 83c744823530..69bfe12e1fb5 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dsumors/manifest.json +++ b/lib/node_modules/@stdlib/blas/ext/base/dsumors/manifest.json @@ -1,76 +1,75 @@ { - "options": { - "task": "build" - }, - "fields": [ - { - "field": "src", - "resolve": true, - "relative": true - }, - { - "field": "include", - "resolve": true, - "relative": true - }, - { - "field": "libraries", - "resolve": false, - "relative": false - }, - { - "field": "libpath", - "resolve": true, - "relative": false - } - ], - "confs": [ - { - "task": "build", - "src": [ - "./src/dsumors.c" - ], - "include": [ - "./include" - ], - "libraries": [ - "-lm" - ], - "libpath": [], - "dependencies": [ - "@stdlib/napi/export", - "@stdlib/napi/argv", - "@stdlib/napi/argv-int64", - "@stdlib/napi/argv-strided-float64array" - ] - }, - { - "task": "benchmark", - "src": [ - "./src/dsumors.c" - ], - "include": [ - "./include" - ], - "libraries": [ - "-lm" - ], - "dependencies": [] - }, - { - "task": "examples", - "src": [ - "./src/dsumors.c" - ], - "include": [ - "./include" - ], - "libraries": [ - "-lm" - ], - "libpath": [], - "dependencies": [] - } - ] - } - \ No newline at end of file + "options": { + "task": "build" + }, + "fields": [ + { + "field": "src", + "resolve": true, + "relative": true + }, + { + "field": "include", + "resolve": true, + "relative": true + }, + { + "field": "libraries", + "resolve": false, + "relative": false + }, + { + "field": "libpath", + "resolve": true, + "relative": false + } + ], + "confs": [ + { + "task": "build", + "src": [ + "./src/dsumors.c" + ], + "include": [ + "./include" + ], + "libraries": [ + "-lm" + ], + "libpath": [], + "dependencies": [ + "@stdlib/napi/export", + "@stdlib/napi/argv", + "@stdlib/napi/argv-int64", + "@stdlib/napi/argv-strided-float64array" + ] + }, + { + "task": "benchmark", + "src": [ + "./src/dsumors.c" + ], + "include": [ + "./include" + ], + "libraries": [ + "-lm" + ], + "dependencies": [] + }, + { + "task": "examples", + "src": [ + "./src/dsumors.c" + ], + "include": [ + "./include" + ], + "libraries": [ + "-lm" + ], + "libpath": [], + "dependencies": [] + } + ] +}