diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/README.md b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/README.md index ea90804fcee6..69b401b8368e 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/README.md +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/README.md @@ -45,7 +45,7 @@ var Float64Array = require( '@stdlib/array/float64' ); var x = new Float64Array( [ 1.0, -2.0, 2.0 ] ); -var v = dapxsumkbn( 3, 5.0, x, 1 ); +var v = dapxsumkbn( x.length, 5.0, x, 1 ); // returns 16.0 ``` @@ -54,9 +54,9 @@ The function has the following parameters: - **N**: number of indexed elements. - **alpha**: scalar constant. - **x**: input [`Float64Array`][@stdlib/array/float64]. -- **strideX**: index increment for `x`. +- **strideX**: stride length for `x`. -The `N` and stride parameters determine which elements in the strided arrays are accessed at runtime. For example, to access every other element in `x`, +The `N` and stride parameters determine which elements in the strided arrays are accessed at runtime. For example, to access every other element: ```javascript var Float64Array = require( '@stdlib/array/float64' ); @@ -90,7 +90,7 @@ var Float64Array = require( '@stdlib/array/float64' ); var x = new Float64Array( [ 1.0, -2.0, 2.0 ] ); -var v = dapxsumkbn.ndarray( 3, 5.0, x, 1, 0 ); +var v = dapxsumkbn.ndarray( x.length, 5.0, x, 1, 0 ); // returns 16.0 ``` @@ -98,7 +98,7 @@ The function has the following additional parameters: - **offsetX**: starting index for `x`. -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 access 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 access every other element starting from the second element: ```javascript var Float64Array = require( '@stdlib/array/float64' ); @@ -188,7 +188,7 @@ The function accepts the following arguments: - **N**: `[in] CBLAS_INT` number of indexed elements. - **alpha**: `[in] double` scalar constant. - **X**: `[in] double*` input array. -- **strideX**: `[in] CBLAS_INT` index increment for `X`. +- **strideX**: `[in] CBLAS_INT` stride length for `X`. ```c double stdlib_strided_dapxsumkbn( const CBLAS_INT N, const double alpha, const double *X, const CBLAS_INT strideX ); @@ -210,7 +210,7 @@ The function accepts the following arguments: - **N**: `[in] CBLAS_INT` number of indexed elements. - **alpha**: `[in] double` scalar constant. - **X**: `[in] double*` input array. -- **strideX**: `[in] CBLAS_INT` index increment for `X`. +- **strideX**: `[in] CBLAS_INT` stride length for `X`. - **offsetX**: `[in] CBLAS_INT` starting index for `X`. ```c diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/benchmark/c/benchmark.length.c b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/benchmark/c/benchmark.length.c index da967ed7202d..7d4127f14cf0 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/benchmark/c/benchmark.length.c +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/benchmark/c/benchmark.length.c @@ -107,6 +107,7 @@ static double benchmark1( int iterations, int len ) { v = 0.0; t = tic(); for ( i = 0; i < iterations; i++ ) { + // cppcheck-suppress uninitvar v = stdlib_strided_dapxsumkbn( len, 5.0, x, 1 ); if ( v != v ) { printf( "should not return NaN\n" ); @@ -140,6 +141,7 @@ static double benchmark2( int iterations, int len ) { v = 0.0; t = tic(); for ( i = 0; i < iterations; i++ ) { + // cppcheck-suppress uninitvar v = stdlib_strided_dapxsumkbn_ndarray( len, 5.0, x, 1, 0 ); if ( v != v ) { printf( "should not return NaN\n" ); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/docs/repl.txt b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/docs/repl.txt index d148a4fc0499..a9236d7666aa 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/docs/repl.txt +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/docs/repl.txt @@ -18,13 +18,13 @@ Number of indexed elements. alpha: number - Constant. + Scalar constant. x: Float64Array Input array. strideX: integer - Index increment. + Stride length. Returns ------- @@ -38,7 +38,7 @@ > {{alias}}( x.length, 5.0, x, 1 ) 16.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 ] ); > {{alias}}( 3, 5.0, x, 2 ) 16.0 @@ -65,13 +65,13 @@ Number of indexed elements. alpha: number - Constant. + Scalar constant. x: Float64Array Input array. strideX: integer - Index increment. + Stride length. offsetX: integer Starting index. diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/docs/types/index.d.ts b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/docs/types/index.d.ts index 573dfc59dbad..592f08b70412 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/docs/types/index.d.ts @@ -26,7 +26,7 @@ interface Routine { * Adds a scalar constant to each double-precision floating-point strided array element and computes the sum using an improved Kahan–Babuška algorithm. * * @param N - number of indexed elements - * @param alpha - constant + * @param alpha - scalar constant * @param x - input array * @param strideX - stride length * @returns sum @@ -45,7 +45,7 @@ interface Routine { * Adds a scalar constant to each double-precision floating-point strided array element and computes the sum using an improved Kahan–Babuška algorithm and alternative indexing semantics. * * @param N - number of indexed elements - * @param alpha - constant + * @param alpha - scalar constant * @param x - input array * @param strideX - stride length * @param offsetX - starting index @@ -66,7 +66,7 @@ interface Routine { * Adds a scalar constant to each double-precision floating-point strided array element and computes the sum using an improved Kahan–Babuška algorithm. * * @param N - number of indexed elements -* @param alpha - constant +* @param alpha - scalar constant * @param x - input array * @param strideX - stride length * @returns sum diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/dapxsumkbn.js b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/dapxsumkbn.js index 41a8a5b5c306..b9eb481fd569 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/dapxsumkbn.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/dapxsumkbn.js @@ -38,7 +38,7 @@ var ndarray = require( './ndarray.js' ); * - Neumaier, Arnold. 1974. "Rounding Error Analysis of Some Methods for Summing Finite Sums." _Zeitschrift Für Angewandte Mathematik Und Mechanik_ 54 (1): 39–51. doi:[10.1002/zamm.19740540106](https://doi.org/10.1002/zamm.19740540106). * * @param {PositiveInteger} N - number of indexed elements -* @param {number} alpha - constant +* @param {number} alpha - scalar constant * @param {Float64Array} x - input array * @param {integer} strideX - stride length * @returns {number} sum @@ -47,9 +47,8 @@ var ndarray = require( './ndarray.js' ); * var Float64Array = require( '@stdlib/array/float64' ); * * var x = new Float64Array( [ 1.0, -2.0, 2.0 ] ); -* var N = x.length; * -* var v = dapxsumkbn( N, 5.0, x, 1 ); +* var v = dapxsumkbn( x.length, 5.0, x, 1 ); * // returns 16.0 */ function dapxsumkbn( N, alpha, x, strideX ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/dapxsumkbn.native.js b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/dapxsumkbn.native.js index 9612900f5982..2e9ff322c36d 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/dapxsumkbn.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/dapxsumkbn.native.js @@ -29,7 +29,7 @@ var addon = require( './../src/addon.node' ); * Adds a scalar constant to each double-precision floating-point strided array element and computes the sum using an improved Kahan–Babuška algorithm. * * @param {PositiveInteger} N - number of indexed elements -* @param {number} alpha - constant +* @param {number} alpha - scalar constant * @param {Float64Array} x - input array * @param {integer} strideX - stride length * @returns {number} sum @@ -38,9 +38,8 @@ var addon = require( './../src/addon.node' ); * var Float64Array = require( '@stdlib/array/float64' ); * * var x = new Float64Array( [ 1.0, -2.0, 2.0 ] ); -* var N = x.length; * -* var v = dapxsumkbn( N, 5.0, x, 1 ); +* var v = dapxsumkbn( x.length, 5.0, x, 1 ); * // returns 16.0 */ function dapxsumkbn( N, alpha, x, strideX ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/index.js b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/index.js index d92e82aaccec..4762389cfe53 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/index.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/index.js @@ -29,7 +29,7 @@ * * var x = new Float64Array( [ 1.0, -2.0, 2.0 ] ); * -* var v = dapxsumkbn( 3, 5.0, x, 1 ); +* var v = dapxsumkbn( x.length, 5.0, x, 1 ); * // returns 16.0 * * @example diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/ndarray.js index 9fcd45ed5707..f63434309f0c 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/ndarray.js @@ -37,7 +37,7 @@ var abs = require( '@stdlib/math/base/special/abs' ); * - Neumaier, Arnold. 1974. "Rounding Error Analysis of Some Methods for Summing Finite Sums." _Zeitschrift Für Angewandte Mathematik Und Mechanik_ 54 (1): 39–51. doi:[10.1002/zamm.19740540106](https://doi.org/10.1002/zamm.19740540106). * * @param {PositiveInteger} N - number of indexed elements -* @param {number} alpha - constant +* @param {number} alpha - scalar constant * @param {Float64Array} x - input array * @param {integer} strideX - stride length * @param {NonNegativeInteger} offsetX - starting index @@ -62,10 +62,10 @@ function dapxsumkbn( N, alpha, x, strideX, offsetX ) { if ( N <= 0 ) { return 0.0; } - if ( N === 1 || strideX === 0 ) { - return alpha + x[ offsetX ]; - } ix = offsetX; + if ( strideX === 0 ) { + return N * ( alpha + x[ ix ] ); + } sum = 0.0; c = 0.0; for ( i = 0; i < N; i++ ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/ndarray.native.js index 3dcf0912d212..6ff56bb9f155 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/lib/ndarray.native.js @@ -29,7 +29,7 @@ var addon = require( './../src/addon.node' ); * Adds a scalar constant to each double-precision floating-point strided array element and computes the sum using an improved Kahan–Babuška algorithm. * * @param {PositiveInteger} N - number of indexed elements -* @param {number} alpha - constant +* @param {number} alpha - scalar constant * @param {Float64Array} x - input array * @param {integer} strideX - stride length * @param {NonNegativeInteger} offsetX - starting index diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/src/main.c b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/src/main.c index ca6cd8c6cbc9..9148f3dacf21 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/src/main.c +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/src/main.c @@ -47,9 +47,9 @@ double API_SUFFIX(stdlib_strided_dapxsumkbn)( const CBLAS_INT N, const double al * Adds a scalar constant to each double-precision floating-point strided array element and computes the sum using an improved Kahan–Babuška algorithm and alternative indexing semantics. * * @param N number of indexed elements -* @param alpha scalar +* @param alpha scalar constant * @param X input array -* @param strideX index increment +* @param strideX stride length * @param offsetX starting index */ double API_SUFFIX(stdlib_strided_dapxsumkbn_ndarray)( const CBLAS_INT N, const double alpha, const double *X, const CBLAS_INT strideX, const CBLAS_INT offsetX ) { @@ -63,10 +63,10 @@ double API_SUFFIX(stdlib_strided_dapxsumkbn_ndarray)( const CBLAS_INT N, const d if ( N <= 0 ) { return 0.0; } - if ( N == 1 || strideX == 0 ) { - return alpha + X[ offsetX ]; - } ix = offsetX; + if ( strideX == 0 ) { + return N * ( alpha + X[ ix ] ); + } sum = 0.0; c = 0.0; for ( i = 0; i < N; i++ ) { diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.dapxsumkbn.js b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.dapxsumkbn.js index d77d6e304bfb..d9cc0b50f93b 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.dapxsumkbn.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.dapxsumkbn.js @@ -135,14 +135,14 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) t.end(); }); -tape( 'if provided a `stride` parameter equal to `0`, the function returns the first element plus a constant', function test( t ) { +tape( 'if provided a `stride` parameter equal to `0`, the function returns the first element plus a constant repeated N times', function test( t ) { var x; var v; x = new Float64Array( [ 1.0, -2.0, -4.0, 5.0, 3.0 ] ); v = dapxsumkbn( x.length, 5.0, x, 0 ); - t.strictEqual( v, 6.0, 'returns expected value' ); + t.strictEqual( v, x.length * (x[0]+5.0), 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.dapxsumkbn.native.js b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.dapxsumkbn.native.js index 9b5276b82135..bf9bfe34b7a6 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.dapxsumkbn.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.dapxsumkbn.native.js @@ -253,14 +253,14 @@ tape( 'the function supports a negative `stride` parameter', opts, function test t.end(); }); -tape( 'if provided a `stride` parameter equal to `0`, the function returns the first element plus a constant', opts, function test( t ) { +tape( 'if provided a `stride` parameter equal to `0`, the function returns the first element plus a constant repeated N times', opts, function test( t ) { var x; var v; x = new Float64Array( [ 1.0, -2.0, -4.0, 5.0, 3.0 ] ); v = dapxsumkbn( x.length, 5.0, x, 0 ); - t.strictEqual( v, 6.0, 'returns expected value' ); + t.strictEqual( v, x.length * (x[0]+5.0), 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.ndarray.js index 2ba7edc195fa..0cff72deb932 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.ndarray.js @@ -135,14 +135,14 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) t.end(); }); -tape( 'if provided a `stride` parameter equal to `0`, the function returns the first indexed element plus a constant', function test( t ) { +tape( 'if provided a `stride` parameter equal to `0`, the function returns the first element plus a constant repeated N times', function test( t ) { var x; var v; x = new Float64Array( [ 1.0, -2.0, -4.0, 5.0, 3.0 ] ); v = dapxsumkbn( x.length, 5.0, x, 0, 0 ); - t.strictEqual( v, 6.0, 'returns expected value' ); + t.strictEqual( v, x.length * (x[0]+5.0), 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.ndarray.native.js index 179476d28604..e2ae2a3f8658 100644 --- a/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/ext/base/dapxsumkbn/test/test.ndarray.native.js @@ -144,14 +144,14 @@ tape( 'the function supports a negative `stride` parameter', opts, function test t.end(); }); -tape( 'if provided a `stride` parameter equal to `0`, the function returns the first indexed element plus a constant', opts, function test( t ) { +tape( 'if provided a `stride` parameter equal to `0`, the function returns the first element plus a constant repeated N times', opts, function test( t ) { var x; var v; x = new Float64Array( [ 1.0, -2.0, -4.0, 5.0, 3.0 ] ); v = dapxsumkbn( x.length, 5.0, x, 0, 0 ); - t.strictEqual( v, 6.0, 'returns expected value' ); + t.strictEqual( v, x.length * (x[0]+5.0), 'returns expected value' ); t.end(); });