From 0bcfed64f350cf656a64127064a5a7bb54ddbe0c Mon Sep 17 00:00:00 2001 From: Dhruvan Gnanadhandayuthapani Date: Thu, 5 Mar 2026 01:17:09 +0100 Subject: [PATCH 1/2] test: add alpha & beta tests for `blas/base/dgemm` --- .../ra_rb_rc_nta_ntb_alpha2_beta3.json | 22 +++++++++++++++++ .../row_major_nta_ntb_alpha2_beta3.json | 17 +++++++++++++ .../blas/base/dgemm/test/test.dgemm.js | 24 +++++++++++++++++++ .../blas/base/dgemm/test/test.ndarray.js | 24 +++++++++++++++++++ 4 files changed, 87 insertions(+) create mode 100644 lib/node_modules/@stdlib/blas/base/dgemm/test/fixtures/ra_rb_rc_nta_ntb_alpha2_beta3.json create mode 100644 lib/node_modules/@stdlib/blas/base/dgemm/test/fixtures/row_major_nta_ntb_alpha2_beta3.json diff --git a/lib/node_modules/@stdlib/blas/base/dgemm/test/fixtures/ra_rb_rc_nta_ntb_alpha2_beta3.json b/lib/node_modules/@stdlib/blas/base/dgemm/test/fixtures/ra_rb_rc_nta_ntb_alpha2_beta3.json new file mode 100644 index 000000000000..020e31958562 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/dgemm/test/fixtures/ra_rb_rc_nta_ntb_alpha2_beta3.json @@ -0,0 +1,22 @@ +{ + "transA": "no-transpose", + "transB": "no-transpose", + "M": 2, + "N": 4, + "K": 3, + "alpha": 2.0, + "A": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ], + "strideA1": 3, + "strideA2": 1, + "offsetA": 0, + "B": [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ], + "strideB1": 4, + "strideB2": 1, + "offsetB": 0, + "beta": 3.0, + "C": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ], + "strideC1": 4, + "strideC2": 1, + "offsetC": 0, + "C_out": [ 15.0, 18.0, 21.0, 24.0, 45.0, 48.0, 51.0, 54.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/dgemm/test/fixtures/row_major_nta_ntb_alpha2_beta3.json b/lib/node_modules/@stdlib/blas/base/dgemm/test/fixtures/row_major_nta_ntb_alpha2_beta3.json new file mode 100644 index 000000000000..905d5b8470d1 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/dgemm/test/fixtures/row_major_nta_ntb_alpha2_beta3.json @@ -0,0 +1,17 @@ +{ + "order": "row-major", + "transA": "no-transpose", + "transB": "no-transpose", + "M": 2, + "N": 4, + "K": 3, + "alpha": 2.0, + "A": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ], + "ldb": 4, + "beta": 3.0, + "C": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ], + "ldc": 4, + "C_out": [ 15.0, 18.0, 21.0, 24.0, 45.0, 48.0, 51.0, 54.0 ] +} 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 3bf6b39a7167..dd1f9172ad06 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 @@ -40,6 +40,8 @@ var rtantb = require( './fixtures/row_major_ta_ntb.json' ); var rntatb = require( './fixtures/row_major_nta_tb.json' ); var rtatb = require( './fixtures/row_major_ta_tb.json' ); +var rntantbAlpha2Beta3 = require( './fixtures/row_major_nta_ntb_alpha2_beta3.json' ); + // TESTS // @@ -704,3 +706,25 @@ tape( 'if `α` is `0` and `β` is neither `0` nor `1`, the function returns the t.end(); }); + +tape( 'the function correctly applies both `α` and `β` scalars (row-major, no-transpose, no-transpose, α=2, β=3)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + var c; + + data = rntantbAlpha2Beta3; + + a = new Float64Array( data.A ); + b = new Float64Array( data.B ); + c = new Float64Array( data.C ); + + expected = new Float64Array( data.C_out ); + + out = dgemm( data.order, data.transA, data.transB, data.M, data.N, data.K, data.alpha, a, data.lda, b, data.ldb, data.beta, c, data.ldc ); + 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/dgemm/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/dgemm/test/test.ndarray.js index 31c374ec1b1c..5c34dcd8bf28 100644 --- a/lib/node_modules/@stdlib/blas/base/dgemm/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dgemm/test/test.ndarray.js @@ -83,6 +83,8 @@ var rarbrcntantbob = require( './fixtures/ra_rb_rc_nta_ntb_ob.json' ); var rarbrcntantboc = require( './fixtures/ra_rb_rc_nta_ntb_oc.json' ); var cap = require( './fixtures/ra_rb_rc_nta_ntb_complex_access_pattern.json' ); +var rarbrcntantbAlpha2Beta3 = require( './fixtures/ra_rb_rc_nta_ntb_alpha2_beta3.json' ); + // TESTS // @@ -1487,3 +1489,25 @@ tape( 'the function supports computation over large arrays (column-major, column t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); + +tape( 'the function correctly applies both `α` and `β` scalars (row_major, row_major, row_major, no-transpose, no-transpose, α=2, β=3)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + var c; + + data = rarbrcntantbAlpha2Beta3; + + a = new Float64Array( data.A ); + b = new Float64Array( data.B ); + c = new Float64Array( data.C ); + + expected = new Float64Array( data.C_out ); + + out = dgemm( data.transA, data.transB, data.M, data.N, data.K, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB, data.beta, c, data.strideC1, data.strideC2, data.offsetC ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); From 319179c830ba33dd104ddcae93926a9e2b418d69 Mon Sep 17 00:00:00 2001 From: Dhruvan Gnanadhandayuthapani Date: Thu, 5 Mar 2026 17:26:01 +0100 Subject: [PATCH 2/2] chore: fix lint errors --- 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 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 --- --- lib/node_modules/@stdlib/blas/base/dgemm/test/test.dgemm.js | 2 -- lib/node_modules/@stdlib/blas/base/dgemm/test/test.ndarray.js | 3 --- 2 files changed, 5 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 dd1f9172ad06..df58c293408c 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 @@ -34,12 +34,10 @@ var cntantb = require( './fixtures/column_major_nta_ntb.json' ); var ctantb = require( './fixtures/column_major_ta_ntb.json' ); var cntatb = require( './fixtures/column_major_nta_tb.json' ); var ctatb = require( './fixtures/column_major_ta_tb.json' ); - var rntantb = require( './fixtures/row_major_nta_ntb.json' ); var rtantb = require( './fixtures/row_major_ta_ntb.json' ); var rntatb = require( './fixtures/row_major_nta_tb.json' ); var rtatb = require( './fixtures/row_major_ta_tb.json' ); - var rntantbAlpha2Beta3 = require( './fixtures/row_major_nta_ntb_alpha2_beta3.json' ); diff --git a/lib/node_modules/@stdlib/blas/base/dgemm/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/dgemm/test/test.ndarray.js index 5c34dcd8bf28..d680c87fe1a8 100644 --- a/lib/node_modules/@stdlib/blas/base/dgemm/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dgemm/test/test.ndarray.js @@ -48,7 +48,6 @@ var carbrcntantb = require( './fixtures/ca_rb_rc_nta_ntb.json' ); var carbrcntatb = require( './fixtures/ca_rb_rc_nta_tb.json' ); var carbrctantb = require( './fixtures/ca_rb_rc_ta_ntb.json' ); var carbrctatb = require( './fixtures/ca_rb_rc_ta_tb.json' ); - var racbccntantb = require( './fixtures/ra_cb_cc_nta_ntb.json' ); var racbccntatb = require( './fixtures/ra_cb_cc_nta_tb.json' ); var racbcctantb = require( './fixtures/ra_cb_cc_ta_ntb.json' ); @@ -65,7 +64,6 @@ var rarbrcntantb = require( './fixtures/ra_rb_rc_nta_ntb.json' ); var rarbrcntatb = require( './fixtures/ra_rb_rc_nta_tb.json' ); var rarbrctantb = require( './fixtures/ra_rb_rc_ta_ntb.json' ); var rarbrctatb = require( './fixtures/ra_rb_rc_ta_tb.json' ); - var carbcctantbsa1sa2 = require( './fixtures/ca_rb_cc_ta_ntb_sa1_sa2.json' ); var carbcctantbsa1nsa2 = require( './fixtures/ca_rb_cc_ta_ntb_sa1n_sa2.json' ); var carbcctantbsa1sa2n = require( './fixtures/ca_rb_cc_ta_ntb_sa1_sa2n.json' ); @@ -82,7 +80,6 @@ var rarbrcntantboa = require( './fixtures/ra_rb_rc_nta_ntb_oa.json' ); var rarbrcntantbob = require( './fixtures/ra_rb_rc_nta_ntb_ob.json' ); var rarbrcntantboc = require( './fixtures/ra_rb_rc_nta_ntb_oc.json' ); var cap = require( './fixtures/ra_rb_rc_nta_ntb_complex_access_pattern.json' ); - var rarbrcntantbAlpha2Beta3 = require( './fixtures/ra_rb_rc_nta_ntb_alpha2_beta3.json' );