diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/lib/base.js b/lib/node_modules/@stdlib/blas/base/cgerc/lib/base.js new file mode 100644 index 000000000000..37ded533666d --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/lib/base.js @@ -0,0 +1,172 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major' ); +var realf = require( '@stdlib/complex/float32/real' ); +var imagf = require( '@stdlib/complex/float32/imag' ); +var f32 = require( '@stdlib/number/float64/base/to-float32' ); +var reinterpret = require( '@stdlib/strided/base/reinterpret-complex64' ); +var muladd = require( '@stdlib/complex/float32/base/mul-add' ).assign; + + +// MAIN // + +/** +* Performs the rank 1 operation `A = α*x*y^H + A`, where `α` is a scalar, `x` is an `M` element vector, `y` is an `N` element vector, and `A` is an `M` by `N` matrix. +* +* @private +* @param {NonNegativeInteger} M - number of rows in the matrix `A` +* @param {NonNegativeInteger} N - number of columns in the matrix `A` +* @param {Complex64} alpha - scalar constant +* @param {Complex64Array} x - first input vector +* @param {integer} strideX - `x` stride length +* @param {NonNegativeInteger} offsetX - starting index for `x` +* @param {Complex64Array} y - second input vector +* @param {integer} strideY - `y` stride length +* @param {NonNegativeInteger} offsetY - starting index for `y` +* @param {Complex64Array} A - input matrix +* @param {integer} strideA1 - stride of the first dimension of `A` +* @param {integer} strideA2 - stride of the second dimension of `A` +* @param {NonNegativeInteger} offsetA - starting index for `A` +* @returns {Complex64Array} `A` +* +* @example +* var Complex64Array = require( '@stdlib/array/complex64' ); +* var Complex64 = require( '@stdlib/complex/float32/ctor' ); +* +* var A = new Complex64Array( [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] ); +* var x = new Complex64Array( [ 1.0, 1.0, 2.0, 2.0 ] ); +* var y = new Complex64Array( [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ] ); +* var alpha = new Complex64( 0.5, 0.5 ); +* +* cgerc( 2, 3, alpha, x, 1, 0, y, 1, 0, A, 3, 1, 0 ); +* // A => [ 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 10.0, 10.0, 9.0, 9.0, 8.0, 8.0 ] +*/ +function cgerc( M, N, alpha, x, strideX, offsetX, y, strideY, offsetY, A, strideA1, strideA2, offsetA ) { // eslint-disable-line max-params, max-len + var realpha; + var imalpha; + var viewA; + var viewX; + var viewY; + var retmp; + var imtmp; + var tmp; + var rex; + var imx; + var rey; + var imy; + var sa1; + var sa2; + var da0; + var da1; + var S0; + var S1; + var oa; + var ox; + var oy; + var sx; + var sy; + var ia; + var ix; + var iy; + var i0; + var i1; + + // Note on variable naming convention: S#, da#, ia#, i# where # corresponds to the loop number, with `0` being the innermost loop... + + // Decompose scalars into real and imaginary components: + realpha = realf( alpha ); + imalpha = imagf( alpha ); + if ( realpha === 0.0 && imalpha === 0.0 ) { + return A; + } + oa = offsetA * 2; + sa1 = strideA1 * 2; + sa2 = strideA2 * 2; + ox = offsetX * 2; + oy = offsetY * 2; + sx = strideX * 2; + sy = strideY * 2; + + // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... + if ( isRowMajor( [ strideA1, strideA2 ] ) ) { + // For row-major matrices, the last dimension has the fastest changing index... + S0 = N; + S1 = M; + da0 = sa2; // offset increment for innermost loop + da1 = sa1 - (S0*sa2); // offset increment for outermost loop + + // Swap the vectors... + tmp = x; + x = y; + y = tmp; + + tmp = sx; + sx = sy; + sy = tmp; + + tmp = ox; + ox = oy; + oy = tmp; + } else { // order === 'column-major' + // For column-major matrices, the first dimension has the fastest changing index... + S0 = M; + S1 = N; + da0 = sa1; // offset increment for innermost loop + da1 = sa2 - (S0*sa1); // offset increment for outermost loop + } + // Reinterpret arrays as real-valued views of interleaved real and imaginary components: + viewA = reinterpret( A, 0 ); + viewX = reinterpret( x, 0 ); + viewY = reinterpret( y, 0 ); + ix = ox; + iy = oy; + ia = oa; + for ( i1 = 0; i1 < S1; i1++ ) { + rey = viewY[ iy ]; + imy = viewY[ iy+1 ]; + + // Check whether we can avoid the inner loop entirely... + if ( rey === 0.0 && imy === 0.0 ) { + ia += da0 * S0; + } else { + retmp = f32(f32(realpha*rey) - f32(imalpha*imy)); + imtmp = f32(f32(realpha*imy) + f32(imalpha*rey)); + ix = ox; + for ( i0 = 0; i0 < S0; i0++ ) { + rex = viewX[ ix ]; + imx = viewX[ ix+1 ]; + muladd( rex, -imx, retmp, imtmp, viewA[ ia ], viewA[ ia+1 ], viewA, 1, ia ); // eslint-disable-line max-len + ix += sx; + ia += da0; + } + } + iy += sy; + ia += da1; + } + return A; +} + + +// EXPORTS // + +module.exports = cgerc; diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/package.json b/lib/node_modules/@stdlib/blas/base/cgerc/package.json new file mode 100644 index 000000000000..c9d06547e412 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/package.json @@ -0,0 +1,69 @@ +{ + "name": "@stdlib/blas/base/cgerc", + "version": "0.0.0", + "description": "Perform the rank 1 operation A = α⋅x⋅y^H + A.", + "license": "Apache-2.0", + "author": { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + }, + "contributors": [ + { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + } + ], + "main": "./lib", + "browser": "./lib/main.js", + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "lib": "./lib", + "test": "./test" + }, + "types": "./docs/types", + "scripts": {}, + "homepage": "https://github.com/stdlib-js/stdlib", + "repository": { + "type": "git", + "url": "git://github.com/stdlib-js/stdlib.git" + }, + "bugs": { + "url": "https://github.com/stdlib-js/stdlib/issues" + }, + "dependencies": {}, + "devDependencies": {}, + "engines": { + "node": ">=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "stdmath", + "mathematics", + "math", + "blas", + "level 2", + "cgerc", + "linear", + "algebra", + "subroutines", + "array", + "ndarray", + "complex64", + "single", + "complex64array" + ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major.json new file mode 100644 index 000000000000..c00185df70b5 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major.json @@ -0,0 +1,22 @@ +{ + "order": "column-major", + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 4.0, 4.0, 2.0, 2.0, 5.0, 5.0, 3.0, 3.0, 6.0, 6.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 10.0, 10.0, 4.0, 4.0, 9.0, 9.0, 4.0, 4.0, 8.0, 8.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_complex_access_pattern.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_complex_access_pattern.json new file mode 100644 index 000000000000..209eed2a5cad --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_complex_access_pattern.json @@ -0,0 +1,20 @@ +{ + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 2.0, 2.0, 1.0, 1.0 ], + "strideX": -1, + "offsetX": 1, + "y": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + "strideY": -1, + "offsetY": 2, + "A": [ 0.0, 0.0, 6.0, 6.0, 0.0, 0.0, 0.0, 0.0, 3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "strideA1": -3, + "strideA2": -7, + "offsetA": 18, + "A_out": [ 0.0, 0.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 9.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_oa.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_oa.json new file mode 100644 index 000000000000..2adecf906205 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_oa.json @@ -0,0 +1,22 @@ +{ + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 0.0, 0.0, 1.0, 1.0, 4.0, 4.0, 7.0, 7.0, 10.0, 10.0, 2.0, 2.0, 5.0, 5.0, 8.0, 8.0, 11.0, 11.0, 3.0, 3.0, 6.0, 6.0, 9.0, 9.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "strideA1": 1, + "strideA2": 4, + "offsetA": 1, + "A_out": [ 0.0, 0.0, 4.0, 4.0, 10.0, 10.0, 16.0, 16.0, 22.0, 22.0, 4.0, 4.0, 9.0, 9.0, 14.0, 14.0, 19.0, 19.0, 4.0, 4.0, 8.0, 8.0, 12.0, 12.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_ox.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_ox.json new file mode 100644 index 000000000000..46c28b889ba9 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_ox.json @@ -0,0 +1,22 @@ +{ + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0 ], + "strideX": 1, + "offsetX": 1, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 4.0, 4.0, 7.0, 7.0, 10.0, 10.0, 2.0, 2.0, 5.0, 5.0, 8.0, 8.0, 11.0, 11.0, 3.0, 3.0, 6.0, 6.0, 9.0, 9.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "strideA1": 1, + "strideA2": 4, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 10.0, 10.0, 16.0, 16.0, 22.0, 22.0, 4.0, 4.0, 9.0, 9.0, 14.0, 14.0, 19.0, 19.0, 4.0, 4.0, 8.0, 8.0, 12.0, 12.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_oy.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_oy.json new file mode 100644 index 000000000000..ebec3daab17b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_oy.json @@ -0,0 +1,22 @@ +{ + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 0.0, 0.0, 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 1, + "A": [ 1.0, 1.0, 4.0, 4.0, 7.0, 7.0, 10.0, 10.0, 2.0, 2.0, 5.0, 5.0, 8.0, 8.0, 11.0, 11.0, 3.0, 3.0, 6.0, 6.0, 9.0, 9.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "strideA1": 1, + "strideA2": 4, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 10.0, 10.0, 16.0, 16.0, 22.0, 22.0, 4.0, 4.0, 9.0, 9.0, 14.0, 14.0, 19.0, 19.0, 4.0, 4.0, 8.0, 8.0, 12.0, 12.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_sa1_sa2.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_sa1_sa2.json new file mode 100644 index 000000000000..a22da0b81df7 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_sa1_sa2.json @@ -0,0 +1,20 @@ +{ + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 6.0, 6.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "strideA1": 3, + "strideA2": 7, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 9.0, 9.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 8.0, 8.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_sa1_sa2n.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_sa1_sa2n.json new file mode 100644 index 000000000000..d7cb4182c2ee --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_sa1_sa2n.json @@ -0,0 +1,20 @@ +{ + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 6.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "strideA1": 3, + "strideA2": -7, + "offsetA": 14, + "A_out": [ 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 9.0, 9.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 10.0, 10.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_sa1n_sa2.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_sa1n_sa2.json new file mode 100644 index 000000000000..eef5e3fd10d9 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_sa1n_sa2.json @@ -0,0 +1,20 @@ +{ + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 6.0, 0.0, 0.0, 0.0, 0.0, 3.0, 3.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "strideA1": -3, + "strideA2": 7, + "offsetA": 3, + "A_out": [ 10.0, 10.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 9.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_sa1n_sa2n.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_sa1n_sa2n.json new file mode 100644 index 000000000000..f8269ff924da --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_sa1n_sa2n.json @@ -0,0 +1,20 @@ +{ + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 6.0, 6.0, 0.0, 0.0, 0.0, 0.0, 3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "strideA1": -3, + "strideA2": -7, + "offsetA": 17, + "A_out": [ 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 9.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_x_zeros.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_x_zeros.json new file mode 100644 index 000000000000..ba508266cae3 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_x_zeros.json @@ -0,0 +1,22 @@ +{ + "order": "column-major", + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 0.0, 0.0, 0.0, 0.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 4.0, 4.0, 2.0, 2.0, 5.0, 5.0, 3.0, 3.0, 6.0, 6.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "A_out": [ 1.0, 1.0, 4.0, 4.0, 2.0, 2.0, 5.0, 5.0, 3.0, 3.0, 6.0, 6.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_xnyn.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_xnyn.json new file mode 100644 index 000000000000..ffc404a2bac5 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_xnyn.json @@ -0,0 +1,24 @@ +{ + "order": "column-major", + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 4.0, 4.0, 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideX": -1, + "offsetX": 3, + "y": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + "strideY": -1, + "offsetY": 2, + "A": [ 1.0, 1.0, 4.0, 4.0, 7.0, 7.0, 10.0, 10.0, 2.0, 2.0, 5.0, 5.0, 8.0, 8.0, 11.0, 11.0, 3.0, 3.0, 6.0, 6.0, 9.0, 9.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "lda": 4, + "strideA1": 1, + "strideA2": 4, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 10.0, 10.0, 16.0, 16.0, 22.0, 22.0, 4.0, 4.0, 9.0, 9.0, 14.0, 14.0, 19.0, 19.0, 4.0, 4.0, 8.0, 8.0, 12.0, 12.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_xnyp.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_xnyp.json new file mode 100644 index 000000000000..b05d26ccd00b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_xnyp.json @@ -0,0 +1,24 @@ +{ + "order": "column-major", + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 4.0, 4.0, 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideX": -1, + "offsetX": 3, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 4.0, 4.0, 7.0, 7.0, 10.0, 10.0, 2.0, 2.0, 5.0, 5.0, 8.0, 8.0, 11.0, 11.0, 3.0, 3.0, 6.0, 6.0, 9.0, 9.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "lda": 4, + "strideA1": 1, + "strideA2": 4, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 10.0, 10.0, 16.0, 16.0, 22.0, 22.0, 4.0, 4.0, 9.0, 9.0, 14.0, 14.0, 19.0, 19.0, 4.0, 4.0, 8.0, 8.0, 12.0, 12.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_xpyn.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_xpyn.json new file mode 100644 index 000000000000..7813b8691864 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_xpyn.json @@ -0,0 +1,24 @@ +{ + "order": "column-major", + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + "strideY": -1, + "offsetY": 2, + "A": [ 1.0, 1.0, 4.0, 4.0, 7.0, 7.0, 10.0, 10.0, 2.0, 2.0, 5.0, 5.0, 8.0, 8.0, 11.0, 11.0, 3.0, 3.0, 6.0, 6.0, 9.0, 9.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "lda": 4, + "strideA1": 1, + "strideA2": 4, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 10.0, 10.0, 16.0, 16.0, 22.0, 22.0, 4.0, 4.0, 9.0, 9.0, 14.0, 14.0, 19.0, 19.0, 4.0, 4.0, 8.0, 8.0, 12.0, 12.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_xpyp.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_xpyp.json new file mode 100644 index 000000000000..14e3f5aced0d --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_xpyp.json @@ -0,0 +1,24 @@ +{ + "order": "column-major", + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 4.0, 4.0, 7.0, 7.0, 10.0, 10.0, 2.0, 2.0, 5.0, 5.0, 8.0, 8.0, 11.0, 11.0, 3.0, 3.0, 6.0, 6.0, 9.0, 9.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "lda": 4, + "strideA1": 1, + "strideA2": 4, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 10.0, 10.0, 16.0, 16.0, 22.0, 22.0, 4.0, 4.0, 9.0, 9.0, 14.0, 14.0, 19.0, 19.0, 4.0, 4.0, 8.0, 8.0, 12.0, 12.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_y_zeros.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_y_zeros.json new file mode 100644 index 000000000000..948667fa1a85 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/column_major_y_zeros.json @@ -0,0 +1,22 @@ +{ + "order": "column-major", + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 4.0, 4.0, 2.0, 2.0, 5.0, 5.0, 3.0, 3.0, 6.0, 6.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "A_out": [ 1.0, 1.0, 4.0, 4.0, 2.0, 2.0, 5.0, 5.0, 3.0, 3.0, 6.0, 6.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major.json new file mode 100644 index 000000000000..0fa806d45f94 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major.json @@ -0,0 +1,22 @@ +{ + "order": "row-major", + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "lda": 3, + "strideA1": 3, + "strideA2": 1, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 10.0, 10.0, 9.0, 9.0, 8.0, 8.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_complex_access_pattern.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_complex_access_pattern.json new file mode 100644 index 000000000000..3ce76404cfe2 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_complex_access_pattern.json @@ -0,0 +1,20 @@ +{ + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 2.0, 2.0, 1.0, 1.0 ], + "strideX": -1, + "offsetX": 1, + "y": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + "strideY": -1, + "offsetY": 2, + "A": [ 0.0, 0.0, 0.0, 0.0, 6.0, 6.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "strideA1": -7, + "strideA2": -3, + "offsetA": 15, + "A_out": [ 0.0, 0.0, 0.0, 0.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 9.0, 9.0, 0.0, 0.0, 0.0, 0.0, 10.0, 10.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_oa.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_oa.json new file mode 100644 index 000000000000..968d710fb0c3 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_oa.json @@ -0,0 +1,22 @@ +{ + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "strideA1": 3, + "strideA2": 1, + "offsetA": 2, + "A_out": [ 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 10.0, 10.0, 9.0, 9.0, 8.0, 8.0, 16.0, 16.0, 14.0, 14.0, 12.0, 12.0, 22.0, 22.0, 19.0, 19.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_ox.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_ox.json new file mode 100644 index 000000000000..a7860f4477dc --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_ox.json @@ -0,0 +1,22 @@ +{ + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0 ], + "strideX": 1, + "offsetX": 2, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "strideA1": 3, + "strideA2": 1, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 10.0, 10.0, 9.0, 9.0, 8.0, 8.0, 16.0, 16.0, 14.0, 14.0, 12.0, 12.0, 22.0, 22.0, 19.0, 19.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_oy.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_oy.json new file mode 100644 index 000000000000..952fe0a67a0b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_oy.json @@ -0,0 +1,22 @@ +{ + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 0.0, 0.0, 0.0, 0.0, 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 2, + "A": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "strideA1": 3, + "strideA2": 1, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 10.0, 10.0, 9.0, 9.0, 8.0, 8.0, 16.0, 16.0, 14.0, 14.0, 12.0, 12.0, 22.0, 22.0, 19.0, 19.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_sa1_sa2.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_sa1_sa2.json new file mode 100644 index 000000000000..b2b2b33d6a61 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_sa1_sa2.json @@ -0,0 +1,20 @@ +{ + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 3.0, 3.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 6.0, 6.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "strideA1": 7, + "strideA2": 3, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 10.0, 10.0, 0.0, 0.0, 0.0, 0.0, 9.0, 9.0, 0.0, 0.0, 0.0, 0.0, 8.0, 8.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_sa1_sa2n.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_sa1_sa2n.json new file mode 100644 index 000000000000..1ecf34bfdbf3 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_sa1_sa2n.json @@ -0,0 +1,20 @@ +{ + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 6.0, 6.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "strideA1": 7, + "strideA2": -3, + "offsetA": 6, + "A_out": [ 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 9.0, 9.0, 0.0, 0.0, 0.0, 0.0, 10.0, 10.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_sa1n_sa2.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_sa1n_sa2.json new file mode 100644 index 000000000000..79c6d6566ed0 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_sa1n_sa2.json @@ -0,0 +1,20 @@ +{ + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 6.0, 6.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 3.0, 3.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "strideA1": -7, + "strideA2": 3, + "offsetA": 7, + "A_out": [ 10.0, 10.0, 0.0, 0.0, 0.0, 0.0, 9.0, 9.0, 0.0, 0.0, 0.0, 0.0, 8.0, 8.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_sa1n_sa2n.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_sa1n_sa2n.json new file mode 100644 index 000000000000..f4edd58dad0f --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_sa1n_sa2n.json @@ -0,0 +1,20 @@ +{ + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 6.0, 6.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "strideA1": -7, + "strideA2": -3, + "offsetA": 13, + "A_out": [ 8.0, 8.0, 0.0, 0.0, 0.0, 0.0, 9.0, 9.0, 0.0, 0.0, 0.0, 0.0, 10.0, 10.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_x_zeros.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_x_zeros.json new file mode 100644 index 000000000000..87c7ab36df64 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_x_zeros.json @@ -0,0 +1,22 @@ +{ + "order": "row-major", + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 0.0, 0.0, 0.0, 0.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "lda": 3, + "strideA1": 3, + "strideA2": 1, + "offsetA": 0, + "A_out": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_xnyn.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_xnyn.json new file mode 100644 index 000000000000..072bf512aa7c --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_xnyn.json @@ -0,0 +1,24 @@ +{ + "order": "row-major", + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 4.0, 4.0, 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideX": -1, + "offsetX": 3, + "y": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + "strideY": -1, + "offsetY": 2, + "A": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "lda": 3, + "strideA1": 3, + "strideA2": 1, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 10.0, 10.0, 9.0, 9.0, 8.0, 8.0, 16.0, 16.0, 14.0, 14.0, 12.0, 12.0, 22.0, 22.0, 19.0, 19.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_xnyp.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_xnyp.json new file mode 100644 index 000000000000..f35fee83b67e --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_xnyp.json @@ -0,0 +1,24 @@ +{ + "order": "row-major", + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 4.0, 4.0, 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideX": -1, + "offsetX": 3, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "lda": 3, + "strideA1": 3, + "strideA2": 1, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 10.0, 10.0, 9.0, 9.0, 8.0, 8.0, 16.0, 16.0, 14.0, 14.0, 12.0, 12.0, 22.0, 22.0, 19.0, 19.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_xpyn.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_xpyn.json new file mode 100644 index 000000000000..9a148e56f96c --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_xpyn.json @@ -0,0 +1,24 @@ +{ + "order": "row-major", + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + "strideY": -1, + "offsetY": 2, + "A": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "lda": 3, + "strideA1": 3, + "strideA2": 1, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 10.0, 10.0, 9.0, 9.0, 8.0, 8.0, 16.0, 16.0, 14.0, 14.0, 12.0, 12.0, 22.0, 22.0, 19.0, 19.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_xpyp.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_xpyp.json new file mode 100644 index 000000000000..f5635e9e0a2f --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_xpyp.json @@ -0,0 +1,24 @@ +{ + "order": "row-major", + "M": 4, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + [ 7.0, 7.0, 8.0, 8.0, 9.0, 9.0 ], + [ 10.0, 10.0, 11.0, 11.0, 12.0, 12.0 ] + ], + "lda": 3, + "strideA1": 3, + "strideA2": 1, + "offsetA": 0, + "A_out": [ 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 10.0, 10.0, 9.0, 9.0, 8.0, 8.0, 16.0, 16.0, 14.0, 14.0, 12.0, 12.0, 22.0, 22.0, 19.0, 19.0, 16.0, 16.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_y_zeros.json b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_y_zeros.json new file mode 100644 index 000000000000..34bf7166b1e0 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/cgerc/test/fixtures/row_major_y_zeros.json @@ -0,0 +1,22 @@ +{ + "order": "row-major", + "M": 2, + "N": 3, + "alpha": [ 0.5, 0.5 ], + "x": [ 1.0, 1.0, 2.0, 2.0 ], + "strideX": 1, + "offsetX": 0, + "y": [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], + "strideY": 1, + "offsetY": 0, + "A": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ], + "A_mat": [ + [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0 ], + [ 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] + ], + "lda": 3, + "strideA1": 3, + "strideA2": 1, + "offsetA": 0, + "A_out": [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0 ] +}