diff --git a/lib/node_modules/@stdlib/blas/base/sspmv/lib/ndarray.js b/lib/node_modules/@stdlib/blas/base/sspmv/lib/ndarray.js index 2b88c58748cd..a287a0107e83 100644 --- a/lib/node_modules/@stdlib/blas/base/sspmv/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/sspmv/lib/ndarray.js @@ -24,7 +24,7 @@ var sfill = require( '@stdlib/blas/ext/base/sfill' ).ndarray; var sscal = require( '@stdlib/blas/base/sscal' ).ndarray; var f32 = require( '@stdlib/number/float64/base/to-float32' ); 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 supplied in packed form. * * @param {string} order - storage layout -* @param {string} uplo - specifies whether the upper or lower triangular part of the symmetric matrix `A` is supplied +* @param {(integer|string)} uplo - specifies whether the upper or lower triangular part of the symmetric matrix `A` is supplied * @param {NonNegativeInteger} N - number of elements along each dimension of `A` * @param {number} alpha - scalar constant * @param {Float32Array} AP - packed form of a symmetric matrix `A` @@ -75,11 +75,13 @@ function sspmv( order, uplo, N, alpha, AP, x, strideX, offsetX, beta, y, strideY var ky; 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 the lower or upper triangular matrix is supplied. Value: `%s`.', uplo ); } if ( N < 0 ) { @@ -110,8 +112,8 @@ function sspmv( order, uplo, N, alpha, AP, x, strideX, offsetX, beta, y, strideY ky = offsetY; kk = 0; if ( - ( isRowMajor( order ) && uplo === 'upper' ) || - ( isColumnMajor( order ) && uplo === 'lower' ) + ( isRowMajor( order ) && u === 'upper' ) || + ( isColumnMajor( order ) && u === 'lower' ) ) { jx = kx; jy = ky; @@ -134,7 +136,7 @@ function sspmv( order, uplo, N, alpha, AP, x, strideX, offsetX, 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' ) jx = kx; jy = ky; for ( j = 0; j < N; j++ ) { diff --git a/lib/node_modules/@stdlib/blas/base/sspmv/lib/sspmv.js b/lib/node_modules/@stdlib/blas/base/sspmv/lib/sspmv.js index 112cbce9d642..b734c42af285 100644 --- a/lib/node_modules/@stdlib/blas/base/sspmv/lib/sspmv.js +++ b/lib/node_modules/@stdlib/blas/base/sspmv/lib/sspmv.js @@ -24,7 +24,7 @@ var sfill = require( '@stdlib/blas/ext/base/sfill' ); var sscal = require( '@stdlib/blas/base/sscal' ); var f32 = require( '@stdlib/number/float64/base/to-float32' ); 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 supplied in packed form. * * @param {string} order - storage layout -* @param {string} uplo - specifies whether the upper or lower triangular part of the symmetric matrix `A` is supplied +* @param {(integer|string)} uplo - specifies whether the upper or lower triangular part of the symmetric matrix `A` is supplied * @param {NonNegativeInteger} N - number of elements along each dimension of `A` * @param {number} alpha - scalar constant * @param {Float32Array} AP - packed form of a symmetric matrix `A` @@ -74,11 +74,13 @@ function sspmv( order, uplo, N, alpha, AP, x, strideX, beta, y, strideY ) { var sy; 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 the lower or upper triangular matrix is supplied. Value: `%s`.', uplo ); } if ( N < 0 ) { @@ -121,8 +123,8 @@ function sspmv( order, uplo, N, alpha, AP, x, strideX, beta, y, strideY ) { // Form: y = alpha*A*x + y kk = 0; if ( - ( isRowMajor( order ) && uplo === 'upper' ) || - ( isColumnMajor( order ) && uplo === 'lower' ) + ( isRowMajor( order ) && u === 'upper' ) || + ( isColumnMajor( order ) && u === 'lower' ) ) { jx = kx; jy = ky; @@ -145,7 +147,7 @@ function sspmv( order, uplo, N, alpha, AP, 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' ) jx = kx; jy = ky; for ( j = 0; j < N; j++ ) {