diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/test/fixtures/column_major_ox.json b/lib/node_modules/@stdlib/blas/base/dtrmv/test/fixtures/column_major_ox.json new file mode 100644 index 000000000000..8ff7cf3d1cfc --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/test/fixtures/column_major_ox.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "uplo": "lower", + "trans": "no-transpose", + "diag": "unit", + "N": 3, + "A": [ 1.0, 2.0, 2.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 1.0, 0.0 ], + [ 2.0, 1.0, 1.0 ] + ], + "LDA": 3, + "strideA1": 1, + "strideA2": 3, + "offsetA": 0, + "x": [ 0.0, 0.0, 1.0, 2.0, 3.0 ], + "strideX": 1, + "offsetX": 2, + "x_out": [ 0.0, 0.0, 1.0, 4.0, 7.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/test/fixtures/row_major_ox.json b/lib/node_modules/@stdlib/blas/base/dtrmv/test/fixtures/row_major_ox.json new file mode 100644 index 000000000000..f08489a505cb --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/test/fixtures/row_major_ox.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "uplo": "lower", + "trans": "no-transpose", + "diag": "unit", + "N": 3, + "A": [ 1.0, 0.0, 0.0, 2.0, 1.0, 0.0, 2.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 1.0, 0.0 ], + [ 2.0, 1.0, 1.0 ] + ], + "LDA": 3, + "strideA1": 3, + "strideA2": 1, + "offsetA": 0, + "x": [ 0.0, 0.0, 1.0, 2.0, 3.0 ], + "strideX": 1, + "offsetX": 2, + "x_out": [ 0.0, 0.0, 1.0, 4.0, 7.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js index c149073ce62c..cad6540ecf9e 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js @@ -40,6 +40,7 @@ var rutu = require( './fixtures/row_major_u_t_u.json' ); var rxt = require( './fixtures/row_major_xt.json' ); var rxn = require( './fixtures/row_major_xn.json' ); var roa = require( './fixtures/row_major_oa.json' ); +var rox = require( './fixtures/row_major_ox.json' ); var rsa1sa2 = require( './fixtures/row_major_sa1_sa2.json' ); var rsa1nsa2 = require( './fixtures/row_major_sa1n_sa2.json' ); var rsa1sa2n = require( './fixtures/row_major_sa1_sa2n.json' ); @@ -57,6 +58,7 @@ var cutu = require( './fixtures/column_major_u_t_u.json' ); var cxt = require( './fixtures/column_major_xt.json' ); var cxn = require( './fixtures/column_major_xn.json' ); var coa = require( './fixtures/column_major_oa.json' ); +var cox = require( './fixtures/column_major_ox.json' ); var csa1sa2 = require( './fixtures/column_major_sa1_sa2.json' ); var csa1nsa2 = require( './fixtures/column_major_sa1n_sa2.json' ); var csa1sa2n = require( './fixtures/column_major_sa1_sa2n.json' ); @@ -938,6 +940,48 @@ tape( 'the function supports a negative `x` stride (column-major)', function tes t.end(); }); +tape( 'the function supports an `x` offset (row-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var x; + + data = rox; + + a = new Float64Array( data.A ); + x = new Float64Array( data.x ); + + expected = new Float64Array( data.x_out ); + + out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); + t.strictEqual( out, x, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function supports an `x` offset (column-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var x; + + data = cox; + + a = new Float64Array( data.A ); + x = new Float64Array( data.x ); + + expected = new Float64Array( data.x_out ); + + out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); + t.strictEqual( out, x, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + tape( 'the function supports complex access patterns (row-major)', function test( t ) { var expected; var data;