From d2579d6d7dfcf2b715f420abeaceea6f5fc74466 Mon Sep 17 00:00:00 2001 From: kaustubh Date: Thu, 16 Jul 2026 23:55:40 +0530 Subject: [PATCH 1/2] refactor: add support for enums in blas/base/dsymv --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: na - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/blas/base/dsymv/lib/dsymv.js | 12 +++++++----- .../@stdlib/blas/base/dsymv/lib/ndarray.js | 12 +++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) 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..233e5789394a 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; 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..384f03352078 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; From 3dd44cf6f8478fa74010c21982715d98b7425a1d Mon Sep 17 00:00:00 2001 From: Athan Date: Thu, 16 Jul 2026 13:22:52 -0700 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- lib/node_modules/@stdlib/blas/base/dsymv/lib/dsymv.js | 2 +- lib/node_modules/@stdlib/blas/base/dsymv/lib/ndarray.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 233e5789394a..8e76a5a4eec5 100644 --- a/lib/node_modules/@stdlib/blas/base/dsymv/lib/dsymv.js +++ b/lib/node_modules/@stdlib/blas/base/dsymv/lib/dsymv.js @@ -156,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 384f03352078..ce5ccd7bb535 100644 --- a/lib/node_modules/@stdlib/blas/base/dsymv/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dsymv/lib/ndarray.js @@ -145,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-- ) {