diff --git a/lib/node_modules/@stdlib/blas/base/dsyr2/test/fixtures/column_major_x0.json b/lib/node_modules/@stdlib/blas/base/dsyr2/test/fixtures/column_major_x0.json new file mode 100644 index 000000000000..feecd4f67108 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/dsyr2/test/fixtures/column_major_x0.json @@ -0,0 +1,18 @@ +{ + "order": "column-major", + "uplo": "lower", + "N": 3, + "alpha": 2.0, + "x": [ 0.0, 0.0, 0.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 1.0, 2.0, 3.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 1.0, 0.0, 2.0, 2.0, 0.0, 0.0, 3.0 ], + "lda": 3, + "strideA1": 1, + "strideA2": 3, + "offsetA": 0, + "A_out": [ 1.0, 1.0, 1.0, 0.0, 2.0, 2.0, 0.0, 0.0, 3.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/dsyr2/test/fixtures/row_major_x0.json b/lib/node_modules/@stdlib/blas/base/dsyr2/test/fixtures/row_major_x0.json new file mode 100644 index 000000000000..73f6c166cb49 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/dsyr2/test/fixtures/row_major_x0.json @@ -0,0 +1,18 @@ +{ + "order": "row-major", + "uplo": "lower", + "N": 3, + "alpha": 2.0, + "x": [ 0.0, 0.0, 0.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 1.0, 2.0, 3.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 0.0, 0.0, 1.0, 2.0, 0.0, 1.0, 2.0, 3.0 ], + "lda": 3, + "strideA1": 3, + "strideA2": 1, + "offsetA": 0, + "A_out": [ 1.0, 0.0, 0.0, 1.0, 2.0, 0.0, 1.0, 2.0, 3.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.dsyr2.js b/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.dsyr2.js index 6a155a5889dc..23ab41fce88b 100644 --- a/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.dsyr2.js +++ b/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.dsyr2.js @@ -31,6 +31,7 @@ var dsyr2 = require( './../lib/dsyr2.js' ); var ru = require( './fixtures/row_major_u.json' ); var rl = require( './fixtures/row_major_l.json' ); +var rx0 = require( './fixtures/row_major_x0.json' ); var rxpyp = require( './fixtures/row_major_xpyp.json' ); var rxnyp = require( './fixtures/row_major_xnyp.json' ); var rxpyn = require( './fixtures/row_major_xpyn.json' ); @@ -38,6 +39,7 @@ var rxnyn = require( './fixtures/row_major_xnyn.json' ); var cu = require( './fixtures/column_major_u.json' ); var cl = require( './fixtures/column_major_l.json' ); +var cx0 = require( './fixtures/column_major_x0.json' ); var cxpyp = require( './fixtures/column_major_xpyp.json' ); var cxnyp = require( './fixtures/column_major_xnyp.json' ); var cxpyn = require( './fixtures/column_major_xpyn.json' ); @@ -300,6 +302,52 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y t.end(); }); +tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y*x^T + A` (row-major, zero-vector)', function test( t ) { + var expected; + var data; + var out; + var a; + var x; + var y; + + data = rx0; + + a = new Float64Array( data.A ); + x = new Float64Array( data.x ); + y = new Float64Array( data.y ); + + expected = new Float64Array( data.A_out ); + + out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); + t.strictEqual( out, a, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y*x^T + A` (column-major, zero-vector)', function test( t ) { + var expected; + var data; + var out; + var a; + var x; + var y; + + data = cx0; + + a = new Float64Array( data.A ); + x = new Float64Array( data.x ); + y = new Float64Array( data.y ); + + expected = new Float64Array( data.A_out ); + + out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); + t.strictEqual( out, a, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + tape( 'the function returns a reference to the input matrix `A`', function test( t ) { var data; var out; diff --git a/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.ndarray.js index 76002766416b..1c76969eec8e 100644 --- a/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.ndarray.js @@ -31,6 +31,7 @@ var dsyr2 = require( './../lib/ndarray.js' ); var ru = require( './fixtures/row_major_u.json' ); var rl = require( './fixtures/row_major_l.json' ); +var rx0 = require( './fixtures/row_major_x0.json' ); var rxpyp = require( './fixtures/row_major_xpyp.json' ); var rxnyp = require( './fixtures/row_major_xnyp.json' ); var rxpyn = require( './fixtures/row_major_xpyn.json' ); @@ -44,6 +45,7 @@ var rcap = require( './fixtures/row_major_complex_access_pattern.json' ); var cu = require( './fixtures/column_major_u.json' ); var cl = require( './fixtures/column_major_l.json' ); +var cx0 = require( './fixtures/column_major_x0.json' ); var cxpyp = require( './fixtures/column_major_xpyp.json' ); var cxnyp = require( './fixtures/column_major_xnyp.json' ); var cxpyn = require( './fixtures/column_major_xpyn.json' ); @@ -161,7 +163,7 @@ tape( 'the function throws an error if provided an invalid eighth argument', fun function badValue( value ) { return function badValue() { - dsyr2( data.uplo, data.N, data.alpha, new Float64Array( data.x ), value, data.offsetX, new Float64Array( data.y ), data.strideY, data.offsetY, new Float64Array( data.A ), data.strideA1, data.strideA2, data.offsetA ); + dsyr2( data.uplo, data.N, data.alpha, new Float64Array( data.x ), data.strideX, data.offsetX, new Float64Array( data.y ), value, data.offsetY, new Float64Array( data.A ), data.strideA1, data.strideA2, data.offsetA ); }; } }); @@ -258,6 +260,52 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y t.end(); }); +tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y*x^T + A` (row-major, zero-vector)', function test( t ) { + var expected; + var data; + var out; + var a; + var x; + var y; + + data = rx0; + + a = new Float64Array( data.A ); + x = new Float64Array( data.x ); + y = new Float64Array( data.y ); + + expected = new Float64Array( data.A_out ); + + out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); + t.strictEqual( out, a, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y*x^T + A` (column-major, zero-vector)', function test( t ) { + var expected; + var data; + var out; + var a; + var x; + var y; + + data = cx0; + + a = new Float64Array( data.A ); + x = new Float64Array( data.x ); + y = new Float64Array( data.y ); + + expected = new Float64Array( data.A_out ); + + out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); + t.strictEqual( out, a, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + tape( 'the function returns a reference to the input matrix `A`', function test( t ) { var data; var out;