From dfa1b82944d42fd8e5b02763d435dc66fc7a072e Mon Sep 17 00:00:00 2001 From: kaustubh Date: Thu, 14 May 2026 18:47:17 +0530 Subject: [PATCH 1/3] docs: replace isMatrixTranspose with resolveStr in blas/base/dgemm --- .../@stdlib/blas/base/dgemm/lib/dgemm.js | 12 ++++++++---- .../@stdlib/blas/base/dgemm/lib/ndarray.js | 13 +++++++++---- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js b/lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js index 6bb253c98777..735757fa3a16 100644 --- a/lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js +++ b/lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js @@ -22,7 +22,7 @@ var max = require( '@stdlib/math/base/special/fast/max' ); var isLayout = require( '@stdlib/blas/base/assert/is-layout' ); -var isMatrixTranspose = require( '@stdlib/blas/base/assert/is-transpose-operation' ); +var resolveStr = require( '@stdlib/blas/base/transpose-operation-resolve-str' ); var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major-string' ); var isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major-string' ); var format = require( '@stdlib/string/format' ); @@ -72,6 +72,8 @@ var base = require( './base.js' ); function dgemm( order, transA, transB, M, N, K, alpha, A, LDA, B, LDB, beta, C, LDC ) { // eslint-disable-line max-params, max-len var nrowsa; var nrowsb; + var ta; + var tb; var valc; var isrm; var iscm; @@ -85,10 +87,12 @@ function dgemm( order, transA, transB, M, N, K, alpha, A, LDA, B, LDB, beta, C, if ( !isLayout( order ) ) { throw new TypeError( format( 'invalid argument. First argument must be a valid order. Value: `%s`.', order ) ); } - if ( !isMatrixTranspose( transA ) ) { + ta = resolveStr( transA ); + if ( ta === null ) { throw new TypeError( format( 'invalid argument. Second argument must be a valid transpose operation. Value: `%s`.', transA ) ); } - if ( !isMatrixTranspose( transB ) ) { + tb = resolveStr( transB ); + if ( tb === null ) { throw new TypeError( format( 'invalid argument. Third argument must be a valid transpose operation. Value: `%s`.', transB ) ); } if ( M < 0 ) { @@ -147,7 +151,7 @@ function dgemm( order, transA, transB, M, N, K, alpha, A, LDA, B, LDB, beta, C, sc1 = LDC; sc2 = 1; } - return base( transA, transB, M, N, K, alpha, A, sa1, sa2, 0, B, sb1, sb2, 0, beta, C, sc1, sc2, 0 ); // eslint-disable-line max-len + return base( ta, tb, M, N, K, alpha, A, sa1, sa2, 0, B, sb1, sb2, 0, beta, C, sc1, sc2, 0 ); // eslint-disable-line max-len } diff --git a/lib/node_modules/@stdlib/blas/base/dgemm/lib/ndarray.js b/lib/node_modules/@stdlib/blas/base/dgemm/lib/ndarray.js index a4470f003074..5632f14790ad 100644 --- a/lib/node_modules/@stdlib/blas/base/dgemm/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dgemm/lib/ndarray.js @@ -20,7 +20,7 @@ // MODULES // -var isMatrixTranspose = require( '@stdlib/blas/base/assert/is-transpose-operation' ); +var resolveStr = require( '@stdlib/blas/base/transpose-operation-resolve-str' ); var format = require( '@stdlib/string/format' ); var base = require( './base.js' ); @@ -69,10 +69,15 @@ var base = require( './base.js' ); * // C => [ 2.0, 5.0, 6.0, 11.0 ] */ function dgemm( transA, transB, M, N, K, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB, beta, C, strideC1, strideC2, offsetC ) { // eslint-disable-line max-params, max-len - if ( !isMatrixTranspose( transA ) ) { + var ta; + var tb; + + ta = resolveStr( transA ); + if ( ta === null ) { throw new TypeError( format( 'invalid argument. First argument must be a valid transpose operation. Value: `%s`.', transA ) ); } - if ( !isMatrixTranspose( transB ) ) { + tb = resolveStr( transB ); + if ( tb === null ) { throw new TypeError( format( 'invalid argument. Second argument must be a valid transpose operation. Value: `%s`.', transB ) ); } if ( M < 0 ) { @@ -90,7 +95,7 @@ function dgemm( transA, transB, M, N, K, alpha, A, strideA1, strideA2, offsetA, if ( strideC2 === 0 ) { throw new RangeError( format( 'invalid argument. Eighteenth argument must be non-zero. Value: `%d`.', strideC2 ) ); } - return base( transA, transB, M, N, K, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB, beta, C, strideC1, strideC2, offsetC ); // eslint-disable-line max-len + return base( ta, tb, M, N, K, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB, beta, C, strideC1, strideC2, offsetC ); // eslint-disable-line max-len } From cd33dfa41a3e68d5eb124280ac90fe5760964c9f Mon Sep 17 00:00:00 2001 From: kaustubh Date: Thu, 14 May 2026 18:52:32 +0530 Subject: [PATCH 2/3] fix variable declaration --- lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js b/lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js index 735757fa3a16..1579474a9a4b 100644 --- a/lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js +++ b/lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js @@ -72,8 +72,6 @@ var base = require( './base.js' ); function dgemm( order, transA, transB, M, N, K, alpha, A, LDA, B, LDB, beta, C, LDC ) { // eslint-disable-line max-params, max-len var nrowsa; var nrowsb; - var ta; - var tb; var valc; var isrm; var iscm; @@ -83,6 +81,8 @@ function dgemm( order, transA, transB, M, N, K, alpha, A, LDA, B, LDB, beta, C, var sb2; var sc1; var sc2; + var ta; + var tb; if ( !isLayout( order ) ) { throw new TypeError( format( 'invalid argument. First argument must be a valid order. Value: `%s`.', order ) ); From 09f5bbdc0f203883b2883efab8c8cfe6412d1fb3 Mon Sep 17 00:00:00 2001 From: Athan Date: Thu, 14 May 2026 16:50:22 -0700 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js | 4 ++-- lib/node_modules/@stdlib/blas/base/dgemm/lib/ndarray.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js b/lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js index 1579474a9a4b..d0b5711d5c16 100644 --- a/lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js +++ b/lib/node_modules/@stdlib/blas/base/dgemm/lib/dgemm.js @@ -35,8 +35,8 @@ var base = require( './base.js' ); * Performs the matrix-matrix operation `C = α*op(A)*op(B) + β*C` where `op(X)` is either `op(X) = X` or `op(X) = X^T`, `α` and `β` are scalars, `A`, `B`, and `C` are matrices, with `op(A)` an `M` by `K` matrix, `op(B)` a `K` by `N` matrix, and `C` an `M` by `N` matrix. * * @param {string} order - storage layout -* @param {string} transA - specifies whether `A` should be transposed, conjugate-transposed, or not transposed -* @param {string} transB - specifies whether `B` should be transposed, conjugate-transposed, or not transposed +* @param {(integer|string)} transA - specifies whether `A` should be transposed, conjugate-transposed, or not transposed +* @param {(integer|string)} transB - specifies whether `B` should be transposed, conjugate-transposed, or not transposed * @param {NonNegativeInteger} M - number of rows in the matrix `op(A)` and in the matrix `C` * @param {NonNegativeInteger} N - number of columns in the matrix `op(B)` and in the matrix `C` * @param {NonNegativeInteger} K - number of columns in the matrix `op(A)` and number of rows in the matrix `op(B)` diff --git a/lib/node_modules/@stdlib/blas/base/dgemm/lib/ndarray.js b/lib/node_modules/@stdlib/blas/base/dgemm/lib/ndarray.js index 5632f14790ad..2e8e7891117d 100644 --- a/lib/node_modules/@stdlib/blas/base/dgemm/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dgemm/lib/ndarray.js @@ -30,8 +30,8 @@ var base = require( './base.js' ); /** * Performs the matrix-matrix operation `C = α*op(A)*op(B) + β*C` where `op(X)` is either `op(X) = X` or `op(X) = X^T`, `α` and `β` are scalars, `A`, `B`, and `C` are matrices, with `op(A)` an `M` by `K` matrix, `op(B)` a `K` by `N` matrix, and `C` an `M` by `N` matrix. * -* @param {string} transA - specifies whether `A` should be transposed, conjugate-transposed, or not transposed -* @param {string} transB - specifies whether `B` should be transposed, conjugate-transposed, or not transposed +* @param {(integer|string)} transA - specifies whether `A` should be transposed, conjugate-transposed, or not transposed +* @param {(integer|string)} transB - specifies whether `B` should be transposed, conjugate-transposed, or not transposed * @param {NonNegativeInteger} M - number of rows in the matrix `op(A)` and in the matrix `C` * @param {NonNegativeInteger} N - number of columns in the matrix `op(B)` and in the matrix `C` * @param {NonNegativeInteger} K - number of columns in the matrix `op(A)` and number of rows in the matrix `op(B)`