From ea0c36e104bc305825b49c2b962f546e44124021 Mon Sep 17 00:00:00 2001 From: kaustubh Date: Tue, 3 Nov 2026 21:40:11 +0530 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20return=20=CE=B2*C=20when=20K=20is=20?= =?UTF-8?q?zero=20in=20blas/base/*gemm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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: passed - 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/dgemm/lib/base.js | 2 +- .../blas/base/dgemm/test/test.dgemm.js | 58 ++++++++ .../@stdlib/blas/base/ggemm/lib/accessors.js | 2 +- .../@stdlib/blas/base/ggemm/lib/base.js | 2 +- .../@stdlib/blas/base/ggemm/test/test.main.js | 124 ++++++++++++++++++ .../@stdlib/blas/base/sgemm/lib/base.js | 2 +- .../blas/base/sgemm/test/test.sgemm.js | 58 ++++++++ 7 files changed, 244 insertions(+), 4 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/dgemm/lib/base.js b/lib/node_modules/@stdlib/blas/base/dgemm/lib/base.js index 51b6b0e22662..06ba57f6af3c 100644 --- a/lib/node_modules/@stdlib/blas/base/dgemm/lib/base.js +++ b/lib/node_modules/@stdlib/blas/base/dgemm/lib/base.js @@ -418,7 +418,7 @@ function dgemm( transA, transB, M, N, K, alpha, A, strideA1, strideA2, offsetA, C = scal( M, N, beta, C, strideC1, strideC2, offsetC ); } // Check whether we can early return... - if ( alpha === 0.0 ) { + if ( alpha === 0.0 || K === 0 ) { return C; } // Determine the memory layouts of `A` and `B`... diff --git a/lib/node_modules/@stdlib/blas/base/dgemm/test/test.dgemm.js b/lib/node_modules/@stdlib/blas/base/dgemm/test/test.dgemm.js index 5a4af7e7a4b4..8feb4dfac370 100644 --- a/lib/node_modules/@stdlib/blas/base/dgemm/test/test.dgemm.js +++ b/lib/node_modules/@stdlib/blas/base/dgemm/test/test.dgemm.js @@ -878,3 +878,61 @@ tape( 'the function supports `conjugate-transpose`, which is equivalent to `tran t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); + +tape( 'if `K` is `0`, the function returns the third input matrix scaled by `β`, regardless of the value of `α` and the memory layout', function test( t ) { + var expected; + var alphas; + var out; + var c; + var i; + + alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + expected = new Float64Array( [ 0.5, 1.0, 1.5, 2.0 ] ); + + for ( i = 0; i < alphas.length; i++ ) { + c = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + out = dgemm( 'row-major', 'no-transpose', 'no-transpose', 2, 2, 0, alphas[ i ], new Float64Array( 0 ), 1, new Float64Array( 0 ), 2, 0.5, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + c = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + out = dgemm( 'row-major', 'no-transpose', 'transpose', 2, 2, 0, alphas[ i ], new Float64Array( 0 ), 1, new Float64Array( 0 ), 1, 0.5, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + c = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + out = dgemm( 'column-major', 'transpose', 'no-transpose', 2, 2, 0, alphas[ i ], new Float64Array( 0 ), 2, new Float64Array( 0 ), 2, 0.5, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + } + t.end(); +}); + +tape( 'if `K` is `0` and `β` is `0`, the function returns the third input matrix filled with zeros, regardless of the value of `α` and the memory layout', function test( t ) { + var expected; + var alphas; + var out; + var c; + var i; + + alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + expected = new Float64Array( [ 0.0, 0.0, 0.0, 0.0 ] ); + + for ( i = 0; i < alphas.length; i++ ) { + c = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + out = dgemm( 'row-major', 'no-transpose', 'no-transpose', 2, 2, 0, alphas[ i ], new Float64Array( 0 ), 1, new Float64Array( 0 ), 2, 0.0, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + c = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + out = dgemm( 'row-major', 'no-transpose', 'transpose', 2, 2, 0, alphas[ i ], new Float64Array( 0 ), 1, new Float64Array( 0 ), 1, 0.0, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + c = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + out = dgemm( 'column-major', 'transpose', 'no-transpose', 2, 2, 0, alphas[ i ], new Float64Array( 0 ), 2, new Float64Array( 0 ), 2, 0.0, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/blas/base/ggemm/lib/accessors.js b/lib/node_modules/@stdlib/blas/base/ggemm/lib/accessors.js index 172796782aca..80ed992c5a44 100644 --- a/lib/node_modules/@stdlib/blas/base/ggemm/lib/accessors.js +++ b/lib/node_modules/@stdlib/blas/base/ggemm/lib/accessors.js @@ -497,7 +497,7 @@ function ggemm( transA, transB, M, N, K, alpha, A, strideA1, strideA2, offsetA, C = scal( M, N, beta, C, strideC1, strideC2, offsetC ); } // Check whether we can early return... - if ( alpha === 0.0 ) { + if ( alpha === 0.0 || K === 0 ) { return C; } // Determine the memory layouts of `A` and `B`... diff --git a/lib/node_modules/@stdlib/blas/base/ggemm/lib/base.js b/lib/node_modules/@stdlib/blas/base/ggemm/lib/base.js index 45fa0c58f519..ca6d134adf13 100644 --- a/lib/node_modules/@stdlib/blas/base/ggemm/lib/base.js +++ b/lib/node_modules/@stdlib/blas/base/ggemm/lib/base.js @@ -416,7 +416,7 @@ function ggemm( transA, transB, M, N, K, alpha, A, strideA1, strideA2, offsetA, C = scal( M, N, beta, C, strideC1, strideC2, offsetC ); } // Check whether we can early return... - if ( alpha === 0.0 ) { + if ( alpha === 0.0 || K === 0 ) { return C; } // Determine the memory layouts of `A` and `B`... diff --git a/lib/node_modules/@stdlib/blas/base/ggemm/test/test.main.js b/lib/node_modules/@stdlib/blas/base/ggemm/test/test.main.js index cfc3d97b7ab3..523ad0bb85f5 100644 --- a/lib/node_modules/@stdlib/blas/base/ggemm/test/test.main.js +++ b/lib/node_modules/@stdlib/blas/base/ggemm/test/test.main.js @@ -1591,3 +1591,127 @@ tape( 'the function supports `conjugate-transpose`, which is equivalent to `tran t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); + +tape( 'if `K` is `0`, the function returns the third input matrix scaled by `β`, regardless of the value of `α` and the memory layout', function test( t ) { + var expected; + var alphas; + var out; + var c; + var i; + + alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + expected = [ 0.5, 1.0, 1.5, 2.0 ]; + + for ( i = 0; i < alphas.length; i++ ) { + c = [ 1.0, 2.0, 3.0, 4.0 ]; + out = ggemm( 'row-major', 'no-transpose', 'no-transpose', 2, 2, 0, alphas[ i ], [], 1, [], 2, 0.5, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + c = [ 1.0, 2.0, 3.0, 4.0 ]; + out = ggemm( 'row-major', 'no-transpose', 'transpose', 2, 2, 0, alphas[ i ], [], 1, [], 1, 0.5, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + c = [ 1.0, 2.0, 3.0, 4.0 ]; + out = ggemm( 'column-major', 'transpose', 'no-transpose', 2, 2, 0, alphas[ i ], [], 2, [], 2, 0.5, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + } + t.end(); +}); + +tape( 'if `K` is `0` and `β` is `0`, the function returns the third input matrix filled with zeros, regardless of the value of `α` and the memory layout', function test( t ) { + var expected; + var alphas; + var out; + var c; + var i; + + alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + expected = [ 0.0, 0.0, 0.0, 0.0 ]; + + for ( i = 0; i < alphas.length; i++ ) { + c = [ 1.0, 2.0, 3.0, 4.0 ]; + out = ggemm( 'row-major', 'no-transpose', 'no-transpose', 2, 2, 0, alphas[ i ], [], 1, [], 2, 0.0, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + c = [ 1.0, 2.0, 3.0, 4.0 ]; + out = ggemm( 'row-major', 'no-transpose', 'transpose', 2, 2, 0, alphas[ i ], [], 1, [], 1, 0.0, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + c = [ 1.0, 2.0, 3.0, 4.0 ]; + out = ggemm( 'column-major', 'transpose', 'no-transpose', 2, 2, 0, alphas[ i ], [], 2, [], 2, 0.0, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + } + t.end(); +}); + +tape( 'if `K` is `0`, the function returns the third input matrix scaled by `β`, regardless of the value of `α` and the memory layout (accessors)', function test( t ) { + var expected; + var alphas; + var cbuf; + var out; + var c; + var i; + + alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + expected = [ 0.5, 1.0, 1.5, 2.0 ]; + + for ( i = 0; i < alphas.length; i++ ) { + cbuf = [ 1.0, 2.0, 3.0, 4.0 ]; + c = toAccessorArray( cbuf ); + out = ggemm( 'row-major', 'no-transpose', 'no-transpose', 2, 2, 0, alphas[ i ], toAccessorArray( [] ), 1, toAccessorArray( [] ), 2, 0.5, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( cbuf, expected, 'returns expected value' ); + + cbuf = [ 1.0, 2.0, 3.0, 4.0 ]; + c = toAccessorArray( cbuf ); + out = ggemm( 'row-major', 'no-transpose', 'transpose', 2, 2, 0, alphas[ i ], toAccessorArray( [] ), 1, toAccessorArray( [] ), 1, 0.5, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( cbuf, expected, 'returns expected value' ); + + cbuf = [ 1.0, 2.0, 3.0, 4.0 ]; + c = toAccessorArray( cbuf ); + out = ggemm( 'column-major', 'transpose', 'no-transpose', 2, 2, 0, alphas[ i ], toAccessorArray( [] ), 2, toAccessorArray( [] ), 2, 0.5, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( cbuf, expected, 'returns expected value' ); + } + t.end(); +}); + +tape( 'if `K` is `0` and `β` is `0`, the function returns the third input matrix filled with zeros, regardless of the value of `α` and the memory layout (accessors)', function test( t ) { + var expected; + var alphas; + var cbuf; + var out; + var c; + var i; + + alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + expected = [ 0.0, 0.0, 0.0, 0.0 ]; + + for ( i = 0; i < alphas.length; i++ ) { + cbuf = [ 1.0, 2.0, 3.0, 4.0 ]; + c = toAccessorArray( cbuf ); + out = ggemm( 'row-major', 'no-transpose', 'no-transpose', 2, 2, 0, alphas[ i ], toAccessorArray( [] ), 1, toAccessorArray( [] ), 2, 0.0, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( cbuf, expected, 'returns expected value' ); + + cbuf = [ 1.0, 2.0, 3.0, 4.0 ]; + c = toAccessorArray( cbuf ); + out = ggemm( 'row-major', 'no-transpose', 'transpose', 2, 2, 0, alphas[ i ], toAccessorArray( [] ), 1, toAccessorArray( [] ), 1, 0.0, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( cbuf, expected, 'returns expected value' ); + + cbuf = [ 1.0, 2.0, 3.0, 4.0 ]; + c = toAccessorArray( cbuf ); + out = ggemm( 'column-major', 'transpose', 'no-transpose', 2, 2, 0, alphas[ i ], toAccessorArray( [] ), 2, toAccessorArray( [] ), 2, 0.0, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( cbuf, expected, 'returns expected value' ); + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/blas/base/sgemm/lib/base.js b/lib/node_modules/@stdlib/blas/base/sgemm/lib/base.js index f26fc5d2aae2..3e67dc9c60f6 100644 --- a/lib/node_modules/@stdlib/blas/base/sgemm/lib/base.js +++ b/lib/node_modules/@stdlib/blas/base/sgemm/lib/base.js @@ -419,7 +419,7 @@ function sgemm( transA, transB, M, N, K, alpha, A, strideA1, strideA2, offsetA, C = scal( M, N, beta, C, strideC1, strideC2, offsetC ); } // Check whether we can early return... - if ( alpha === 0.0 ) { + if ( alpha === 0.0 || K === 0 ) { return C; } // Determine the memory layouts of `A` and `B`... diff --git a/lib/node_modules/@stdlib/blas/base/sgemm/test/test.sgemm.js b/lib/node_modules/@stdlib/blas/base/sgemm/test/test.sgemm.js index e3d502056c0b..b5176ca08c80 100644 --- a/lib/node_modules/@stdlib/blas/base/sgemm/test/test.sgemm.js +++ b/lib/node_modules/@stdlib/blas/base/sgemm/test/test.sgemm.js @@ -878,3 +878,61 @@ tape( 'the function supports `conjugate-transpose`, which is equivalent to `tran t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); + +tape( 'if `K` is `0`, the function returns the third input matrix scaled by `β`, regardless of the value of `α` and the memory layout', function test( t ) { + var expected; + var alphas; + var out; + var c; + var i; + + alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + expected = new Float32Array( [ 0.5, 1.0, 1.5, 2.0 ] ); + + for ( i = 0; i < alphas.length; i++ ) { + c = new Float32Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + out = sgemm( 'row-major', 'no-transpose', 'no-transpose', 2, 2, 0, alphas[ i ], new Float32Array( 0 ), 1, new Float32Array( 0 ), 2, 0.5, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + c = new Float32Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + out = sgemm( 'row-major', 'no-transpose', 'transpose', 2, 2, 0, alphas[ i ], new Float32Array( 0 ), 1, new Float32Array( 0 ), 1, 0.5, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + c = new Float32Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + out = sgemm( 'column-major', 'transpose', 'no-transpose', 2, 2, 0, alphas[ i ], new Float32Array( 0 ), 2, new Float32Array( 0 ), 2, 0.5, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + } + t.end(); +}); + +tape( 'if `K` is `0` and `β` is `0`, the function returns the third input matrix filled with zeros, regardless of the value of `α` and the memory layout', function test( t ) { + var expected; + var alphas; + var out; + var c; + var i; + + alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + expected = new Float32Array( [ 0.0, 0.0, 0.0, 0.0 ] ); + + for ( i = 0; i < alphas.length; i++ ) { + c = new Float32Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + out = sgemm( 'row-major', 'no-transpose', 'no-transpose', 2, 2, 0, alphas[ i ], new Float32Array( 0 ), 1, new Float32Array( 0 ), 2, 0.0, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + c = new Float32Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + out = sgemm( 'row-major', 'no-transpose', 'transpose', 2, 2, 0, alphas[ i ], new Float32Array( 0 ), 1, new Float32Array( 0 ), 1, 0.0, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + c = new Float32Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + out = sgemm( 'column-major', 'transpose', 'no-transpose', 2, 2, 0, alphas[ i ], new Float32Array( 0 ), 2, new Float32Array( 0 ), 2, 0.0, c, 2 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + } + t.end(); +}); From 865256e02d01037292364a3ddc8abe02744c6407 Mon Sep 17 00:00:00 2001 From: kaustubh Date: Wed, 4 Nov 2026 10:49:26 +0530 Subject: [PATCH 2/2] test: use constants packages --- 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: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - 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/dgemm/test/test.dgemm.js | 6 ++++-- .../@stdlib/blas/base/ggemm/test/test.main.js | 10 ++++++---- .../@stdlib/blas/base/sgemm/test/test.sgemm.js | 6 ++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/dgemm/test/test.dgemm.js b/lib/node_modules/@stdlib/blas/base/dgemm/test/test.dgemm.js index 8feb4dfac370..140c74a4f9de 100644 --- a/lib/node_modules/@stdlib/blas/base/dgemm/test/test.dgemm.js +++ b/lib/node_modules/@stdlib/blas/base/dgemm/test/test.dgemm.js @@ -26,6 +26,8 @@ var tape = require( 'tape' ); var Float64Array = require( '@stdlib/array/float64' ); var dscal = require( '@stdlib/blas/base/dscal' ); var resolveEnum = require( '@stdlib/blas/base/transpose-operation-resolve-enum' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); var dgemm = require( './../lib/dgemm.js' ); @@ -886,7 +888,7 @@ tape( 'if `K` is `0`, the function returns the third input matrix scaled by `β` var c; var i; - alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + alphas = [ NaN, PINF, NINF, 2.0 ]; expected = new Float64Array( [ 0.5, 1.0, 1.5, 2.0 ] ); for ( i = 0; i < alphas.length; i++ ) { @@ -915,7 +917,7 @@ tape( 'if `K` is `0` and `β` is `0`, the function returns the third input matri var c; var i; - alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + alphas = [ NaN, PINF, NINF, 2.0 ]; expected = new Float64Array( [ 0.0, 0.0, 0.0, 0.0 ] ); for ( i = 0; i < alphas.length; i++ ) { diff --git a/lib/node_modules/@stdlib/blas/base/ggemm/test/test.main.js b/lib/node_modules/@stdlib/blas/base/ggemm/test/test.main.js index 523ad0bb85f5..b83c4aed5f82 100644 --- a/lib/node_modules/@stdlib/blas/base/ggemm/test/test.main.js +++ b/lib/node_modules/@stdlib/blas/base/ggemm/test/test.main.js @@ -28,6 +28,8 @@ var gfill = require( '@stdlib/blas/ext/base/gfill' ); var toAccessorArray = require( '@stdlib/array/base/to-accessor-array' ); var copy = require( '@stdlib/array/base/copy' ); var resolveEnum = require( '@stdlib/blas/base/transpose-operation-resolve-enum' ); +var PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); var ggemm = require( './../lib/main.js' ); @@ -1599,7 +1601,7 @@ tape( 'if `K` is `0`, the function returns the third input matrix scaled by `β` var c; var i; - alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + alphas = [ NaN, PINF, NINF, 2.0 ]; expected = [ 0.5, 1.0, 1.5, 2.0 ]; for ( i = 0; i < alphas.length; i++ ) { @@ -1628,7 +1630,7 @@ tape( 'if `K` is `0` and `β` is `0`, the function returns the third input matri var c; var i; - alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + alphas = [ NaN, PINF, NINF, 2.0 ]; expected = [ 0.0, 0.0, 0.0, 0.0 ]; for ( i = 0; i < alphas.length; i++ ) { @@ -1658,7 +1660,7 @@ tape( 'if `K` is `0`, the function returns the third input matrix scaled by `β` var c; var i; - alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + alphas = [ NaN, PINF, NINF, 2.0 ]; expected = [ 0.5, 1.0, 1.5, 2.0 ]; for ( i = 0; i < alphas.length; i++ ) { @@ -1691,7 +1693,7 @@ tape( 'if `K` is `0` and `β` is `0`, the function returns the third input matri var c; var i; - alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + alphas = [ NaN, PINF, NINF, 2.0 ]; expected = [ 0.0, 0.0, 0.0, 0.0 ]; for ( i = 0; i < alphas.length; i++ ) { diff --git a/lib/node_modules/@stdlib/blas/base/sgemm/test/test.sgemm.js b/lib/node_modules/@stdlib/blas/base/sgemm/test/test.sgemm.js index b5176ca08c80..4e54b8fbf5d7 100644 --- a/lib/node_modules/@stdlib/blas/base/sgemm/test/test.sgemm.js +++ b/lib/node_modules/@stdlib/blas/base/sgemm/test/test.sgemm.js @@ -26,6 +26,8 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); var sscal = require( '@stdlib/blas/base/sscal' ); var resolveEnum = require( '@stdlib/blas/base/transpose-operation-resolve-enum' ); +var PINF = require( '@stdlib/constants/float32/pinf' ); +var NINF = require( '@stdlib/constants/float32/ninf' ); var sgemm = require( './../lib/sgemm.js' ); @@ -886,7 +888,7 @@ tape( 'if `K` is `0`, the function returns the third input matrix scaled by `β` var c; var i; - alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + alphas = [ NaN, PINF, NINF, 2.0 ]; expected = new Float32Array( [ 0.5, 1.0, 1.5, 2.0 ] ); for ( i = 0; i < alphas.length; i++ ) { @@ -915,7 +917,7 @@ tape( 'if `K` is `0` and `β` is `0`, the function returns the third input matri var c; var i; - alphas = [ NaN, Infinity, -Infinity, 2.0 ]; + alphas = [ NaN, PINF, NINF, 2.0 ]; expected = new Float32Array( [ 0.0, 0.0, 0.0, 0.0 ] ); for ( i = 0; i < alphas.length; i++ ) {