diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/README.md b/lib/node_modules/@stdlib/blas/base/dtrmv/README.md index 5491910065c..5a4f30f9aab 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/README.md +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/README.md @@ -20,7 +20,7 @@ limitations under the License. # dtrmv -> Perform one of the matrix-vector operations `x = A*x` or `x = A^T*x`, where `x` is an `N` element vector and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix. +> Perform one of the matrix-vector operations `x = A*x` or `x = A^T*x`.
@@ -127,7 +127,7 @@ dtrmv.ndarray( 'upper', 'no-transpose', 'unit', 3, A, 3, 1, 0, x, -1, 2 ); ## Notes -- `dtrmv()` corresponds to the [BLAS][blas] level 2 function [`dtrmv`][dtrmv]. +- `dtrmv()` corresponds to the [BLAS][blas] level 2 function [`dtrmv`][blas-dtrmv].
@@ -147,12 +147,15 @@ var opts = { 'dtype': 'float64' }; -var N = 3; +var N = 5; var A = discreteUniform( N*N, -10.0, 10.0, opts ); var x = discreteUniform( N, -10.0, 10.0, opts ); -dtrmv( 'row-major', 'upper', 'no-transpose', 'unit', 3, A, 3, x, 1 ); +dtrmv( 'column-major', 'upper', 'no-transpose', 'unit', N, A, N, x, 1 ); +console.log( x ); + +dtrmv.ndarray( 'upper', 'no-transpose', 'unit', N, A, 1, N, 0, x, 1, 0 ); console.log( x ); ``` @@ -244,7 +247,7 @@ TODO [blas]: http://www.netlib.org/blas -[dtrmv]: https://www.netlib.org/lapack/explore-html/d6/d1c/group__trmv_ga7b90369d2b2b19f78f168e10dd9eb8ad.html#ga7b90369d2b2b19f78f168e10dd9eb8ad +[blas-dtrmv]: https://www.netlib.org/lapack/explore-html/d6/d1c/group__trmv_ga7b90369d2b2b19f78f168e10dd9eb8ad.html#ga7b90369d2b2b19f78f168e10dd9eb8ad [mdn-float64array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/docs/repl.txt b/lib/node_modules/@stdlib/blas/base/dtrmv/docs/repl.txt index 59965c0e889..64b772a891b 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/docs/repl.txt +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/docs/repl.txt @@ -44,7 +44,7 @@ Returns ------- x: Float64Array - Output vector. + Input vector. Examples -------- @@ -103,7 +103,7 @@ Returns ------- x: Float64Array - Output array. + Input vector. Examples -------- diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/docs/types/index.d.ts b/lib/node_modules/@stdlib/blas/base/dtrmv/docs/types/index.d.ts index d0d9a8e0740..81e994ec341 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/docs/types/index.d.ts @@ -76,7 +76,7 @@ interface Routine { * dtrmv.ndarray( 'upper', 'no-transpose', 'non-unit', 3, A, 3, 1, 0, x, 1, 0 ); * // x => [ 14.0, 8.0, 3.0 ] */ - ndarray( uplo: MatrixTriangle, trans: TransposeOperation, diag: DiagonalType, N: number, A: Float64Array, LDA: number, x: Float64Array, strideX: number, offsetX: number ): Float64Array; + ndarray( uplo: MatrixTriangle, trans: TransposeOperation, diag: DiagonalType, N: number, A: Float64Array, strideA1: number, strideA2: number, offsetA: number, x: Float64Array, strideX: number, offsetX: number ): Float64Array; } /** diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/examples/index.js b/lib/node_modules/@stdlib/blas/base/dtrmv/examples/index.js index 470aacbfba7..79ad63ee323 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/examples/index.js +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/examples/index.js @@ -25,10 +25,13 @@ var opts = { 'dtype': 'float64' }; -var N = 3; +var N = 5; var A = discreteUniform( N*N, -10.0, 10.0, opts ); var x = discreteUniform( N, -10.0, 10.0, opts ); -dtrmv( 'row-major', 'upper', 'no-transpose', 'unit', 3, A, 3, x, 1 ); +dtrmv( 'column-major', 'upper', 'no-transpose', 'unit', N, A, N, x, 1 ); +console.log( x ); + +dtrmv.ndarray( 'upper', 'no-transpose', 'unit', N, A, 1, N, 0, x, 1, 0 ); console.log( x ); diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/lib/base.js b/lib/node_modules/@stdlib/blas/base/dtrmv/lib/base.js index 45646a3998c..e4e67c5c38c 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/lib/base.js +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/lib/base.js @@ -28,6 +28,7 @@ var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major' ); /** * Performs one of the matrix-vector operations `x = A*x` or `x = A^T*x`, where `x` is an `N` element vector and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix. * +* @private * @param {string} uplo - specifies whether `A` is an upper or lower triangular matrix * @param {string} trans - specifies whether `A` should be transposed, conjugate-transposed, or not transposed * @param {string} diag - specifies whether `A` has a unit diagonal @@ -77,8 +78,8 @@ function dtrmv( uplo, trans, diag, N, A, strideA1, strideA2, offsetA, x, strideX sa0 = strideA1; // stride for innermost loop sa1 = strideA2; // stride for outermost loop } - ox = offsetX; + if ( ( !isrm && trans === 'no-transpose' && uplo === 'upper' ) || ( isrm && trans !== 'no-transpose' && uplo === 'lower' ) @@ -145,27 +146,23 @@ function dtrmv( uplo, trans, diag, N, A, strideA1, strideA2, offsetA, x, strideX } return x; } - if ( - ( !isrm && trans !== 'no-transpose' && uplo === 'lower' ) || - ( isrm && trans === 'no-transpose' && uplo === 'upper' ) - ) { - ix1 = ox; - for ( i1 = 0; i1 < N; i1++ ) { - tmp = x[ ix1 ]; - oa = offsetA + (sa1*i1); - ix0 = ix1; - if ( nonunit ) { - tmp *= A[ oa+(sa0*i1) ]; - } - for ( i0 = i1+1; i0 < N; i0++ ) { - ix0 += strideX; - tmp += ( x[ ix0 ] * A[ oa+(sa0*i0) ] ); - } - x[ ix1 ] = tmp; - ix1 += strideX; + // ( !isrm && trans !== 'no-transpose' && uplo === 'lower' ) || ( isrm && trans === 'no-transpose' && uplo === 'upper' ) + ix1 = ox; + for ( i1 = 0; i1 < N; i1++ ) { + tmp = x[ ix1 ]; + oa = offsetA + (sa1*i1); + ix0 = ix1; + if ( nonunit ) { + tmp *= A[ oa+(sa0*i1) ]; } - return x; + for ( i0 = i1+1; i0 < N; i0++ ) { + ix0 += strideX; + tmp += ( x[ ix0 ] * A[ oa+(sa0*i0) ] ); + } + x[ ix1 ] = tmp; + ix1 += strideX; } + return x; } diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/lib/dtrmv.js b/lib/node_modules/@stdlib/blas/base/dtrmv/lib/dtrmv.js index b16b0048a7b..987510e68c1 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/lib/dtrmv.js +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/lib/dtrmv.js @@ -20,7 +20,7 @@ // MODULES // -var max = require( '@stdlib/math/base/special/max' ); +var max = require( '@stdlib/math/base/special/fast/max' ); var isLayout = require( '@stdlib/blas/base/assert/is-layout' ); var isMatrixTriangle = require( '@stdlib/blas/base/assert/is-matrix-triangle' ); var isTransposeOperation = require( '@stdlib/blas/base/assert/is-transpose-operation' ); @@ -45,7 +45,7 @@ var base = require( './base.js' ); * @param {Float64Array} x - input vector * @param {integer} strideX - `x` stride length * @throws {TypeError} first argument must be a valid order -* @throws {TypeError} second argument must specify whether the lower or upper triangular matrix is supplied +* @throws {TypeError} second argument must specify whether a lower or upper triangular matrix is supplied * @throws {TypeError} third argument must be a valid transpose operation * @throws {TypeError} fourth argument must be a valid diagonal type * @throws {RangeError} fifth argument must be a nonnegative integer diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/lib/ndarray.js b/lib/node_modules/@stdlib/blas/base/dtrmv/lib/ndarray.js index fdb3c6f9d4f..9036d43cb70 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/lib/ndarray.js @@ -43,7 +43,7 @@ var base = require( './base.js' ); * @param {Float64Array} x - input vector * @param {integer} strideX - `x` stride length * @param {NonNegativeInteger} offsetX - starting index for `x` -* @throws {TypeError} first argument must specify whether the lower or upper triangular matrix is supplied +* @throws {TypeError} first argument must specify whether a lower or upper triangular matrix is supplied * @throws {TypeError} second argument must be a valid transpose operation * @throws {TypeError} third argument must be a valid diagonal type * @throws {RangeError} fourth argument must be a nonnegative integer diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/package.json b/lib/node_modules/@stdlib/blas/base/dtrmv/package.json index 1ce52bfa158..ecf9053fd04 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/package.json +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/package.json @@ -1,7 +1,7 @@ { "name": "@stdlib/blas/base/dtrmv", "version": "0.0.0", - "description": "Perform one of the matrix-vector operations `x = A*x` or `x = A^T*x`, where `x` is an `N` element vector and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix.", + "description": "Perform one of the matrix-vector operations `x = A*x` or `x = A^T*x`.", "license": "Apache-2.0", "author": { "name": "The Stdlib Authors", diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.dtrmv.js b/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.dtrmv.js index 078293205d7..18bdc4c9e8e 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.dtrmv.js +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.dtrmv.js @@ -276,7 +276,7 @@ tape( 'the function throws an error if provided an invalid ninth argument', func } }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, lower, none, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, lower, none, non-unit)', function test( t ) { var expected; var data; var out; @@ -297,7 +297,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, lower, none, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, lower, none, non-unit)', function test( t ) { var expected; var data; var out; @@ -318,7 +318,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, lower, transpose, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, lower, transpose, non-unit)', function test( t ) { var expected; var data; var out; @@ -339,7 +339,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, lower, transpose, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, lower, transpose, non-unit)', function test( t ) { var expected; var data; var out; @@ -360,7 +360,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, lower, none, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, lower, none, unit)', function test( t ) { var expected; var data; var out; @@ -381,7 +381,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, lower, none, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, lower, none, unit)', function test( t ) { var expected; var data; var out; @@ -402,7 +402,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, lower, transpose, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, lower, transpose, unit)', function test( t ) { var expected; var data; var out; @@ -423,7 +423,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, lower, transpose, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, lower, transpose, unit)', function test( t ) { var expected; var data; var out; @@ -444,7 +444,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, upper, none, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, upper, none, non-unit)', function test( t ) { var expected; var data; var out; @@ -465,7 +465,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, upper, none, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, upper, none, non-unit)', function test( t ) { var expected; var data; var out; @@ -486,7 +486,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, upper, none, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, upper, none, unit)', function test( t ) { var expected; var data; var out; @@ -507,7 +507,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, upper, none, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, upper, none, unit)', function test( t ) { var expected; var data; var out; @@ -528,7 +528,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, upper, transpose, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, upper, transpose, non-unit)', function test( t ) { var expected; var data; var out; @@ -549,7 +549,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, upper, transpose, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, upper, transpose, non-unit)', function test( t ) { var expected; var data; var out; @@ -570,7 +570,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, upper, transpose, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, upper, transpose, unit)', function test( t ) { var expected; var data; var out; @@ -591,7 +591,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, upper, transpose, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, upper, transpose, unit)', function test( t ) { var expected; var data; var out; @@ -612,7 +612,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, sx=2)', function test( t ) { +tape( 'the function supports speciying an `x` stride (row-major)', function test( t ) { var expected; var data; var out; @@ -633,7 +633,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, sx=2)', function test( t ) { +tape( 'the function supports speciying an `x` stride (column-major)', function test( t ) { var expected; var data; var out; @@ -654,7 +654,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function returns a reference to the second input vector', function test( t ) { +tape( 'the function returns a reference to the input vector', function test( t ) { var data; var out; var a; @@ -671,7 +671,7 @@ tape( 'the function returns a reference to the second input vector', function te t.end(); }); -tape( 'if `N` is zero, the function returns the second input vector unchanged (row-major)', function test( t ) { +tape( 'if `N` is zero, the function returns the input vector unchanged (row-major)', function test( t ) { var expected; var data; var out; @@ -692,7 +692,7 @@ tape( 'if `N` is zero, the function returns the second input vector unchanged (r t.end(); }); -tape( 'if `N` is zero, the function returns the second input vector unchanged (column-major)', function test( t ) { +tape( 'if `N` is zero, the function returns the input vector unchanged (column-major)', function test( t ) { var expected; var data; var out; diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js index 94230df5fc3..9e4c9ea153f 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js @@ -234,7 +234,7 @@ tape( 'the function throws an error if provided an invalid tenth argument', func } }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, lower, none, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, lower, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; @@ -255,7 +255,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, lower, none, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, lower, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; @@ -276,7 +276,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, lower, transpose, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, lower, transpose, non-unit)', function test( t ) { var expected; var data; var out; @@ -297,7 +297,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, lower, transpose, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, lower, transpose, non-unit)', function test( t ) { var expected; var data; var out; @@ -318,7 +318,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, lower, none, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, lower, no-transpose, unit)', function test( t ) { var expected; var data; var out; @@ -339,7 +339,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, lower, none, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, lower, no-transpose, unit)', function test( t ) { var expected; var data; var out; @@ -360,7 +360,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, lower, transpose, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, lower, transpose, unit)', function test( t ) { var expected; var data; var out; @@ -381,7 +381,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, lower, transpose, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, lower, transpose, unit)', function test( t ) { var expected; var data; var out; @@ -402,7 +402,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, upper, none, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, upper, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; @@ -423,7 +423,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, upper, none, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, upper, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; @@ -444,7 +444,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, upper, none, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, upper, no-transpose, unit)', function test( t ) { var expected; var data; var out; @@ -465,7 +465,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, upper, none, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, upper, no-transpose, unit)', function test( t ) { var expected; var data; var out; @@ -486,7 +486,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, upper, transpose, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, upper, transpose, non-unit)', function test( t ) { var expected; var data; var out; @@ -507,7 +507,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, upper, transpose, non-unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, upper, transpose, non-unit)', function test( t ) { var expected; var data; var out; @@ -528,7 +528,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, upper, transpose, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (row-major, upper, transpose, unit)', function test( t ) { var expected; var data; var out; @@ -549,7 +549,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, upper, transpose, unit)', function test( t ) { +tape( 'the function performs one of the matrix-vector operations `x = A*x`, or `x = A^T*x` (column-major, upper, transpose, unit)', function test( t ) { var expected; var data; var out; @@ -570,7 +570,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (row-major, sx=2)', function test( t ) { +tape( 'the function supports specifying an `x` stride (row-major)', function test( t ) { var expected; var data; var out; @@ -591,7 +591,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x = A**T*x`, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` unit, or non-unit, upper or lower triangular matrix (column-major, sx=2)', function test( t ) { +tape( 'the function supports specifying an `x` stride (column-major)', function test( t ) { var expected; var data; var out; @@ -612,7 +612,7 @@ tape( 'the function performs one of the matrix-vector operation `x = A*x`, or `x t.end(); }); -tape( 'the function returns a reference to the second input vector', function test( t ) { +tape( 'the function returns a reference to the input vector', function test( t ) { var data; var out; var a; @@ -629,7 +629,7 @@ tape( 'the function returns a reference to the second input vector', function te t.end(); }); -tape( 'if `N` is zero, the function returns the second input vector unchanged (row-major)', function test( t ) { +tape( 'if `N` is zero, the function returns the input vector unchanged (row-major)', function test( t ) { var expected; var data; var out; @@ -650,7 +650,7 @@ tape( 'if `N` is zero, the function returns the second input vector unchanged (r t.end(); }); -tape( 'if `N` is zero, the function returns the second input vector unchanged (column-major)', function test( t ) { +tape( 'if `N` is zero, the function returns the input vector unchanged (column-major)', function test( t ) { var expected; var data; var out; @@ -671,7 +671,7 @@ tape( 'if `N` is zero, the function returns the second input vector unchanged (c t.end(); }); -tape( 'the function supports specifying stride of the first and the second dimension of `A` (row-major)', function test( t ) { +tape( 'the function supports specifying stride of the first and second dimensions of `A` (row-major)', function test( t ) { var expected; var data; var out; @@ -692,7 +692,7 @@ tape( 'the function supports specifying stride of the first and the second dimen t.end(); }); -tape( 'the function supports specifying stride of the first and the second dimension of `A` (column-major)', function test( t ) { +tape( 'the function supports specifying stride of the first and second dimensions of `A` (column-major)', function test( t ) { var expected; var data; var out; @@ -713,7 +713,7 @@ tape( 'the function supports specifying stride of the first and the second dimen t.end(); }); -tape( 'the function supports a negative `strideA1` parameter (row-major)', function test( t ) { +tape( 'the function supports a negative stride for the first dimension of `A` (row-major)', function test( t ) { var expected; var data; var out; @@ -734,7 +734,7 @@ tape( 'the function supports a negative `strideA1` parameter (row-major)', funct t.end(); }); -tape( 'the function supports a negative `strideA1` parameter (column-major)', function test( t ) { +tape( 'the function supports a negative stride for the first dimension of `A` (column-major)', function test( t ) { var expected; var data; var out; @@ -755,7 +755,7 @@ tape( 'the function supports a negative `strideA1` parameter (column-major)', fu t.end(); }); -tape( 'the function supports a negative `strideA2` parameter (row-major)', function test( t ) { +tape( 'the function supports a negative stride for the second dimension of `A` (row-major)', function test( t ) { var expected; var data; var out; @@ -776,7 +776,7 @@ tape( 'the function supports a negative `strideA2` parameter (row-major)', funct t.end(); }); -tape( 'the function supports a negative `strideA2` parameter (column-major)', function test( t ) { +tape( 'the function supports a negative stride for the second dimension of `A` (column-major)', function test( t ) { var expected; var data; var out; @@ -797,7 +797,7 @@ tape( 'the function supports a negative `strideA2` parameter (column-major)', fu t.end(); }); -tape( 'the function supports negative strides for `A` (row-major)', function test( t ) { +tape( 'the function supports negative strides for both dimensions of `A` (row-major)', function test( t ) { var expected; var data; var out; @@ -818,7 +818,7 @@ tape( 'the function supports negative strides for `A` (row-major)', function tes t.end(); }); -tape( 'the function supports negative strides for `A` (column-major)', function test( t ) { +tape( 'the function supports negative strides for both dimensions of `A` (column-major)', function test( t ) { var expected; var data; var out; @@ -881,7 +881,7 @@ tape( 'the function supports an `A` offset (column-major)', function test( t ) { t.end(); }); -tape( 'the function supports a negative `x` stride value (row-major)', function test( t ) { +tape( 'the function supports a negative `x` stride (row-major)', function test( t ) { var expected; var data; var out;