From 636ce440b8f18d2c68f2b95e76dcfe67be18459b Mon Sep 17 00:00:00 2001
From: Shubh Mehta <93862397+Shubh942@users.noreply.github.com>
Date: Fri, 22 Mar 2024 17:16:31 +0000
Subject: [PATCH 01/21] refactor update blas/ext/base/dsnansum to follow
 current project conventions

---
 .../@stdlib/blas/ext/base/dsnansum/README.md  | 36 +++++--------------
 .../ext/base/dsnansum/benchmark/benchmark.js  | 23 +++++-------
 .../dsnansum/benchmark/benchmark.native.js    | 19 +++-------
 .../dsnansum/benchmark/benchmark.ndarray.js   | 23 +++++-------
 .../benchmark/benchmark.ndarray.native.js     | 19 +++-------
 .../blas/ext/base/dsnansum/docs/repl.txt      | 17 ++++-----
 .../blas/ext/base/dsnansum/examples/index.js  | 19 +++-------
 .../blas/ext/base/dsnansum/include.gypi       |  2 +-
 .../blas/ext/base/dsnansum/lib/index.js       |  6 ++--
 .../blas/ext/base/dsnansum/lib/ndarray.js     |  6 ++--
 .../ext/base/dsnansum/lib/ndarray.native.js   | 15 ++++----
 .../blas/ext/base/dsnansum/manifest.json      |  6 +++-
 .../base/dsnansum/src/{addon.cpp => addon.c}  |  0
 .../ext/base/dsnansum/test/test.dsnansum.js   | 17 +++++----
 .../dsnansum/test/test.dsnansum.native.js     |  9 +++--
 .../ext/base/dsnansum/test/test.ndarray.js    | 11 +++---
 .../base/dsnansum/test/test.ndarray.native.js |  9 +++--
 17 files changed, 84 insertions(+), 153 deletions(-)
 rename lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/{addon.cpp => addon.c} (100%)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
index 234b2edfef66..7a3498cef97a 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
@@ -2,7 +2,7 @@
 
 @license Apache-2.0
 
-Copyright (c) 2020 The Stdlib Authors.
+Copyright (c) 2024 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.
@@ -56,16 +56,14 @@ The function has the following parameters:
 -   **x**: input [`Float32Array`][@stdlib/array/float32].
 -   **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 Float32Array = require( '@stdlib/array/float32' );
-var floor = require( '@stdlib/math/base/special/floor' );
 
 var x = new Float32Array( [ 1.0, 2.0, NaN, -7.0, NaN, 3.0, 4.0, 2.0 ] );
-var N = floor( x.length / 2 );
 
-var v = dsnansum( N, x, 2 );
+var v = dsnansum( 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 Float32Array = require( '@stdlib/array/float32' );
-var floor = require( '@stdlib/math/base/special/floor' );
 
 var x0 = new Float32Array( [ 2.0, 1.0, NaN, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
 var x1 = new Float32Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
 
-var N = floor( x0.length / 2 );
 
-var v = dsnansum( N, x1, 2 );
+var v = dsnansum( 4, x1, 2 );
 // returns 5.0
 ```
 
@@ -94,9 +90,8 @@ Computes the sum of single-precision floating-point strided array elements, igno
 var Float32Array = require( '@stdlib/array/float32' );
 
 var x = new Float32Array( [ 1.0, -2.0, NaN, 2.0 ] );
-var N = x.length;
 
-var v = dsnansum.ndarray( N, x, 1, 0 );
+var v = dsnansum.ndarray( 4, x, 1, 0 );
 // returns 1.0
 ```
 
@@ -108,12 +103,10 @@ While [`typed array`][mdn-typed-array] views mandate a view offset based on the
 
 ```javascript
 var Float32Array = require( '@stdlib/array/float32' );
-var floor = require( '@stdlib/math/base/special/floor' );
 
 var x = new Float32Array( [ 2.0, 1.0, NaN, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
-var N = floor( x.length / 2 );
 
-var v = dsnansum.ndarray( N, x, 2, 1 );
+var v = dsnansum.ndarray( 4, x, 2, 1 );
 // returns 5.0
 ```
 
@@ -139,22 +132,11 @@ var v = dsnansum.ndarray( N, x, 2, 1 );
 <!-- eslint no-undef: "error" -->
 
 ```javascript
-var randu = require( '@stdlib/random/base/randu' );
-var round = require( '@stdlib/math/base/special/round' );
-var Float32Array = require( '@stdlib/array/float32' );
+var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
+var filledarrayBy = require( '@stdlib/array/filled-by' );
 var dsnansum = require( '@stdlib/blas/ext/base/dsnansum' );
 
-var x;
-var i;
-
-x = new Float32Array( 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, 'float32', discreteUniform(0, 100));
 console.log( x );
 
 var v = dsnansum( x.length, x, 1 );
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
index bd0ad890a6ad..f3a149997f3a 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2020 The Stdlib Authors.
+* Copyright (c) 2024 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.
@@ -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 Float32Array = require( '@stdlib/array/float32' );
 var pkg = require( './../package.json' ).name;
 var dsnansum = require( './../lib/dsnansum.js' );
 
 
+// VARIABLES //
+
+var rand = uniform( -100.0, 100.0 );
+
+
 // FUNCTIONS //
 
 /**
@@ -39,17 +44,7 @@ var dsnansum = require( './../lib/dsnansum.js' );
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x;
-	var i;
-
-	x = new Float32Array( len );
-	for ( i = 0; i < x.length; i++ ) {
-		if ( randu() < 0.2 ) {
-			x[ i ] = NaN;
-		} else {
-			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/dsnansum/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
index 98e7f42e251b..c48089f4399f 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2020 The Stdlib Authors.
+* Copyright (c) 2024 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.
@@ -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 Float32Array = require( '@stdlib/array/float32' );
 var tryRequire = require( '@stdlib/utils/try-require' );
 var pkg = require( './../package.json' ).name;
 
@@ -36,6 +36,7 @@ var dsnansum = tryRequire( resolve( __dirname, './../lib/dsnansum.native.js' ) )
 var opts = {
 	'skip': ( dsnansum 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 Float32Array( len );
-	for ( i = 0; i < x.length; i++ ) {
-		if ( randu() < 0.2 ) {
-			x[ i ] = NaN;
-		} else {
-			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/dsnansum/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
index c4059902b588..d58875cb32b2 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2020 The Stdlib Authors.
+* Copyright (c) 2024 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.
@@ -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 Float32Array = require( '@stdlib/array/float32' );
 var pkg = require( './../package.json' ).name;
 var dsnansum = require( './../lib/ndarray.js' );
 
 
+// VARIABLES //
+
+var rand = uniform( -100.0, 100.0 );
+
+
 // FUNCTIONS //
 
 /**
@@ -39,17 +44,7 @@ var dsnansum = require( './../lib/ndarray.js' );
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x;
-	var i;
-
-	x = new Float32Array( len );
-	for ( i = 0; i < x.length; i++ ) {
-		if ( randu() < 0.2 ) {
-			x[ i ] = NaN;
-		} else {
-			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/dsnansum/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
index 550c3152ce1a..9ffc6e70e01e 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2020 The Stdlib Authors.
+* Copyright (c) 2024 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.
@@ -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 Float32Array = require( '@stdlib/array/float32' );
 var tryRequire = require( '@stdlib/utils/try-require' );
 var pkg = require( './../package.json' ).name;
 
@@ -36,6 +36,7 @@ var dsnansum = tryRequire( resolve( __dirname, './../lib/ndarray.native.js' ) );
 var opts = {
 	'skip': ( dsnansum 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 Float32Array( len );
-	for ( i = 0; i < x.length; i++ ) {
-		if ( randu() < 0.2 ) {
-			x[ i ] = NaN;
-		} else {
-			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/dsnansum/docs/repl.txt b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/docs/repl.txt
index 0ce5a63413c5..3276f3cb1ed9 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/docs/repl.txt
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/docs/repl.txt
@@ -4,8 +4,8 @@
     ignoring `NaN` values, using extended accumulation, and returning an
     extended precision result.
 
-    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.
@@ -37,17 +37,13 @@
 
     // Using `N` and `stride` parameters:
     > x = new {{alias:@stdlib/array/float32}}( [ -2.0, 1.0, 1.0, -5.0, 2.0, -1.0, NaN, NaN ] );
-    > 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/float32}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0, NaN, NaN ] );
     > var x1 = new {{alias:@stdlib/array/float32}}( 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 )
@@ -86,9 +82,8 @@
     1.0
 
     // Using offset parameter:
-    > var x = new {{alias:@stdlib/array/float32}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0, NaN, NaN ] );
-    > var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
-    > {{alias}}.ndarray( N, x, 2, 1 )
+    > x = new {{alias:@stdlib/array/float32}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0 ] );
+    > {{alias}}.ndarray( 3, x, 2, 1 )
     -1.0
 
     See Also
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
index 6f52a7cf9d95..342a0b464808 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2020 The Stdlib Authors.
+* Copyright (c) 2024 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.
@@ -18,22 +18,11 @@
 
 'use strict';
 
-var randu = require( '@stdlib/random/base/randu' );
-var round = require( '@stdlib/math/base/special/round' );
-var Float32Array = require( '@stdlib/array/float32' );
+var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
+var filledarrayBy = require( '@stdlib/array/filled-by' );
 var dsnansum = require( './../lib' );
 
-var x;
-var i;
-
-x = new Float32Array( 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, 'float32', discreteUniform( -100.0, 100.0 ) );
 console.log( x );
 
 var v = dsnansum( x.length, x, 1 );
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/include.gypi b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/include.gypi
index 868c5c12e852..26476a8c2655 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/include.gypi
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/include.gypi
@@ -36,7 +36,7 @@
 
     # Source files:
     'src_files': [
-      '<(src_dir)/addon.cpp',
+      '<(src_dir)/addon.c',
       '<!@(node -e "var arr = require(\'@stdlib/utils/library-manifest\')(\'./manifest.json\',{},{\'basedir\':process.cwd(),\'paths\':\'posix\'}).src; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
     ],
 
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/index.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/index.js
index 7c4da185be83..233fad000860 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/index.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/index.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2020 The Stdlib Authors.
+* Copyright (c) 2024 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.
@@ -35,13 +35,11 @@
 *
 * @example
 * var Float32Array = require( '@stdlib/array/float32' );
-* var floor = require( '@stdlib/math/base/special/floor' );
 * var dsnansum = require( '@stdlib/blas/ext/base/dsnansum' );
 *
 * var x = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN, NaN ] );
-* var N = floor( x.length / 2 );
 *
-* var v = dsnansum.ndarray( N, x, 2, 1 );
+* var v = dsnansum.ndarray( 4, x, 2, 1 );
 * // returns 5.0
 */
 
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.js
index 55055bb70409..83804bb91350 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2020 The Stdlib Authors.
+* Copyright (c) 2024 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.
@@ -36,12 +36,10 @@ var dsnansumpw = require( '@stdlib/blas/ext/base/dsnansumpw' ).ndarray;
 *
 * @example
 * var Float32Array = require( '@stdlib/array/float32' );
-* var floor = require( '@stdlib/math/base/special/floor' );
 *
 * var x = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN, NaN ] );
-* var N = floor( x.length / 2 );
 *
-* var v = dsnansum( N, x, 2, 1 );
+* var v = dsnansum( 8, x, 2, 1 );
 * // returns 5.0
 */
 function dsnansum( N, x, stride, offset ) {
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.native.js
index edf6b77c538b..7ca28f6032a9 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.native.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2020 The Stdlib Authors.
+* Copyright (c) 2024 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.
@@ -20,7 +20,8 @@
 
 // MODULES //
 
-var Float32Array = require( '@stdlib/array/float32' );
+var minViewBufferIndex = require( '@stdlib/strided/base/min-view-buffer-index' );
+var offsetView = require( '@stdlib/strided/base/offset-view' );
 var addon = require( './dsnansum.native.js' );
 
 
@@ -37,20 +38,16 @@ var addon = require( './dsnansum.native.js' );
 *
 * @example
 * var Float32Array = require( '@stdlib/array/float32' );
-* var floor = require( '@stdlib/math/base/special/floor' );
 *
 * var x = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN, NaN ] );
-* var N = floor( x.length / 2 );
 *
-* var v = dsnansum( N, x, 2, 1 );
+* var v = dsnansum( 4, x, 2, 1 );
 * // returns 5.0
 */
 function dsnansum( N, x, stride, offset ) {
 	var view;
-	if ( stride < 0 ) {
-		offset += (N-1) * stride;
-	}
-	view = new Float32Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), x.length-offset ); // eslint-disable-line max-len
+	offset = minViewBufferIndex( N, stride, offset );
+	view = offsetView( x, offset );
 	return addon( N, view, stride );
 }
 
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
index a63cd6fd6452..201e542ca648 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
@@ -35,7 +35,11 @@
 			],
 			"libpath": [],
 			"dependencies": [
-				"@stdlib/blas/ext/base/dsnansumpw"
+				"@stdlib/blas/ext/base/dsnansumpw",
+				"stdlib/napi/export.h",
+				"stdlib/napi/argv.h",
+				"stdlib/napi/argv_int64.h",
+				"stdlib/napi/argv_strided_float32array.h"
 			]
 		}
 	]
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.cpp b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
similarity index 100%
rename from lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.cpp
rename to lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
index 68ee54bf4b93..6be28d048c89 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2020 The Stdlib Authors.
+* Copyright (c) 2024 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.
@@ -21,7 +21,6 @@
 // MODULES //
 
 var tape = require( 'tape' );
-var floor = require( '@stdlib/math/base/special/floor' );
 var Float32Array = require( '@stdlib/array/float32' );
 var dsnansum = require( './../lib/dsnansum.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( dsnansum.length, 3, 'has expected arity' );
+	t.strictEqual( dsnansum.length, 3, 'return expected value' );
 	t.end();
 });
 
@@ -125,9 +124,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 Float32Array([
 		1.0,  // 0
@@ -142,7 +141,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) {
 		NaN
 	]);
 
-	N = floor( x.length / 2 );
+	N = 4;
 	v = dsnansum( N, x, 2 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
@@ -150,10 +149,10 @@ 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 i;
+	var N;
 
 	x = new Float32Array([
 		NaN,  // 4
@@ -168,7 +167,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t )
 		2.0
 	]);
 
-	N = floor( x.length / 2 );
+	N = 4;
 	v = dsnansum( N, x, -2 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
@@ -198,8 +197,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 Float32Array([
 		2.0,
@@ -215,8 +214,8 @@ tape( 'the function supports view offsets', function test( t ) {
 		NaN
 	]);
 
+	N = 4;
 	x1 = new Float32Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
-	N = floor(x1.length / 2);
 
 	v = dsnansum( N, x1, 2 );
 	t.strictEqual( v, 5.0, 'returns expected value' );
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js
index 78fa0b56778d..00d7bb696a84 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js
@@ -22,7 +22,6 @@
 
 var resolve = require( 'path' ).resolve;
 var tape = require( 'tape' );
-var floor = require( '@stdlib/math/base/special/floor' );
 var Float32Array = require( '@stdlib/array/float32' );
 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( dsnansum.length, 3, 'has expected arity' );
+	t.strictEqual( dsnansum.length, 3, 'returns expected value' );
 	t.end();
 });
 
@@ -233,7 +232,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) {
 		NaN
 	]);
 
-	N = floor( x.length / 2 );
+	N = 4;
 	v = dsnansum( N, x, 2 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
@@ -259,7 +258,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test
 		2.0
 	]);
 
-	N = floor( x.length / 2 );
+	N = 4;
 	v = dsnansum( N, x, -2 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
@@ -307,7 +306,7 @@ tape( 'the function supports view offsets', opts, function test( t ) {
 	]);
 
 	x1 = new Float32Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
-	N = floor(x1.length / 2);
+	N = 4;
 
 	v = dsnansum( N, x1, 2 );
 	t.strictEqual( v, 5.0, 'returns expected value' );
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
index db871253ae22..a8efbb020f4c 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2020 The Stdlib Authors.
+* Copyright (c) 2024 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.
@@ -21,7 +21,6 @@
 // MODULES //
 
 var tape = require( 'tape' );
-var floor = require( '@stdlib/math/base/special/floor' );
 var Float32Array = require( '@stdlib/array/float32' );
 var dsnansum = 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( dsnansum.length, 4, 'has expected arity' );
+	t.strictEqual( dsnansum.length, 4, 'return expected value' );
 	t.end();
 });
 
@@ -142,7 +141,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) {
 		NaN
 	]);
 
-	N = floor( x.length / 2 );
+	N = 4;
 	v = dsnansum( N, x, 2, 0 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
@@ -168,7 +167,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t )
 		2.0
 	]);
 
-	N = floor( x.length / 2 );
+	N = 4;
 	v = dsnansum( N, x, -2, 8 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
@@ -212,7 +211,7 @@ tape( 'the function supports an `offset` parameter', function test( t ) {
 		NaN,
 		NaN   // 4
 	]);
-	N = floor( x.length / 2 );
+	N = 4;
 
 	v = dsnansum( N, x, 2, 1 );
 	t.strictEqual( v, 5.0, 'returns expected value' );
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
index a23f8ce88979..e61f114f9031 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/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 Float32Array = require( '@stdlib/array/float32' );
 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 4', opts, function test( t ) {
-	t.strictEqual( dsnansum.length, 4, 'has expected arity' );
+	t.strictEqual( dsnansum.length, 4, 'return expected value' );
 	t.end();
 });
 
@@ -151,7 +150,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) {
 		NaN
 	]);
 
-	N = floor( x.length / 2 );
+	N = 4;
 	v = dsnansum( N, x, 2, 0 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
@@ -177,7 +176,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test
 		2.0
 	]);
 
-	N = floor( x.length / 2 );
+	N = 4;
 	v = dsnansum( N, x, -2, 8 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
@@ -221,7 +220,7 @@ tape( 'the function supports an `offset` parameter', opts, function test( t ) {
 		NaN,
 		NaN   // 4
 	]);
-	N = floor( x.length / 2 );
+	N = 4;
 
 	v = dsnansum( N, x, 2, 1 );
 	t.strictEqual( v, 5.0, 'returns expected value' );

From 87fa2e489eb23e1cd3534f059881afe9a8ac6fbf Mon Sep 17 00:00:00 2001
From: Shubh Mehta <93862397+Shubh942@users.noreply.github.com>
Date: Tue, 26 Mar 2024 10:36:01 +0000
Subject: [PATCH 02/21] required changes has been done

---
 .../@stdlib/blas/ext/base/dsnansum/README.md  |  4 +-
 .../ext/base/dsnansum/benchmark/benchmark.js  |  4 +-
 .../dsnansum/benchmark/benchmark.native.js    |  4 +-
 .../dsnansum/benchmark/benchmark.ndarray.js   |  4 +-
 .../benchmark/benchmark.ndarray.native.js     |  4 +-
 .../blas/ext/base/dsnansum/docs/repl.txt      |  4 +-
 .../blas/ext/base/dsnansum/examples/index.js  |  2 +-
 .../blas/ext/base/dsnansum/lib/index.js       |  4 +-
 .../blas/ext/base/dsnansum/lib/ndarray.js     |  4 +-
 .../ext/base/dsnansum/lib/ndarray.native.js   |  4 +-
 .../blas/ext/base/dsnansum/manifest.json      | 75 +++++++++----------
 .../ext/base/dsnansum/test/test.dsnansum.js   | 11 +--
 .../dsnansum/test/test.dsnansum.native.js     |  9 +--
 .../ext/base/dsnansum/test/test.ndarray.js    |  9 +--
 .../base/dsnansum/test/test.ndarray.native.js |  9 +--
 15 files changed, 67 insertions(+), 84 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
index 7a3498cef97a..af5474082fa3 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
@@ -2,7 +2,7 @@
 
 @license Apache-2.0
 
-Copyright (c) 2024 The Stdlib Authors.
+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.
@@ -136,7 +136,7 @@ var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
 var filledarrayBy = require( '@stdlib/array/filled-by' );
 var dsnansum = require( '@stdlib/blas/ext/base/dsnansum' );
 
-var x = filledarrayBy(10, 'float32', discreteUniform(0, 100));
+var x = filledarrayBy( 10, 'float32', discreteUniform( 0, 100 ) );
 console.log( x );
 
 var v = dsnansum( x.length, x, 1 );
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
index f3a149997f3a..d6b89fa87d52 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2024 The Stdlib Authors.
+* 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.
@@ -31,7 +31,7 @@ var dsnansum = require( './../lib/dsnansum.js' );
 
 // VARIABLES //
 
-var rand = uniform( -100.0, 100.0 );
+var rand = uniform( -10.0, 10.0 );
 
 
 // FUNCTIONS //
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
index c48089f4399f..2f2bb02a368b 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2024 The Stdlib Authors.
+* 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.
@@ -36,7 +36,7 @@ var dsnansum = tryRequire( resolve( __dirname, './../lib/dsnansum.native.js' ) )
 var opts = {
 	'skip': ( dsnansum instanceof Error )
 };
-var rand = uniform( -100.0, 100.0 );
+var rand = uniform( -10.0, 10.0 );
 
 
 // FUNCTIONS //
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
index d58875cb32b2..eeb86f9d7900 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2024 The Stdlib Authors.
+* 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.
@@ -31,7 +31,7 @@ var dsnansum = require( './../lib/ndarray.js' );
 
 // VARIABLES //
 
-var rand = uniform( -100.0, 100.0 );
+var rand = uniform( -10.0, 10.0 );
 
 
 // FUNCTIONS //
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
index 9ffc6e70e01e..e37eafcaa6b5 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2024 The Stdlib Authors.
+* 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.
@@ -36,7 +36,7 @@ var dsnansum = tryRequire( resolve( __dirname, './../lib/ndarray.native.js' ) );
 var opts = {
 	'skip': ( dsnansum instanceof Error )
 };
-var rand = uniform( -100.0, 100.0 );
+var rand = uniform( -10.0, 10.0 );
 
 
 // FUNCTIONS //
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/docs/repl.txt b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/docs/repl.txt
index 3276f3cb1ed9..f3e89fc5ae6d 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/docs/repl.txt
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/docs/repl.txt
@@ -37,13 +37,13 @@
 
     // Using `N` and `stride` parameters:
     > x = new {{alias:@stdlib/array/float32}}( [ -2.0, 1.0, 1.0, -5.0, 2.0, -1.0, NaN, NaN ] );
-    > {{alias}}( 3, x, 2 )
+    > {{alias}}( 4, x, 2 )
     1.0
 
     // Using view offsets:
     > var x0 = new {{alias:@stdlib/array/float32}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0, NaN, NaN ] );
     > var x1 = new {{alias:@stdlib/array/float32}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
-    > {{alias}}( 3, x1, 2 )
+    > {{alias}}( 4, x1, 2 )
     -1.0
 
 {{alias}}.ndarray( N, x, stride, offset )
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
index 342a0b464808..718179f1a3a9 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2024 The Stdlib Authors.
+* 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.
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/index.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/index.js
index 233fad000860..d68429122246 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/index.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/index.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2024 The Stdlib Authors.
+* 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.
@@ -39,7 +39,7 @@
 *
 * var x = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN, NaN ] );
 *
-* var v = dsnansum.ndarray( 4, x, 2, 1 );
+* var v = dsnansum.ndarray( 5, x, 2, 1 );
 * // returns 5.0
 */
 
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.js
index 83804bb91350..4c0c95d0df1e 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2024 The Stdlib Authors.
+* 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.
@@ -39,7 +39,7 @@ var dsnansumpw = require( '@stdlib/blas/ext/base/dsnansumpw' ).ndarray;
 *
 * var x = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN, NaN ] );
 *
-* var v = dsnansum( 8, x, 2, 1 );
+* var v = dsnansum( 5, x, 2, 1 );
 * // returns 5.0
 */
 function dsnansum( N, x, stride, offset ) {
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.native.js
index 7ca28f6032a9..83d8b0e2d809 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/lib/ndarray.native.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2024 The Stdlib Authors.
+* 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.
@@ -41,7 +41,7 @@ var addon = require( './dsnansum.native.js' );
 *
 * var x = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN, NaN ] );
 *
-* var v = dsnansum( 4, x, 2, 1 );
+* var v = dsnansum( 5, x, 2, 1 );
 * // returns 5.0
 */
 function dsnansum( N, x, stride, offset ) {
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
index 201e542ca648..01e77663ef5a 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
@@ -1,46 +1,41 @@
 {
 	"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/dsnansum.c"
-			],
-			"include": [
-				"./include"
-			],
-			"libraries": [
-				"-lm"
-			],
-			"libpath": [],
-			"dependencies": [
-				"@stdlib/blas/ext/base/dsnansumpw",
-				"stdlib/napi/export.h",
-				"stdlib/napi/argv.h",
-				"stdlib/napi/argv_int64.h",
-				"stdlib/napi/argv_strided_float32array.h"
-			]
-		}
+	  {
+		"src": ["./src/dsnansum.c"],
+		"include": ["./include"],
+		"libraries": ["-lm"],
+		"libpath": [],
+		"dependencies": [
+		  "@stdlib/blas/ext/base/dsnansumpw",
+		  "stdlib/napi/export.h",
+		  "stdlib/napi/argv.h",
+		  "stdlib/napi/argv_int64.h",
+		  "stdlib/napi/argv_strided_float32array.h"
+		]
+	  }
 	]
-}
+  }
+  
\ No newline at end of file
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
index 6be28d048c89..2f4711c7e3d0 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2024 The Stdlib Authors.
+* 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.
@@ -141,8 +141,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) {
 		NaN
 	]);
 
-	N = 4;
-	v = dsnansum( N, x, 2 );
+	v = dsnansum( 4, x, 2 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 	t.end();
@@ -167,8 +166,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t )
 		2.0
 	]);
 
-	N = 4;
-	v = dsnansum( N, x, -2 );
+	v = dsnansum( 4, x, -2 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
@@ -214,10 +212,9 @@ tape( 'the function supports view offsets', function test( t ) {
 		NaN
 	]);
 
-	N = 4;
 	x1 = new Float32Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
 
-	v = dsnansum( N, x1, 2 );
+	v = dsnansum( 4, x1, 2 );
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
 	t.end();
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js
index 00d7bb696a84..39351609920d 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js
@@ -232,8 +232,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) {
 		NaN
 	]);
 
-	N = 4;
-	v = dsnansum( N, x, 2 );
+	v = dsnansum( 4, x, 2 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 	t.end();
@@ -258,8 +257,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test
 		2.0
 	]);
 
-	N = 4;
-	v = dsnansum( N, x, -2 );
+	v = dsnansum( 4, x, -2 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
@@ -306,9 +304,8 @@ tape( 'the function supports view offsets', opts, function test( t ) {
 	]);
 
 	x1 = new Float32Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
-	N = 4;
 
-	v = dsnansum( N, x1, 2 );
+	v = dsnansum( 4, x1, 2 );
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
 	t.end();
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
index a8efbb020f4c..e7204c8c79a2 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
@@ -141,8 +141,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) {
 		NaN
 	]);
 
-	N = 4;
-	v = dsnansum( N, x, 2, 0 );
+	v = dsnansum( 4, x, 2, 0 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 	t.end();
@@ -167,8 +166,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t )
 		2.0
 	]);
 
-	N = 4;
-	v = dsnansum( N, x, -2, 8 );
+	v = dsnansum( 4, x, -2, 8 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
@@ -211,9 +209,8 @@ tape( 'the function supports an `offset` parameter', function test( t ) {
 		NaN,
 		NaN   // 4
 	]);
-	N = 4;
 
-	v = dsnansum( N, x, 2, 1 );
+	v = dsnansum( 4, x, 2, 1 );
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
 	t.end();
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
index e61f114f9031..df3bf39f3158 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
@@ -150,8 +150,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) {
 		NaN
 	]);
 
-	N = 4;
-	v = dsnansum( N, x, 2, 0 );
+	v = dsnansum( 4, x, 2, 0 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 	t.end();
@@ -176,8 +175,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test
 		2.0
 	]);
 
-	N = 4;
-	v = dsnansum( N, x, -2, 8 );
+	v = dsnansum( 4, x, -2, 8 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
@@ -220,9 +218,8 @@ tape( 'the function supports an `offset` parameter', opts, function test( t ) {
 		NaN,
 		NaN   // 4
 	]);
-	N = 4;
 
-	v = dsnansum( N, x, 2, 1 );
+	v = dsnansum( 4, x, 2, 1 );
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
 	t.end();

From 6274b13d2e5d7e27f71d511f3033507696a88531 Mon Sep 17 00:00:00 2001
From: Shubh Mehta <93862397+Shubh942@users.noreply.github.com>
Date: Tue, 26 Mar 2024 12:20:10 +0000
Subject: [PATCH 03/21] refactor: update blas/ext/base/dsnansum to follow
 current project conventions

---
 .../blas/ext/base/dsnansum/manifest.json      | 114 +++++++++++------
 .../blas/ext/base/dsnansum/src/addon.c        | 118 ++++--------------
 2 files changed, 99 insertions(+), 133 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
index 01e77663ef5a..5759342d83b8 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
@@ -1,41 +1,77 @@
 {
-	"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
-	  }
-	],
-	"confs": [
-	  {
-		"src": ["./src/dsnansum.c"],
-		"include": ["./include"],
-		"libraries": ["-lm"],
-		"libpath": [],
-		"dependencies": [
-		  "@stdlib/blas/ext/base/dsnansumpw",
-		  "stdlib/napi/export.h",
-		  "stdlib/napi/argv.h",
-		  "stdlib/napi/argv_int64.h",
-		  "stdlib/napi/argv_strided_float32array.h"
-		]
-	  }
-	]
-  }
+"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/dsnansum.c"
+      ],
+      "include": [
+        "./include"
+      ],
+      "libraries": [
+        "-lm"
+      ],
+      "libpath": [],
+      "dependencies": [
+        "@stdlib/napi/export",
+        "@stdlib/napi/argv",
+        "@stdlib/napi/argv-float",
+        "@stdlib/napi/argv-int64",
+        "@stdlib/napi/argv-strided-float32array"
+      ]
+    },
+    {
+      "task": "benchmark",
+      "src": [
+        "./src/dsnansum.c"
+      ],
+      "include": [
+        "./include"
+      ],
+      "libraries": [
+        "-lm"
+      ],
+      "dependencies": []
+    },
+    {
+      "task": "examples",
+      "src": [
+        "./src/dsnansum.c"
+      ],
+      "include": [
+        "./include"
+      ],
+      "libraries": [
+        "-lm"
+      ],
+      "libpath": [],
+      "dependencies": []
+    }
+  ]
+}
   
\ No newline at end of file
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
index 8f59306a15b9..0d7195bcfd02 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
@@ -17,101 +17,31 @@
 */
 
 #include "stdlib/blas/ext/base/dsnansum.h"
+#include "stdlib/napi/export.h"
+#include "stdlib/napi/argv.h"
+#include "stdlib/napi/argv_float.h"
+#include "stdlib/napi/argv_int64.h"
+#include "stdlib/napi/argv_strided_float32array.h"
 #include <node_api.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <assert.h>
 
 /**
-* Add-on namespace.
+* Receives JavaScript callback invocation data.
+*
+* @private
+* @param env    environment under which the function is invoked
+* @param info   callback data
+* @return       Node-API value
 */
-namespace stdlib_blas_ext_base_dsnansum {
-
-	/**
-	* Computes the sum of single-precision floating-point strided array elements, ignoring `NaN` values, using extended accumulation, and returning an extended precision result.
-	*
-	* ## Notes
-	*
-	* -   When called from JavaScript, the function expects three arguments:
-	*
-	*     -   `N`: number of indexed elements
-	*     -   `X`: input array
-	*     -   `stride`: stride length
-	*/
-	napi_value node_dsnansum( 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 Float32Array." );
-			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_float32_array ) {
-			napi_throw_type_error( env, nullptr, "invalid argument. Second argument must be a Float32Array." );
-			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_dsnansum( N, (float *)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_dsnansum, NULL, &fcn );
-		assert( status == napi_ok );
-		return fcn;
-	}
-
-	NAPI_MODULE( NODE_GYP_MODULE_NAME, Init )
-} // end namespace stdlib_blas_ext_base_dsnansum
+static napi_value addon( napi_env env, napi_callback_info info ) {
+	STDLIB_NAPI_ARGV( env, info, argv, argc, 6 );
+	STDLIB_NAPI_ARGV_INT64( env, N, argv, 0 );
+	STDLIB_NAPI_ARGV_FLOAT( env, sum, argv, 1 );
+	STDLIB_NAPI_ARGV_INT64( env, strideX, argv, 3 );
+	STDLIB_NAPI_ARGV_INT64( env, strideY, argv, 5 );
+	STDLIB_NAPI_ARGV_STRIDED_FLOAT32ARRAY( env, X, N, strideX, argv, 2 );
+	STDLIB_NAPI_ARGV_STRIDED_FLOAT32ARRAY( env, Y, N, strideY, argv, 4 );
+	stdlib_strided_dsnansum( N, sum, X, strideX, Y, strideY );
+	return NULL;
+}
+
+STDLIB_NAPI_MODULE_EXPORT_FCN( addon )

From 742f2a95e8a039bf4bbfa832d31c61e165e38e4b Mon Sep 17 00:00:00 2001
From: Pranav <85227306+Pranavchiku@users.noreply.github.com>
Date: Wed, 27 Mar 2024 14:54:47 +0530
Subject: [PATCH 04/21] chore: apply suggestions from code review

Signed-off-by: Pranav <85227306+Pranavchiku@users.noreply.github.com>
---
 .../blas/ext/base/dsnansum/manifest.json        |  1 -
 .../@stdlib/blas/ext/base/dsnansum/src/addon.c  | 17 +++++++++--------
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
index 5759342d83b8..677dada04fef 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
@@ -74,4 +74,3 @@
     }
   ]
 }
-  
\ No newline at end of file
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
index 0d7195bcfd02..97f5cce61498 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
@@ -33,15 +33,16 @@
 * @return       Node-API value
 */
 static napi_value addon( napi_env env, napi_callback_info info ) {
-	STDLIB_NAPI_ARGV( env, info, argv, argc, 6 );
+	STDLIB_NAPI_ARGV( env, info, argv, argc, 3 );
 	STDLIB_NAPI_ARGV_INT64( env, N, argv, 0 );
-	STDLIB_NAPI_ARGV_FLOAT( env, sum, argv, 1 );
-	STDLIB_NAPI_ARGV_INT64( env, strideX, argv, 3 );
-	STDLIB_NAPI_ARGV_INT64( env, strideY, argv, 5 );
-	STDLIB_NAPI_ARGV_STRIDED_FLOAT32ARRAY( env, X, N, strideX, argv, 2 );
-	STDLIB_NAPI_ARGV_STRIDED_FLOAT32ARRAY( env, Y, N, strideY, argv, 4 );
-	stdlib_strided_dsnansum( N, sum, X, strideX, Y, strideY );
-	return NULL;
+	STDLIB_NAPI_ARGV_INT64( env, strideX, argv, 2 );
+	STDLIB_NAPI_ARGV_STRIDED_FLOAT32ARRAY( env, X, N, strideX, argv, 1 );
+
+	napi_value v;
+	status = napi_create_double( env, stdlib_strided_dnansum( N, X, stride ), &v );
+	assert( status == napi_ok );
+	return v;
+}
 }
 
 STDLIB_NAPI_MODULE_EXPORT_FCN( addon )

From 96ba08150f1f7beac142ec907d3912af606b0a99 Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Thu, 28 Mar 2024 17:38:07 -0400
Subject: [PATCH 05/21] docs: add empty line

Signed-off-by: Philipp Burckhardt <pburckhardt@outlook.com>
---
 lib/node_modules/@stdlib/blas/ext/base/dsnansum/docs/repl.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/docs/repl.txt b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/docs/repl.txt
index f3e89fc5ae6d..d1129a045969 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/docs/repl.txt
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/docs/repl.txt
@@ -46,6 +46,7 @@
     > {{alias}}( 4, x1, 2 )
     -1.0
 
+
 {{alias}}.ndarray( N, x, stride, offset )
     Computes the sum of single-precision floating-point strided array elements,
     ignoring `NaN` values and using extended accumulation and alternative

From 8779f57cb22a641a183a63bc21f7b40bb5b1ef7b Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Thu, 28 Mar 2024 17:38:47 -0400
Subject: [PATCH 06/21] test: remove N declaration

Signed-off-by: Philipp Burckhardt <pburckhardt@outlook.com>
---
 .../@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js       | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
index 2f4711c7e3d0..8da3dd4c7d97 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
@@ -126,7 +126,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 Float32Array([
 		1.0,  // 0
@@ -151,7 +150,6 @@ tape( 'the function supports a negative `stride` parameter', function test( t )
 	var x;
 	var v;
 	var i;
-	var N;
 
 	x = new Float32Array([
 		NaN,  // 4
@@ -196,7 +194,6 @@ tape( 'the function supports view offsets', function test( t ) {
 	var x0;
 	var x1;
 	var v;
-	var N;
 
 	x0 = new Float32Array([
 		2.0,

From ebdd985a3e3362b4ce90395f2aaeef778fe8afef Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Thu, 28 Mar 2024 17:39:14 -0400
Subject: [PATCH 07/21] test: remove N declaration

Signed-off-by: Philipp Burckhardt <pburckhardt@outlook.com>
---
 .../blas/ext/base/dsnansum/test/test.dsnansum.native.js        | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js
index 39351609920d..cc649557ff7c 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js
@@ -215,7 +215,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;
 
@@ -239,7 +238,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;
 	var i;
@@ -286,7 +284,6 @@ 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;
 
 	x0 = new Float32Array([

From 83fbeef0d3d6a2863c78d07285cda72e116ce785 Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Thu, 28 Mar 2024 17:39:44 -0400
Subject: [PATCH 08/21] test: remove N declaration

Signed-off-by: Philipp Burckhardt <pburckhardt@outlook.com>
---
 .../@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js        | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
index e7204c8c79a2..4afadcac810b 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
@@ -124,7 +124,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;
 
@@ -148,7 +147,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;
 	var i;
@@ -193,7 +191,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;
 

From 6f2cdd5beb52bec37631eda27d605c3fd263f15f Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Thu, 28 Mar 2024 17:40:10 -0400
Subject: [PATCH 09/21] test: remove N declaration

Signed-off-by: Philipp Burckhardt <pburckhardt@outlook.com>
---
 .../@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
index df3bf39f3158..4ab14bc4fd7c 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
@@ -133,7 +133,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;
 
@@ -157,7 +156,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;
 	var i;
@@ -202,7 +200,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 eafe70bcc1c5d226d5ffe73e4c52104eba6470bc Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Thu, 28 Mar 2024 17:40:52 -0400
Subject: [PATCH 10/21] docs: remove empty line

Signed-off-by: Philipp Burckhardt <pburckhardt@outlook.com>
---
 lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
index af5474082fa3..c606776d5ca8 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
@@ -77,7 +77,6 @@ var Float32Array = require( '@stdlib/array/float32' );
 var x0 = new Float32Array( [ 2.0, 1.0, NaN, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
 var x1 = new Float32Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
 
-
 var v = dsnansum( 4, x1, 2 );
 // returns 5.0
 ```

From 965184017f2320a516c5f3b2f5b6ae434b34ae37 Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Thu, 28 Mar 2024 21:29:31 -0400
Subject: [PATCH 11/21] fix: update addon.c

Signed-off-by: Philipp Burckhardt <pburckhardt@outlook.com>
---
 lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
index 97f5cce61498..e51c6e0977e3 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
@@ -35,11 +35,11 @@
 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_FLOAT32ARRAY( env, X, N, strideX, argv, 1 );
+	STDLIB_NAPI_ARGV_INT64( env, stride, argv, 2 );
+	STDLIB_NAPI_ARGV_STRIDED_FLOAT32ARRAY( env, X, N, stride, argv, 1 );
 
 	napi_value v;
-	status = napi_create_double( env, stdlib_strided_dnansum( N, X, stride ), &v );
+	status = napi_create_double( env, stdlib_strided_dsnansum( N, X, stride ), &v );
 	assert( status == napi_ok );
 	return v;
 }

From 3728d30b06f2e89bb79e24ad679f87f60827a13b Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Thu, 28 Mar 2024 21:48:32 -0400
Subject: [PATCH 12/21] fix: update addon.c

Signed-off-by: Philipp Burckhardt <pburckhardt@outlook.com>
---
 lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
index e51c6e0977e3..73302669a71b 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
@@ -39,7 +39,7 @@ static napi_value addon( napi_env env, napi_callback_info info ) {
 	STDLIB_NAPI_ARGV_STRIDED_FLOAT32ARRAY( env, X, N, stride, argv, 1 );
 
 	napi_value v;
-	status = napi_create_double( env, stdlib_strided_dsnansum( N, X, stride ), &v );
+	napi_status status = napi_create_double( env, stdlib_strided_dsnansum( N, X, stride ), &v );
 	assert( status == napi_ok );
 	return v;
 }

From 9f913c4f8d819e9b213a567c22b6c557f4b89e70 Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Thu, 28 Mar 2024 21:48:50 -0400
Subject: [PATCH 13/21] fix: remove extra closing brace

Signed-off-by: Philipp Burckhardt <pburckhardt@outlook.com>
---
 lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
index 73302669a71b..1c669d2ca9e1 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
@@ -43,6 +43,5 @@ static napi_value addon( napi_env env, napi_callback_info info ) {
 	assert( status == napi_ok );
 	return v;
 }
-}
 
 STDLIB_NAPI_MODULE_EXPORT_FCN( addon )

From 5c1abbdce31b9a7d887da508e9e2710209c17f8d Mon Sep 17 00:00:00 2001
From: Shubh Mehta <93862397+Shubh942@users.noreply.github.com>
Date: Fri, 29 Mar 2024 11:08:09 +0000
Subject: [PATCH 14/21] refactor

---
 .../@stdlib/blas/ext/base/dsnansum/README.md  | 13 +++++++++++--
 .../ext/base/dsnansum/benchmark/benchmark.js  | 19 ++++++++++++-------
 .../dsnansum/benchmark/benchmark.native.js    | 15 ++++++++++++---
 .../dsnansum/benchmark/benchmark.ndarray.js   | 19 ++++++++++++-------
 .../benchmark/benchmark.ndarray.native.js     | 15 ++++++++++++---
 .../blas/ext/base/dsnansum/examples/index.js  | 14 ++++++++++++--
 .../blas/ext/base/dsnansum/manifest.json      |  2 +-
 .../blas/ext/base/dsnansum/src/addon.c        |  1 -
 .../ext/base/dsnansum/test/test.dsnansum.js   |  2 +-
 .../ext/base/dsnansum/test/test.ndarray.js    |  2 +-
 .../base/dsnansum/test/test.ndarray.native.js |  2 +-
 11 files changed, 75 insertions(+), 29 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
index c606776d5ca8..52ba06c5004b 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
@@ -131,11 +131,20 @@ var v = dsnansum.ndarray( 4, x, 2, 1 );
 <!-- eslint no-undef: "error" -->
 
 ```javascript
-var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
+var bernoulli = require( '@stdlib/random/base/bernoulli' );
+var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
 var filledarrayBy = require( '@stdlib/array/filled-by' );
 var dsnansum = require( '@stdlib/blas/ext/base/dsnansum' );
 
-var x = filledarrayBy( 10, 'float32', discreteUniform( 0, 100 ) );
+var x;
+function clbk() {
+		if ( bernoulli( 0.7 ) > 0 ) {
+			return discreteUniform( -10, 10 );
+		}
+      return NaN;
+	}
+
+x = filledarrayBy( len, 'float64', clbk );
 console.log( x );
 
 var v = dsnansum( x.length, x, 1 );
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
index d6b89fa87d52..c9d0fb03d387 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
@@ -21,7 +21,8 @@
 // MODULES //
 
 var bench = require( '@stdlib/bench' );
-var uniform = require( '@stdlib/random/base/uniform' ).factory;
+var bernoulli = require( '@stdlib/random/base/bernoulli' );
+var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
 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 dsnansum = require( './../lib/dsnansum.js' );
 
 
-// VARIABLES //
-
-var rand = uniform( -10.0, 10.0 );
-
-
 // FUNCTIONS //
 
 /**
@@ -44,7 +40,16 @@ var rand = uniform( -10.0, 10.0 );
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x = filledarrayBy( len, 'float32', rand );
+	var x;
+
+	function clbk() {
+		if ( bernoulli( 0.7 ) > 0 ) {
+			return discreteUniform( -10, 10 );
+		}
+		return NaN;
+	}
+
+	x = filledarrayBy( len, 'float64', clbk );
 	return benchmark;
 
 	function benchmark( b ) {
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
index 2f2bb02a368b..9cc3f1a0a0fe 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/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 bernoulli = require( '@stdlib/random/base/bernoulli' );
+var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
 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 dsnansum = tryRequire( resolve( __dirname, './../lib/dsnansum.native.js' ) )
 var opts = {
 	'skip': ( dsnansum instanceof Error )
 };
-var rand = uniform( -10.0, 10.0 );
 
 
 // FUNCTIONS //
@@ -49,7 +49,16 @@ var rand = uniform( -10.0, 10.0 );
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x = filledarrayBy( len, 'float32', rand );
+	var x;
+
+	function clbk() {
+		if ( bernoulli( 0.7 ) > 0 ) {
+			return discreteUniform( -10, 10 );
+		}
+		return NaN;
+	}
+
+	x = filledarrayBy( len, 'float64', clbk );
 	return benchmark;
 
 	function benchmark( b ) {
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
index eeb86f9d7900..06ed463f45b8 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
@@ -21,7 +21,8 @@
 // MODULES //
 
 var bench = require( '@stdlib/bench' );
-var uniform = require( '@stdlib/random/base/uniform' ).factory;
+var bernoulli = require( '@stdlib/random/base/bernoulli' );
+var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
 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 dsnansum = require( './../lib/ndarray.js' );
 
 
-// VARIABLES //
-
-var rand = uniform( -10.0, 10.0 );
-
-
 // FUNCTIONS //
 
 /**
@@ -44,7 +40,16 @@ var rand = uniform( -10.0, 10.0 );
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x = filledarrayBy( len, 'float32', rand );
+	var x;
+
+	function clbk() {
+		if ( bernoulli( 0.7 ) > 0 ) {
+			return discreteUniform( -10, 10 );
+		}
+		return NaN;
+	}
+
+	x = filledarrayBy( len, 'float64', clbk );
 	return benchmark;
 
 	function benchmark( b ) {
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
index e37eafcaa6b5..d91e07716745 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/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 bernoulli = require( '@stdlib/random/base/bernoulli' );
+var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
 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 dsnansum = tryRequire( resolve( __dirname, './../lib/ndarray.native.js' ) );
 var opts = {
 	'skip': ( dsnansum instanceof Error )
 };
-var rand = uniform( -10.0, 10.0 );
 
 
 // FUNCTIONS //
@@ -49,7 +49,16 @@ var rand = uniform( -10.0, 10.0 );
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x = filledarrayBy( len, 'float32', rand );
+	var x;
+
+	function clbk() {
+		if ( bernoulli( 0.7 ) > 0 ) {
+			return discreteUniform( -10, 10 );
+		}
+		return NaN;
+	}
+
+	x = filledarrayBy( len, 'float64', clbk );
 	return benchmark;
 
 	function benchmark( b ) {
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
index 718179f1a3a9..374038980709 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
@@ -18,11 +18,21 @@
 
 'use strict';
 
-var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
+var bernoulli = require( '@stdlib/random/base/bernoulli' );
+var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
 var filledarrayBy = require( '@stdlib/array/filled-by' );
 var dsnansum = require( './../lib' );
 
-var x = filledarrayBy( 10, 'float32', discreteUniform( -100.0, 100.0 ) );
+var x;
+
+function clbk() {
+    if ( bernoulli( 0.7 ) > 0 ) {
+        return discreteUniform( -100, 100 );
+    }
+    return NaN;
+}
+
+x = filledarrayBy( len, 'float64', clbk );
 console.log( x );
 
 var v = dsnansum( x.length, x, 1 );
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
index 677dada04fef..545250c6e297 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
@@ -38,9 +38,9 @@
       ],
       "libpath": [],
       "dependencies": [
+        "@stdlib/blas/ext/base/dsnansumpw",
         "@stdlib/napi/export",
         "@stdlib/napi/argv",
-        "@stdlib/napi/argv-float",
         "@stdlib/napi/argv-int64",
         "@stdlib/napi/argv-strided-float32array"
       ]
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
index 1c669d2ca9e1..4a635d653229 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/src/addon.c
@@ -19,7 +19,6 @@
 #include "stdlib/blas/ext/base/dsnansum.h"
 #include "stdlib/napi/export.h"
 #include "stdlib/napi/argv.h"
-#include "stdlib/napi/argv_float.h"
 #include "stdlib/napi/argv_int64.h"
 #include "stdlib/napi/argv_strided_float32array.h"
 #include <node_api.h>
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
index 8da3dd4c7d97..04b98891a82e 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
@@ -34,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( dsnansum.length, 3, 'return expected value' );
+	t.strictEqual( dsnansum.length, 3, 'returns expected value' );
 	t.end();
 });
 
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
index 4afadcac810b..60754e8a8e6b 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
@@ -34,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( dsnansum.length, 4, 'return expected value' );
+	t.strictEqual( dsnansum.length, 4, 'returns expected value' );
 	t.end();
 });
 
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
index 4ab14bc4fd7c..8411d59cf548 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
@@ -43,7 +43,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( dsnansum.length, 4, 'return expected value' );
+	t.strictEqual( dsnansum.length, 4, 'returns expected value' );
 	t.end();
 });
 

From 3d554dadf3d65171c02513093ef7045ac3f37472 Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Fri, 29 Mar 2024 09:38:47 -0400
Subject: [PATCH 15/21] style: fix indentation

Signed-off-by: Philipp Burckhardt <pburckhardt@outlook.com>
---
 lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
index 545250c6e297..4656310e3fd1 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
@@ -1,5 +1,5 @@
 {
-"options": {
+  "options": {
     "task": "build"
   },
   "fields": [

From 57cf939ab17f333378c3a417c8fb130ac510df7a Mon Sep 17 00:00:00 2001
From: Shubh Mehta <93862397+Shubh942@users.noreply.github.com>
Date: Fri, 29 Mar 2024 17:20:23 +0000
Subject: [PATCH 16/21] corrected the indentation

---
 .../@stdlib/blas/ext/base/dsnansum/examples/index.js   | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
index 374038980709..172f9870ab69 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
@@ -26,13 +26,13 @@ var dsnansum = require( './../lib' );
 var x;
 
 function clbk() {
-    if ( bernoulli( 0.7 ) > 0 ) {
-        return discreteUniform( -100, 100 );
-    }
-    return NaN;
+ if ( bernoulli( 0.7 ) > 0 ) {
+  return discreteUniform( -100, 100 );
+ }
+ return NaN;
 }
 
-x = filledarrayBy( len, 'float64', clbk );
+x = filledarrayBy( 10, 'float64', clbk );
 console.log( x );
 
 var v = dsnansum( x.length, x, 1 );

From 8daf6d8683e83767c146fbec5aeb498f93f190b1 Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Sun, 14 Apr 2024 16:44:51 -0400
Subject: [PATCH 17/21] chore: minor clean-up to get CI to pass

---
 .../@stdlib/blas/ext/base/dsnansum/README.md        | 13 ++++++-------
 .../blas/ext/base/dsnansum/benchmark/benchmark.js   |  8 +++-----
 .../ext/base/dsnansum/benchmark/benchmark.native.js |  8 +++-----
 .../base/dsnansum/benchmark/benchmark.ndarray.js    |  8 +++-----
 .../dsnansum/benchmark/benchmark.ndarray.native.js  |  8 +++-----
 .../blas/ext/base/dsnansum/examples/index.js        | 12 ++++++------
 .../blas/ext/base/dsnansum/test/test.ndarray.js     |  2 +-
 7 files changed, 25 insertions(+), 34 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
index 52ba06c5004b..02aa7a51da40 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/README.md
@@ -136,15 +136,14 @@ var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
 var filledarrayBy = require( '@stdlib/array/filled-by' );
 var dsnansum = require( '@stdlib/blas/ext/base/dsnansum' );
 
-var x;
 function clbk() {
-		if ( bernoulli( 0.7 ) > 0 ) {
-			return discreteUniform( -10, 10 );
-		}
-      return NaN;
-	}
+    if ( bernoulli( 0.7 ) > 0 ) {
+        return discreteUniform( -10, 10 );
+    }
+    return NaN;
+}
 
-x = filledarrayBy( len, 'float64', clbk );
+var x = filledarrayBy( 10, 'float64', clbk );
 console.log( x );
 
 var v = dsnansum( x.length, x, 1 );
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
index c9d0fb03d387..fb4c6436abea 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
@@ -40,18 +40,16 @@ var dsnansum = require( './../lib/dsnansum.js' );
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x;
+	var x = filledarrayBy( len, 'float64', rand );
+	return benchmark;
 
-	function clbk() {
+	function rand() {
 		if ( bernoulli( 0.7 ) > 0 ) {
 			return discreteUniform( -10, 10 );
 		}
 		return NaN;
 	}
 
-	x = filledarrayBy( len, 'float64', clbk );
-	return benchmark;
-
 	function benchmark( b ) {
 		var v;
 		var i;
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
index 9cc3f1a0a0fe..d78ded87c31a 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
@@ -49,18 +49,16 @@ var opts = {
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x;
+	var x = filledarrayBy( len, 'float64', rand );
+	return benchmark;
 
-	function clbk() {
+	function rand() {
 		if ( bernoulli( 0.7 ) > 0 ) {
 			return discreteUniform( -10, 10 );
 		}
 		return NaN;
 	}
 
-	x = filledarrayBy( len, 'float64', clbk );
-	return benchmark;
-
 	function benchmark( b ) {
 		var v;
 		var i;
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
index 06ed463f45b8..702ac45bd595 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
@@ -40,18 +40,16 @@ var dsnansum = require( './../lib/ndarray.js' );
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x;
+	var x = filledarrayBy( len, 'float64', rand );
+	return benchmark;
 
-	function clbk() {
+	function rand() {
 		if ( bernoulli( 0.7 ) > 0 ) {
 			return discreteUniform( -10, 10 );
 		}
 		return NaN;
 	}
 
-	x = filledarrayBy( len, 'float64', clbk );
-	return benchmark;
-
 	function benchmark( b ) {
 		var v;
 		var i;
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
index d91e07716745..1c1940b7361a 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
@@ -49,18 +49,16 @@ var opts = {
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x;
+	var x = filledarrayBy( len, 'float64', rand );
+	return benchmark;
 
-	function clbk() {
+	function rand() {
 		if ( bernoulli( 0.7 ) > 0 ) {
 			return discreteUniform( -10, 10 );
 		}
 		return NaN;
 	}
 
-	x = filledarrayBy( len, 'float64', clbk );
-	return benchmark;
-
 	function benchmark( b ) {
 		var v;
 		var i;
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
index 172f9870ab69..a9e076d9640e 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/examples/index.js
@@ -25,14 +25,14 @@ var dsnansum = require( './../lib' );
 
 var x;
 
-function clbk() {
- if ( bernoulli( 0.7 ) > 0 ) {
-  return discreteUniform( -100, 100 );
- }
- return NaN;
+function rand() {
+	if ( bernoulli( 0.7 ) > 0 ) {
+		return discreteUniform( -100, 100 );
+	}
+	return NaN;
 }
 
-x = filledarrayBy( 10, 'float64', clbk );
+x = filledarrayBy( 10, 'float64', rand );
 console.log( x );
 
 var v = dsnansum( x.length, x, 1 );
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
index 60754e8a8e6b..5de8b6e9d30f 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
@@ -1,7 +1,7 @@
 /**
 * @license Apache-2.0
 *
-* Copyright (c) 2024 The Stdlib Authors.
+* 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.

From b0ecb189ff78589be72410abec5cf8548ddfc3a2 Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Sun, 14 Apr 2024 16:51:45 -0400
Subject: [PATCH 18/21] test: fix passed argument

---
 .../@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js    | 6 +++---
 .../blas/ext/base/dsnansum/test/test.dsnansum.native.js     | 6 +++---
 .../@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js     | 6 +++---
 .../blas/ext/base/dsnansum/test/test.ndarray.native.js      | 6 +++---
 4 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
index 04b98891a82e..e4c0f7195688 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.js
@@ -140,7 +140,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) {
 		NaN
 	]);
 
-	v = dsnansum( 4, x, 2 );
+	v = dsnansum( 5, x, 2 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 	t.end();
@@ -164,7 +164,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t )
 		2.0
 	]);
 
-	v = dsnansum( 4, x, -2 );
+	v = dsnansum( 5, x, -2 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
@@ -211,7 +211,7 @@ tape( 'the function supports view offsets', function test( t ) {
 
 	x1 = new Float32Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
 
-	v = dsnansum( 4, x1, 2 );
+	v = dsnansum( 5, x1, 2 );
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
 	t.end();
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js
index cc649557ff7c..735ee1a032f4 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.dsnansum.native.js
@@ -231,7 +231,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) {
 		NaN
 	]);
 
-	v = dsnansum( 4, x, 2 );
+	v = dsnansum( 5, x, 2 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 	t.end();
@@ -255,7 +255,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test
 		2.0
 	]);
 
-	v = dsnansum( 4, x, -2 );
+	v = dsnansum( 5, x, -2 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
@@ -302,7 +302,7 @@ tape( 'the function supports view offsets', opts, function test( t ) {
 
 	x1 = new Float32Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
 
-	v = dsnansum( 4, x1, 2 );
+	v = dsnansum( 5, x1, 2 );
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
 	t.end();
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
index 5de8b6e9d30f..67f8fbd7f6f9 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.js
@@ -140,7 +140,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) {
 		NaN
 	]);
 
-	v = dsnansum( 4, x, 2, 0 );
+	v = dsnansum( 5, x, 2, 0 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 	t.end();
@@ -164,7 +164,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t )
 		2.0
 	]);
 
-	v = dsnansum( 4, x, -2, 8 );
+	v = dsnansum( 5, x, -2, 8 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
@@ -207,7 +207,7 @@ tape( 'the function supports an `offset` parameter', function test( t ) {
 		NaN   // 4
 	]);
 
-	v = dsnansum( 4, x, 2, 1 );
+	v = dsnansum( 5, x, 2, 1 );
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
 	t.end();
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
index 8411d59cf548..25015984bec8 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/test/test.ndarray.native.js
@@ -149,7 +149,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) {
 		NaN
 	]);
 
-	v = dsnansum( 4, x, 2, 0 );
+	v = dsnansum( 5, x, 2, 0 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 	t.end();
@@ -173,7 +173,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test
 		2.0
 	]);
 
-	v = dsnansum( 4, x, -2, 8 );
+	v = dsnansum( 5, x, -2, 8 );
 
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
@@ -216,7 +216,7 @@ tape( 'the function supports an `offset` parameter', opts, function test( t ) {
 		NaN   // 4
 	]);
 
-	v = dsnansum( 4, x, 2, 1 );
+	v = dsnansum( 5, x, 2, 1 );
 	t.strictEqual( v, 5.0, 'returns expected value' );
 
 	t.end();

From a08872d8c363fd0215da9e27ec4e75551f9d9f0e Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Sun, 14 Apr 2024 16:56:03 -0400
Subject: [PATCH 19/21] chore: fix array type

---
 .../@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js       | 2 +-
 .../blas/ext/base/dsnansum/benchmark/benchmark.native.js        | 2 +-
 .../blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js       | 2 +-
 .../ext/base/dsnansum/benchmark/benchmark.ndarray.native.js     | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
index fb4c6436abea..245dd49a4b27 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.js
@@ -40,7 +40,7 @@ var dsnansum = require( './../lib/dsnansum.js' );
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x = filledarrayBy( len, 'float64', rand );
+	var x = filledarrayBy( len, 'float32', rand );
 	return benchmark;
 
 	function rand() {
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
index d78ded87c31a..4517b40cfc88 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.native.js
@@ -49,7 +49,7 @@ var opts = {
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x = filledarrayBy( len, 'float64', rand );
+	var x = filledarrayBy( len, 'float32', rand );
 	return benchmark;
 
 	function rand() {
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
index 702ac45bd595..6a29605b8cb7 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.js
@@ -40,7 +40,7 @@ var dsnansum = require( './../lib/ndarray.js' );
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x = filledarrayBy( len, 'float64', rand );
+	var x = filledarrayBy( len, 'float32', rand );
 	return benchmark;
 
 	function rand() {
diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
index 1c1940b7361a..6f3cc8496bde 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/benchmark/benchmark.ndarray.native.js
@@ -49,7 +49,7 @@ var opts = {
 * @returns {Function} benchmark function
 */
 function createBenchmark( len ) {
-	var x = filledarrayBy( len, 'float64', rand );
+	var x = filledarrayBy( len, 'float32', rand );
 	return benchmark;
 
 	function rand() {

From cbe8f3b09d8c421b8152c6a4abf802181df5521a Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Sun, 14 Apr 2024 17:13:20 -0400
Subject: [PATCH 20/21] fix: add dependency to manifest.json configs

---
 .../@stdlib/blas/ext/base/dsnansum/manifest.json          | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
index 4656310e3fd1..bc2721b09899 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
@@ -56,7 +56,9 @@
       "libraries": [
         "-lm"
       ],
-      "dependencies": []
+      "dependencies": [
+        "@stdlib/blas/ext/base/dsnansumpw"
+      ]
     },
     {
       "task": "examples",
@@ -70,7 +72,9 @@
         "-lm"
       ],
       "libpath": [],
-      "dependencies": []
+      "dependencies": [
+        "@stdlib/blas/ext/base/dsnansumpw"
+      ]
     }
   ]
 }

From 6d8e64930519acc06071f25362fd6c108fe79c40 Mon Sep 17 00:00:00 2001
From: Philipp Burckhardt <pburckhardt@outlook.com>
Date: Sun, 14 Apr 2024 17:15:28 -0400
Subject: [PATCH 21/21] fix: add missing field

---
 lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
index bc2721b09899..912c4d6e8192 100644
--- a/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
+++ b/lib/node_modules/@stdlib/blas/ext/base/dsnansum/manifest.json
@@ -56,6 +56,7 @@
       "libraries": [
         "-lm"
       ],
+      "libpath": [],
       "dependencies": [
         "@stdlib/blas/ext/base/dsnansumpw"
       ]