diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md index 522eb711cad6..71cd4528f6ec 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/README.md @@ -59,9 +59,8 @@ Computes the sum of absolute values ([_L1_ norm][l1norm]) of double-precision fl var Float64Array = require( '@stdlib/array/float64' ); var x = new Float64Array( [ 1.0, -2.0, NaN, 2.0 ] ); -var N = x.length; -var v = dnanasumors( N, x, 1 ); +var v = dnanasumors( x.length, x, 1 ); // returns 5.0 ``` @@ -69,9 +68,9 @@ The function has the following parameters: - **N**: number of indexed elements. - **x**: input [`Float64Array`][@stdlib/array/float64]. -- **strideX**: index increment for `x`. +- **strideX**: stride length. -The `N` and stride parameters determine which elements in the strided array are accessed at runtime. For example, to compute the sum of absolute values ([_L1_ norm][l1norm]) for every other element in `x`, +The `N` and stride parameters determine which elements in the strided array are accessed at runtime. For example, to compute the sum of absolute values ([_L1_ norm][l1norm]) for every other element: ```javascript var Float64Array = require( '@stdlib/array/float64' ); @@ -104,17 +103,16 @@ Computes the sum of absolute values ([_L1_ norm][l1norm]) of double-precision fl var Float64Array = require( '@stdlib/array/float64' ); var x = new Float64Array( [ 1.0, -2.0, NaN, 2.0 ] ); -var N = x.length; -var v = dnanasumors.ndarray( N, x, 1, 0 ); +var v = dnanasumors.ndarray( x.length, x, 1, 0 ); // returns 5.0 ``` The function has the following additional parameters: -- **offsetX**: starting index for `x`. +- **offsetX**: starting index. -While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying buffer, the offset parameter supports indexing semantics based on a starting index. For example, to calculate the sum of absolute values ([_L1_ norm][l1norm]) for every other value in `x` starting from the second value +While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying buffer, the offset parameter supports indexing semantics based on a starting index. For example, to calculate the sum of absolute values ([_L1_ norm][l1norm]) for every other value in the strided array starting from the second value: ```javascript var Float64Array = require( '@stdlib/array/float64' ); @@ -153,7 +151,7 @@ var filledarrayBy = require( '@stdlib/array/filled-by' ); var dnanasumors = require( '@stdlib/blas/ext/base/dnanasumors' ); function rand() { - if ( bernoulli( 0.5 ) < 0.2 ) { + if ( bernoulli( 0.5 ) < 1 ) { return NaN; } return discreteUniform( 0, 100 ); @@ -211,7 +209,7 @@ The function accepts the following arguments: - **N**: `[in] CBLAS_INT` number of indexed elements. - **X**: `[in] double*` input array. -- **strideX**: `[in] CBLAS_INT` index increment for `X`. +- **strideX**: `[in] CBLAS_INT` stride length. ```c double stdlib_strided_dnanasumors( const CBLAS_INT N, const double *X, const CBLAS_INT strideX ); @@ -232,8 +230,8 @@ The function accepts the following arguments: - **N**: `[in] CBLAS_INT` number of indexed elements. - **X**: `[in] double*` input array. -- **strideX**: `[in] CBLAS_INT` index increment for `X`. -- **offsetX**: `[in] CBLAS_INT` starting index for `X`. +- **strideX**: `[in] CBLAS_INT` stride length. +- **offsetX**: `[in] CBLAS_INT` starting index. ```c double stdlib_strided_dnanasumors_ndarray( const CBLAS_INT N, const double *X, const CBLAS_INT strideX, const CBLAS_INT offsetX ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js index 768ecaa02352..cd80d8738dfd 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.js @@ -32,6 +32,19 @@ var dnanasumors = require( './../lib/dnanasumors.js' ); // FUNCTIONS // +/** +* Returns a random number. +* +* @private +* @returns {number} random number +*/ +function rand() { + if ( bernoulli( 0.5 ) < 1 ) { + return uniform( -10.0, 10.0 ); + } + return NaN; +} + /** * Creates a benchmark function. * @@ -43,13 +56,6 @@ function createBenchmark( len ) { var x = filledarrayBy( len, 'float64', rand ); return benchmark; - function rand() { - if ( bernoulli( 0.2 ) ) { - return NaN; - } - return uniform( -10.0, 10.0 ); - } - function benchmark( b ) { var v; var i; diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js index 422e0a9a3c9a..3b032d9d201d 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.native.js @@ -41,6 +41,19 @@ var opts = { // FUNCTIONS // +/** +* Returns a random number. +* +* @private +* @returns {number} random number +*/ +function rand() { + if ( bernoulli( 0.5 ) < 1 ) { + return uniform( -10.0, 10.0 ); + } + return NaN; +} + /** * Creates a benchmark function. * @@ -52,13 +65,6 @@ function createBenchmark( len ) { var x = filledarrayBy( len, 'float64', rand ); return benchmark; - function rand() { - if ( bernoulli( 0.2 ) ) { - return NaN; - } - return uniform( -10.0, 10.0 ); - } - function benchmark( b ) { var v; var i; diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js index 26c2d060db8c..16eeeb8c3923 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.js @@ -32,6 +32,19 @@ var dnanasumors = require( './../lib/ndarray.js' ); // FUNCTIONS // +/** +* Returns a random number. +* +* @private +* @returns {number} random number +*/ +function rand() { + if ( bernoulli( 0.5 ) < 1 ) { + return uniform( -10.0, 10.0 ); + } + return NaN; +} + /** * Creates a benchmark function. * @@ -43,13 +56,6 @@ function createBenchmark( len ) { var x = filledarrayBy( len, 'float64', rand ); return benchmark; - function rand() { - if ( bernoulli( 0.2 ) ) { - return NaN; - } - return uniform( -10.0, 10.0 ); - } - function benchmark( b ) { var v; var i; diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js index b1d362b64053..b627a919da10 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/benchmark/benchmark.ndarray.native.js @@ -41,6 +41,19 @@ var opts = { // FUNCTIONS // +/** +* Returns a random number. +* +* @private +* @returns {number} random number +*/ +function rand() { + if ( bernoulli( 0.5 ) < 1 ) { + return uniform( -10.0, 10.0 ); + } + return NaN; +} + /** * Creates a benchmark function. * @@ -52,13 +65,6 @@ function createBenchmark( len ) { var x = filledarrayBy( len, 'float64', rand ); return benchmark; - function rand() { - if ( bernoulli( 0.2 ) ) { - return NaN; - } - return uniform( -10.0, 10.0 ); - } - function benchmark( b ) { var v; var i; diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/docs/repl.txt b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/docs/repl.txt index 676d8103545a..e1ecf3d4eaab 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/docs/repl.txt +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/docs/repl.txt @@ -4,8 +4,8 @@ point strided array elements, ignoring `NaN` values and using ordinary recursive summation. - The `N` and stride parameters determine which elements in `x` are accessed - at runtime. + The `N` and stride parameters determine which elements in the strided array + are accessed at runtime. Indexing is relative to the first index. To introduce an offset, use a typed array view. @@ -21,7 +21,7 @@ Input array. strideX: integer - Index increment. + Stride length. Returns ------- @@ -35,19 +35,15 @@ > {{alias}}( x.length, x, 1 ) 5.0 - // Using `N` and `stride` parameters: + // Using `N` and stride parameters: > x = new {{alias:@stdlib/array/float64}}( [ -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}}( 4, x, 2 ) 5.0 // Using view offsets: > var x0 = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0, NaN, NaN ] ); > var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); - > N = {{alias:@stdlib/math/base/special/floor}}( x0.length / 2 ); - > stride = 2; - > {{alias}}( N, x1, stride ) + > {{alias}}( 4, x1, 2 ) 5.0 @@ -69,7 +65,7 @@ Input array. strideX: integer - Index increment. + Stride length. offsetX: integer Starting index. @@ -88,8 +84,7 @@ // Using offset parameter: > var x = new {{alias:@stdlib/array/float64}}( [ 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 ) + > {{alias}}.ndarray( 4, x, 2, 1 ) 5.0 See Also diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js index df894c215928..a53e81fd3d34 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/examples/index.js @@ -24,7 +24,7 @@ var filledarrayBy = require( '@stdlib/array/filled-by' ); var dnanasumors = require( './../lib' ); function rand() { - if ( bernoulli( 0.2 ) ) { + if ( bernoulli( 0.5 ) < 1 ) { return NaN; } return discreteUniform( 0, 100 ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/dnanasumors.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/dnanasumors.js index 3dac0f10b217..a23074804d53 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/dnanasumors.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/dnanasumors.js @@ -38,9 +38,8 @@ var ndarray = require( './ndarray.js' ); * var Float64Array = require( '@stdlib/array/float64' ); * * var x = new Float64Array( [ 1.0, -2.0, NaN, 2.0 ] ); -* var N = x.length; * -* var v = dnanasumors( N, x, 1 ); +* var v = dnanasumors( x.length, x, 1 ); * // returns 5.0 */ function dnanasumors( N, x, strideX ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/dnanasumors.native.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/dnanasumors.native.js index f796b2adbe22..2d36518c624e 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/dnanasumors.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/dnanasumors.native.js @@ -37,9 +37,8 @@ var addon = require( './../src/addon.node' ); * var Float64Array = require( '@stdlib/array/float64' ); * * var x = new Float64Array( [ 1.0, -2.0, NaN, 2.0 ] ); -* var N = x.length; * -* var v = dnanasumors( N, x, 1 ); +* var v = dnanasumors( x.length, x, 1 ); * // returns 5.0 */ function dnanasumors( N, x, strideX ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/index.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/index.js index b50cb8cb8491..9f0991d3643f 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/index.js @@ -28,9 +28,8 @@ * var dnanasumors = require( '@stdlib/blas/ext/base/dnanasumors' ); * * var x = new Float64Array( [ 1.0, -2.0, NaN, 2.0 ] ); -* var N = x.length; * -* var v = dnanasumors( N, x, 1 ); +* var v = dnanasumors( x.length, x, 1 ); * // returns 5.0 * * @example diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/ndarray.js index 2143c9cb38f0..ab96eb26b0d3 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/lib/ndarray.js @@ -31,7 +31,7 @@ var abs = require( '@stdlib/math/base/special/abs' ); * * @param {PositiveInteger} N - number of indexed elements * @param {Float64Array} x - input array -* @param {integer} strideX - index increment +* @param {integer} strideX - stride length * @param {NonNegativeInteger} offsetX - starting index * @returns {number} sum * @@ -52,13 +52,13 @@ function dnanasumors( N, x, strideX, offsetX ) { if ( N <= 0 ) { return 0.0; } + ix = offsetX; if ( strideX === 0 ) { - if ( isnan( x[ offsetX ] ) ) { + if ( isnan( x[ ix ] ) ) { return 0.0; } - return abs( x[ offsetX ] ) * N; + return abs( x[ ix ] ) * N; } - ix = offsetX; sum = 0.0; for ( i = 0; i < N; i++ ) { v = x[ ix ]; diff --git a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/src/main.c b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/src/main.c index 18fa271cfd46..eeb1c7c34adc 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/src/main.c +++ b/lib/node_modules/@stdlib/blas/ext/base/dnanasumors/src/main.c @@ -40,7 +40,7 @@ double API_SUFFIX(stdlib_strided_dnanasumors)( const CBLAS_INT N, const double * * * @param N number of indexed elements * @param X input array -* @param strideX index increment +* @param strideX stride length * @param offsetX starting index * @return output value */ @@ -53,13 +53,13 @@ double API_SUFFIX(stdlib_strided_dnanasumors_ndarray)( const CBLAS_INT N, const if ( N <= 0 ) { return 0.0; } + ix = offsetX; if ( strideX == 0 ) { - if ( stdlib_base_is_nan( X[ offsetX ] ) ) { + if ( stdlib_base_is_nan( X[ ix ] ) ) { return 0.0; } - return stdlib_base_abs( X[ offsetX ] ) * N; + return stdlib_base_abs( X[ ix ] ) * N; } - ix = offsetX; sum = 0.0; for ( i = 0; i < N; i++ ) { v = X[ ix ];