diff --git a/lib/node_modules/@stdlib/blas/base/dsymv/lib/dsymv.js b/lib/node_modules/@stdlib/blas/base/dsymv/lib/dsymv.js index 7795b9005465..8e76a5a4eec5 100644 --- a/lib/node_modules/@stdlib/blas/base/dsymv/lib/dsymv.js +++ b/lib/node_modules/@stdlib/blas/base/dsymv/lib/dsymv.js @@ -24,7 +24,7 @@ var dfill = require( '@stdlib/blas/ext/base/dfill' ); var dscal = require( '@stdlib/blas/base/dscal' ); var max = require( '@stdlib/math/base/special/max' ); var isLayout = require( '@stdlib/blas/base/assert/is-layout' ); -var isMatrixTriangle = require( '@stdlib/blas/base/assert/is-matrix-triangle' ); +var resolveStr = require( '@stdlib/blas/base/matrix-triangle-resolve-str' ); var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major-string' ); var isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major-string' ); @@ -35,7 +35,7 @@ var isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major-string * Performs the matrix-vector operation `y = alpha*A*x + beta*y` where `alpha` and `beta` are scalars, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` symmetric matrix. * * @param {string} order - storage layout -* @param {string} uplo - specifies whether the upper or lower triangular part of the symmetric matrix `A` should be referenced +* @param {(integer|string)} uplo - specifies whether the upper or lower triangular part of the symmetric matrix `A` should be referenced * @param {NonNegativeInteger} N - number of elements along each dimension of `A` * @param {number} alpha - scalar constant * @param {Float64Array} A - matrix @@ -78,11 +78,13 @@ function dsymv( order, uplo, N, alpha, A, LDA, x, strideX, beta, y, strideY ) { var i; var j; var k; + var u; if ( !isLayout( order ) ) { throw new TypeError( 'invalid argument. First argument must be a valid order. Value: `%s`.', order ); } - if ( !isMatrixTriangle( uplo ) ) { + u = resolveStr( uplo ); + if ( u === null ) { throw new TypeError( 'invalid argument. Second argument must specify whether to reference the lower or upper triangular matrix. Value: `%s`.', uplo ); } if ( N < 0 ) { @@ -128,8 +130,8 @@ function dsymv( order, uplo, N, alpha, A, LDA, x, strideX, beta, y, strideY ) { } // Form: y = alpha*A*x + y if ( - ( isRowMajor( order ) && uplo === 'upper' ) || - ( isColumnMajor( order ) && uplo === 'lower' ) + ( isRowMajor( order ) && u === 'upper' ) || + ( isColumnMajor( order ) && u === 'lower' ) ) { ix = ox; iy = oy; @@ -154,7 +156,7 @@ function dsymv( order, uplo, N, alpha, A, LDA, x, strideX, beta, y, strideY ) { } return y; } - // ( order === 'row-major' && uplo === 'lower') || ( order === 'column-major' && uplo === 'upper' ) + // ( order === 'row-major' && u === 'lower') || ( order === 'column-major' && u === 'upper' ) ix = ox + ( ( N - 1 ) * strideX ); iy = oy + ( ( N - 1 ) * strideY ); for ( i = N - 1; i >= 0; i-- ) { diff --git a/lib/node_modules/@stdlib/blas/base/dsymv/lib/ndarray.js b/lib/node_modules/@stdlib/blas/base/dsymv/lib/ndarray.js index ea6d8bf9fd3b..ce5ccd7bb535 100644 --- a/lib/node_modules/@stdlib/blas/base/dsymv/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dsymv/lib/ndarray.js @@ -24,7 +24,7 @@ var dfill = require( '@stdlib/blas/ext/base/dfill' ).ndarray; var dscal = require( '@stdlib/blas/base/dscal' ).ndarray; var max = require( '@stdlib/math/base/special/max' ); var isLayout = require( '@stdlib/blas/base/assert/is-layout' ); -var isMatrixTriangle = require( '@stdlib/blas/base/assert/is-matrix-triangle' ); +var resolveStr = require( '@stdlib/blas/base/matrix-triangle-resolve-str' ); var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major-string' ); var isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major-string' ); @@ -35,7 +35,7 @@ var isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major-string * Performs the matrix-vector operation `y = alpha*A*x + beta*y` where `alpha` and `beta` are scalars, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` symmetric matrix. * * @param {string} order - storage layout -* @param {string} uplo - specifies whether the upper or lower triangular part of the symmetric matrix `A` should be referenced +* @param {(integer|string)} uplo - specifies whether the upper or lower triangular part of the symmetric matrix `A` should be referenced * @param {NonNegativeInteger} N - number of elements along each dimension of `A` * @param {number} alpha - scalar constant * @param {Float64Array} A - matrix @@ -79,11 +79,13 @@ function dsymv( order, uplo, N, alpha, A, LDA, x, strideX, offsetX, beta, y, str var i; var j; var k; + var u; if ( !isLayout( order ) ) { throw new TypeError( 'invalid argument. First argument must be a valid order. Value: `%s`.', order ); } - if ( !isMatrixTriangle( uplo ) ) { + u = resolveStr( uplo ); + if ( u === null ) { throw new TypeError( 'invalid argument. Second argument must specify whether to reference the lower or upper triangular matrix. Value: `%s`.', uplo ); } if ( N < 0 ) { @@ -117,8 +119,8 @@ function dsymv( order, uplo, N, alpha, A, LDA, x, strideX, offsetX, beta, y, str // Form: y = alpha*A*x + y if ( - ( isRowMajor( order ) && uplo === 'upper' ) || - ( isColumnMajor( order ) && uplo === 'lower' ) + ( isRowMajor( order ) && u === 'upper' ) || + ( isColumnMajor( order ) && u === 'lower' ) ) { ix = ox; iy = oy; @@ -143,7 +145,7 @@ function dsymv( order, uplo, N, alpha, A, LDA, x, strideX, offsetX, beta, y, str } return y; } - // ( order === 'row-major' && uplo === 'lower') || ( order === 'column-major' && uplo === 'upper' ) + // ( order === 'row-major' && u === 'lower') || ( order === 'column-major' && u === 'upper' ) ix = ox + ( ( N - 1 ) * strideX ); iy = oy + ( ( N - 1 ) * strideY ); for ( i = N - 1; i >= 0; i-- ) {