From eaddeda0598718dcdcdb55ded5bf22f58cb87bb9 Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Sun, 18 May 2025 00:03:56 +0530 Subject: [PATCH 01/19] feat: add blas/base/strsm --- .../@stdlib/blas/base/strsm/README.md | 250 +++++++++ .../benchmark_ca_cb_l_l_nt_nu.ndarray.js | 105 ++++ .../blas/base/strsm/docs/types/index.d.ts | 129 +++++ .../blas/base/strsm/docs/types/test.ts | 486 ++++++++++++++++++ .../@stdlib/blas/base/strsm/examples/index.js | 38 ++ .../@stdlib/blas/base/strsm/lib/base.js | 379 ++++++++++++++ .../@stdlib/blas/base/strsm/lib/index.js | 68 +++ .../@stdlib/blas/base/strsm/lib/main.js | 35 ++ .../@stdlib/blas/base/strsm/lib/ndarray.js | 97 ++++ .../@stdlib/blas/base/strsm/lib/strsm.js | 124 +++++ .../@stdlib/blas/base/strsm/package.json | 68 +++ .../@stdlib/blas/base/strsm/test/test.js | 82 +++ .../blas/base/strsm/test/test.ndarray.js | 0 .../blas/base/strsm/test/test.strsm.js | 0 14 files changed, 1861 insertions(+) create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/README.md create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark_ca_cb_l_l_nt_nu.ndarray.js create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/examples/index.js create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/lib/base.js create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/lib/index.js create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/lib/main.js create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/package.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/test.js create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js diff --git a/lib/node_modules/@stdlib/blas/base/strsm/README.md b/lib/node_modules/@stdlib/blas/base/strsm/README.md new file mode 100644 index 000000000000..b65669dfa71b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/README.md @@ -0,0 +1,250 @@ + + +# strsm + +> Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. + +
+ +## Usage + +```javascript +var strsm = require( '@stdlib/blas/base/strsm' ); +``` + +#### strsm( order, side, uplo, transa, diag, m, n, alpha, A, LDA, B, LDB ) + +Solves matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. + +```javascript +var Float32Array = require( '@stdlib/array/loat32' ); + +A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); +B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + +strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); +// B => [ 30.0, 6.0, 0.0, 12.0 ] +``` + +The function has the following parameters: + +- **order**: storage layout of `A` and `B`. +- **side**: specifies whether `op( A )` appears on the left or right side of `X`. +- **uplo**: specifies whether the upper or lower triangular part of the matrix `A` is supplied. +- **transa**: specifies the form of `op( A )` to be used in the matrix multiplication. +- **diag**: specifies whether or not `A` is unit triangular. +- **m**: number of rows in `B`. +- **n**: number of columns in `B`. +- **alpha**: scalar constant. +- **A**: input matrix `A`. +- **LDA**: stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`). +- **B**: input matrix `B`. +- **LDB**: stride of the first dimension of `B` (a.k.a., leading dimension of the matrix `B`). + +Note that indexing is relative to the first index. To introduce an offset, use [`typed array`][mdn-typed-array] views. + + + +```javascript +var Float32Array = require( '@stdlib/array/loat32' ); + +// Initial arrays... +var A0 = new Float32Array( [ 0.0, 1.0, 3.0, 0.0, 4.0 ] ); +var B0 = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); + +// Create offset views... +var A1 = new Float32Array( A0.buffer, A0.BYTES_PER_ELEMENT*1 ); // start at 2nd element +var B1 = new Float32Array( B0.buffer, B0.BYTES_PER_ELEMENT*1 ); // start at 2nd element + +strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A1, 2, B1, 2 ); +// B0 => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +``` + +#### strsm.ndarray( s, ul, t, d, m, n, α, A, sa1, sa2, oa, B, sb1, sb2, ob ) + +Solves matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` using alternative indexing semantics and where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. + +```javascript +var Float32Array = require( '@stdlib/array/loat32' ); + +A = new Float32Array( [ 0.0, 0.0, 1.0, 3.0, 0.0, 4.0 ] ); +B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); + +strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); +// B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +``` + +The function has the following parameters: + +- **side**: specifies whether `op( A )` appears on the left or right side of `X`. +- **uplo**: specifies whether the upper or lower triangular part of the matrix `A` is supplied. +- **transa**: specifies the form of `op( A )` to be used in the matrix multiplication. +- **diag**: specifies whether or not `A` is unit triangular. +- **m**: number of rows in `B`. +- **n**: number of columns in `B`. +- **alpha**: scalar constant. +- **A**: input matrix `A`. +- **sa1**: stride of the first dimension of `A`. +- **sa2**: stride of the second dimension of `A`. +- **oa**: starting index for `A`. +- **B**: input matrix `B`. +- **sb1**: stride of the first dimension of `B`. +- **sb2**: stride of the second dimension of `B`. +- **ob**: starting index for `B`. + +While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying buffer, the offset parameters support indexing semantics based on starting indices. For example, + +```javascript +var Float32Array = require( '@stdlib/array/loat32' ); + +A = new Float32Array( [ 0.0, 0.0, 1.0, 3.0, 0.0, 4.0 ] ); +B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); + +strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); +// B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +``` + +
+ + + +
+ +## Notes + +- `strsm()` corresponds to the [BLAS][blas] level 3 function [`strsm`][strsm]. + +
+ + + +
+ +## Examples + + + +```javascript +var Float32Array = require( '@stdlib/array/loat32' ); +var strsm = require( '@stdlib/blas/base/strsm' ); + +var A = new Float32Array( [ 1.0, 0.0, 3.0, 4.0 ] ); +var B = new Float32Array( [ 5.0, 0.0, 7.0, 8.0 ] ); + +strsm( 'row-major', 'left', 'lower', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); +console.log( B ); +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +TODO +``` + +#### TODO + +TODO. + +```c +TODO +``` + +TODO + +```c +TODO +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +TODO +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark_ca_cb_l_l_nt_nu.ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark_ca_cb_l_l_nt_nu.ndarray.js new file mode 100644 index 000000000000..2aba23e6bfc6 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark_ca_cb_l_l_nt_nu.ndarray.js @@ -0,0 +1,105 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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 bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var zeros = require( '@stdlib/array/zeros' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var pow = require( '@stdlib/math/base/special/pow' ); +var floor = require( '@stdlib/math/base/special/floor' ); +var pkg = require( './../package.json' ).name; +var strsm = require( './../lib/ndarray.js' ); + + +// VARIABLES // + +var options = { + 'dtype': 'float32' +}; + + +// FUNCTIONS // + +/** +* Creates a benchmark function. +* +* @private +* @param {PositiveInteger} N - array dimension size +* @returns {Function} benchmark function +*/ +function createBenchmark( N ) { + var A = uniform( N*N, -10.0, 10.0, options ); + var B = zeros( N*N, options.dtype ); + return benchmark; + + /** + * Benchmark function. + * + * @private + * @param {Benchmark} b - benchmark instance + */ + function benchmark( b ) { + var z; + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + z = strsm( 'left', 'lower', 'no-transpose', 'non-unit', N, N, 1.0, A, 1, N, 0, B, 1, N, 0 ); + if ( isnanf( z[ i%z.length ] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( z[ i%z.length ] ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); + } +} + + +// MAIN // + +/** +* Main execution sequence. +* +* @private +*/ +function main() { + var len; + var min; + var max; + var f; + var i; + + min = 1; // 10^min + max = 4; // 10^max + + for ( i = min; i <= max; i++ ) { + len = floor( pow( pow( 10, i ), 1.0/2.0 ) ); + f = createBenchmark( len ); + bench( pkg+':ndarray:order(A)=column-major,order(B)=column-major,side=left,uplo=lower,trans=false,diag=non-unit,size='+(len*len), f ); + } +} + +main(); diff --git a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts new file mode 100644 index 000000000000..a06b2f5a75ef --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts @@ -0,0 +1,129 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2024 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. +*/ + +// TypeScript Version: 4.1 + +/// + +import { Layout, MatrixTriangle, DiagonalType, OperationSide, TransposeOperation } from '@stdlib/types/blas'; + +/** +* Interface describing `strsm`. +*/ +interface Routine { + /** + * Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. + * + * @param order - storage layout of `A` and `B` + * @param side - specifies whether `op( A )` appears on the left or right of `X` + * @param uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied + * @param trans - specifies the form of `op( A )` to be used in matrix multiplication + * @param diag - specifies whether or not `A` is unit triangular + * @param m - number of rows in `B` + * @param n - number of columns in `B` + * @param alpha - scalar constant + * @param A - input matrix `A` + * @param LDA - stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`) + * @param B - input matrix `B` + * @param LDB - stride of the first dimension of `B` (a.k.a., leading dimension of the matrix `B`) + * @returns `B` + * + * @example + * var Float32Array = require( '@stdlib/array/float32' ); + * + * var A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + * var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + * + * strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); + * // B => [ 30.0, 6.0, 0.0, 12.0 ] + */ + ( order: Layout, side: OperationSide, uplo: MatrixTriangle, trans: TransposeOperation, diag: DiagonalType, m: number, n: number, alpha: number, A: Float32Array, LDA: number, B: Float32Array, LDB: number ): Float32Array; + + /** + * Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. + * + * @param side - specifies whether `op( A )` appears on the left or right of `X` + * @param uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied + * @param trans - specifies the form of `op( A )` to be used in matrix multiplication + * @param diag - specifies whether or not `A` is unit triangular + * @param m - number of rows in `B` + * @param n - number of columns in `B` + * @param alpha - scalar constant + * @param A - input matrix `A` + * @param strideA1 - stride of the first dimension of `A` + * @param strideA2 - stride of the second dimension of `A` + * @param offsetA - starting index for `A` + * @param B - input matrix `B` + * @param strideB1 - stride of the first dimension of `B` + * @param strideB2 - stride of the second dimension of `B` + * @param offsetB - starting index for `B` + * @returns `B` + * + * @example + * var Float32Array = require( '@stdlib/array/float32' ); + * + * var A = new Float32Array( [ 0.0, 0.0, 1.0, 3.0, 0.0, 4.0 ] ); + * var B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); + * + * strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); + * // B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] + */ + ndarray( side: OperationSide, uplo: MatrixTriangle, trans: TransposeOperation, diag: DiagonalType, m: number, n: number, alpha: number, A: Float32Array, strideA1: number, strideA2: number, offsetA: number, B: Float32Array, strideB1: number, strideB2: number, offsetB: number ): Float32Array; +} + +/** +* Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +* +* @param order - storage layout of `A` and `B` +* @param side - specifies whether `op( A )` appears on the left or right of `X` +* @param uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied +* @param trans - specifies the form of `op( A )` to be used in matrix multiplication +* @param diag - specifies whether or not `A` is unit triangular +* @param m - number of rows in `B` +* @param n - number of columns in `B` +* @param alpha - scalar constant +* @param A - input matrix `A` +* @param LDA - stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`) +* @param B - input matrix `B` +* @param LDB - stride of the first dimension of `B` (a.k.a., leading dimension of the matrix `B`) +* @returns `B` +* +* @example +* var Float32Array = require( '@stdlib/array/float32' ); +* +* var A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); +* var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); +* +* strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); +* // B => [ 30.0, 6.0, 0.0, 12.0 ] +* +* @example +* var Float32Array = require( '@stdlib/array/float32' ); +* +* var A = new Float32Array( [ 0.0, 0.0, 1.0, 3.0, 0.0, 4.0 ] ); +* var B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); +* +* strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); +* // B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +*/ +declare var strsm: Routine; + + +// EXPORTS // + +export = strsm; diff --git a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/test.ts b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/test.ts new file mode 100644 index 000000000000..b983afbb88f4 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/test.ts @@ -0,0 +1,486 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2024 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. +*/ + +import strsm = require( './index' ); + + +// TESTS // + +// The function returns a Float32Array... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectType Float32Array +} + +// The compiler throws an error if the function is provided a first argument which is not a string... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm( 5, 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( true, 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( false, 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( null, 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( void 0, 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( [], 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( {}, 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( ( x: number ): number => x, 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a second argument which is not a string... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm( 'row-major', 5, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', true, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', false, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', null, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', void 0, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', [], 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', {}, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', ( x: number ): number => x, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a third argument which is not a string... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm( 'row-major', 'left', 5, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', true, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', false, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', null, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', void 0, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', [], 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', {}, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', ( x: number ): number => x, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fourth argument which is not a string... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm( 'row-major', 'left', 'upper', 5, 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', true, 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', false, 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', null, 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', void 0, 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', [], 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', {}, 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', ( x: number ): number => x, 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fifth argument which is not a string... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm( 'row-major', 'left', 'upper', 'no-transpose', 5, 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', true, 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', false, 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', null, 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', void 0, 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', [], 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', {}, 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', ( x: number ): number => x, 2, 2, 6.0, A, 2, B, 2 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a sixth argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', '5', 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', true, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', false, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', null, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', void 0, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', [], 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', {}, 2, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', ( x: number ): number => x, 2, 6.0, A, 2, B, 2 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a seventh argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, '5', 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, true, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, false, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, null, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, void 0, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, [], 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, {}, 6.0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, ( x: number ): number => x, 6.0, A, 2, B, 2 ); // $ExpectError +} + +// The compiler throws an error if the function is provided an eighth argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, '5', A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, true, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, false, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, null, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, void 0, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, [], A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, {}, A, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, ( x: number ): number => x, A, 2, B, 2 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a ninth argument which is not a Float32Array... +{ + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, '5', 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, 5, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, true, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, false, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, null, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, void 0, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, [], 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, {}, 2, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, ( x: number ): number => x, 2, B, 2 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a tenth argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, '5', B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, true, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, false, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, null, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, void 0, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, [], B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, {}, B, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, ( x: number ): number => x, B, 2 ); // $ExpectError +} + +// The compiler throws an error if the function is provided an eleventh argument which is not a Float32Array... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, '5', 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 5, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, true, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, false, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, null, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, void 0, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, [], 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, {}, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, ( x: number ): number => x, 2 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a twelfth argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, '5' ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, true ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, false ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, null ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, void 0 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, [] ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, {} ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided an unsupported number of arguments... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm(); // $ExpectError + strsm( 'row-major' ); // $ExpectError + strsm( 'row-major', 'left' ); // $ExpectError + strsm( 'row-major', 'left', 'upper' ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose' ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit' ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2 ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B ); // $ExpectError + strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2, 10 ); // $ExpectError +} + +// Attached to main export is an `ndarray` method which returns a Float32Array... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectType Float32Array +} + +// The compiler throws an error if the function is provided a first argument which is not a string... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 5, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( true, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( false, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( null, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( void 0, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( [], 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( {}, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( ( x: number ): number => x, 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a second argument which is not a string... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 5, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', true, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', false, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', null, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', void 0, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', [], 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', {}, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', ( x: number ): number => x, 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a third argument which is not a string... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 5, 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', true, 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', false, 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', null, 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', void 0, 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', [], 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', {}, 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', ( x: number ): number => x, 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fourth argument which is not a string... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 5, 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', true, 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', false, 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', null, 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', void 0, 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', [], 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', {}, 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', ( x: number ): number => x, 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fifth argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', '5', 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', true, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', false, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', null, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', void 0, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', [], 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', {}, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', ( x: number ): number => x, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a sixth argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, '5', 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, true, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, false, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, null, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, void 0, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, [], 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, {}, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, ( x: number ): number => x, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a seventh argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, '5', A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, true, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, false, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, null, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, void 0, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, [], A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, {}, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, ( x: number ): number => x, A, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided an eighth argument which is not a Float32Array... +{ + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, '5', 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, 5, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, true, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, false, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, null, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, void 0, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, [], 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, {}, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, ( x: number ): number => x, 2, 1, 0, B, 2, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a ninth argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, '5', 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, true, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, false, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, null, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, void 0, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, [], 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, {}, 1, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, ( x: number ): number => x, 1, 0, B, 2, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a tenth argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, '5', 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, true, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, false, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, null, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, void 0, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, [], 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, {}, 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, ( x: number ): number => x, 0, B, 2, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided an eleventh argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, '5', B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, true, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, false, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, null, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, void 0, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, [], B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, {}, B, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, ( x: number ): number => x, B, 2, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a twelfth argument which is not a Float32Array... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, '5', 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, 5, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, true, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, false, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, null, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, void 0, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, [], 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, {}, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, ( x: number ): number => x, 2, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a thirteenth argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, '5', 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, true, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, false, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, null, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, void 0, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, [], 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, {}, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, ( x: number ): number => x, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fourteenth argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, '5', 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, true, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, false, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, null, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, void 0, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, [], 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, {}, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, ( x: number ): number => x, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fifteenth argument which is not a number... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, '5' ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, true ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, false ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, null ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, void 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, [] ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, {} ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the `ndarray` method is provided an unsupported number of arguments... +{ + const A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); + const B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + + strsm.ndarray(); // $ExpectError + strsm.ndarray( 'left' ); // $ExpectError + strsm.ndarray( 'left', 'upper' ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose' ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit' ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1 ); // $ExpectError + strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0, 10 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/examples/index.js b/lib/node_modules/@stdlib/blas/base/strsm/examples/index.js new file mode 100644 index 000000000000..814b27ca6d32 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/examples/index.js @@ -0,0 +1,38 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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'; + +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); +var strsm = require( './../lib' ); + +var opts = { + 'dtype': 'float32' +}; + +var M = 3; +var N = 3; + +var A = discreteUniform( M*N, -10.0, 10.0, opts ); +var B = discreteUniform( M*N, -10.0, 10.0, opts ); + +var out = strsm( 'column-major', 'left', 'upper', 'no-transpose', 'non-unit', M, N, 1.0, A, N, B, N ); +console.log( out ); + +var out = strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', M, N, 1.0, A, N,1, 0, B, N, 1, 0 ); +console.log( out ); diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js new file mode 100644 index 000000000000..a13742265f72 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js @@ -0,0 +1,379 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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. +*/ + +/* eslint-disable max-len, max-statements, max-depth, max-lines-per-function */ + +'use strict'; + +// MODULES // + +var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major' ); +var f32 = require( '@stdlib/number/float64/base/to-float32' ); + + +// FUNCTIONS + +/** +* Fills a matrix with zeros. +* +* @private +* @param {NonNegativeInteger} M - number of rows +* @param {NonNegativeInteger} N - number of columns +* @param {Float32Array} X - matrix to fill +* @param {integer} strideX1 - stride of the first dimension of `X` +* @param {integer} strideX2 - stride of the second dimension of `X` +* @param {NonNegativeInteger} offsetX - starting index for `X` +* @returns {Float32Array} input matrix +* +* @example +* var Float32Array = require( '@stdlib/array/float32' ); +* +* var X = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); +* +* zeros( 2, 3, X, 3, 1, 0 ); +* // X => [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] +* +* @example +* var Float32Array = require( '@stdlib/array/float32' ); +* +* var X = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); +* +* zeros( 2, 3, X, 1, 2, 0 ); +* // X => [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] +*/ +function zeros( M, N, X, strideX1, strideX2, offsetX ) { // TODO: consider moving to a separate package + var dx0; + var dx1; + var S0; + var S1; + var i0; + var i1; + var ix; + + if ( isRowMajor( [ strideX1, strideX2 ] ) ) { + // For row-major matrices, the last dimension has the fastest changing index... + S0 = N; + S1 = M; + dx0 = strideX2; // offset increment for innermost loop + dx1 = strideX1 - ( S0*strideX2 ); // offset increment for outermost loop + } else { // column-major + // For column-major matrices, the first dimension has the fastest changing index... + S0 = M; + S1 = N; + dx0 = strideX1; // offset increment for innermost loop + dx1 = strideX2 - ( S0*strideX1 ); // offset increment for outermost loop + } + ix = offsetX; + for ( i1 = 0; i1 < S1; i1++ ) { + for ( i0 = 0; i0 < S0; i0++ ) { + X[ ix ] = 0.0; + ix += dx0; + } + ix += dx1; + } + return X; +} + + +// MAIN // + +/** +* Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +* +* @private +* @param {string} side - specifies whether `op( A )` appears on the left or right of `X` +* @param {string} uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied +* @param {string} trans - specifies the form of `op( A )` to be used in matrix multiplication +* @param {string} diag - specifies whether or not `A` is unit triangular +* @param {NonNegativeInteger} M - number of rows in `B` +* @param {NonNegativeInteger} N - number of columns in `B` +* @param {number} alpha - scalar constant +* @param {Float32Array} A - input matrix `A` +* @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` +* @param {Float32Array} B - input matrix `B` +* @param {integer} strideB1 - stride of the first dimension of `B` +* @param {integer} strideB2 - stride of the second dimension of `B` +* @param {NonNegativeInteger} offsetB - starting index for `B` +* @returns {Float32Array} `B` +* +* @example +* var Float32Array = require( '@stdlib/array/float32' ); +* +* var A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); +* var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); +* +* strsm( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); +* // B => [ 30.0, 6.0, 0.0, 12.0 ] +*/ +function strsm( side, uplo, trans, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) { // eslint-disable-line max-params + var nonunit; + var isrma; + var isrmb; + var tmp; + var oa2; + var ob2; + var sa0; + var sa1; + var sb0; + var sb1; + var oa; + var ob; + var i; + var j; + var k; + + // Note on variable naming convention: sa#, ix#, i# where # corresponds to the loop number, with `0` being the innermost loop... + + isrma = isRowMajor( [ strideA1, strideA2 ] ); + isrmb = isRowMajor( [ strideB1, strideB2 ] ); + nonunit = ( diag === 'non-unit' ); + + if ( M === 0 || N === 0 ) { + return B; + } + if ( isrma ) { + // For row-major matrices, the last dimension has the fastest changing index... + sa0 = strideA2; // stride for innermost loop + sa1 = strideA1; // stride for outermost loop + } else { // isColMajor + // For column-major matrices, the first dimension has the fastest changing index... + sa0 = strideA1; // stride for innermost loop + sa1 = strideA2; // stride for outermost loop + } + if ( isrmb ) { + // For row-major matrices, the last dimension has the fastest changing index... + sb0 = strideB2; // stride for innermost loop + sb1 = strideB1; // stride for outermost loop + } else { // isColMajor + // For column-major matrices, the first dimension has the fastest changing index... + sb0 = strideB1; // stride for innermost loop + sb1 = strideB2; // stride for outermost loop + } + + if ( alpha === 0.0 ) { + zeros( M, N, B, sb0, sb1, offsetB ); + return B; + } + if ( side === 'left' ) { + if ( trans === 'no-transpose' ) { + // B := alpha * inv( A ) * B + if ( uplo === 'upper' ) { + for ( j = 0; j < N; j++ ) { + ob = offsetB + ( j * sb0 ); + if ( alpha !== 1.0 ) { + for ( i = 0; i < M; i++ ) { + B[ ob + ( i * sb1 ) ] = f32( B[ ob + ( i * sb1 ) ] * alpha ); + } + } + for ( k = M - 1; k >= 0; k-- ) { + oa2 = offsetA + ( k * sa1 ) + ( k * sa0 ); + ob2 = ob + ( k * sb1 ); + if ( B[ ob2 ] !== 0.0 ) { + if ( nonunit ) { + B[ ob2 ] = f32( B[ ob2 ] / A[ oa2 ] ); + } + for ( i = 0; i < k; i++ ) { + B[ ob + ( i * sb1 ) ] -= f32( B[ ob2 ] * A[ offsetA + ( i * sa1 ) + ( k * sa0 ) ] ); + } + } + } + } + return B; + } + // Lower + for ( j = 0; j < N; j++ ) { + ob = offsetB + ( j * sb0 ); + if ( alpha !== 1.0 ) { + for ( i = 0; i < M; i++ ) { + B[ ob + ( i * sb1 ) ] = f32( B[ ob + ( i * sb1 ) ] * alpha ); + } + } + for ( k = 0; k < M; k++ ) { + oa2 = offsetA + ( k * sa1 ) + ( k * sa0 ); + ob2 = ob + ( k * sb1 ); + if ( B[ ob2 ] !== 0.0 ) { + if ( nonunit ) { + B[ ob2 ] = f32( B[ ob2 ] / A[ oa2 ] ); + } + for ( i = k + 1; i < M; i++ ) { + oa2 = offsetA + i * sa1 + k * sa0; + B[ ob + ( i * sb1 ) ] -= f32( B[ ob2 ] * A[ oa2 ] ); + } + } + } + } + return B; + } + // B := alpha * inv( A**T ) * B + if ( uplo === 'upper' ) { + for ( j = 0; j < N; j++ ) { + ob = offsetB + ( j * sb0 ); + for ( i = 0; i < M; i++ ) { + oa2 = offsetA + ( i * sa1 ) + ( i * sa0 ); + tmp = f32( B[ ob + ( i * sb1 ) ] * alpha ); + for ( k = 0; k < i; k++ ) { + oa = offsetA + ( k * sa1 ); + tmp -= f32( A[ oa + ( i * sa0 ) ] * B[ ob + ( k * sb1 ) ] ); + } + if ( nonunit ) { + tmp = f32( tmp / A[ oa2 ] ); + } + B[ ob + ( i * sb1 ) ] = tmp; + } + } + return B; + } + // Lower + for ( j = 0; j < N; j++ ) { + ob = offsetB + ( j * sb0 ); + for ( i = M - 1; i >= 0; i-- ) { + oa2 = offsetA + ( i * sa1 ) + ( i * sa0 ); + tmp = f32( B[ ob + ( i * sb1 ) ] * alpha ); + for ( k = i + 1; k < M; k++ ) { + tmp -= f32( A[ offsetA + ( k * sa1 ) + ( i * sa0 ) ] * B[ ob + ( k * sb1 ) ] ); + } + if ( nonunit ) { + tmp = f32( tmp / A[ oa2 ] ); + } + B[ ob + ( i * sb1 ) ] = tmp; + } + } + return B; + } + // Right + if ( trans === 'no-transpose' ) { + if ( uplo === 'upper' ) { + for ( j = 0; j < N; j++ ) { + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + ( i * sb1 ) + ( j * sb0 ); + if ( alpha !== 1.0 ) { + B[ ob2 ] = f32( B[ ob2 ] * alpha ); + } + } + for ( k = 0; k < j; k++ ) { + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + i * sb1; + oa2 = offsetA + k * sa1 + j * sa0; + if ( A[ oa2 ] !== 0.0 ) { + B[ ob2 + j * sb0 ] -= f32( A[ oa2 ] * B[ ob2 + k * sb0 ] ); + } + } + } + if ( nonunit ) { + oa2 = offsetA + j * sa1 + j * sa0; + tmp = f32( 1.0 / A[ oa2 ] ); + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + i * sb1 + j * sb0; + B[ ob2 ] = f32( B[ ob2 ] * tmp ); + } + } + } + return B; + } + // Lower + for ( j = N - 1; j >= 0; j-- ) { + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + ( i * sb1 ) + ( j * sb0 ); + if ( alpha !== 1.0 ) { + B[ ob2 ] = f32( B[ ob2 ] * alpha ); + } + } + for ( k = j + 1; k < N; k++ ) { + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + i * sb1; + oa2 = offsetA + k * sa1; + if ( A[ oa2 + j * sa0 ] !== 0.0 ) { + B[ ob2 + j * sb0 ] -= f32( A[ oa2 + j * sa0 ] * B[ ob2 + k * sb0 ] ); + } + } + } + if ( nonunit ) { + oa2 = offsetA + j * sa1 + j * sa0; + tmp = f32( 1.0 / A[ oa2 ] ); + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + ( i * sb1 ) + ( j * sb0 ); + B[ ob2 ] = f32( B[ ob2 ] * tmp ); + } + } + } + return B; + } + // B := alpha * B * inv( A**T ) + if ( uplo === 'upper' ) { + for ( k = N - 1; k >= 0; k-- ) { + if ( nonunit ) { + oa2 = offsetA + k * sa1 + k * sa0; + tmp = f32( 1.0 / A[ oa2 ] ); + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + i * sb1 + k * sb0; + B[ ob2 ] = f32( B[ ob2 ] * tmp ); + } + } + for ( j = 0; j < k; j++ ) { + oa2 = offsetA + ( j * sa1 ) + ( k * sa0 ); + if ( A[ oa2 ] !== 0.0 ) { + for ( i = 0; i < M; i++ ) { + ob = offsetB + i * sb1; + B[ ob + j * sb0 ] -= f32( A[ oa2 ] * B[ ob + k * sb0 ] ); + } + } + } + if ( alpha !== 1.0 ) { + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + i * sb1 + k * sb0; + B[ ob2 ] = f32( B[ ob2 ] * alpha ); + } + } + } + return B; + } + // Lower + for ( k = 0; k < N; k++ ) { + ob = offsetB + ( k * sb0 ); + oa = offsetA + ( k * sa1 ); + oa2 = oa + ( k * sa0 ); + if ( nonunit ) { + tmp = f32( 1.0 / A[ oa2 ] ); + for ( i = 0; i < M; i++ ) { + B[ ob + ( i * sb1 ) ] = f32( B[ ob + ( i * sb1 ) ] * tmp ); + } + } + for ( j = k + 1; j < N; j++ ) { + ob2 = offsetB + ( j * sb0 ); + oa2 = offsetA + j * sa1 + k * sa0; + if ( A[ oa2 ] !== 0.0 ) { + for ( i = 0; i < M; i++ ) { + B[ ob2 + ( i * sb1 ) ] -= f32( a_jk * B[ ob + ( i * sb1 ) ] ); + } + } + } + if ( alpha !== 1.0 ) { + for ( i = 0; i < M; i++ ) { + B[ ob + ( i * sb1 ) ] = f32( B[ ob + ( i * sb1 ) ] * alpha ); + } + } + } + return B; +} + + +// EXPORTS // + +module.exports = strsm; \ No newline at end of file diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js new file mode 100644 index 000000000000..c6c0364cc150 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js @@ -0,0 +1,68 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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'; + +/** +* BLAS routine to solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +* +* @module @stdlib/blas/base/strsm +* +* @example +* var Float32Array = require( '@stdlib/array/float32' ); +* var strsm = require( '@stdlib/blas/base/strsm' ); +* +* var A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); +* var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); +* +* strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); +* // B => [ 30.0, 6.0, 0.0, 12.0 ] +* +* @example +* var Float32Array = require( '@stdlib/array/float32' ); +* var strsm = require( '@stdlib/blas/base/strsm' ); +* +* var A = new Float32Array( [ 0.0, 0.0, 1.0, 3.0, 0.0, 4.0 ] ); +* var B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); +* +* strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); +* // B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +*/ + +// MODULES // + +var join = require( 'path' ).join; +var tryRequire = require( '@stdlib/utils/try-require' ); +var isError = require( '@stdlib/assert/is-error' ); +var main = require( './main.js' ); + + +// MAIN // + +var strsm; +var tmp = tryRequire( join( __dirname, './native.js' ) ); +if ( isError( tmp ) ) { + strsm = main; +} else { + strsm = tmp; +} + + +// EXPORTS // + +module.exports = strsm; diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/main.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/main.js new file mode 100644 index 000000000000..0e75a9068b1d --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/main.js @@ -0,0 +1,35 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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 setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' ); +var strsm = require( './strsm.js' ); +var ndarray = require( './ndarray.js' ); + + +// MAIN // + +setReadOnly( strsm, 'ndarray', ndarray ); + + +// EXPORTS // + +module.exports = strsm; diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js new file mode 100644 index 000000000000..e3ff1d9701d6 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js @@ -0,0 +1,97 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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 isMatrixTriangle = require( '@stdlib/blas/base/assert/is-matrix-triangle' ); +var isOperationSide = require( '@stdlib/blas/base/assert/is-operation-side' ); +var isTransposeOperation = require( '@stdlib/blas/base/assert/is-transpose-operation' ); +var isDiagonalType = require( '@stdlib/blas/base/assert/is-diagonal-type' ); +var format = require( '@stdlib/string/format' ); +var base = require( './base.js' ); + + +// MAIN // + +/** +* Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +* +* @param {string} side - specifies whether `op( A )` appears on the left or right of `X` +* @param {string} uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied +* @param {string} trans - specifies the form of `op( A )` to be used in matrix multiplication +* @param {string} diag - specifies whether or not `A` is unit triangular +* @param {NonNegativeInteger} M - number of rows in `B` +* @param {NonNegativeInteger} N - number of columns in `B` +* @param {number} alpha - scalar constant +* @param {Float32Array} A - input matrix `A` +* @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` +* @param {Float32Array} B - input matrix `B` +* @param {integer} strideB1 - stride of the first dimension of `B` +* @param {integer} strideB2 - stride of the second dimension of `B` +* @param {NonNegativeInteger} offsetB - starting index for `B` +* @throws {TypeError} first argument must be a valid side +* @throws {TypeError} second argument must specify whether the lower or upper triangular matrix is supplied. +* @throws {TypeError} third argument must specify correct transpose operation +* @throws {TypeError} fourth argument must specify whether the matrix is unit triangular or not +* @returns {Float32Array} `B` +* +* @example +* var Float32Array = require( '@stdlib/array/float32' ); +* +* var A = new Float32Array( [ 0.0, 0.0, 1.0, 3.0, 0.0, 4.0 ] ); +* var B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); +* +* strsm( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); +* // B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +*/ +function strsm( side, uplo, trans, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) { // eslint-disable-line max-len, max-params + if ( !isOperationSide( side ) ) { + throw new TypeError( format( 'invalid argument. First argument must be a valid side. Value: `%s`.', side ) ); + } + if ( !isMatrixTriangle( uplo ) ) { + throw new TypeError( format( 'invalid argument. Second argument must specify whether the lower or upper triangular matrix is supplied. Value: `%s`.', uplo ) ); + } + if ( !isTransposeOperation( trans ) ) { + throw new TypeError( format( 'invalid argument. Third argument must specify correct transpose operation. Value: `%s`.', trans ) ); + } + if ( !isDiagonalType( diag ) ) { + throw new TypeError( format( 'invalid argument. Fourth argument must specify whether the matrix is unit triangular or not. Value: `%s`.', diag ) ); + } + if ( M < 0 ) { + throw new RangeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%d`.', M ) ); + } + if ( N < 0 ) { + throw new RangeError( format( 'invalid argument. Sixth argument must be a nonnegative integer. Value: `%d`.', N ) ); + } + if ( strideB1 === 0 ) { + throw new RangeError( format( 'invalid argument. Seventeenth argument must be non-zero. Value: `%d`.', strideB1 ) ); + } + if ( strideB2 === 0 ) { + throw new RangeError( format( 'invalid argument. Eighteenth argument must be non-zero. Value: `%d`.', strideB2 ) ); + } + return base( side, uplo, trans, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = strsm; diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js new file mode 100644 index 000000000000..555027e4460e --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js @@ -0,0 +1,124 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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 max = require( '@stdlib/math/base/special/fast/max' ); +var isLayout = require( '@stdlib/blas/base/assert/is-layout' ); +var isMatrixTriangle = require( '@stdlib/blas/base/assert/is-matrix-triangle' ); +var isOperationSide = require( '@stdlib/blas/base/assert/is-operation-side' ); +var isTransposeOperation = require( '@stdlib/blas/base/assert/is-transpose-operation' ); +var isDiagonalType = require( '@stdlib/blas/base/assert/is-diagonal-type' ); +var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major-string' ); +var format = require( '@stdlib/string/format' ); +var base = require( './base.js' ); + + +// MAIN // + +/** +* Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +* +* @param {string} order - storage layout of `A` and `B` +* @param {string} side - specifies whether `op( A )` appears on the left or right of `X` +* @param {string} uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied +* @param {string} trans - specifies the form of `op( A )` to be used in matrix multiplication +* @param {string} diag - specifies whether or not `A` is unit triangular +* @param {NonNegativeInteger} M - number of rows in `B` +* @param {NonNegativeInteger} N - number of columns in `B` +* @param {number} alpha - scalar constant +* @param {Float32Array} A - input matrix `A` +* @param {NonNegativeInteger} LDA - stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`) +* @param {Float32Array} B - input matrix `B` +* @param {NonNegativeInteger} LDB - stride of the first dimension of `B` (a.k.a., leading dimension of the matrix `B`) +* @throws {TypeError} first argument must be a valid order +* @throws {TypeError} second argument must be a valid side +* @throws {TypeError} third argument must specify whether the lower or upper triangular matrix is supplied +* @throws {TypeError} fourth argument must specify correct transpose operation +* @throws {TypeError} fifth argument must specify whether the matrix is unit triangular or not +* @returns {Float32Array} `B` +* +* @example +* var Float32Array = require( '@stdlib/array/float32' ); +* +* var A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); +* var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); +* +* strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); +* // B => [ 30.0, 6.0, 0.0, 12.0 ] +*/ +function strsm( order, side, uplo, trans, diag, M, N, alpha, A, LDA, B, LDB ) { // eslint-disable-line max-params + var nrowsa; + var isrm; + var sa1; + var sa2; + var sb1; + var sb2; + if ( !isLayout( order ) ) { + throw new TypeError( format( 'invalid argument. First argument must be a valid order. Value: `%s`.', order ) ); + } + if ( !isOperationSide( side ) ) { + throw new TypeError( format( 'invalid argument. Second argument must be a valid side. Value: `%s`.', side ) ); + } + if ( !isMatrixTriangle( uplo ) ) { + throw new TypeError( format( 'invalid argument. Thirds argument must specify whether the lower or upper triangular matrix is supplied. Value: `%s`.', uplo ) ); + } + if ( !isTransposeOperation( trans ) ) { + throw new TypeError( format( 'invalid argument. Fourth argument must specify correct transpose operation. Value: `%s`.', trans ) ); + } + if ( !isDiagonalType( diag ) ) { + throw new TypeError( format( 'invalid argument. Fifth argument must specify whether the matrix is unit triangular or not. Value: `%s`.', diag ) ); + } + if ( M < 0 ) { + throw new RangeError( format( 'invalid argument. Sixth argument must be a nonnegative integer. Value: `%d`.', M ) ); + } + if ( N < 0 ) { + throw new RangeError( format( 'invalid argument. Seventh argument must be a nonnegative integer. Value: `%d`.', N ) ); + } + if ( side === 'left' ) { + nrowsa = M; + } else { + nrowsa = N; + } + if ( LDA < max( 1, nrowsa ) ) { + throw new RangeError( format( 'invalid argument. Ninth argument must be greater than or equal to max(1,%d). Value: `%d`.', nrowsa, LDA ) ); + } + if ( LDB < max( 1, M ) ) { + throw new RangeError( format( 'invalid argument. Eleventh argument must be greater than or equal to max(1,%d). Value: `%d`.', M, LDB ) ); + } + isrm = isRowMajor( order ); + if ( !isrm ) { + sa1 = 1; + sa2 = LDA; + sb1 = 1; + sb2 = LDB; + } else { // order === 'row-major' + sa1 = LDA; + sa2 = 1; + sb1 = LDB; + sb2 = 1; + } + return base( side, uplo, trans, diag, M, N, alpha, A, sa1, sa2, 0, B, sb1, sb2, 0 ); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = strsm; diff --git a/lib/node_modules/@stdlib/blas/base/strsm/package.json b/lib/node_modules/@stdlib/blas/base/strsm/package.json new file mode 100644 index 000000000000..d1176a9eab30 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/package.json @@ -0,0 +1,68 @@ +{ + "name": "@stdlib/blas/base/strsm", + "version": "0.0.0", + "description": "Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`.", + "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", + "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 3", + "strsm", + "linear", + "algebra", + "subroutines", + "array", + "ndarray", + "float32", + "single", + "float32array" + ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/test.js b/lib/node_modules/@stdlib/blas/base/strsm/test/test.js new file mode 100644 index 000000000000..759f09a687a3 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/test.js @@ -0,0 +1,82 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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 tape = require( 'tape' ); +var proxyquire = require( 'proxyquire' ); +var IS_BROWSER = require( '@stdlib/assert/is-browser' ); +var strsm = require( './../lib' ); + + +// VARIABLES // + +var opts = { + 'skip': IS_BROWSER +}; + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof strsm, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'attached to the main export is a method providing an ndarray interface', function test( t ) { + t.strictEqual( typeof strsm.ndarray, 'function', 'method is a function' ); + t.end(); +}); + +tape( 'if a native implementation is available, the main export is the native implementation', opts, function test( t ) { + var strsm = proxyquire( './../lib', { + '@stdlib/utils/try-require': tryRequire + }); + + t.strictEqual( strsm, mock, 'returns expected value' ); + t.end(); + + function tryRequire() { + return mock; + } + + function mock() { + // Mock... + } +}); + +tape( 'if a native implementation is not available, the main export is a JavaScript implementation', opts, function test( t ) { + var strsm; + var main; + + main = require( './../lib/strsm.js' ); + + strsm = proxyquire( './../lib', { + '@stdlib/utils/try-require': tryRequire + }); + + t.strictEqual( strsm, main, 'returns expected value' ); + t.end(); + + function tryRequire() { + return new Error( 'Cannot find module' ); + } +}); diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js b/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js new file mode 100644 index 000000000000..e69de29bb2d1 From bf45d08bd6ac75d38ca85bb89114b933920eb3b1 Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Sun, 18 May 2025 13:21:20 +0530 Subject: [PATCH 02/19] chore: add implementation --- .../blas/base/strsm/docs/types/index.d.ts | 10 +- .../@stdlib/blas/base/strsm/lib/base.js | 8 +- .../@stdlib/blas/base/strsm/lib/ndarray.js | 18 +- .../@stdlib/blas/base/strsm/lib/strsm.js | 18 +- .../blas/base/strsm/test/test.strsm.js | 1192 +++++++++++++++++ 5 files changed, 1223 insertions(+), 23 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts index a06b2f5a75ef..6517ca33ed87 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts @@ -32,7 +32,7 @@ interface Routine { * @param order - storage layout of `A` and `B` * @param side - specifies whether `op( A )` appears on the left or right of `X` * @param uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied - * @param trans - specifies the form of `op( A )` to be used in matrix multiplication + * @param transa - specifies the form of `op( A )` to be used in matrix multiplication * @param diag - specifies whether or not `A` is unit triangular * @param m - number of rows in `B` * @param n - number of columns in `B` @@ -52,14 +52,14 @@ interface Routine { * strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); * // B => [ 30.0, 6.0, 0.0, 12.0 ] */ - ( order: Layout, side: OperationSide, uplo: MatrixTriangle, trans: TransposeOperation, diag: DiagonalType, m: number, n: number, alpha: number, A: Float32Array, LDA: number, B: Float32Array, LDB: number ): Float32Array; + ( order: Layout, side: OperationSide, uplo: MatrixTriangle, transa: TransposeOperation, diag: DiagonalType, m: number, n: number, alpha: number, A: Float32Array, LDA: number, B: Float32Array, LDB: number ): Float32Array; /** * Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. * * @param side - specifies whether `op( A )` appears on the left or right of `X` * @param uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied - * @param trans - specifies the form of `op( A )` to be used in matrix multiplication + * @param transa - specifies the form of `op( A )` to be used in matrix multiplication * @param diag - specifies whether or not `A` is unit triangular * @param m - number of rows in `B` * @param n - number of columns in `B` @@ -83,7 +83,7 @@ interface Routine { * strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); * // B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] */ - ndarray( side: OperationSide, uplo: MatrixTriangle, trans: TransposeOperation, diag: DiagonalType, m: number, n: number, alpha: number, A: Float32Array, strideA1: number, strideA2: number, offsetA: number, B: Float32Array, strideB1: number, strideB2: number, offsetB: number ): Float32Array; + ndarray( side: OperationSide, uplo: MatrixTriangle, transa: TransposeOperation, diag: DiagonalType, m: number, n: number, alpha: number, A: Float32Array, strideA1: number, strideA2: number, offsetA: number, B: Float32Array, strideB1: number, strideB2: number, offsetB: number ): Float32Array; } /** @@ -92,7 +92,7 @@ interface Routine { * @param order - storage layout of `A` and `B` * @param side - specifies whether `op( A )` appears on the left or right of `X` * @param uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied -* @param trans - specifies the form of `op( A )` to be used in matrix multiplication +* @param transa - specifies the form of `op( A )` to be used in matrix multiplication * @param diag - specifies whether or not `A` is unit triangular * @param m - number of rows in `B` * @param n - number of columns in `B` diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js index a13742265f72..389574c716a4 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js @@ -98,7 +98,7 @@ function zeros( M, N, X, strideX1, strideX2, offsetX ) { // TODO: consider movin * @private * @param {string} side - specifies whether `op( A )` appears on the left or right of `X` * @param {string} uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied -* @param {string} trans - specifies the form of `op( A )` to be used in matrix multiplication +* @param {string} transa - specifies the form of `op( A )` to be used in matrix multiplication * @param {string} diag - specifies whether or not `A` is unit triangular * @param {NonNegativeInteger} M - number of rows in `B` * @param {NonNegativeInteger} N - number of columns in `B` @@ -122,7 +122,7 @@ function zeros( M, N, X, strideX1, strideX2, offsetX ) { // TODO: consider movin * strsm( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); * // B => [ 30.0, 6.0, 0.0, 12.0 ] */ -function strsm( side, uplo, trans, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) { // eslint-disable-line max-params +function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) { // eslint-disable-line max-params var nonunit; var isrma; var isrmb; @@ -172,7 +172,7 @@ function strsm( side, uplo, trans, diag, M, N, alpha, A, strideA1, strideA2, off return B; } if ( side === 'left' ) { - if ( trans === 'no-transpose' ) { + if ( transa === 'no-transpose' ) { // B := alpha * inv( A ) * B if ( uplo === 'upper' ) { for ( j = 0; j < N; j++ ) { @@ -258,7 +258,7 @@ function strsm( side, uplo, trans, diag, M, N, alpha, A, strideA1, strideA2, off return B; } // Right - if ( trans === 'no-transpose' ) { + if ( transa === 'no-transpose' ) { if ( uplo === 'upper' ) { for ( j = 0; j < N; j++ ) { for ( i = 0; i < M; i++ ) { diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js index e3ff1d9701d6..ce896149c687 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js @@ -35,7 +35,7 @@ var base = require( './base.js' ); * * @param {string} side - specifies whether `op( A )` appears on the left or right of `X` * @param {string} uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied -* @param {string} trans - specifies the form of `op( A )` to be used in matrix multiplication +* @param {string} transa - specifies the form of `op( A )` to be used in matrix multiplication * @param {string} diag - specifies whether or not `A` is unit triangular * @param {NonNegativeInteger} M - number of rows in `B` * @param {NonNegativeInteger} N - number of columns in `B` @@ -52,6 +52,10 @@ var base = require( './base.js' ); * @throws {TypeError} second argument must specify whether the lower or upper triangular matrix is supplied. * @throws {TypeError} third argument must specify correct transpose operation * @throws {TypeError} fourth argument must specify whether the matrix is unit triangular or not +* @throws {RangeError} fifth argument must be a nonnegative integer +* @throws {RangeError} sixth argument must be a nonnegative integer +* @throws {RangeError} thirteenth argument must be non-zero +* @throws {RangeError} fourteenth argument must be non-zero * @returns {Float32Array} `B` * * @example @@ -63,15 +67,15 @@ var base = require( './base.js' ); * strsm( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); * // B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] */ -function strsm( side, uplo, trans, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) { // eslint-disable-line max-len, max-params +function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) { // eslint-disable-line max-len, max-params if ( !isOperationSide( side ) ) { throw new TypeError( format( 'invalid argument. First argument must be a valid side. Value: `%s`.', side ) ); } if ( !isMatrixTriangle( uplo ) ) { throw new TypeError( format( 'invalid argument. Second argument must specify whether the lower or upper triangular matrix is supplied. Value: `%s`.', uplo ) ); } - if ( !isTransposeOperation( trans ) ) { - throw new TypeError( format( 'invalid argument. Third argument must specify correct transpose operation. Value: `%s`.', trans ) ); + if ( !isTransposeOperation( transa ) ) { + throw new TypeError( format( 'invalid argument. Third argument must specify correct transpose operation. Value: `%s`.', transa ) ); } if ( !isDiagonalType( diag ) ) { throw new TypeError( format( 'invalid argument. Fourth argument must specify whether the matrix is unit triangular or not. Value: `%s`.', diag ) ); @@ -83,12 +87,12 @@ function strsm( side, uplo, trans, diag, M, N, alpha, A, strideA1, strideA2, off throw new RangeError( format( 'invalid argument. Sixth argument must be a nonnegative integer. Value: `%d`.', N ) ); } if ( strideB1 === 0 ) { - throw new RangeError( format( 'invalid argument. Seventeenth argument must be non-zero. Value: `%d`.', strideB1 ) ); + throw new RangeError( format( 'invalid argument. Thirteenth argument must be non-zero. Value: `%d`.', strideB1 ) ); } if ( strideB2 === 0 ) { - throw new RangeError( format( 'invalid argument. Eighteenth argument must be non-zero. Value: `%d`.', strideB2 ) ); + throw new RangeError( format( 'invalid argument. Fourteenth argument must be non-zero. Value: `%d`.', strideB2 ) ); } - return base( side, uplo, trans, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ); // eslint-disable-line max-len + return base( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ); // eslint-disable-line max-len } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js index 555027e4460e..21f6f737397c 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js @@ -39,7 +39,7 @@ var base = require( './base.js' ); * @param {string} order - storage layout of `A` and `B` * @param {string} side - specifies whether `op( A )` appears on the left or right of `X` * @param {string} uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied -* @param {string} trans - specifies the form of `op( A )` to be used in matrix multiplication +* @param {string} transa - specifies the form of `op( A )` to be used in matrix multiplication * @param {string} diag - specifies whether or not `A` is unit triangular * @param {NonNegativeInteger} M - number of rows in `B` * @param {NonNegativeInteger} N - number of columns in `B` @@ -53,6 +53,10 @@ var base = require( './base.js' ); * @throws {TypeError} third argument must specify whether the lower or upper triangular matrix is supplied * @throws {TypeError} fourth argument must specify correct transpose operation * @throws {TypeError} fifth argument must specify whether the matrix is unit triangular or not +* @throws {RangeError} sixth argument must be a nonnegative integer +* @throws {RangeError} seventh argument must be a nonnegative integer +* @throws {RangeError} tenth argument must be greater than or equal to max(1,M) when `A` is on left side and max(1,N) otherwise +* @throws {RangeError} twelfth argument must be greater than or equal to max(1,M) * @returns {Float32Array} `B` * * @example @@ -64,7 +68,7 @@ var base = require( './base.js' ); * strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); * // B => [ 30.0, 6.0, 0.0, 12.0 ] */ -function strsm( order, side, uplo, trans, diag, M, N, alpha, A, LDA, B, LDB ) { // eslint-disable-line max-params +function strsm( order, side, uplo, transa, diag, M, N, alpha, A, LDA, B, LDB ) { // eslint-disable-line max-params var nrowsa; var isrm; var sa1; @@ -80,8 +84,8 @@ function strsm( order, side, uplo, trans, diag, M, N, alpha, A, LDA, B, LDB ) { if ( !isMatrixTriangle( uplo ) ) { throw new TypeError( format( 'invalid argument. Thirds argument must specify whether the lower or upper triangular matrix is supplied. Value: `%s`.', uplo ) ); } - if ( !isTransposeOperation( trans ) ) { - throw new TypeError( format( 'invalid argument. Fourth argument must specify correct transpose operation. Value: `%s`.', trans ) ); + if ( !isTransposeOperation( transa ) ) { + throw new TypeError( format( 'invalid argument. Fourth argument must specify correct transpose operation. Value: `%s`.', transa ) ); } if ( !isDiagonalType( diag ) ) { throw new TypeError( format( 'invalid argument. Fifth argument must specify whether the matrix is unit triangular or not. Value: `%s`.', diag ) ); @@ -98,10 +102,10 @@ function strsm( order, side, uplo, trans, diag, M, N, alpha, A, LDA, B, LDB ) { nrowsa = N; } if ( LDA < max( 1, nrowsa ) ) { - throw new RangeError( format( 'invalid argument. Ninth argument must be greater than or equal to max(1,%d). Value: `%d`.', nrowsa, LDA ) ); + throw new RangeError( format( 'invalid argument. Tenth argument must be greater than or equal to max(1,%d). Value: `%d`.', nrowsa, LDA ) ); } if ( LDB < max( 1, M ) ) { - throw new RangeError( format( 'invalid argument. Eleventh argument must be greater than or equal to max(1,%d). Value: `%d`.', M, LDB ) ); + throw new RangeError( format( 'invalid argument. Twelfth argument must be greater than or equal to max(1,%d). Value: `%d`.', M, LDB ) ); } isrm = isRowMajor( order ); if ( !isrm ) { @@ -115,7 +119,7 @@ function strsm( order, side, uplo, trans, diag, M, N, alpha, A, LDA, B, LDB ) { sb1 = LDB; sb2 = 1; } - return base( side, uplo, trans, diag, M, N, alpha, A, sa1, sa2, 0, B, sb1, sb2, 0 ); // eslint-disable-line max-len + return base( side, uplo, transa, diag, M, N, alpha, A, sa1, sa2, 0, B, sb1, sb2, 0 ); // eslint-disable-line max-len } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js b/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js index e69de29bb2d1..9e11cc3a7947 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js @@ -0,0 +1,1192 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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. +*/ + +/* eslint-disable max-len */ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var Float32Array = require( '@stdlib/array/float32' ); +var sscal = require( '@stdlib/blas/base/sscal' ); +var strsm = require( './../lib/strsm.js' ); + + +// FIXTURES // + +var cllntanu = require( './fixtures/column_major_l_l_nta_nu.json' ); +var cllntau = require( './fixtures/column_major_l_l_nta_u.json' ); +var clltanu = require( './fixtures/column_major_l_l_ta_nu.json' ); +var clltau = require( './fixtures/column_major_l_l_ta_u.json' ); +var cluntanu = require( './fixtures/column_major_l_u_nta_nu.json' ); +var cluntau = require( './fixtures/column_major_l_u_nta_nu.json' ); +var clutanu = require( './fixtures/column_major_l_u_ta_nu.json' ); +var clutau = require( './fixtures/column_major_l_u_ta_u.json' ); +var crlntanu = require( './fixtures/column_major_r_l_nta_nu.json' ); +var crlntau = require( './fixtures/column_major_r_l_nta_u.json' ); +var crltanu = require( './fixtures/column_major_r_l_ta_nu.json' ); +var crltau = require( './fixtures/column_major_r_l_ta_u.json' ); +var cruntanu = require( './fixtures/column_major_r_u_nta_nu.json' ); +var cruntau = require( './fixtures/column_major_r_u_nta_nu.json' ); +var crutanu = require( './fixtures/column_major_r_u_ta_nu.json' ); +var crutau = require( './fixtures/column_major_r_u_ta_u.json' ); + +var rllntanu = require( './fixtures/row_major_l_l_nta_nu.json' ); +var rllntau = require( './fixtures/row_major_l_l_nta_u.json' ); +var rlltanu = require( './fixtures/row_major_l_l_ta_nu.json' ); +var rlltau = require( './fixtures/row_major_l_l_ta_u.json' ); +var rluntanu = require( './fixtures/row_major_l_u_nta_nu.json' ); +var rluntau = require( './fixtures/row_major_l_u_nta_nu.json' ); +var rlutanu = require( './fixtures/row_major_l_u_ta_nu.json' ); +var rlutau = require( './fixtures/row_major_l_u_ta_u.json' ); +var rrlntanu = require( './fixtures/row_major_r_l_nta_nu.json' ); +var rrlntau = require( './fixtures/row_major_r_l_nta_u.json' ); +var rrltanu = require( './fixtures/row_major_r_l_ta_nu.json' ); +var rrltau = require( './fixtures/row_major_r_l_ta_u.json' ); +var rruntanu = require( './fixtures/row_major_r_u_nta_nu.json' ); +var rruntau = require( './fixtures/row_major_r_u_nta_nu.json' ); +var rrutanu = require( './fixtures/row_major_r_u_ta_nu.json' ); +var rrutau = require( './fixtures/row_major_r_u_ta_u.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof strsm, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function has an arity of 12', function test( t ) { + t.strictEqual( strsm.length, 12, 'returns expected value' ); + t.end(); +}); + +tape( 'the function throws an error if provided an invalid first argument', function test( t ) { + var values; + var data; + var i; + + data = rllntanu; + + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( value, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.lda, new Float32Array( data.B ), data.ldb ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid second argument', function test( t ) { + var values; + var data; + var i; + + data = rllntanu; + + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.order, value, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.lda, new Float32Array( data.B ), data.ldb ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid third argument', function test( t ) { + var values; + var data; + var i; + + data = rllntanu; + + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.order, data.side, value, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.lda, new Float32Array( data.B ), data.ldb ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid fourth argument', function test( t ) { + var values; + var data; + var i; + + data = rllntanu; + + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.order, data.side, data.uplo, value, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.lda, new Float32Array( data.B ), data.ldb ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid fifth argument', function test( t ) { + var values; + var data; + var i; + + data = rllntanu; + + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.order, data.side, data.uplo, data.transA, value, data.M, data.N, data.alpha, new Float32Array( data.A ), data.lda, new Float32Array( data.B ), data.ldb ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid sixth argument', function test( t ) { + var values; + var data; + var i; + + data = rllntanu; + + values = [ + -1, + -2, + -3 + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.order, data.side, data.uplo, data.transA, data.diag, value, data.N, data.alpha, new Float32Array( data.A ), data.lda, new Float32Array( data.B ), data.ldb ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid seventh argument', function test( t ) { + var values; + var data; + var i; + + data = rllntanu; + + values = [ + -1, + -2, + -3 + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, value, data.alpha, new Float32Array( data.A ), data.lda, new Float32Array( data.B ), data.ldb ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid tenth argument', function test( t ) { + var values; + var data; + var i; + + data = rllntanu; + + values = [ + 2, + 1, + 0, + -1, + -2, + -3 + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), value, new Float32Array( data.B ), data.ldb ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid twelfth argument', function test( t ) { + var values; + var data; + var i; + + data = rllntanu; + + values = [ + 3, + 2, + 1, + 0, + -1, + -2, + -3 + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.lda, new Float32Array( data.B ), value ); + }; + } +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, left, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rllntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, left, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cllntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, left, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rllntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, left, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cllntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, left, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rlltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, left, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = clltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, left, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rlltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, left, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = clltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, left, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rluntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, left, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cluntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, left, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rluntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, left, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cluntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, left, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rlutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, left, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = clutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, left, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rlutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, left, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = clutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (row-major, right, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rrlntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (column-major, right, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = crlntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (row-major, right, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rrlntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (column-major, right, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = crlntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (row-major, right, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rrltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (column-major, right, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = crltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (row-major, right, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rrltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (column-major, right, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = crltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (row-major, right, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rruntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (column-major, right, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cruntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (row-major, right, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rruntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (column-major, right, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cruntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (row-major, right, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rrutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (column-major, right, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = crutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (row-major, right, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rrutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` (column-major, right, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = crutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns a reference to the third input matrix (row-major)', function test( t ) { + var data; + var out; + var a; + var b; + var c; + + data = rtatb; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + c = new Float32Array( data.C ); + + out = strsm( data.order, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, c, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns a reference to the third input matrix (column-major)', function test( t ) { + var data; + var out; + var a; + var b; + var c; + + data = ctatb; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + c = new Float32Array( data.C ); + + out = strsm( data.order, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, c, 'returns expected value' ); + t.end(); +}); + +tape( 'if either `M` or `N` is `0`, the function returns the third input matrix unchanged (row-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + var c; + + data = rtatb; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + c = new Float32Array( data.C ); + + expected = new Float32Array( data.C ); + + out = strsm( data.order, data.transA, data.diag, 0, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + out = strsm( data.order, data.transA, data.diag, data.M, 0, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'if either `M` or `N` is `0`, the function returns the third input matrix unchanged (column-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + var c; + + data = ctatb; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + c = new Float32Array( data.C ); + + expected = new Float32Array( data.C ); + + out = strsm( data.order, data.transA, data.diag, 0, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + out = strsm( data.order, data.transA, data.diag, data.M, 0, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'if `α` or `K` is `0` and `β` is `1`, the function returns the third input matrix unchanged (row-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + var c; + + data = rtatb; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + c = new Float32Array( data.C ); + + expected = new Float32Array( data.C ); + + out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb, 1.0, c, data.ldc ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0, data.alpha, a, data.lda, b, data.ldb, 1.0, c, data.ldc ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'if `α` or `K` is `0` and `β` is `1`, the function returns the third input matrix unchanged (column-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + var c; + + data = ctatb; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + c = new Float32Array( data.C ); + + expected = new Float32Array( data.C ); + + out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb, 1.0, c, data.ldc ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0, data.alpha, a, data.lda, b, data.ldb, 1.0, c, data.ldc ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'if `α` is `0` and `β` is `0`, the function returns the third input matrix filled with zeros (row-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + var c; + + data = rtatb; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + c = new Float32Array( data.C ); + + expected = new Float32Array( c.length ); + + out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb, 0.0, c, data.ldc ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'if `α` is `0` and `β` is `0`, the function returns the third input matrix filled with zeros (column-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + var c; + + data = ctatb; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + c = new Float32Array( data.C ); + + expected = new Float32Array( c.length ); + + out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb, 0.0, c, data.ldc ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'if `α` is `0` and `β` is neither `0` nor `1`, the function returns the third input matrix scaled by `β` (row-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + var c; + + data = rtatb; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + c = new Float32Array( data.C ); + + expected = sscal( c.length, 10.0, new Float32Array( c ), 1 ); + + out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb, 10.0, c, data.ldc ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'if `α` is `0` and `β` is neither `0` nor `1`, the function returns the third input matrix scaled by `β` (column-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + var c; + + data = ctatb; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + c = new Float32Array( data.C ); + + expected = sscal( c.length, 10.0, new Float32Array( c ), 1 ); + + out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb, 10.0, c, data.ldc ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); From af8ee93e35375e64b3d85aac66d644f215b35ec3 Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Fri, 23 May 2025 23:31:56 +0530 Subject: [PATCH 03/19] chore: add implementation --- .../blas/base/strsm/docs/types/index.d.ts | 8 +- .../@stdlib/blas/base/strsm/lib/base.js | 243 +- .../@stdlib/blas/base/strsm/lib/index.js | 2 +- .../@stdlib/blas/base/strsm/lib/ndarray.js | 2 +- .../@stdlib/blas/base/strsm/lib/strsm.js | 2 +- .../fixtures/column_major_l_l_nta_nu.json | 21 + .../test/fixtures/column_major_l_l_nta_u.json | 21 + .../test/fixtures/column_major_l_l_ta_nu.json | 21 + .../test/fixtures/column_major_l_l_ta_u.json | 21 + .../fixtures/column_major_l_u_nta_nu.json | 21 + .../test/fixtures/column_major_l_u_nta_u.json | 21 + .../test/fixtures/column_major_l_u_ta_nu.json | 21 + .../test/fixtures/column_major_l_u_ta_u.json | 21 + .../fixtures/column_major_r_l_nta_nu.json | 21 + .../test/fixtures/column_major_r_l_nta_u.json | 21 + .../test/fixtures/column_major_r_l_ta_nu.json | 21 + .../test/fixtures/column_major_r_l_ta_u.json | 21 + .../fixtures/column_major_r_u_nta_nu.json | 21 + .../test/fixtures/column_major_r_u_nta_u.json | 21 + .../test/fixtures/column_major_r_u_ta_nu.json | 21 + .../test/fixtures/column_major_r_u_ta_u.json | 21 + .../test/fixtures/row_major_l_l_nta_nu.json | 21 + .../test/fixtures/row_major_l_l_nta_u.json | 21 + .../test/fixtures/row_major_l_l_ta_nu.json | 21 + .../test/fixtures/row_major_l_l_ta_u.json | 21 + .../test/fixtures/row_major_l_u_nta_nu.json | 21 + .../test/fixtures/row_major_l_u_nta_u.json | 21 + .../test/fixtures/row_major_l_u_ta_nu.json | 21 + .../test/fixtures/row_major_l_u_ta_u.json | 21 + .../test/fixtures/row_major_r_l_nta_nu.json | 21 + .../test/fixtures/row_major_r_l_nta_u.json | 21 + .../test/fixtures/row_major_r_l_ta_nu.json | 21 + .../test/fixtures/row_major_r_l_ta_u.json | 21 + .../test/fixtures/row_major_r_u_nta_nu.json | 21 + .../test/fixtures/row_major_r_u_nta_u.json | 21 + .../test/fixtures/row_major_r_u_ta_nu.json | 21 + .../test/fixtures/row_major_r_u_ta_u.json | 21 + .../blas/base/strsm/test/test.ndarray.js | 1990 +++++++++++++++++ .../blas/base/strsm/test/test.strsm.js | 188 +- 39 files changed, 2837 insertions(+), 270 deletions(-) create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_u.json diff --git a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts index 6517ca33ed87..16b6e5be0a28 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts @@ -50,7 +50,7 @@ interface Routine { * var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); * * strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); - * // B => [ 30.0, 6.0, 0.0, 12.0 ] + * // B => [ 30.0, 0.0, 0.0, 12.0 ] */ ( order: Layout, side: OperationSide, uplo: MatrixTriangle, transa: TransposeOperation, diag: DiagonalType, m: number, n: number, alpha: number, A: Float32Array, LDA: number, B: Float32Array, LDB: number ): Float32Array; @@ -81,7 +81,7 @@ interface Routine { * var B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); * * strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); - * // B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] + * // B => [ 0.0, 30.0, 0.0, 0.0, 12.0 ] */ ndarray( side: OperationSide, uplo: MatrixTriangle, transa: TransposeOperation, diag: DiagonalType, m: number, n: number, alpha: number, A: Float32Array, strideA1: number, strideA2: number, offsetA: number, B: Float32Array, strideB1: number, strideB2: number, offsetB: number ): Float32Array; } @@ -110,7 +110,7 @@ interface Routine { * var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); * * strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); -* // B => [ 30.0, 6.0, 0.0, 12.0 ] +* // B => [ 30.0, 0.0, 0.0, 12.0 ] * * @example * var Float32Array = require( '@stdlib/array/float32' ); @@ -119,7 +119,7 @@ interface Routine { * var B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); * * strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); -* // B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +* // B => [ 0.0, 30.0, 0.0, 0.0, 12.0 ] */ declare var strsm: Routine; diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js index 389574c716a4..1b03ba8bb97b 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js @@ -117,10 +117,10 @@ function zeros( M, N, X, strideX1, strideX2, offsetX ) { // TODO: consider movin * var Float32Array = require( '@stdlib/array/float32' ); * * var A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); -* var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); +* var B = new Float32Array( [ 5.0, 6.0, 0.0, 8.0 ] ); * * strsm( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); -* // B => [ 30.0, 6.0, 0.0, 12.0 ] +* // B => [ 30.0, 0.0, 0.0, 12.0 ] */ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) { // eslint-disable-line max-params var nonunit; @@ -171,123 +171,146 @@ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, of zeros( M, N, B, sb0, sb1, offsetB ); return B; } - if ( side === 'left' ) { - if ( transa === 'no-transpose' ) { - // B := alpha * inv( A ) * B - if ( uplo === 'upper' ) { - for ( j = 0; j < N; j++ ) { - ob = offsetB + ( j * sb0 ); - if ( alpha !== 1.0 ) { - for ( i = 0; i < M; i++ ) { - B[ ob + ( i * sb1 ) ] = f32( B[ ob + ( i * sb1 ) ] * alpha ); - } - } - for ( k = M - 1; k >= 0; k-- ) { - oa2 = offsetA + ( k * sa1 ) + ( k * sa0 ); - ob2 = ob + ( k * sb1 ); - if ( B[ ob2 ] !== 0.0 ) { - if ( nonunit ) { - B[ ob2 ] = f32( B[ ob2 ] / A[ oa2 ] ); - } - for ( i = 0; i < k; i++ ) { - B[ ob + ( i * sb1 ) ] -= f32( B[ ob2 ] * A[ offsetA + ( i * sa1 ) + ( k * sa0 ) ] ); - } - } - } + if ( + ( isrma && side === 'left' && uplo === 'upper' && transa === 'no-transpose' ) || + ( !isrma && side === 'right' && uplo === 'lower' && transa === 'no-transpose' ) + ) { + for ( k = N - 1; k >= 0; k-- ) { + if ( nonunit ) { + oa2 = offsetA + ( k * sa1 ) + ( k * sa0 ); + tmp = f32( 1.0 / A[ oa2 ] ); + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + ( i * sb0 ) + ( k * sb1 ); + B[ ob2 ] = f32( B[ ob2 ] * tmp ); } - return B; } - // Lower - for ( j = 0; j < N; j++ ) { - ob = offsetB + ( j * sb0 ); - if ( alpha !== 1.0 ) { + for ( j = 0; j < k; j++ ) { + oa2 = offsetA + ( j * sa1 ) + ( k * sa0 ); + if ( A[ oa2 ] !== 0.0 ) { for ( i = 0; i < M; i++ ) { - B[ ob + ( i * sb1 ) ] = f32( B[ ob + ( i * sb1 ) ] * alpha ); + ob = offsetB + ( i * sb0 ); + B[ ob + j * sb1 ] -= f32( A[ oa2 ] * B[ ob + k * sb1 ] ); } } - for ( k = 0; k < M; k++ ) { - oa2 = offsetA + ( k * sa1 ) + ( k * sa0 ); - ob2 = ob + ( k * sb1 ); - if ( B[ ob2 ] !== 0.0 ) { - if ( nonunit ) { - B[ ob2 ] = f32( B[ ob2 ] / A[ oa2 ] ); - } - for ( i = k + 1; i < M; i++ ) { - oa2 = offsetA + i * sa1 + k * sa0; - B[ ob + ( i * sb1 ) ] -= f32( B[ ob2 ] * A[ oa2 ] ); - } - } + } + if ( alpha !== 1.0 ) { + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + ( i * sb0 ) + ( k * sb1 ); + B[ ob2 ] = f32( B[ ob2 ] * alpha ); } } - return B; } - // B := alpha * inv( A**T ) * B - if ( uplo === 'upper' ) { - for ( j = 0; j < N; j++ ) { - ob = offsetB + ( j * sb0 ); + return B; + } + if ( + ( isrma && side === 'left' && uplo === 'lower' && transa === 'no-transpose' ) || + ( !isrma && side === 'right' && uplo === 'upper' && transa === 'no-transpose' ) + ) { + for ( j = 0; j < N; j++ ) { + ob = offsetB + ( j * sb0 ); + if ( alpha !== 1.0 ) { for ( i = 0; i < M; i++ ) { - oa2 = offsetA + ( i * sa1 ) + ( i * sa0 ); - tmp = f32( B[ ob + ( i * sb1 ) ] * alpha ); - for ( k = 0; k < i; k++ ) { - oa = offsetA + ( k * sa1 ); - tmp -= f32( A[ oa + ( i * sa0 ) ] * B[ ob + ( k * sb1 ) ] ); - } + B[ ob + ( i * sb1 ) ] = f32( B[ ob + ( i * sb1 ) ] * alpha ); + } + } + for ( k = 0; k < M; k++ ) { + oa2 = offsetA + ( k * sa1 ) + ( k * sa0 ); + ob2 = ob + ( k * sb1 ); + if ( B[ ob2 ] !== 0.0 ) { if ( nonunit ) { - tmp = f32( tmp / A[ oa2 ] ); + B[ ob2 ] = f32( B[ ob2 ] / A[ oa2 ] ); + } + for ( i = k + 1; i < M; i++ ) { + oa2 = offsetA + ( i * sa1 ) + ( k * sa0 ); + B[ ob + ( i * sb1 ) ] -= f32( B[ ob2 ] * A[ oa2 ] ); + } + } + } + } + return B; + } + if ( + ( isrma && side === 'left' && uplo === 'upper' && transa !== 'no-transpose' ) || + ( !isrma && side === 'right' && uplo === 'lower' && transa !== 'no-transpose' ) + ) { + for ( j = 0; j < N; j++ ) { + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + ( i * sb0 ) + ( j * sb1 ); + if ( alpha !== 1.0 ) { + B[ ob2 ] = f32( B[ ob2 ] * alpha ); + } + } + for ( k = 0; k < j; k++ ) { + for ( i = 0; i < M; i++ ) { + ob = offsetB + ( i * sb0 ); + oa2 = offsetA + ( k * sa1 ) + ( j * sa0 ); + if ( A[ oa2 ] !== 0.0 ) { + B[ ob + ( j * sb1 ) ] -= f32( A[ oa2 ] * B[ ob + ( k * sb1 ) ] ); } - B[ ob + ( i * sb1 ) ] = tmp; } } - return B; + if ( nonunit ) { + oa2 = offsetA + ( j * sa1 ) + (j * sa0 ); + tmp = f32( 1.0 / A[ oa2 ] ); + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + ( i * sb0 ) + ( j * sb1 ); + B[ ob2 ] = f32( B[ ob2 ] * tmp ); + } + } } - // Lower + return B; + } + if ( + ( isrma && side === 'left' && uplo === 'lower' && transa !== 'no-transpose' ) || + ( !isrma && side === 'right' && uplo === 'upper' && transa === 'transpose' ) + ) { for ( j = 0; j < N; j++ ) { ob = offsetB + ( j * sb0 ); + if ( alpha !== 1.0 ) { + for ( i = 0; i < M; i++ ) { + B[ ob + ( i * sb1 ) ] = f32( B[ ob + ( i * sb1 ) ] * alpha ); + } + } for ( i = M - 1; i >= 0; i-- ) { - oa2 = offsetA + ( i * sa1 ) + ( i * sa0 ); - tmp = f32( B[ ob + ( i * sb1 ) ] * alpha ); + ob2 = ob + ( i * sb1 ); for ( k = i + 1; k < M; k++ ) { - tmp -= f32( A[ offsetA + ( k * sa1 ) + ( i * sa0 ) ] * B[ ob + ( k * sb1 ) ] ); + oa2 = offsetA + ( i * sa0 ) + ( k * sa1 ); + B[ ob2 ] -= f32( A[ oa2 ] * B[ ob + ( k * sb1 ) ] ); } if ( nonunit ) { - tmp = f32( tmp / A[ oa2 ] ); + oa2 = offsetA + ( i * sa0 ) + ( i * sa1 ); + B[ ob2 ] = f32( B[ ob2 ] / A[ oa2 ] ); } - B[ ob + ( i * sb1 ) ] = tmp; + B[ ob + ( i * sb1 ) ] = B[ ob2 ]; } } return B; } - // Right - if ( transa === 'no-transpose' ) { - if ( uplo === 'upper' ) { - for ( j = 0; j < N; j++ ) { - for ( i = 0; i < M; i++ ) { - ob2 = offsetB + ( i * sb1 ) + ( j * sb0 ); - if ( alpha !== 1.0 ) { - B[ ob2 ] = f32( B[ ob2 ] * alpha ); - } - } - for ( k = 0; k < j; k++ ) { - for ( i = 0; i < M; i++ ) { - ob2 = offsetB + i * sb1; - oa2 = offsetA + k * sa1 + j * sa0; - if ( A[ oa2 ] !== 0.0 ) { - B[ ob2 + j * sb0 ] -= f32( A[ oa2 ] * B[ ob2 + k * sb0 ] ); - } - } + if ( + ( isrma && side === 'right' && uplo === 'upper' && transa === 'no-transpose' ) || + ( !isrma && side === 'left' && uplo === 'lower' && transa === 'no-transpose' ) + ) { + for ( j = 0; j < N; j++ ) { + ob = offsetB + ( j * sb1 ); + for ( i = 0; i < M; i++ ) { + oa2 = offsetA + ( i * sa1 ) + ( i * sa0 ); + tmp = f32( B[ ob + ( i * sb0 ) ] * alpha ); + for ( k = 0; k < i; k++ ) { + oa = offsetA + ( k * sa1 ); + tmp -= f32( A[ oa + ( i * sa0 ) ] * B[ ob + ( k * sb0 ) ] ); } if ( nonunit ) { - oa2 = offsetA + j * sa1 + j * sa0; - tmp = f32( 1.0 / A[ oa2 ] ); - for ( i = 0; i < M; i++ ) { - ob2 = offsetB + i * sb1 + j * sb0; - B[ ob2 ] = f32( B[ ob2 ] * tmp ); - } + tmp = f32( tmp / A[ oa2 ] ); } + B[ ob + ( i * sb0 ) ] = tmp; } - return B; } - // Lower + return B; + } + if ( + ( isrma && side === 'right' && uplo === 'lower' && transa === 'no-transpose' ) || + ( !isrma && side === 'left' && uplo === 'upper' && transa === 'no-transpose' ) + ) { for ( j = N - 1; j >= 0; j-- ) { for ( i = 0; i < M; i++ ) { ob2 = offsetB + ( i * sb1 ) + ( j * sb0 ); @@ -315,36 +338,34 @@ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, of } return B; } - // B := alpha * B * inv( A**T ) - if ( uplo === 'upper' ) { - for ( k = N - 1; k >= 0; k-- ) { - if ( nonunit ) { - oa2 = offsetA + k * sa1 + k * sa0; - tmp = f32( 1.0 / A[ oa2 ] ); + if ( + ( isrma && side === 'right' && uplo === 'upper' && transa !== 'no-transpose' ) || + ( !isrma && side === 'left' && uplo === 'lower' && transa !== 'no-transpose' ) + ) { + for ( j = 0; j < N; j++ ) { + ob = offsetB + ( j * sb1 ); + if ( alpha !== 1.0 ) { for ( i = 0; i < M; i++ ) { - ob2 = offsetB + i * sb1 + k * sb0; - B[ ob2 ] = f32( B[ ob2 ] * tmp ); + B[ ob + ( i * sb0 ) ] = f32( B[ ob + ( i * sb0 ) ] * alpha ); } } - for ( j = 0; j < k; j++ ) { - oa2 = offsetA + ( j * sa1 ) + ( k * sa0 ); - if ( A[ oa2 ] !== 0.0 ) { - for ( i = 0; i < M; i++ ) { - ob = offsetB + i * sb1; - B[ ob + j * sb0 ] -= f32( A[ oa2 ] * B[ ob + k * sb0 ] ); + for ( k = M - 1; k >= 0; k-- ) { + oa2 = offsetA + ( k * sa1 ) + ( k * sa0 ); + ob2 = ob + ( k * sb0 ); + if ( B[ ob2 ] !== 0.0 ) { + if ( nonunit ) { + B[ ob2 ] = f32( B[ ob2 ] / A[ oa2 ] ); + } + for ( i = 0; i < k; i++ ) { + oa = offsetA + ( i * sa1 ) + ( k * sa0 ); + B[ ob + ( i * sb0 ) ] -= f32( B[ ob2 ] * A[ oa ] ); } - } - } - if ( alpha !== 1.0 ) { - for ( i = 0; i < M; i++ ) { - ob2 = offsetB + i * sb1 + k * sb0; - B[ ob2 ] = f32( B[ ob2 ] * alpha ); } } } return B; } - // Lower + // ( isrma && side === 'right' && uplo === 'lower' && transa !== 'no-transpose' ) || ( !isrma && side === 'left' && uplo === 'upper' && transa !== 'no-transpose' ) for ( k = 0; k < N; k++ ) { ob = offsetB + ( k * sb0 ); oa = offsetA + ( k * sa1 ); @@ -360,7 +381,7 @@ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, of oa2 = offsetA + j * sa1 + k * sa0; if ( A[ oa2 ] !== 0.0 ) { for ( i = 0; i < M; i++ ) { - B[ ob2 + ( i * sb1 ) ] -= f32( a_jk * B[ ob + ( i * sb1 ) ] ); + B[ ob2 + ( i * sb1 ) ] -= f32( A[ oa2 ] * B[ ob + ( i * sb1 ) ] ); } } } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js index c6c0364cc150..3865d23fec2a 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js @@ -31,7 +31,7 @@ * var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); * * strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); -* // B => [ 30.0, 6.0, 0.0, 12.0 ] +* // B => [ 30.0, 0.0, 0.0, 12.0 ] * * @example * var Float32Array = require( '@stdlib/array/float32' ); diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js index ce896149c687..1a52128d1b0c 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js @@ -65,7 +65,7 @@ var base = require( './base.js' ); * var B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); * * strsm( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); -* // B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +* // B => [ 0.0, 30.0, 0.0, 0.0, 12.0 ] */ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) { // eslint-disable-line max-len, max-params if ( !isOperationSide( side ) ) { diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js index 21f6f737397c..7ea5854924c6 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js @@ -66,7 +66,7 @@ var base = require( './base.js' ); * var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); * * strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); -* // B => [ 30.0, 6.0, 0.0, 12.0 ] +* // B => [ 30.0, 0.0, 0.0, 12.0 ] */ function strsm( order, side, uplo, transa, diag, M, N, alpha, A, LDA, B, LDB ) { // eslint-disable-line max-params var nrowsa; diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_nu.json new file mode 100644 index 000000000000..629f157f7be5 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 2.0, 0.0, 3.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -2.0, 1.0, 0.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_u.json new file mode 100644 index 000000000000..c49966ff0af7 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_u.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 2.0, 0.0, 3.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -6.0, 1.0, 0.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_nu.json new file mode 100644 index 000000000000..c467793440f8 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "lower", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 1.0, 1.0, -2.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_u.json new file mode 100644 index 000000000000..c11c462fcddd --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_u.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "lower", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ -2.0, 2.0, -5.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_nu.json new file mode 100644 index 000000000000..94a2891a5738 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 1.0, 1.0, -2.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_u.json new file mode 100644 index 000000000000..e55a25969c70 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_u.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ -2.0, 2.0, -5.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_nu.json new file mode 100644 index 000000000000..60481eb16a08 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -5.0, 1.0, -0.5 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_u.json new file mode 100644 index 000000000000..9a4025bc6002 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_u.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -10.0, 1.0, -1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_nu.json new file mode 100644 index 000000000000..5a8934359c9d --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 2.5, -1.0, 0.5, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_u.json new file mode 100644 index 000000000000..9b59a4ab9302 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_u.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "lower", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 1.0, -4.0, 1.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_nu.json new file mode 100644 index 000000000000..bee9fd5c4efe --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "lower", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_u.json new file mode 100644 index 000000000000..b64bce534088 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_u.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "lower", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -11.0, -4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_nu.json new file mode 100644 index 000000000000..5be38a8638f4 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "upper", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_u.json new file mode 100644 index 000000000000..da92d7c1d946 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_u.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -11.0, -4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_nu.json new file mode 100644 index 000000000000..a1c7c7138f79 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "upper", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 2.5, -1.0, 0.5, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_u.json new file mode 100644 index 000000000000..879cd908feb2 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_u.json @@ -0,0 +1,21 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 1.0, -4.0, 1.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json new file mode 100644 index 000000000000..05da539d0e07 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_u.json new file mode 100644 index 000000000000..42cbdb2e6e0b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_u.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -11.0, -4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json new file mode 100644 index 000000000000..6e481e709f3a --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "lower", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 2.5, -1.0, 0.5, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_u.json new file mode 100644 index 000000000000..9b5064c462b0 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_u.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "lower", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 1.0, -4.0, 1.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json new file mode 100644 index 000000000000..0917c9a90d04 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 2.5, -1.0, 0.5, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_u.json new file mode 100644 index 000000000000..78cf08bfb066 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_u.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 1.0, -4.0, 1.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json new file mode 100644 index 000000000000..057d9ca1721b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_u.json new file mode 100644 index 000000000000..71f7f41d270a --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_u.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -11.0, -4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json new file mode 100644 index 000000000000..008de8a68b9b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 1.0, 1.0, -2.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_u.json new file mode 100644 index 000000000000..31c6c9cb84e5 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_u.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "lower", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ -2.0, 2.0, -5.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json new file mode 100644 index 000000000000..3a28018f2add --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "lower", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, -5.0, 1.0, -0.5 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_u.json new file mode 100644 index 000000000000..29053db213ad --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_u.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "lower", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, -10.0, 1.0, -1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json new file mode 100644 index 000000000000..1000d9b3be2d --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "upper", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 2.0, 0.0, 3.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, -2.0, 1.0, 0.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_u.json new file mode 100644 index 000000000000..d5cf18911205 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_u.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 2.0, 0.0, 3.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, -6.0, 1.0, 0.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json new file mode 100644 index 000000000000..a93ce8ab7e7b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "upper", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 1.0, 1.0, -2.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_u.json new file mode 100644 index 000000000000..d526a2cc859c --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_u.json @@ -0,0 +1,21 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "lda": 2, + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "ldb": 2, + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ -2.0, 2.0, -5.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js index e69de29bb2d1..84f2831c4113 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js @@ -0,0 +1,1990 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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. +*/ + +/* eslint-disable max-len */ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var Float32Array = require( '@stdlib/array/float32' ); +var ones = require( '@stdlib/array/ones' ); +var filled = require( '@stdlib/array/filled' ); +var strsm = require( './../lib/ndarray.js' ); + + +// FIXTURES // + +var cacbllntanu = require( './fixtures/ca_cb_l_l_nta_nu.json' ); +var cacbllntau = require( './fixtures/ca_cb_l_l_nta_u.json' ); +var cacblltanu = require( './fixtures/ca_cb_l_l_ta_nu.json' ); +var cacblltau = require( './fixtures/ca_cb_l_l_ta_u.json' ); +var cacbluntanu = require( './fixtures/ca_cb_l_u_nta_nu.json' ); +var cacbluntau = require( './fixtures/ca_cb_l_u_nta_u.json' ); +var cacblutanu = require( './fixtures/ca_cb_l_u_ta_nu.json' ); +var cacblutau = require( './fixtures/ca_cb_l_u_ta_u.json' ); +var cacbrlntanu = require( './fixtures/ca_cb_r_l_nta_nu.json' ); +var cacbrlntau = require( './fixtures/ca_cb_r_l_nta_u.json' ); +var cacbrltanu = require( './fixtures/ca_cb_r_l_ta_nu.json' ); +var cacbrltau = require( './fixtures/ca_cb_r_l_ta_u.json' ); +var cacbruntanu = require( './fixtures/ca_cb_r_u_nta_nu.json' ); +var cacbruntau = require( './fixtures/ca_cb_r_u_nta_u.json' ); +var cacbrutanu = require( './fixtures/ca_cb_r_u_ta_nu.json' ); +var cacbrutau = require( './fixtures/ca_cb_r_u_ta_u.json' ); +var carbllntanu = require( './fixtures/ca_rb_l_l_nta_nu.json' ); +var carbllntau = require( './fixtures/ca_rb_l_l_nta_u.json' ); +var carblltanu = require( './fixtures/ca_rb_l_l_ta_nu.json' ); +var carblltau = require( './fixtures/ca_rb_l_l_ta_u.json' ); +var carbluntanu = require( './fixtures/ca_rb_l_u_nta_nu.json' ); +var carbluntau = require( './fixtures/ca_rb_l_u_nta_u.json' ); +var carblutanu = require( './fixtures/ca_rb_l_u_ta_nu.json' ); +var carblutau = require( './fixtures/ca_rb_l_u_ta_u.json' ); +var carbrlntanu = require( './fixtures/ca_rb_r_l_nta_nu.json' ); +var carbrlntau = require( './fixtures/ca_rb_r_l_nta_u.json' ); +var carbrltanu = require( './fixtures/ca_rb_r_l_ta_nu.json' ); +var carbrltau = require( './fixtures/ca_rb_r_l_ta_u.json' ); +var carbruntanu = require( './fixtures/ca_rb_r_u_nta_nu.json' ); +var carbruntau = require( './fixtures/ca_rb_r_u_nta_u.json' ); +var carbrutanu = require( './fixtures/ca_rb_r_u_ta_nu.json' ); +var carbrutau = require( './fixtures/ca_rb_r_u_ta_u.json' ); + +var racbllntanu = require( './fixtures/ra_cb_l_l_nta_nu.json' ); +var racbllntau = require( './fixtures/ra_cb_l_l_nta_u.json' ); +var racblltanu = require( './fixtures/ra_cb_l_l_ta_nu.json' ); +var racblltau = require( './fixtures/ra_cb_l_l_ta_u.json' ); +var racbluntanu = require( './fixtures/ra_cb_l_u_nta_nu.json' ); +var racbluntau = require( './fixtures/ra_cb_l_u_nta_u.json' ); +var racblutanu = require( './fixtures/ra_cb_l_u_ta_nu.json' ); +var racblutau = require( './fixtures/ra_cb_l_u_ta_u.json' ); +var racbrlntanu = require( './fixtures/ra_cb_r_l_nta_nu.json' ); +var racbrlntau = require( './fixtures/ra_cb_r_l_nta_u.json' ); +var racbrltanu = require( './fixtures/ra_cb_r_l_ta_nu.json' ); +var racbrltau = require( './fixtures/ra_cb_r_l_ta_u.json' ); +var racbruntanu = require( './fixtures/ra_cb_r_u_nta_nu.json' ); +var racbruntau = require( './fixtures/ra_cb_r_u_nta_u.json' ); +var racbrutanu = require( './fixtures/ra_cb_r_u_ta_nu.json' ); +var racbrutau = require( './fixtures/ra_cb_r_u_ta_u.json' ); +var rarbllntanu = require( './fixtures/ra_rb_l_l_nta_nu.json' ); +var rarbllntau = require( './fixtures/ra_rb_l_l_nta_u.json' ); +var rarblltanu = require( './fixtures/ra_rb_l_l_ta_nu.json' ); +var rarblltau = require( './fixtures/ra_rb_l_l_ta_u.json' ); +var rarbluntanu = require( './fixtures/ra_rb_l_u_nta_nu.json' ); +var rarbluntau = require( './fixtures/ra_rb_l_u_nta_u.json' ); +var rarblutanu = require( './fixtures/ra_rb_l_u_ta_nu.json' ); +var rarblutau = require( './fixtures/ra_rb_l_u_ta_u.json' ); +var rarbrlntanu = require( './fixtures/ra_rb_r_l_nta_nu.json' ); +var rarbrlntau = require( './fixtures/ra_rb_r_l_nta_u.json' ); +var rarbrltanu = require( './fixtures/ra_rb_r_l_ta_nu.json' ); +var rarbrltau = require( './fixtures/ra_rb_r_l_ta_u.json' ); +var rarbruntanu = require( './fixtures/ra_rb_r_u_nta_nu.json' ); +var rarbruntau = require( './fixtures/ra_rb_r_u_nta_u.json' ); +var rarbrutanu = require( './fixtures/ra_rb_r_u_ta_nu.json' ); +var rarbrutau = require( './fixtures/ra_rb_r_u_ta_u.json' ); + +var rarbllntanusa1sa2 = require( './fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json' ); +var rarbllntanusa1nsa2 = require( './fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json' ); +var rarbllntanusa1sa2n = require( './fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json' ); +var rarbllntanusa1nsa2n = require( './fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json' ); +var rarbllntanusb1sb2 = require( './fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json' ); +var rarbllntanusb1nsb2 = require( './fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json' ); +var rarbllntanusb1sb2n = require( './fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json' ); +var rarbllntanusb1nsb2n = require( './fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json' ); +var rarbllntanuoa = require( './fixtures/ra_rb_l_l_nta_nu_oa.json' ); +var rarbllntanuob = require( './fixtures/ra_rb_l_l_nta_nu_ob.json' ); +var rrcap = require( './fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json' ); +var rccap = require( './fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json' ); +var cccap = require( './fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json' ); +var crcap = require( './fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json' ); + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof strsm, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function has an arity of 15', function test( t ) { + t.strictEqual( strsm.length, 15, 'returns expected value' ); + t.end(); +}); + +tape( 'the function throws an error if provided an invalid first argument', function test( t ) { + var values; + var data; + var i; + + data = racbllntanu; + + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( value, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid second argument', function test( t ) { + var values; + var data; + var i; + + data = racbllntanu; + + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.side, value, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid third argument', function test( t ) { + var values; + var data; + var i; + + data = racbllntanu; + + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.side, data.uplo, value, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid fourth argument', function test( t ) { + var values; + var data; + var i; + + data = racbllntanu; + + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.side, data.uplo, data.transA, value, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid fifth argument', function test( t ) { + var values; + var data; + var i; + + data = racbllntanu; + + values = [ + -1, + -2, + -3 + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.side, data.uplo, data.transA, data.diag, value, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid sixth argument', function test( t ) { + var values; + var data; + var i; + + data = racbllntanu; + + values = [ + -1, + -2, + -3 + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.side, data.uplo, data.transA, data.diag, data.M, value, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid thirteenth argument', function test( t ) { + var values; + var data; + var i; + + data = racbllntanu; + + values = [ + 0 + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), value, data.strideB2, data.offsetB ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid fourteenth argument', function test( t ) { + var values; + var data; + var i; + + data = racbllntanu; + + values = [ + 0 + ]; + + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, value, data.offsetB ); + }; + } +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbllntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacbllntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbllntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacbllntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racblltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacblltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racblltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacblltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbluntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacbluntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbluntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacbluntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racblutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacblutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racblutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacblutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbrlntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacbrlntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbrlntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacbrlntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbrltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacbrltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbrltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacbrltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbruntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacbruntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbruntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacbruntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbrutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacbrutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbrutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cacbrutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbllntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbllntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbllntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbllntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarblltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carblltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarblltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carblltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbluntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbluntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbluntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbluntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarblutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carblutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarblutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carblutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbrlntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbrlntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbrlntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbrlntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbrltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbrltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbrltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbrltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbruntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbruntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbruntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbruntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbrutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbrutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbrutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbrutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns a reference to the second input matrix', function test( t ) { + var data; + var out; + var a; + var b; + + data = racbllntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.end(); +}); + +tape( 'if either `M` or `N` is `0`, the function returns the second input matrix unchanged', function test( t ) { + var expected; + var data; + var out; + var a; + + data = racbllntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, 0, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, 0, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'if `α` is `0`, the function returns the second input matrix filled with zeros', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = racbllntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( b.length ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, 0.0, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function supports specifying the strides of the first and second dimensions of `A`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbllntanusa1sa2; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports a negative stride for the first dimension of `A`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbllntanusa1nsa2; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports a negative stride for the second dimension of `A`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbllntanusa1sa2n; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports a negative strides of `A`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbllntanusa1nsa2n; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports specifying an offset parameter for `A`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbllntanuoa; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports specifying the strides of the first and second dimensions of `B`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbllntanusb1sb2; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports a negative stride for the first dimension of `B`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbllntanusb1nsb2; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports a negative stride for the second dimension of `B`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbllntanusb1sb2n; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports a negative strides of `B`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbllntanusb1nsb2n; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports specifying an offset parameter for `B`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbllntanuob; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports complex access patterns (row-major, row-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rrcap; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports complex access patterns (row-major, column-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rccap; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports complex access patterns (column-major, row-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = crcap; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports complex access patterns (column-major, column-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = cccap; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports computation over large arrays (row-major, row-major)', function test( t ) { + var expected; + var out; + var N; + var a; + var b; + var c; + + N = 100; + + a = ones( N*N, 'float32' ); + b = new Float32Array( a.length ); + + expected = filled( N, a.length, 'float32' ); + + out = strsm( 'left', 'lower', 'no-transpose', 'non-unit', N, N, 1.0, a, N, 1, 0, b, N, 1, 0 ); + t.strictEqual( out, c, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports computation over large arrays (column-major, column-major)', function test( t ) { + var expected; + var out; + var N; + var a; + var b; + var c; + + N = 100; + + a = ones( N*N, 'float32' ); + b = ones( a.length, 'float32' ); + c = new Float32Array( a.length ); + + expected = filled( N, a.length, 'float32' ); + + out = strsm( 'left', 'lower', 'no-transpose', 'non-unit', N, N, 1.0, a, 1, N, 0, b, 1, 3, 0 ); + 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/strsm/test/test.strsm.js b/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js index 9e11cc3a7947..bda20ca393ac 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js @@ -24,7 +24,6 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); -var sscal = require( '@stdlib/blas/base/sscal' ); var strsm = require( './../lib/strsm.js' ); @@ -35,7 +34,7 @@ var cllntau = require( './fixtures/column_major_l_l_nta_u.json' ); var clltanu = require( './fixtures/column_major_l_l_ta_nu.json' ); var clltau = require( './fixtures/column_major_l_l_ta_u.json' ); var cluntanu = require( './fixtures/column_major_l_u_nta_nu.json' ); -var cluntau = require( './fixtures/column_major_l_u_nta_nu.json' ); +var cluntau = require( './fixtures/column_major_l_u_nta_u.json' ); var clutanu = require( './fixtures/column_major_l_u_ta_nu.json' ); var clutau = require( './fixtures/column_major_l_u_ta_u.json' ); var crlntanu = require( './fixtures/column_major_r_l_nta_nu.json' ); @@ -43,7 +42,7 @@ var crlntau = require( './fixtures/column_major_r_l_nta_u.json' ); var crltanu = require( './fixtures/column_major_r_l_ta_nu.json' ); var crltau = require( './fixtures/column_major_r_l_ta_u.json' ); var cruntanu = require( './fixtures/column_major_r_u_nta_nu.json' ); -var cruntau = require( './fixtures/column_major_r_u_nta_nu.json' ); +var cruntau = require( './fixtures/column_major_r_u_nta_u.json' ); var crutanu = require( './fixtures/column_major_r_u_ta_nu.json' ); var crutau = require( './fixtures/column_major_r_u_ta_u.json' ); @@ -52,7 +51,7 @@ var rllntau = require( './fixtures/row_major_l_l_nta_u.json' ); var rlltanu = require( './fixtures/row_major_l_l_ta_nu.json' ); var rlltau = require( './fixtures/row_major_l_l_ta_u.json' ); var rluntanu = require( './fixtures/row_major_l_u_nta_nu.json' ); -var rluntau = require( './fixtures/row_major_l_u_nta_nu.json' ); +var rluntau = require( './fixtures/row_major_l_u_nta_u.json' ); var rlutanu = require( './fixtures/row_major_l_u_ta_nu.json' ); var rlutau = require( './fixtures/row_major_l_u_ta_u.json' ); var rrlntanu = require( './fixtures/row_major_r_l_nta_nu.json' ); @@ -60,7 +59,7 @@ var rrlntau = require( './fixtures/row_major_r_l_nta_u.json' ); var rrltanu = require( './fixtures/row_major_r_l_ta_nu.json' ); var rrltau = require( './fixtures/row_major_r_l_ta_u.json' ); var rruntanu = require( './fixtures/row_major_r_u_nta_nu.json' ); -var rruntau = require( './fixtures/row_major_r_u_nta_nu.json' ); +var rruntau = require( './fixtures/row_major_r_u_nta_u.json' ); var rrutanu = require( './fixtures/row_major_r_u_ta_nu.json' ); var rrutau = require( './fixtures/row_major_r_u_ta_u.json' ); @@ -266,7 +265,6 @@ tape( 'the function throws an error if provided an invalid tenth argument', func data = rllntanu; values = [ - 2, 1, 0, -1, @@ -294,8 +292,6 @@ tape( 'the function throws an error if provided an invalid twelfth argument', fu data = rllntanu; values = [ - 3, - 2, 1, 0, -1, @@ -955,237 +951,125 @@ tape( 'the function performs the matrix-matrix operation `X * op(A) = alpha * B` t.end(); }); -tape( 'the function returns a reference to the third input matrix (row-major)', function test( t ) { +tape( 'the function returns a reference to the second input matrix (row-major)', function test( t ) { var data; var out; var a; var b; - var c; - data = rtatb; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - c = new Float32Array( data.C ); - - out = strsm( data.order, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); - t.strictEqual( out, c, 'returns expected value' ); - t.end(); -}); - -tape( 'the function returns a reference to the third input matrix (column-major)', function test( t ) { - var data; - var out; - var a; - var b; - var c; - - data = ctatb; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - c = new Float32Array( data.C ); - - out = strsm( data.order, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); - t.strictEqual( out, c, 'returns expected value' ); - t.end(); -}); - -tape( 'if either `M` or `N` is `0`, the function returns the third input matrix unchanged (row-major)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - var c; - - data = rtatb; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - c = new Float32Array( data.C ); - - expected = new Float32Array( data.C ); - - out = strsm( data.order, data.transA, data.diag, 0, data.N, data.alpha, a, data.lda, b, data.ldb ); - t.strictEqual( out, c, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - - out = strsm( data.order, data.transA, data.diag, data.M, 0, data.alpha, a, data.lda, b, data.ldb ); - t.strictEqual( out, c, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'if either `M` or `N` is `0`, the function returns the third input matrix unchanged (column-major)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - var c; - - data = ctatb; + data = rlltau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); - c = new Float32Array( data.C ); - - expected = new Float32Array( data.C ); - - out = strsm( data.order, data.transA, data.diag, 0, data.N, data.alpha, a, data.lda, b, data.ldb ); - t.strictEqual( out, c, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - - out = strsm( data.order, data.transA, data.diag, data.M, 0, data.alpha, a, data.lda, b, data.ldb ); - t.strictEqual( out, c, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); t.end(); }); -tape( 'if `α` or `K` is `0` and `β` is `1`, the function returns the third input matrix unchanged (row-major)', function test( t ) { - var expected; +tape( 'the function returns a reference to the second input matrix (column-major)', function test( t ) { var data; var out; var a; var b; - var c; - data = rtatb; + data = clltau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); - c = new Float32Array( data.C ); - - expected = new Float32Array( data.C ); - - out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb, 1.0, c, data.ldc ); - t.strictEqual( out, c, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - - out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0, data.alpha, a, data.lda, b, data.ldb, 1.0, c, data.ldc ); - t.strictEqual( out, c, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); t.end(); }); -tape( 'if `α` or `K` is `0` and `β` is `1`, the function returns the third input matrix unchanged (column-major)', function test( t ) { +tape( 'if either `M` or `N` is `0`, the function returns the second input matrix unchanged (row-major)', function test( t ) { var expected; var data; var out; var a; var b; - var c; - data = ctatb; + data = rlltau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); - c = new Float32Array( data.C ); - expected = new Float32Array( data.C ); + expected = new Float32Array( data.B ); - out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb, 1.0, c, data.ldc ); - t.strictEqual( out, c, 'returns expected value' ); + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, 0, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); t.deepEqual( out, expected, 'returns expected value' ); - out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0, data.alpha, a, data.lda, b, data.ldb, 1.0, c, data.ldc ); - t.strictEqual( out, c, 'returns expected value' ); + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, 0, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); -tape( 'if `α` is `0` and `β` is `0`, the function returns the third input matrix filled with zeros (row-major)', function test( t ) { +tape( 'if either `M` or `N` is `0`, the function returns the second input matrix unchanged (column-major)', function test( t ) { var expected; var data; var out; var a; var b; - var c; - data = rtatb; + data = clltau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); - c = new Float32Array( data.C ); - expected = new Float32Array( c.length ); + expected = new Float32Array( data.B ); - out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb, 0.0, c, data.ldc ); - t.strictEqual( out, c, 'returns expected value' ); + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, 0, data.N, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'if `α` is `0` and `β` is `0`, the function returns the third input matrix filled with zeros (column-major)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - var c; - - data = ctatb; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - c = new Float32Array( data.C ); - - expected = new Float32Array( c.length ); - - out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb, 0.0, c, data.ldc ); - t.strictEqual( out, c, 'returns expected value' ); + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, 0, data.alpha, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); -tape( 'if `α` is `0` and `β` is neither `0` nor `1`, the function returns the third input matrix scaled by `β` (row-major)', function test( t ) { +tape( 'if `α` is `0`, the function returns the second input matrix filled with zeros (row-major)', function test( t ) { var expected; var data; var out; var a; var b; - var c; - data = rtatb; + data = rlltau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); - c = new Float32Array( data.C ); - expected = sscal( c.length, 10.0, new Float32Array( c ), 1 ); + expected = new Float32Array( b.length ); - out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb, 10.0, c, data.ldc ); - t.strictEqual( out, c, 'returns expected value' ); + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); -tape( 'if `α` is `0` and `β` is neither `0` nor `1`, the function returns the third input matrix scaled by `β` (column-major)', function test( t ) { +tape( 'if `α` is `0`, the function returns the second input matrix filled with zeros (column-major)', function test( t ) { var expected; var data; var out; var a; var b; - var c; - data = ctatb; + data = clltau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); - c = new Float32Array( data.C ); - expected = sscal( c.length, 10.0, new Float32Array( c ), 1 ); + expected = new Float32Array( b.length ); - out = strsm( data.order, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb, 10.0, c, data.ldc ); - t.strictEqual( out, c, 'returns expected value' ); + out = strsm( data.order, data.side, data.uplo, data.transA, data.diag, data.M, data.N, 0.0, a, data.lda, b, data.ldb ); + t.strictEqual( out, b, 'returns expected value' ); t.deepEqual( out, expected, 'returns expected value' ); t.end(); From 405838bde5058b5b254299d824102d406cc6b757 Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Sat, 24 May 2025 13:16:55 +0530 Subject: [PATCH 04/19] chore: add fixtures --- .../strsm/test/fixtures/ca_cb_l_l_nta_nu.json | 19 + .../strsm/test/fixtures/ca_cb_l_l_nta_u.json | 19 + .../strsm/test/fixtures/ca_cb_l_l_ta_nu.json | 19 + .../strsm/test/fixtures/ca_cb_l_l_ta_u.json | 19 + .../strsm/test/fixtures/ca_cb_l_u_nta_nu.json | 19 + .../strsm/test/fixtures/ca_cb_l_u_nta_u.json | 19 + .../strsm/test/fixtures/ca_cb_l_u_ta_nu.json | 19 + .../strsm/test/fixtures/ca_cb_l_u_ta_u.json | 19 + .../strsm/test/fixtures/ca_cb_r_l_nta_nu.json | 19 + .../strsm/test/fixtures/ca_cb_r_l_nta_u.json | 19 + .../strsm/test/fixtures/ca_cb_r_l_ta_nu.json | 19 + .../strsm/test/fixtures/ca_cb_r_l_ta_u.json | 19 + .../strsm/test/fixtures/ca_cb_r_u_nta_nu.json | 19 + .../strsm/test/fixtures/ca_cb_r_u_nta_u.json | 19 + .../strsm/test/fixtures/ca_cb_r_u_ta_nu.json | 19 + .../strsm/test/fixtures/ca_cb_r_u_ta_u.json | 19 + .../fixtures/column_major_l_l_nta_nu.json | 6 - .../test/fixtures/column_major_l_l_nta_u.json | 6 - .../test/fixtures/column_major_l_l_ta_nu.json | 6 - .../test/fixtures/column_major_l_l_ta_u.json | 6 - .../fixtures/column_major_l_u_nta_nu.json | 6 - .../test/fixtures/column_major_l_u_nta_u.json | 6 - .../test/fixtures/column_major_l_u_ta_nu.json | 6 - .../test/fixtures/column_major_l_u_ta_u.json | 6 - .../fixtures/column_major_r_l_nta_nu.json | 6 - .../test/fixtures/column_major_r_l_nta_u.json | 6 - .../test/fixtures/column_major_r_l_ta_nu.json | 6 - .../test/fixtures/column_major_r_l_ta_u.json | 6 - .../fixtures/column_major_r_u_nta_nu.json | 6 - .../test/fixtures/column_major_r_u_nta_u.json | 6 - .../test/fixtures/column_major_r_u_ta_nu.json | 6 - .../test/fixtures/column_major_r_u_ta_u.json | 6 - .../strsm/test/fixtures/ra_rb_l_l_nta_nu.json | 19 + .../strsm/test/fixtures/ra_rb_l_l_nta_u.json | 19 + .../strsm/test/fixtures/ra_rb_l_l_ta_nu.json | 19 + .../strsm/test/fixtures/ra_rb_l_l_ta_u.json | 19 + .../strsm/test/fixtures/ra_rb_l_u_nta_nu.json | 19 + .../strsm/test/fixtures/ra_rb_l_u_nta_u.json | 19 + .../strsm/test/fixtures/ra_rb_l_u_ta_nu.json | 19 + .../strsm/test/fixtures/ra_rb_l_u_ta_u.json | 19 + .../strsm/test/fixtures/ra_rb_r_l_nta_nu.json | 19 + .../strsm/test/fixtures/ra_rb_r_l_nta_u.json | 19 + .../strsm/test/fixtures/ra_rb_r_l_ta_nu.json | 19 + .../strsm/test/fixtures/ra_rb_r_l_ta_u.json | 19 + .../strsm/test/fixtures/ra_rb_r_u_nta_nu.json | 19 + .../strsm/test/fixtures/ra_rb_r_u_nta_u.json | 19 + .../strsm/test/fixtures/ra_rb_r_u_ta_nu.json | 19 + .../strsm/test/fixtures/ra_rb_r_u_ta_u.json | 19 + .../test/fixtures/row_major_l_l_nta_nu.json | 6 - .../test/fixtures/row_major_l_l_nta_u.json | 6 - .../test/fixtures/row_major_l_l_ta_nu.json | 6 - .../test/fixtures/row_major_l_l_ta_u.json | 6 - .../test/fixtures/row_major_l_u_nta_nu.json | 6 - .../test/fixtures/row_major_l_u_nta_u.json | 6 - .../test/fixtures/row_major_l_u_ta_nu.json | 6 - .../test/fixtures/row_major_l_u_ta_u.json | 6 - .../test/fixtures/row_major_r_l_nta_nu.json | 6 - .../test/fixtures/row_major_r_l_nta_u.json | 6 - .../test/fixtures/row_major_r_l_ta_nu.json | 6 - .../test/fixtures/row_major_r_l_ta_u.json | 6 - .../test/fixtures/row_major_r_u_nta_nu.json | 6 - .../test/fixtures/row_major_r_u_nta_u.json | 6 - .../test/fixtures/row_major_r_u_ta_nu.json | 6 - .../test/fixtures/row_major_r_u_ta_u.json | 6 - .../blas/base/strsm/test/test.ndarray.js | 2465 ++++++++--------- 65 files changed, 1839 insertions(+), 1426 deletions(-) create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_u.json diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu.json new file mode 100644 index 000000000000..0d70e68626fe --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 2.0, 0.0, 3.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -2.0, 1.0, 0.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_u.json new file mode 100644 index 000000000000..0e19f06452b4 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_u.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 2.0, 0.0, 3.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -6.0, 1.0, 0.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_nu.json new file mode 100644 index 000000000000..969e753d834b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "lower", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 1.0, 1.0, -2.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_u.json new file mode 100644 index 000000000000..8d6a121325d2 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_u.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "lower", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ -2.0, 2.0, -5.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_nu.json new file mode 100644 index 000000000000..4dd85dd44b4d --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 1.0, 1.0, -2.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_u.json new file mode 100644 index 000000000000..aa3f0f8cef84 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_u.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ -2.0, 2.0, -5.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_nu.json new file mode 100644 index 000000000000..52f729a25080 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -5.0, 1.0, -0.5 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_u.json new file mode 100644 index 000000000000..444f23284c11 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_u.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -10.0, 1.0, -1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_nu.json new file mode 100644 index 000000000000..7aa85cbf3308 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 2.5, -1.0, 0.5, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_u.json new file mode 100644 index 000000000000..3b98f7473aa4 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_u.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "lower", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 1.0, -4.0, 1.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_nu.json new file mode 100644 index 000000000000..83ca547c1f00 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "lower", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_u.json new file mode 100644 index 000000000000..144538cd8436 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_u.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "lower", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -11.0, -4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_nu.json new file mode 100644 index 000000000000..d05b05b9af6b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "upper", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_u.json new file mode 100644 index 000000000000..68d4347f1837 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_u.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -11.0, -4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_nu.json new file mode 100644 index 000000000000..8b8fb51e5acb --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "upper", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 2.5, -1.0, 0.5, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_u.json new file mode 100644 index 000000000000..cf4e83ed52b5 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_u.json @@ -0,0 +1,19 @@ +{ + "order": "column-major", + "side": "right", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 1.0, -4.0, 1.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_nu.json index 629f157f7be5..95f54ae636d6 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 2.0, 0.0, 3.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 4.0, -2.0, 1.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_u.json index c49966ff0af7..237171d060be 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 2.0, 0.0, 3.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 4.0, -6.0, 1.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_nu.json index c467793440f8..e4b0d3cb610d 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 3.0, 0.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 1.0, 1.0, -2.0, 1.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_u.json index c11c462fcddd..c4cb03e48d01 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 3.0, 0.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ -2.0, 2.0, -5.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_nu.json index 94a2891a5738..dca446e7521c 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 1.0, 1.0, -2.0, 1.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_u.json index e55a25969c70..123f0e60e7f6 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ -2.0, 2.0, -5.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_nu.json index 60481eb16a08..bd77f9095ed4 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 4.0, -5.0, 1.0, -0.5 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_u.json index 9a4025bc6002..1438e05d14d8 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 4.0, -10.0, 1.0, -1.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_nu.json index 5a8934359c9d..9a740550e6a1 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 3.0, 0.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 2.5, -1.0, 0.5, 1.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_u.json index 9b59a4ab9302..7b0cdcece558 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 3.0, 0.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 1.0, -4.0, 1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_nu.json index bee9fd5c4efe..e3a5a8847b09 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 3.0, 0.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 4.0, 2.0, -5.5, -2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_u.json index b64bce534088..7bdc329850a2 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 3.0, 0.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 4.0, 2.0, -11.0, -4.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_nu.json index 5be38a8638f4..abeac9554ae4 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 4.0, 2.0, -5.5, -2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_u.json index da92d7c1d946..bdf2d44cc723 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 4.0, 2.0, -11.0, -4.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_nu.json index a1c7c7138f79..f635deaa5582 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 2.5, -1.0, 0.5, 1.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_u.json index 879cd908feb2..daa9b2f8fda5 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 1, - "strideA2": 2, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 1, - "strideB2": 2, - "offsetB": 0, "B_out": [ 1.0, -4.0, 1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu.json new file mode 100644 index 000000000000..e317fc666443 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_u.json new file mode 100644 index 000000000000..7ab00095ed7a --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_u.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -11.0, -4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_nu.json new file mode 100644 index 000000000000..0b7eef567b8b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "lower", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 2.5, -1.0, 0.5, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_u.json new file mode 100644 index 000000000000..e5405df200ff --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_u.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "lower", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 1.0, -4.0, 1.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_nu.json new file mode 100644 index 000000000000..ca7a363cc265 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 2.5, -1.0, 0.5, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_u.json new file mode 100644 index 000000000000..767ac74f908d --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_u.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 1.0, -4.0, 1.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_nu.json new file mode 100644 index 000000000000..b9b8134aed79 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_u.json new file mode 100644 index 000000000000..abb25aaa27ce --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_u.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -11.0, -4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_nu.json new file mode 100644 index 000000000000..681c8bca3b52 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 1.0, 1.0, -2.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_u.json new file mode 100644 index 000000000000..793a48e5d3cf --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_u.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "lower", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ -2.0, 2.0, -5.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_nu.json new file mode 100644 index 000000000000..60dae5654ee7 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "lower", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, -5.0, 1.0, -0.5 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_u.json new file mode 100644 index 000000000000..9f876fa8afd0 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_u.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "lower", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, -10.0, 1.0, -1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json new file mode 100644 index 000000000000..292a42183ca5 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "upper", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 2.0, 0.0, 3.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, -2.0, 1.0, 0.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_u.json new file mode 100644 index 000000000000..d340216619d9 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_u.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 2.0, 0.0, 3.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, -6.0, 1.0, 0.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_nu.json new file mode 100644 index 000000000000..11a4e8b6daa4 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_nu.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "upper", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 1.0, 1.0, -2.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_u.json new file mode 100644 index 000000000000..27c77543977f --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_u.json @@ -0,0 +1,19 @@ +{ + "order": "row-major", + "side": "right", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ -2.0, 2.0, -5.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json index 05da539d0e07..15e58aba0ef2 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 4.0, 2.0, -5.5, -2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_u.json index 42cbdb2e6e0b..950ae473c42b 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 4.0, 2.0, -11.0, -4.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json index 6e481e709f3a..4b5d6e8c22e7 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 2.5, -1.0, 0.5, 1.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_u.json index 9b5064c462b0..b3379e78c653 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 1.0, -4.0, 1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json index 0917c9a90d04..11bb66e704ef 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 3.0, 0.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 2.5, -1.0, 0.5, 1.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_u.json index 78cf08bfb066..2a4c7fa64eb3 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 3.0, 0.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 1.0, -4.0, 1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json index 057d9ca1721b..874b8d73abd1 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 3.0, 0.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 4.0, 2.0, -5.5, -2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_u.json index 71f7f41d270a..efc7936daafa 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 3.0, 0.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 4.0, 2.0, -11.0, -4.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json index 008de8a68b9b..240ec7824e29 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 1.0, 1.0, -2.0, 1.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_u.json index 31c6c9cb84e5..0eba9dda2d92 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ -2.0, 2.0, -5.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json index 3a28018f2add..feb622a15dfa 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 4.0, -5.0, 1.0, -0.5 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_u.json index 29053db213ad..83b0f7da521d 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 0.0, 3.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 4.0, -10.0, 1.0, -1.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json index 1000d9b3be2d..32a2eafbf16c 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 2.0, 0.0, 3.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 4.0, -2.0, 1.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_u.json index d5cf18911205..989769d6a40f 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 2.0, 0.0, 3.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 4.0, -6.0, 1.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json index a93ce8ab7e7b..2b86a102e739 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 3.0, 0.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ 1.0, 1.0, -2.0, 1.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_u.json index d526a2cc859c..493e0e313e9b 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_u.json @@ -9,13 +9,7 @@ "alpha": 1.0, "A": [ 1.0, 3.0, 0.0, 2.0 ], "lda": 2, - "strideA1": 2, - "strideA2": 1, - "offsetA": 0, "B": [ 4.0, 2.0, 1.0, 2.0 ], "ldb": 2, - "strideB1": 2, - "strideB2": 1, - "offsetB": 0, "B_out": [ -2.0, 2.0, -5.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js index 84f2831c4113..1e3a7939c5df 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js @@ -47,39 +47,39 @@ var cacbruntanu = require( './fixtures/ca_cb_r_u_nta_nu.json' ); var cacbruntau = require( './fixtures/ca_cb_r_u_nta_u.json' ); var cacbrutanu = require( './fixtures/ca_cb_r_u_ta_nu.json' ); var cacbrutau = require( './fixtures/ca_cb_r_u_ta_u.json' ); -var carbllntanu = require( './fixtures/ca_rb_l_l_nta_nu.json' ); -var carbllntau = require( './fixtures/ca_rb_l_l_nta_u.json' ); -var carblltanu = require( './fixtures/ca_rb_l_l_ta_nu.json' ); -var carblltau = require( './fixtures/ca_rb_l_l_ta_u.json' ); -var carbluntanu = require( './fixtures/ca_rb_l_u_nta_nu.json' ); -var carbluntau = require( './fixtures/ca_rb_l_u_nta_u.json' ); -var carblutanu = require( './fixtures/ca_rb_l_u_ta_nu.json' ); -var carblutau = require( './fixtures/ca_rb_l_u_ta_u.json' ); -var carbrlntanu = require( './fixtures/ca_rb_r_l_nta_nu.json' ); -var carbrlntau = require( './fixtures/ca_rb_r_l_nta_u.json' ); -var carbrltanu = require( './fixtures/ca_rb_r_l_ta_nu.json' ); -var carbrltau = require( './fixtures/ca_rb_r_l_ta_u.json' ); -var carbruntanu = require( './fixtures/ca_rb_r_u_nta_nu.json' ); -var carbruntau = require( './fixtures/ca_rb_r_u_nta_u.json' ); -var carbrutanu = require( './fixtures/ca_rb_r_u_ta_nu.json' ); -var carbrutau = require( './fixtures/ca_rb_r_u_ta_u.json' ); - -var racbllntanu = require( './fixtures/ra_cb_l_l_nta_nu.json' ); -var racbllntau = require( './fixtures/ra_cb_l_l_nta_u.json' ); -var racblltanu = require( './fixtures/ra_cb_l_l_ta_nu.json' ); -var racblltau = require( './fixtures/ra_cb_l_l_ta_u.json' ); -var racbluntanu = require( './fixtures/ra_cb_l_u_nta_nu.json' ); -var racbluntau = require( './fixtures/ra_cb_l_u_nta_u.json' ); -var racblutanu = require( './fixtures/ra_cb_l_u_ta_nu.json' ); -var racblutau = require( './fixtures/ra_cb_l_u_ta_u.json' ); -var racbrlntanu = require( './fixtures/ra_cb_r_l_nta_nu.json' ); -var racbrlntau = require( './fixtures/ra_cb_r_l_nta_u.json' ); -var racbrltanu = require( './fixtures/ra_cb_r_l_ta_nu.json' ); -var racbrltau = require( './fixtures/ra_cb_r_l_ta_u.json' ); -var racbruntanu = require( './fixtures/ra_cb_r_u_nta_nu.json' ); -var racbruntau = require( './fixtures/ra_cb_r_u_nta_u.json' ); -var racbrutanu = require( './fixtures/ra_cb_r_u_ta_nu.json' ); -var racbrutau = require( './fixtures/ra_cb_r_u_ta_u.json' ); +// var carbllntanu = require( './fixtures/ca_rb_l_l_nta_nu.json' ); +// var carbllntau = require( './fixtures/ca_rb_l_l_nta_u.json' ); +// var carblltanu = require( './fixtures/ca_rb_l_l_ta_nu.json' ); +// var carblltau = require( './fixtures/ca_rb_l_l_ta_u.json' ); +// var carbluntanu = require( './fixtures/ca_rb_l_u_nta_nu.json' ); +// var carbluntau = require( './fixtures/ca_rb_l_u_nta_u.json' ); +// var carblutanu = require( './fixtures/ca_rb_l_u_ta_nu.json' ); +// var carblutau = require( './fixtures/ca_rb_l_u_ta_u.json' ); +// var carbrlntanu = require( './fixtures/ca_rb_r_l_nta_nu.json' ); +// var carbrlntau = require( './fixtures/ca_rb_r_l_nta_u.json' ); +// var carbrltanu = require( './fixtures/ca_rb_r_l_ta_nu.json' ); +// var carbrltau = require( './fixtures/ca_rb_r_l_ta_u.json' ); +// var carbruntanu = require( './fixtures/ca_rb_r_u_nta_nu.json' ); +// var carbruntau = require( './fixtures/ca_rb_r_u_nta_u.json' ); +// var carbrutanu = require( './fixtures/ca_rb_r_u_ta_nu.json' ); +// var carbrutau = require( './fixtures/ca_rb_r_u_ta_u.json' ); + +// var racbllntanu = require( './fixtures/ra_cb_l_l_nta_nu.json' ); +// var racbllntau = require( './fixtures/ra_cb_l_l_nta_u.json' ); +// var racblltanu = require( './fixtures/ra_cb_l_l_ta_nu.json' ); +// var racblltau = require( './fixtures/ra_cb_l_l_ta_u.json' ); +// var racbluntanu = require( './fixtures/ra_cb_l_u_nta_nu.json' ); +// var racbluntau = require( './fixtures/ra_cb_l_u_nta_u.json' ); +// var racblutanu = require( './fixtures/ra_cb_l_u_ta_nu.json' ); +// var racblutau = require( './fixtures/ra_cb_l_u_ta_u.json' ); +// var racbrlntanu = require( './fixtures/ra_cb_r_l_nta_nu.json' ); +// var racbrlntau = require( './fixtures/ra_cb_r_l_nta_u.json' ); +// var racbrltanu = require( './fixtures/ra_cb_r_l_ta_nu.json' ); +// var racbrltau = require( './fixtures/ra_cb_r_l_ta_u.json' ); +// var racbruntanu = require( './fixtures/ra_cb_r_u_nta_nu.json' ); +// var racbruntau = require( './fixtures/ra_cb_r_u_nta_u.json' ); +// var racbrutanu = require( './fixtures/ra_cb_r_u_ta_nu.json' ); +// var racbrutau = require( './fixtures/ra_cb_r_u_ta_u.json' ); var rarbllntanu = require( './fixtures/ra_rb_l_l_nta_nu.json' ); var rarbllntau = require( './fixtures/ra_rb_l_l_nta_u.json' ); var rarblltanu = require( './fixtures/ra_rb_l_l_ta_nu.json' ); @@ -97,20 +97,20 @@ var rarbruntau = require( './fixtures/ra_rb_r_u_nta_u.json' ); var rarbrutanu = require( './fixtures/ra_rb_r_u_ta_nu.json' ); var rarbrutau = require( './fixtures/ra_rb_r_u_ta_u.json' ); -var rarbllntanusa1sa2 = require( './fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json' ); -var rarbllntanusa1nsa2 = require( './fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json' ); -var rarbllntanusa1sa2n = require( './fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json' ); -var rarbllntanusa1nsa2n = require( './fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json' ); -var rarbllntanusb1sb2 = require( './fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json' ); -var rarbllntanusb1nsb2 = require( './fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json' ); -var rarbllntanusb1sb2n = require( './fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json' ); -var rarbllntanusb1nsb2n = require( './fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json' ); -var rarbllntanuoa = require( './fixtures/ra_rb_l_l_nta_nu_oa.json' ); -var rarbllntanuob = require( './fixtures/ra_rb_l_l_nta_nu_ob.json' ); -var rrcap = require( './fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json' ); -var rccap = require( './fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json' ); -var cccap = require( './fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json' ); -var crcap = require( './fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json' ); +// var rarbllntanusa1sa2 = require( './fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json' ); +// var rarbllntanusa1nsa2 = require( './fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json' ); +// var rarbllntanusa1sa2n = require( './fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json' ); +// var rarbllntanusa1nsa2n = require( './fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json' ); +// var rarbllntanusb1sb2 = require( './fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json' ); +// var rarbllntanusb1nsb2 = require( './fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json' ); +// var rarbllntanusb1sb2n = require( './fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json' ); +// var rarbllntanusb1nsb2n = require( './fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json' ); +// var rarbllntanuoa = require( './fixtures/ra_rb_l_l_nta_nu_oa.json' ); +// var rarbllntanuob = require( './fixtures/ra_rb_l_l_nta_nu_ob.json' ); +// var rrcap = require( './fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json' ); +// var rccap = require( './fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json' ); +// var cccap = require( './fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json' ); +// var crcap = require( './fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json' ); // TESTS // @@ -125,214 +125,314 @@ tape( 'the function has an arity of 15', function test( t ) { t.end(); }); -tape( 'the function throws an error if provided an invalid first argument', function test( t ) { - var values; - var data; - var i; - - data = racbllntanu; +// tape( 'the function throws an error if provided an invalid first argument', function test( t ) { +// var values; +// var data; +// var i; + +// data = racbllntanu; + +// values = [ +// 'foo', +// 'bar', +// 'beep', +// 'boop' +// ]; + +// for ( i = 0; i < values.length; i++ ) { +// t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); +// } +// t.end(); + +// function badValue( value ) { +// return function badValue() { +// strsm( value, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); +// }; +// } +// }); + +// tape( 'the function throws an error if provided an invalid second argument', function test( t ) { +// var values; +// var data; +// var i; + +// data = racbllntanu; + +// values = [ +// 'foo', +// 'bar', +// 'beep', +// 'boop' +// ]; + +// for ( i = 0; i < values.length; i++ ) { +// t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); +// } +// t.end(); + +// function badValue( value ) { +// return function badValue() { +// strsm( data.side, value, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); +// }; +// } +// }); + +// tape( 'the function throws an error if provided an invalid third argument', function test( t ) { +// var values; +// var data; +// var i; + +// data = racbllntanu; + +// values = [ +// 'foo', +// 'bar', +// 'beep', +// 'boop' +// ]; + +// for ( i = 0; i < values.length; i++ ) { +// t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); +// } +// t.end(); + +// function badValue( value ) { +// return function badValue() { +// strsm( data.side, data.uplo, value, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); +// }; +// } +// }); + +// tape( 'the function throws an error if provided an invalid fourth argument', function test( t ) { +// var values; +// var data; +// var i; + +// data = racbllntanu; + +// values = [ +// 'foo', +// 'bar', +// 'beep', +// 'boop' +// ]; + +// for ( i = 0; i < values.length; i++ ) { +// t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); +// } +// t.end(); + +// function badValue( value ) { +// return function badValue() { +// strsm( data.side, data.uplo, data.transA, value, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); +// }; +// } +// }); + +// tape( 'the function throws an error if provided an invalid fifth argument', function test( t ) { +// var values; +// var data; +// var i; + +// data = racbllntanu; + +// values = [ +// -1, +// -2, +// -3 +// ]; + +// for ( i = 0; i < values.length; i++ ) { +// t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); +// } +// t.end(); + +// function badValue( value ) { +// return function badValue() { +// strsm( data.side, data.uplo, data.transA, data.diag, value, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); +// }; +// } +// }); + +// tape( 'the function throws an error if provided an invalid sixth argument', function test( t ) { +// var values; +// var data; +// var i; + +// data = racbllntanu; + +// values = [ +// -1, +// -2, +// -3 +// ]; + +// for ( i = 0; i < values.length; i++ ) { +// t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); +// } +// t.end(); + +// function badValue( value ) { +// return function badValue() { +// strsm( data.side, data.uplo, data.transA, data.diag, data.M, value, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); +// }; +// } +// }); + +// tape( 'the function throws an error if provided an invalid thirteenth argument', function test( t ) { +// var values; +// var data; +// var i; + +// data = racbllntanu; + +// values = [ +// 0 +// ]; + +// for ( i = 0; i < values.length; i++ ) { +// t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); +// } +// t.end(); + +// function badValue( value ) { +// return function badValue() { +// strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), value, data.strideB2, data.offsetB ); +// }; +// } +// }); - values = [ - 'foo', - 'bar', - 'beep', - 'boop' - ]; +// tape( 'the function throws an error if provided an invalid fourteenth argument', function test( t ) { +// var values; +// var data; +// var i; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); +// data = racbllntanu; + +// values = [ +// 0 +// ]; + +// for ( i = 0; i < values.length; i++ ) { +// t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); +// } +// t.end(); - function badValue( value ) { - return function badValue() { - strsm( value, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); - }; - } -}); +// function badValue( value ) { +// return function badValue() { +// strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, value, data.offsetB ); +// }; +// } +// }); -tape( 'the function throws an error if provided an invalid second argument', function test( t ) { - var values; - var data; - var i; +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, lower, no-transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = racbllntanu; +// data = racbllntanu; - values = [ - 'foo', - 'bar', - 'beep', - 'boop' - ]; +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); +// expected = new Float32Array( data.B_out ); - function badValue( value ) { - return function badValue() { - strsm( data.side, value, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); - }; - } -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function throws an error if provided an invalid third argument', function test( t ) { - var values; +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, lower, no-transpose, non-unit)', function test( t ) { + var expected; var data; - var i; - - data = racbllntanu; - - values = [ - 'foo', - 'bar', - 'beep', - 'boop' - ]; - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - strsm( data.side, data.uplo, value, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); - }; - } -}); + var out; + var a; + var b; -tape( 'the function throws an error if provided an invalid fourth argument', function test( t ) { - var values; - var data; - var i; + data = cacbllntanu; - data = racbllntanu; + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); - values = [ - 'foo', - 'bar', - 'beep', - 'boop' - ]; + expected = new Float32Array( data.B_out ); - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); - - function badValue( value ) { - return function badValue() { - strsm( data.side, data.uplo, data.transA, value, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); - }; - } }); -tape( 'the function throws an error if provided an invalid fifth argument', function test( t ) { - var values; - var data; - var i; +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, lower, no-transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = racbllntanu; +// data = racbllntau; - values = [ - -1, - -2, - -3 - ]; +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); +// expected = new Float32Array( data.B_out ); - function badValue( value ) { - return function badValue() { - strsm( data.side, data.uplo, data.transA, data.diag, value, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); - }; - } -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function throws an error if provided an invalid sixth argument', function test( t ) { - var values; +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, lower, no-transpose, unit)', function test( t ) { + var expected; var data; - var i; - - data = racbllntanu; - - values = [ - -1, - -2, - -3 - ]; - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - strsm( data.side, data.uplo, data.transA, data.diag, data.M, value, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); - }; - } -}); + var out; + var a; + var b; -tape( 'the function throws an error if provided an invalid thirteenth argument', function test( t ) { - var values; - var data; - var i; + data = cacbllntau; - data = racbllntanu; + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); - values = [ - 0 - ]; + expected = new Float32Array( data.B_out ); - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); - - function badValue( value ) { - return function badValue() { - strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), value, data.strideB2, data.offsetB ); - }; - } }); -tape( 'the function throws an error if provided an invalid fourteenth argument', function test( t ) { - var values; - var data; - var i; +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, lower, transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = racbllntanu; +// data = racblltanu; - values = [ - 0 - ]; +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); +// expected = new Float32Array( data.B_out ); - function badValue( value ) { - return function badValue() { - strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, value, data.offsetB ); - }; - } -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, lower, no-transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, lower, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racbllntanu; + data = cacblltanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -345,14 +445,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, lower, no-transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, lower, transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racblltau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, lower, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbllntanu; + data = cacblltau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -365,14 +485,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, lower, no-transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, upper, no-transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racbluntanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, upper, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racbllntau; + data = cacbluntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -385,14 +525,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, lower, no-transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, upper, no-transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racbluntau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, upper, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbllntau; + data = cacbluntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -405,14 +565,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, lower, transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, upper, transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racblutanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, upper, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racblltanu; + data = cacblutanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -425,14 +605,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, lower, transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, upper, transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racblutau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, upper, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacblltanu; + data = cacblutau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -445,14 +645,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, lower, transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, lower, no-transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racbrlntanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, lower, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racblltau; + data = cacbrlntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -465,14 +685,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, lower, transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, lower, no-transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racbrlntau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, lower, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacblltau; + data = cacbrlntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -485,14 +725,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, upper, no-transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, lower, transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racbrltanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, lower, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racbluntanu; + data = cacbrltanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -505,14 +765,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, upper, no-transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, lower, transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racbrltau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, lower, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbluntanu; + data = cacbrltau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -525,14 +805,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, upper, no-transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, upper, no-transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racbruntanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, upper, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racbluntau; + data = cacbruntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -545,14 +845,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, upper, no-transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, upper, no-transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racbruntau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, upper, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbluntau; + data = cacbruntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -565,14 +885,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, upper, transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, upper, transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racbrutanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, upper, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racblutanu; + data = cacbrutanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -585,14 +925,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, upper, transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, upper, transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = racbrutau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, upper, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacblutanu; + data = cacbrutau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -605,14 +965,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, left, upper, transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racblutau; + data = rarbllntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -625,14 +985,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, left, upper, transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, no-transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carbllntanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacblutau; + data = rarbllntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -645,14 +1025,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, lower, no-transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, no-transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carbllntau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racbrlntanu; + data = rarblltanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -665,14 +1065,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, lower, no-transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carblltanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbrlntanu; + data = rarblltau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -685,14 +1105,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, lower, no-transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carblltau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racbrlntau; + data = rarbluntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -705,14 +1145,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, lower, no-transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, no-transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carbluntanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbrlntau; + data = rarbluntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -725,14 +1185,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, lower, transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, no-transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carbluntau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racbrltanu; + data = rarblutanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -745,14 +1225,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, lower, transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carblutanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbrltanu; + data = rarblutau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -765,14 +1265,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, lower, transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carblutau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racbrltau; + data = rarbrlntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -785,14 +1305,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, lower, transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, no-transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carbrlntanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbrltau; + data = rarbrlntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -805,14 +1345,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, upper, no-transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, no-transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carbrlntau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racbruntanu; + data = rarbrltanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -825,14 +1385,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, upper, no-transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carbrltanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbruntanu; + data = rarbrltau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -845,14 +1425,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, upper, no-transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carbrltau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racbruntau; + data = rarbruntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -865,14 +1465,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, upper, no-transpose, unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, no-transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carbruntanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbruntau; + data = rarbruntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -885,14 +1505,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, upper, transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, no-transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carbruntau; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = racbrutanu; + data = rarbrutanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -905,14 +1545,34 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, upper, transpose, non-unit)', function test( t ) { +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, transpose, non-unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; + +// data = carbrutanu; + +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); + +// expected = new Float32Array( data.B_out ); + +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbrutanu; + data = rarbrutau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -925,1066 +1585,403 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column_major, right, upper, transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = racbrutau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column_major, right, upper, transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = cacbrutau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, no-transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarbllntanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, no-transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carbllntanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, no-transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarbllntau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, no-transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carbllntau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarblltanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carblltanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarblltau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carblltau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, no-transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarbluntanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, no-transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carbluntanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, no-transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarbluntau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, no-transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carbluntau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarblutanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carblutanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarblutau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carblutau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, no-transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarbrlntanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, no-transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carbrlntanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, no-transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarbrlntau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, no-transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carbrlntau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarbrltanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carbrltanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarbrltau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carbrltau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, no-transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarbruntanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, no-transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carbruntanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, no-transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarbruntau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, no-transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carbruntau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = rarbrutanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, transpose, non-unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; - - data = carbrutanu; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, transpose, unit)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rarbrutau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); - - expected = new Float32Array( data.B_out ); - - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, transpose, unit)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// data = carbrutau; - data = carbrutau; - - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function returns a reference to the second input matrix', function test( t ) { - var data; - var out; - var a; - var b; +// tape( 'the function returns a reference to the second input matrix', function test( t ) { +// var data; +// var out; +// var a; +// var b; - data = racbllntanu; +// data = racbllntanu; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.end(); +// }); -tape( 'if either `M` or `N` is `0`, the function returns the second input matrix unchanged', function test( t ) { - var expected; - var data; - var out; - var a; +// tape( 'if either `M` or `N` is `0`, the function returns the second input matrix unchanged', function test( t ) { +// var expected; +// var data; +// var out; +// var a; - data = racbllntanu; +// data = racbllntanu; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B ); +// expected = new Float32Array( data.B ); - out = strsm( data.side, data.uplo, data.transA, data.diag, 0, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); +// out = strsm( data.side, data.uplo, data.transA, data.diag, 0, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, 0, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, 0, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// t.end(); +// }); -tape( 'if `α` is `0`, the function returns the second input matrix filled with zeros', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'if `α` is `0`, the function returns the second input matrix filled with zeros', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = racbllntanu; +// data = racbllntanu; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( b.length ); +// expected = new Float32Array( b.length ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, 0.0, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, 0.0, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// t.end(); +// }); -tape( 'the function supports specifying the strides of the first and second dimensions of `A`', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports specifying the strides of the first and second dimensions of `A`', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rarbllntanusa1sa2; +// data = rarbllntanusa1sa2; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports a negative stride for the first dimension of `A`', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports a negative stride for the first dimension of `A`', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rarbllntanusa1nsa2; +// data = rarbllntanusa1nsa2; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports a negative stride for the second dimension of `A`', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports a negative stride for the second dimension of `A`', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rarbllntanusa1sa2n; +// data = rarbllntanusa1sa2n; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports a negative strides of `A`', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports a negative strides of `A`', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rarbllntanusa1nsa2n; +// data = rarbllntanusa1nsa2n; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports specifying an offset parameter for `A`', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports specifying an offset parameter for `A`', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rarbllntanuoa; +// data = rarbllntanuoa; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports specifying the strides of the first and second dimensions of `B`', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports specifying the strides of the first and second dimensions of `B`', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rarbllntanusb1sb2; +// data = rarbllntanusb1sb2; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports a negative stride for the first dimension of `B`', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports a negative stride for the first dimension of `B`', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rarbllntanusb1nsb2; +// data = rarbllntanusb1nsb2; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports a negative stride for the second dimension of `B`', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports a negative stride for the second dimension of `B`', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rarbllntanusb1sb2n; +// data = rarbllntanusb1sb2n; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports a negative strides of `B`', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports a negative strides of `B`', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rarbllntanusb1nsb2n; +// data = rarbllntanusb1nsb2n; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports specifying an offset parameter for `B`', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports specifying an offset parameter for `B`', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rarbllntanuob; +// data = rarbllntanuob; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports complex access patterns (row-major, row-major)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports complex access patterns (row-major, row-major)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rrcap; +// data = rrcap; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports complex access patterns (row-major, column-major)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports complex access patterns (row-major, column-major)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = rccap; +// data = rccap; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports complex access patterns (column-major, row-major)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports complex access patterns (column-major, row-major)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = crcap; +// data = crcap; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports complex access patterns (column-major, column-major)', function test( t ) { - var expected; - var data; - var out; - var a; - var b; +// tape( 'the function supports complex access patterns (column-major, column-major)', function test( t ) { +// var expected; +// var data; +// var out; +// var a; +// var b; - data = cccap; +// data = cccap; - a = new Float32Array( data.A ); - b = new Float32Array( data.B ); +// a = new Float32Array( data.A ); +// b = new Float32Array( data.B ); - expected = new Float32Array( data.B_out ); +// expected = new Float32Array( data.B_out ); - out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); - t.strictEqual( out, b, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports computation over large arrays (row-major, row-major)', function test( t ) { - var expected; - var out; - var N; - var a; - var b; - var c; +// tape( 'the function supports computation over large arrays (row-major, row-major)', function test( t ) { +// var expected; +// var out; +// var N; +// var a; +// var b; - N = 100; +// N = 100; - a = ones( N*N, 'float32' ); - b = new Float32Array( a.length ); +// a = ones( N*N, 'float32' ); +// b = new Float32Array( a.length ); - expected = filled( N, a.length, 'float32' ); +// expected = filled( N, a.length, 'float32' ); - out = strsm( 'left', 'lower', 'no-transpose', 'non-unit', N, N, 1.0, a, N, 1, 0, b, N, 1, 0 ); - t.strictEqual( out, c, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( 'left', 'lower', 'no-transpose', 'non-unit', N, N, 1.0, a, N, 1, 0, b, N, 1, 0 ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); -tape( 'the function supports computation over large arrays (column-major, column-major)', function test( t ) { - var expected; - var out; - var N; - var a; - var b; - var c; +// tape( 'the function supports computation over large arrays (column-major, column-major)', function test( t ) { +// var expected; +// var out; +// var N; +// var a; +// var b; - N = 100; +// N = 100; - a = ones( N*N, 'float32' ); - b = ones( a.length, 'float32' ); - c = new Float32Array( a.length ); +// a = ones( N*N, 'float32' ); +// b = new Float32Array( a.length ); - expected = filled( N, a.length, 'float32' ); +// expected = filled( N, a.length, 'float32' ); - out = strsm( 'left', 'lower', 'no-transpose', 'non-unit', N, N, 1.0, a, 1, N, 0, b, 1, 3, 0 ); - t.strictEqual( out, c, 'returns expected value' ); - t.deepEqual( out, expected, 'returns expected value' ); - t.end(); -}); +// out = strsm( 'left', 'lower', 'no-transpose', 'non-unit', N, N, 1.0, a, 1, N, 0, b, 1, 3, 0 ); +// t.strictEqual( out, b, 'returns expected value' ); +// t.deepEqual( out, expected, 'returns expected value' ); +// t.end(); +// }); From 83604d55a2bd90845b0b6b19d7dde9b107c87fb9 Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Sun, 25 May 2025 10:15:48 +0530 Subject: [PATCH 05/19] chore: add fixtures --- .../@stdlib/blas/base/strsm/lib/base.js | 1 - .../strsm/test/fixtures/ca_cb_l_l_nta_nu.json | 1 - .../strsm/test/fixtures/ca_cb_l_l_nta_u.json | 1 - .../strsm/test/fixtures/ca_cb_l_l_ta_nu.json | 1 - .../strsm/test/fixtures/ca_cb_l_l_ta_u.json | 1 - .../strsm/test/fixtures/ca_cb_l_u_nta_nu.json | 1 - .../strsm/test/fixtures/ca_cb_l_u_nta_u.json | 1 - .../strsm/test/fixtures/ca_cb_l_u_ta_nu.json | 1 - .../strsm/test/fixtures/ca_cb_l_u_ta_u.json | 1 - .../strsm/test/fixtures/ca_cb_r_l_nta_nu.json | 1 - .../strsm/test/fixtures/ca_cb_r_l_nta_u.json | 1 - .../strsm/test/fixtures/ca_cb_r_l_ta_nu.json | 1 - .../strsm/test/fixtures/ca_cb_r_l_ta_u.json | 1 - .../strsm/test/fixtures/ca_cb_r_u_nta_nu.json | 1 - .../strsm/test/fixtures/ca_cb_r_u_nta_u.json | 1 - .../strsm/test/fixtures/ca_cb_r_u_ta_nu.json | 1 - .../strsm/test/fixtures/ca_cb_r_u_ta_u.json | 1 - .../strsm/test/fixtures/ca_rb_l_l_nta_nu.json | 18 + .../strsm/test/fixtures/ra_cb_l_l_nta_nu.json | 18 + .../strsm/test/fixtures/ra_cb_l_u_nta_nu.json | 18 + .../strsm/test/fixtures/ra_rb_l_l_nta_nu.json | 1 - .../strsm/test/fixtures/ra_rb_l_l_nta_u.json | 1 - .../strsm/test/fixtures/ra_rb_l_l_ta_nu.json | 1 - .../strsm/test/fixtures/ra_rb_l_l_ta_u.json | 1 - .../strsm/test/fixtures/ra_rb_l_u_nta_nu.json | 1 - .../strsm/test/fixtures/ra_rb_l_u_nta_u.json | 1 - .../strsm/test/fixtures/ra_rb_l_u_ta_nu.json | 1 - .../strsm/test/fixtures/ra_rb_l_u_ta_u.json | 1 - .../strsm/test/fixtures/ra_rb_r_l_nta_nu.json | 1 - .../strsm/test/fixtures/ra_rb_r_l_nta_u.json | 1 - .../strsm/test/fixtures/ra_rb_r_l_ta_nu.json | 1 - .../strsm/test/fixtures/ra_rb_r_l_ta_u.json | 1 - .../strsm/test/fixtures/ra_rb_r_u_nta_nu.json | 1 - .../strsm/test/fixtures/ra_rb_r_u_nta_u.json | 1 - .../strsm/test/fixtures/ra_rb_r_u_ta_nu.json | 1 - .../strsm/test/fixtures/ra_rb_r_u_ta_u.json | 1 - .../blas/base/strsm/test/test.ndarray.js | 505 +++++++++--------- 37 files changed, 307 insertions(+), 285 deletions(-) create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_nu.json diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js index 1b03ba8bb97b..18c8f0f70ccc 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js @@ -166,7 +166,6 @@ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, of sb0 = strideB1; // stride for innermost loop sb1 = strideB2; // stride for outermost loop } - if ( alpha === 0.0 ) { zeros( M, N, B, sb0, sb1, offsetB ); return B; diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu.json index 0d70e68626fe..47b63e04d14c 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "left", "uplo": "lower", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_u.json index 0e19f06452b4..53da622b074e 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_u.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "left", "uplo": "lower", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_nu.json index 969e753d834b..40e580ab9667 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_nu.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "left", "uplo": "lower", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_u.json index 8d6a121325d2..ded03594af77 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_u.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "left", "uplo": "lower", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_nu.json index 4dd85dd44b4d..fe844a69e759 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_nu.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "left", "uplo": "upper", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_u.json index aa3f0f8cef84..da1551849554 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_u.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "left", "uplo": "upper", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_nu.json index 52f729a25080..85574a31d0a8 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_nu.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "left", "uplo": "upper", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_u.json index 444f23284c11..e4c09e481aab 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_u.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "left", "uplo": "upper", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_nu.json index 7aa85cbf3308..440abe8db189 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_nu.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "right", "uplo": "lower", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_u.json index 3b98f7473aa4..6b5810357ddf 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_u.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "right", "uplo": "lower", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_nu.json index 83ca547c1f00..e00990f4f446 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_nu.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "right", "uplo": "lower", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_u.json index 144538cd8436..02fdc15ea345 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_u.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "right", "uplo": "lower", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_nu.json index d05b05b9af6b..20cf7d728be0 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_nu.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "right", "uplo": "upper", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_u.json index 68d4347f1837..208542307de4 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_u.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "right", "uplo": "upper", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_nu.json index 8b8fb51e5acb..cb689e311a42 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_nu.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "right", "uplo": "upper", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_u.json index cf4e83ed52b5..b59a9a087dbe 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_u.json @@ -1,5 +1,4 @@ { - "order": "column-major", "side": "right", "uplo": "upper", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu.json new file mode 100644 index 000000000000..901e59a4a2ec --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 2.0, 0.0, 3.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 1.0, -2.0, 0.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu.json new file mode 100644 index 000000000000..48e756a70b11 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -5.5, 2.0, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_nu.json new file mode 100644 index 000000000000..03156e02a7d0 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 2.5, 0.5, -1.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu.json index e317fc666443..da70903340c2 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "left", "uplo": "lower", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_u.json index 7ab00095ed7a..827ceac2d45a 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_u.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "left", "uplo": "lower", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_nu.json index 0b7eef567b8b..298941919ebc 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_nu.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "left", "uplo": "lower", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_u.json index e5405df200ff..1950639f9549 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_u.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "left", "uplo": "lower", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_nu.json index ca7a363cc265..baba8d60b360 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_nu.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "left", "uplo": "upper", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_u.json index 767ac74f908d..58e1bacb2627 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_u.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "left", "uplo": "upper", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_nu.json index b9b8134aed79..ec6ade1c295d 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_nu.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "left", "uplo": "upper", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_u.json index abb25aaa27ce..21ce8a19b516 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_u.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "left", "uplo": "upper", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_nu.json index 681c8bca3b52..6e7a739a90b7 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_nu.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "right", "uplo": "lower", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_u.json index 793a48e5d3cf..5926401eb419 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_u.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "right", "uplo": "lower", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_nu.json index 60dae5654ee7..62fc667104e7 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_nu.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "right", "uplo": "lower", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_u.json index 9f876fa8afd0..0c4b4b5e288b 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_u.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "right", "uplo": "lower", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json index 292a42183ca5..4468152698a0 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "right", "uplo": "upper", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_u.json index d340216619d9..af39a2725f43 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_u.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "right", "uplo": "upper", "transA": "no-transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_nu.json index 11a4e8b6daa4..1c08556bbc77 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_nu.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "right", "uplo": "upper", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_u.json index 27c77543977f..0e9b05f3d89f 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_u.json @@ -1,5 +1,4 @@ { - "order": "row-major", "side": "right", "uplo": "upper", "transA": "transpose", diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js index 1e3a7939c5df..9a740708eeb5 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js @@ -47,7 +47,7 @@ var cacbruntanu = require( './fixtures/ca_cb_r_u_nta_nu.json' ); var cacbruntau = require( './fixtures/ca_cb_r_u_nta_u.json' ); var cacbrutanu = require( './fixtures/ca_cb_r_u_ta_nu.json' ); var cacbrutau = require( './fixtures/ca_cb_r_u_ta_u.json' ); -// var carbllntanu = require( './fixtures/ca_rb_l_l_nta_nu.json' ); +var carbllntanu = require( './fixtures/ca_rb_l_l_nta_nu.json' ); // var carbllntau = require( './fixtures/ca_rb_l_l_nta_u.json' ); // var carblltanu = require( './fixtures/ca_rb_l_l_ta_nu.json' ); // var carblltau = require( './fixtures/ca_rb_l_l_ta_u.json' ); @@ -64,11 +64,11 @@ var cacbrutau = require( './fixtures/ca_cb_r_u_ta_u.json' ); // var carbrutanu = require( './fixtures/ca_rb_r_u_ta_nu.json' ); // var carbrutau = require( './fixtures/ca_rb_r_u_ta_u.json' ); -// var racbllntanu = require( './fixtures/ra_cb_l_l_nta_nu.json' ); +var racbllntanu = require( './fixtures/ra_cb_l_l_nta_nu.json' ); // var racbllntau = require( './fixtures/ra_cb_l_l_nta_u.json' ); // var racblltanu = require( './fixtures/ra_cb_l_l_ta_nu.json' ); // var racblltau = require( './fixtures/ra_cb_l_l_ta_u.json' ); -// var racbluntanu = require( './fixtures/ra_cb_l_u_nta_nu.json' ); +var racbluntanu = require( './fixtures/ra_cb_l_u_nta_nu.json' ); // var racbluntau = require( './fixtures/ra_cb_l_u_nta_u.json' ); // var racblutanu = require( './fixtures/ra_cb_l_u_ta_nu.json' ); // var racblutau = require( './fixtures/ra_cb_l_u_ta_u.json' ); @@ -125,225 +125,225 @@ tape( 'the function has an arity of 15', function test( t ) { t.end(); }); -// tape( 'the function throws an error if provided an invalid first argument', function test( t ) { -// var values; -// var data; -// var i; +tape( 'the function throws an error if provided an invalid first argument', function test( t ) { + var values; + var data; + var i; -// data = racbllntanu; + data = racbllntanu; -// values = [ -// 'foo', -// 'bar', -// 'beep', -// 'boop' -// ]; + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; -// for ( i = 0; i < values.length; i++ ) { -// t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); -// } -// t.end(); + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); -// function badValue( value ) { -// return function badValue() { -// strsm( value, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); -// }; -// } -// }); + function badValue( value ) { + return function badValue() { + strsm( value, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); + }; + } +}); -// tape( 'the function throws an error if provided an invalid second argument', function test( t ) { -// var values; -// var data; -// var i; +tape( 'the function throws an error if provided an invalid second argument', function test( t ) { + var values; + var data; + var i; -// data = racbllntanu; + data = racbllntanu; -// values = [ -// 'foo', -// 'bar', -// 'beep', -// 'boop' -// ]; + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; -// for ( i = 0; i < values.length; i++ ) { -// t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); -// } -// t.end(); + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); -// function badValue( value ) { -// return function badValue() { -// strsm( data.side, value, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); -// }; -// } -// }); + function badValue( value ) { + return function badValue() { + strsm( data.side, value, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); + }; + } +}); -// tape( 'the function throws an error if provided an invalid third argument', function test( t ) { -// var values; -// var data; -// var i; +tape( 'the function throws an error if provided an invalid third argument', function test( t ) { + var values; + var data; + var i; -// data = racbllntanu; + data = racbllntanu; -// values = [ -// 'foo', -// 'bar', -// 'beep', -// 'boop' -// ]; + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; -// for ( i = 0; i < values.length; i++ ) { -// t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); -// } -// t.end(); + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); -// function badValue( value ) { -// return function badValue() { -// strsm( data.side, data.uplo, value, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); -// }; -// } -// }); + function badValue( value ) { + return function badValue() { + strsm( data.side, data.uplo, value, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); + }; + } +}); -// tape( 'the function throws an error if provided an invalid fourth argument', function test( t ) { -// var values; -// var data; -// var i; +tape( 'the function throws an error if provided an invalid fourth argument', function test( t ) { + var values; + var data; + var i; -// data = racbllntanu; + data = racbllntanu; -// values = [ -// 'foo', -// 'bar', -// 'beep', -// 'boop' -// ]; + values = [ + 'foo', + 'bar', + 'beep', + 'boop' + ]; -// for ( i = 0; i < values.length; i++ ) { -// t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); -// } -// t.end(); + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); -// function badValue( value ) { -// return function badValue() { -// strsm( data.side, data.uplo, data.transA, value, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); -// }; -// } -// }); + function badValue( value ) { + return function badValue() { + strsm( data.side, data.uplo, data.transA, value, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); + }; + } +}); -// tape( 'the function throws an error if provided an invalid fifth argument', function test( t ) { -// var values; -// var data; -// var i; +tape( 'the function throws an error if provided an invalid fifth argument', function test( t ) { + var values; + var data; + var i; -// data = racbllntanu; + data = racbllntanu; -// values = [ -// -1, -// -2, -// -3 -// ]; + values = [ + -1, + -2, + -3 + ]; -// for ( i = 0; i < values.length; i++ ) { -// t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); -// } -// t.end(); + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); -// function badValue( value ) { -// return function badValue() { -// strsm( data.side, data.uplo, data.transA, data.diag, value, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); -// }; -// } -// }); + function badValue( value ) { + return function badValue() { + strsm( data.side, data.uplo, data.transA, data.diag, value, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); + }; + } +}); -// tape( 'the function throws an error if provided an invalid sixth argument', function test( t ) { -// var values; -// var data; -// var i; +tape( 'the function throws an error if provided an invalid sixth argument', function test( t ) { + var values; + var data; + var i; -// data = racbllntanu; + data = racbllntanu; -// values = [ -// -1, -// -2, -// -3 -// ]; + values = [ + -1, + -2, + -3 + ]; -// for ( i = 0; i < values.length; i++ ) { -// t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); -// } -// t.end(); + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); -// function badValue( value ) { -// return function badValue() { -// strsm( data.side, data.uplo, data.transA, data.diag, data.M, value, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); -// }; -// } -// }); + function badValue( value ) { + return function badValue() { + strsm( data.side, data.uplo, data.transA, data.diag, data.M, value, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, data.strideB2, data.offsetB ); + }; + } +}); -// tape( 'the function throws an error if provided an invalid thirteenth argument', function test( t ) { -// var values; -// var data; -// var i; +tape( 'the function throws an error if provided an invalid thirteenth argument', function test( t ) { + var values; + var data; + var i; -// data = racbllntanu; + data = racbllntanu; -// values = [ -// 0 -// ]; + values = [ + 0 + ]; -// for ( i = 0; i < values.length; i++ ) { -// t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); -// } -// t.end(); + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); -// function badValue( value ) { -// return function badValue() { -// strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), value, data.strideB2, data.offsetB ); -// }; -// } -// }); + function badValue( value ) { + return function badValue() { + strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), value, data.strideB2, data.offsetB ); + }; + } +}); -// tape( 'the function throws an error if provided an invalid fourteenth argument', function test( t ) { -// var values; -// var data; -// var i; +tape( 'the function throws an error if provided an invalid fourteenth argument', function test( t ) { + var values; + var data; + var i; -// data = racbllntanu; + data = racbllntanu; -// values = [ -// 0 -// ]; + values = [ + 0 + ]; -// for ( i = 0; i < values.length; i++ ) { -// t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); -// } -// t.end(); + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); -// function badValue( value ) { -// return function badValue() { -// strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, value, data.offsetB ); -// }; -// } -// }); + function badValue( value ) { + return function badValue() { + strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, new Float32Array( data.A ), data.strideA1, data.strideA2, data.offsetA, new Float32Array( data.B ), data.strideB1, value, data.offsetB ); + }; + } +}); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, lower, no-transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = racbllntanu; + data = racbllntanu; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, lower, no-transpose, non-unit)', function test( t ) { var expected; @@ -485,25 +485,25 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, upper, no-transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = racbluntanu; + data = racbluntanu; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, upper, no-transpose, non-unit)', function test( t ) { var expected; @@ -985,25 +985,25 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, no-transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = carbllntanu; + data = carbllntanu; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, no-transpose, unit)', function test( t ) { var expected; @@ -1605,66 +1605,67 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` // t.end(); // }); -// tape( 'the function returns a reference to the second input matrix', function test( t ) { -// var data; -// var out; -// var a; -// var b; +tape( 'the function returns a reference to the second input matrix', function test( t ) { + var data; + var out; + var a; + var b; -// data = racbllntanu; + data = racbllntanu; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.end(); +}); -// tape( 'if either `M` or `N` is `0`, the function returns the second input matrix unchanged', function test( t ) { -// var expected; -// var data; -// var out; -// var a; +tape( 'if either `M` or `N` is `0`, the function returns the second input matrix unchanged', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = racbllntanu; + data = racbllntanu; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B ); + expected = new Float32Array( data.B ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, 0, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); + out = strsm( data.side, data.uplo, data.transA, data.diag, 0, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, 0, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, 0, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + t.end(); +}); -// tape( 'if `α` is `0`, the function returns the second input matrix filled with zeros', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'if `α` is `0`, the function returns the second input matrix filled with zeros', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = racbllntanu; + data = racbllntanu; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( b.length ); + expected = new Float32Array( b.length ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, 0.0, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, 0.0, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + t.end(); +}); // tape( 'the function supports specifying the strides of the first and second dimensions of `A`', function test( t ) { // var expected; From bfecaae179f4b3983fe41812884c7eb73a228534 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Sat, 7 Jun 2025 20:40:28 +0530 Subject: [PATCH 06/19] chore: minor clean-up Co-authored-by: Athan Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- lib/node_modules/@stdlib/blas/base/strsm/lib/base.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js index 18c8f0f70ccc..2b216b442c0e 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js @@ -26,7 +26,7 @@ var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major' ); var f32 = require( '@stdlib/number/float64/base/to-float32' ); -// FUNCTIONS +// FUNCTIONS // /** * Fills a matrix with zeros. From 5a5ac90a59a9c4a3c9dc8188146e4fbf85a90a00 Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Sun, 8 Jun 2025 13:00:47 +0530 Subject: [PATCH 07/19] chore: add implementation --- 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: passed - 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: passed - 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: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/blas/base/strsm/README.md | 20 +- .../@stdlib/blas/base/strsm/examples/index.js | 2 +- .../@stdlib/blas/base/strsm/lib/base.js | 91 +- ..._cb_l_l_nta_nu_complex_access_pattern.json | 18 + ..._rb_l_l_nta_nu_complex_access_pattern.json | 18 + .../strsm/test/fixtures/ca_rb_l_l_nta_u.json | 18 + .../strsm/test/fixtures/ca_rb_l_l_ta_nu.json | 18 + .../strsm/test/fixtures/ca_rb_l_l_ta_u.json | 18 + .../strsm/test/fixtures/ca_rb_l_u_nta_nu.json | 18 + .../strsm/test/fixtures/ca_rb_l_u_nta_u.json | 18 + .../strsm/test/fixtures/ca_rb_l_u_ta_nu.json | 18 + .../strsm/test/fixtures/ca_rb_l_u_ta_u.json | 18 + .../strsm/test/fixtures/ca_rb_r_l_nta_nu.json | 18 + .../strsm/test/fixtures/ca_rb_r_l_nta_u.json | 18 + .../strsm/test/fixtures/ca_rb_r_l_ta_nu.json | 18 + .../strsm/test/fixtures/ca_rb_r_l_ta_u.json | 18 + .../strsm/test/fixtures/ca_rb_r_u_nta_nu.json | 18 + .../strsm/test/fixtures/ca_rb_r_u_nta_u.json | 18 + .../strsm/test/fixtures/ca_rb_r_u_ta_nu.json | 18 + .../strsm/test/fixtures/ca_rb_r_u_ta_u.json | 18 + ..._cb_l_l_nta_nu_complex_access_pattern.json | 18 + .../strsm/test/fixtures/ra_cb_l_l_nta_u.json | 18 + .../strsm/test/fixtures/ra_cb_l_l_ta_nu.json | 18 + .../strsm/test/fixtures/ra_cb_l_l_ta_u.json | 18 + .../strsm/test/fixtures/ra_cb_l_u_nta_u.json | 18 + .../strsm/test/fixtures/ra_cb_l_u_ta_nu.json | 18 + .../strsm/test/fixtures/ra_cb_l_u_ta_u.json | 18 + .../strsm/test/fixtures/ra_cb_r_l_nta_nu.json | 18 + .../strsm/test/fixtures/ra_cb_r_l_nta_u.json | 18 + .../strsm/test/fixtures/ra_cb_r_l_ta_nu.json | 18 + .../strsm/test/fixtures/ra_cb_r_l_ta_u.json | 18 + .../strsm/test/fixtures/ra_cb_r_u_nta_nu.json | 18 + .../strsm/test/fixtures/ra_cb_r_u_nta_u.json | 18 + .../strsm/test/fixtures/ra_cb_r_u_ta_nu.json | 18 + .../strsm/test/fixtures/ra_cb_r_u_ta_u.json | 18 + ..._rb_l_l_nta_nu_complex_access_pattern.json | 18 + .../test/fixtures/ra_rb_l_l_nta_nu_oa.json | 18 + .../test/fixtures/ra_rb_l_l_nta_nu_ob.json | 18 + .../fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json | 18 + .../fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json | 18 + .../fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json | 18 + .../fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json | 18 + .../fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json | 18 + .../fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json | 18 + .../fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json | 18 + .../fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json | 18 + .../blas/base/strsm/test/test.ndarray.js | 1791 ++++++++--------- 47 files changed, 1707 insertions(+), 971 deletions(-) create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_nu.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_u.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_oa.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json diff --git a/lib/node_modules/@stdlib/blas/base/strsm/README.md b/lib/node_modules/@stdlib/blas/base/strsm/README.md index b65669dfa71b..084e23ae9df4 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/README.md +++ b/lib/node_modules/@stdlib/blas/base/strsm/README.md @@ -143,14 +143,24 @@ strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, ```javascript -var Float32Array = require( '@stdlib/array/loat32' ); +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); var strsm = require( '@stdlib/blas/base/strsm' ); -var A = new Float32Array( [ 1.0, 0.0, 3.0, 4.0 ] ); -var B = new Float32Array( [ 5.0, 0.0, 7.0, 8.0 ] ); +var opts = { + 'dtype': 'float32' +}; + +var M = 3; +var N = 3; + +var A = discreteUniform( M*N, -10.0, 10.0, opts ); +var B = discreteUniform( M*N, -10.0, 10.0, opts ); + +var out = strsm( 'column-major', 'left', 'upper', 'no-transpose', 'non-unit', M, N, 1.0, A, N, B, N ); +console.log( out ); -strsm( 'row-major', 'left', 'lower', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); -console.log( B ); +out = strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', M, N, 1.0, A, N, 1, 0, B, N, 1, 0 ); +console.log( out ); ``` diff --git a/lib/node_modules/@stdlib/blas/base/strsm/examples/index.js b/lib/node_modules/@stdlib/blas/base/strsm/examples/index.js index 814b27ca6d32..ae2c98d55a8f 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/examples/index.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/examples/index.js @@ -34,5 +34,5 @@ var B = discreteUniform( M*N, -10.0, 10.0, opts ); var out = strsm( 'column-major', 'left', 'upper', 'no-transpose', 'non-unit', M, N, 1.0, A, N, B, N ); console.log( out ); -var out = strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', M, N, 1.0, A, N,1, 0, B, N, 1, 0 ); +out = strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', M, N, 1.0, A, N, 1, 0, B, N, 1, 0 ); console.log( out ); diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js index 2b216b442c0e..3013289ffad1 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js @@ -16,7 +16,7 @@ * limitations under the License. */ -/* eslint-disable max-len, max-statements, max-depth, max-lines-per-function */ +/* eslint-disable max-len, max-statements, max-lines-per-function */ 'use strict'; @@ -124,15 +124,14 @@ function zeros( M, N, X, strideX1, strideX2, offsetX ) { // TODO: consider movin */ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) { // eslint-disable-line max-params var nonunit; - var isrma; - var isrmb; + var isrma; var tmp; var oa2; var ob2; - var sa0; - var sa1; - var sb0; - var sb1; + var sa0; + var sa1; + var sb0; + var sb1; var oa; var ob; var i; @@ -141,8 +140,7 @@ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, of // Note on variable naming convention: sa#, ix#, i# where # corresponds to the loop number, with `0` being the innermost loop... - isrma = isRowMajor( [ strideA1, strideA2 ] ); - isrmb = isRowMajor( [ strideB1, strideB2 ] ); + isrma = isRowMajor( [ strideA1, strideA2 ] ); nonunit = ( diag === 'non-unit' ); if ( M === 0 || N === 0 ) { @@ -152,19 +150,14 @@ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, of // For row-major matrices, the last dimension has the fastest changing index... sa0 = strideA2; // stride for innermost loop sa1 = strideA1; // stride for outermost loop + sb0 = strideB2; + sb1 = strideB1; } else { // isColMajor // For column-major matrices, the first dimension has the fastest changing index... sa0 = strideA1; // stride for innermost loop sa1 = strideA2; // stride for outermost loop - } - if ( isrmb ) { - // For row-major matrices, the last dimension has the fastest changing index... - sb0 = strideB2; // stride for innermost loop - sb1 = strideB1; // stride for outermost loop - } else { // isColMajor - // For column-major matrices, the first dimension has the fastest changing index... - sb0 = strideB1; // stride for innermost loop - sb1 = strideB2; // stride for outermost loop + sb0 = strideB1; + sb1 = strideB2; } if ( alpha === 0.0 ) { zeros( M, N, B, sb0, sb1, offsetB ); @@ -188,7 +181,7 @@ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, of if ( A[ oa2 ] !== 0.0 ) { for ( i = 0; i < M; i++ ) { ob = offsetB + ( i * sb0 ); - B[ ob + j * sb1 ] -= f32( A[ oa2 ] * B[ ob + k * sb1 ] ); + B[ ob + ( j * sb1 ) ] -= f32( A[ oa2 ] * B[ ob + ( k * sb1 ) ] ); } } } @@ -310,33 +303,33 @@ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, of ( isrma && side === 'right' && uplo === 'lower' && transa === 'no-transpose' ) || ( !isrma && side === 'left' && uplo === 'upper' && transa === 'no-transpose' ) ) { - for ( j = N - 1; j >= 0; j-- ) { - for ( i = 0; i < M; i++ ) { - ob2 = offsetB + ( i * sb1 ) + ( j * sb0 ); - if ( alpha !== 1.0 ) { - B[ ob2 ] = f32( B[ ob2 ] * alpha ); - } - } - for ( k = j + 1; k < N; k++ ) { - for ( i = 0; i < M; i++ ) { - ob2 = offsetB + i * sb1; - oa2 = offsetA + k * sa1; - if ( A[ oa2 + j * sa0 ] !== 0.0 ) { - B[ ob2 + j * sb0 ] -= f32( A[ oa2 + j * sa0 ] * B[ ob2 + k * sb0 ] ); - } - } - } - if ( nonunit ) { - oa2 = offsetA + j * sa1 + j * sa0; - tmp = f32( 1.0 / A[ oa2 ] ); - for ( i = 0; i < M; i++ ) { - ob2 = offsetB + ( i * sb1 ) + ( j * sb0 ); - B[ ob2 ] = f32( B[ ob2 ] * tmp ); - } - } - } - return B; - } + for ( j = N - 1; j >= 0; j-- ) { + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + ( i * sb1 ) + ( j * sb0 ); + if ( alpha !== 1.0 ) { + B[ ob2 ] = f32( B[ ob2 ] * alpha ); + } + } + for ( k = j + 1; k < N; k++ ) { + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + ( i * sb1 ); + oa2 = offsetA + ( k * sa1 ); + if ( A[ oa2 + ( j * sa0 ) ] !== 0.0 ) { + B[ ob2 + ( j * sb0 ) ] -= f32( A[ oa2 + ( j * sa0 ) ] * B[ ob2 + ( k * sb0 ) ] ); + } + } + } + if ( nonunit ) { + oa2 = offsetA + ( j * sa1 ) + ( j * sa0 ); + tmp = f32( 1.0 / A[ oa2 ] ); + for ( i = 0; i < M; i++ ) { + ob2 = offsetB + ( i * sb1 ) + ( j * sb0 ); + B[ ob2 ] = f32( B[ ob2 ] * tmp ); + } + } + } + return B; + } if ( ( isrma && side === 'right' && uplo === 'upper' && transa !== 'no-transpose' ) || ( !isrma && side === 'left' && uplo === 'lower' && transa !== 'no-transpose' ) @@ -355,7 +348,7 @@ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, of if ( nonunit ) { B[ ob2 ] = f32( B[ ob2 ] / A[ oa2 ] ); } - for ( i = 0; i < k; i++ ) { + for ( i= 0; i < k; i++ ) { oa = offsetA + ( i * sa1 ) + ( k * sa0 ); B[ ob + ( i * sb0 ) ] -= f32( B[ ob2 ] * A[ oa ] ); } @@ -377,7 +370,7 @@ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, of } for ( j = k + 1; j < N; j++ ) { ob2 = offsetB + ( j * sb0 ); - oa2 = offsetA + j * sa1 + k * sa0; + oa2 = offsetA + ( j * sa1 ) + ( k * sa0 ); if ( A[ oa2 ] !== 0.0 ) { for ( i = 0; i < M; i++ ) { B[ ob2 + ( i * sb1 ) ] -= f32( A[ oa2 ] * B[ ob + ( i * sb1 ) ] ); @@ -396,4 +389,4 @@ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, of // EXPORTS // -module.exports = strsm; \ No newline at end of file +module.exports = strsm; diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json new file mode 100644 index 000000000000..261f98714f45 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 999.0, 999.0, 2.0, 999.0, 999.0, 999.0, 999.0, 3.0, 999.0, 999.0, 1.0, 999.0, 999.0, 999.0, 999.0, 999.0, 999.0, 0.0 ], + "strideA1": -3, + "strideA2": -5, + "offsetA": 10, + "B": [ 999.0, 1.0, 999.0, 999.0, 4.0, 2.0, 999.0, 999.0, 2.0, 999.0 ], + "strideB1": -3, + "strideB2": 4, + "offsetB": 4, + "B_out": [ 999.0, -5.5, 999.0, 999.0, 4.0, -2.0, 999.0, 999.0, 2.0, 999.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json new file mode 100644 index 000000000000..0997a4e7231b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 999.0, 999.0, 2.0, 999.0, 999.0, 999.0, 999.0, 3.0, 999.0, 999.0, 1.0, 999.0, 999.0, 999.0, 999.0, 999.0, 999.0, 0.0 ], + "strideA1": -3, + "strideA2": -5, + "offsetA": 10, + "B": [ 1.0, 999.0, 999.0, 2.0, 4.0, 999.0, 999.0, 2.0 ], + "strideB1": -4, + "strideB2": 3, + "offsetB": 4, + "B_out": [ -5.5, 999.0, 999.0, -2.0, 4.0, 999.0, 999.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_u.json new file mode 100644 index 000000000000..ff84b031e4a4 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_u.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 2.0, 0.0, 3.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 1.0, -6.0, 0.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_nu.json new file mode 100644 index 000000000000..6f35b51c017a --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 1.0, -2.0, 1.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_u.json new file mode 100644 index 000000000000..caad8caa3d3b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_u.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ -2.0, -5.0, 2.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_nu.json new file mode 100644 index 000000000000..5f302da9f6ac --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 1.0, -2.0, 1.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_u.json new file mode 100644 index 000000000000..bb46a573823a --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_u.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ -2.0, -5.0, 2.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_nu.json new file mode 100644 index 000000000000..b1f3f853bf67 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 1.0, -5.0, -0.5 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_u.json new file mode 100644 index 000000000000..c7363530b2c7 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_u.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 1.0, -10.0, -1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_nu.json new file mode 100644 index 000000000000..dbf7c31e948b --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 2.5, 0.5, -1.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_u.json new file mode 100644 index 000000000000..15aa083d9685 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_u.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "lower", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 1.0, 1.0, -4.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_nu.json new file mode 100644 index 000000000000..ef5e25252650 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "lower", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, -5.5, 2.0, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_u.json new file mode 100644 index 000000000000..768990bfc2cc --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_u.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "lower", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, -11.0, 2.0, -4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_nu.json new file mode 100644 index 000000000000..d2b94bd2add5 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "upper", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, -5.5, 2.0, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_u.json new file mode 100644 index 000000000000..3359308c326f --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_u.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, -11.0, 2.0, -4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_nu.json new file mode 100644 index 000000000000..8cbe45d5e4c8 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "upper", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 2.5, 0.5, -1.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_u.json new file mode 100644 index 000000000000..61907efced36 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_u.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 1, + "strideA2": 2, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 1.0, 1.0, -4.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json new file mode 100644 index 000000000000..81e20ffd8d34 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 999.0, 999.0, 2.0, 999.0, 999.0, 3.0, 999.0, 999.0, 999.0, 999.0, 1.0, 999.0, 999.0, 999.0, 999.0, 999.0, 0.0, 999.0 ], + "strideA1": -5, + "strideA2": -3, + "offsetA": 10, + "B": [ 999.0, 1.0, 999.0, 999.0, 4.0, 2.0, 999.0, 999.0, 2.0, 999.0 ], + "strideB1": -3, + "strideB2": 4, + "offsetB": 4, + "B_out": [ 999.0, -5.5, 999.0, 999.0, 4.0, -2.0, 999.0, 999.0, 2.0, 999.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json new file mode 100644 index 000000000000..b49719cb64f0 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 1.0, 1.0, -4.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_nu.json new file mode 100644 index 000000000000..f29f438e8fdb --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 2.5, 0.5, -1.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_u.json new file mode 100644 index 000000000000..6c69d9a423f4 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_u.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -11.0, 2.0, -4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_u.json new file mode 100644 index 000000000000..b49719cb64f0 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_u.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 1.0, 1.0, -4.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_nu.json new file mode 100644 index 000000000000..f4d7ab98fc85 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -5.5, 2.0, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_u.json new file mode 100644 index 000000000000..6c69d9a423f4 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_u.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -11.0, 2.0, -4.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_nu.json new file mode 100644 index 000000000000..a7a465fd3d3a --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 1.0, -2.0, 1.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_u.json new file mode 100644 index 000000000000..fbdb1609852c --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_u.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "lower", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ -2.0, -5.0, 2.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_nu.json new file mode 100644 index 000000000000..bea411f85452 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "lower", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, 1.0, -5.0, -0.5 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_u.json new file mode 100644 index 000000000000..f08981fff8fd --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_u.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "lower", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, 1.0, -10.0, -1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json new file mode 100644 index 000000000000..08440b5d8b50 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "upper", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 2.0, 0.0, 3.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, 1.0, -2.0, 0.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_u.json new file mode 100644 index 000000000000..de5dab85c3c6 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_u.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "upper", + "transA": "no-transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 2.0, 0.0, 3.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, 1.0, -6.0, 0.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_nu.json new file mode 100644 index 000000000000..5fd0732e001f --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_nu.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "upper", + "transA": "transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 1.0, -2.0, 1.0, 1.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_u.json new file mode 100644 index 000000000000..dda404b08076 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_u.json @@ -0,0 +1,18 @@ +{ + "side": "right", + "uplo": "upper", + "transA": "transpose", + "diag": "unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 3.0, 0.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ -2.0, -5.0, 2.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json new file mode 100644 index 000000000000..881e394a2988 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 999.0, 999.0, 2.0, 999.0, 999.0, 3.0, 999.0, 999.0, 999.0, 999.0, 1.0, 999.0, 999.0, 999.0, 999.0, 999.0, 0.0, 999.0 ], + "strideA1": -5, + "strideA2": -3, + "offsetA": 10, + "B": [ 1.0, 999.0, 999.0, 2.0, 4.0, 999.0, 999.0, 2.0 ], + "strideB1": -4, + "strideB2": 3, + "offsetB": 4, + "B_out": [ -5.5, 999.0, 999.0, -2.0, 4.0, 999.0, 999.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_oa.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_oa.json new file mode 100644 index 000000000000..834462e78604 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_oa.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 0.0, 0.0, 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 2, + "B": [ 4.0, 1.0, 2.0, 2.0 ], + "strideB1": 1, + "strideB2": 2, + "offsetB": 0, + "B_out": [ 4.0, -5.5, 2.0, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json new file mode 100644 index 000000000000..87d44f68f33f --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 0.0, 0.0, 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 2, + "B_out": [ 0.0, 0.0, 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json new file mode 100644 index 000000000000..4cc6ff02c8f5 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 999.0, 999.0, 0.0, 999.0, 3.0, 999.0, 999.0, 2.0 ], + "strideA1": 5, + "strideA2": 3, + "offsetA": 0, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json new file mode 100644 index 000000000000..92c8a3a6b923 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 999.0, 999.0, 999.0, 1.0, 2.0, 0.0, 999.0, 3.0, 999.0 ], + "strideA1": 4, + "strideA2": -3, + "offsetA": 3, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json new file mode 100644 index 000000000000..fa205e789292 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 999.0, 999.0, 0.0, 3.0, 999.0, 999.0, 2.0, 999.0, 1.0 ], + "strideA1": -5, + "strideA2": 3, + "offsetA": 8, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json new file mode 100644 index 000000000000..14fb4e5f40a3 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 999.0, 999.0, 2.0, 999.0, 999.0, 3.0, 999.0, 999.0, 999.0, 999.0, 1.0, 999.0, 999.0, 999.0, 999.0, 999.0, 0.0, 999.0 ], + "strideA1": -5, + "strideA2": -3, + "offsetA": 10, + "B": [ 4.0, 2.0, 1.0, 2.0 ], + "strideB1": 2, + "strideB2": 1, + "offsetB": 0, + "B_out": [ 4.0, 2.0, -5.5, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json new file mode 100644 index 000000000000..818afd451e09 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 999.0, 999.0, 2.0, 999.0, 1.0, 999.0, 999.0, 2.0 ], + "strideB1": 5, + "strideB2": 3, + "offsetB": 0, + "B_out": [ 4.0, 999.0, 999.0, 2.0, 999.0, -5.5, 999.0, 999.0, -2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json new file mode 100644 index 000000000000..86140d66b785 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 4.0, 999.0, 999.0, 2.0, 1.0, 999.0, 999.0, 2.0, 999.0 ], + "strideB1": 4, + "strideB2": -3, + "offsetB": 3, + "B_out": [ 4.0, 999.0, 999.0, 2.0, -5.5, 999.0, 999.0, -2.0, 999.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json new file mode 100644 index 000000000000..38d5cacecf12 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 1.0, 999.0, 999.0, 2.0, 4.0, 999.0, 999.0, 2.0 ], + "strideB1": -4, + "strideB2": 3, + "offsetB": 4, + "B_out": [ -5.5, 999.0, 999.0, -2.0, 4.0, 999.0, 999.0, 2.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json new file mode 100644 index 000000000000..bad8d244d419 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json @@ -0,0 +1,18 @@ +{ + "side": "left", + "uplo": "lower", + "transA": "no-transpose", + "diag": "non-unit", + "M": 2, + "N": 2, + "alpha": 1.0, + "A": [ 1.0, 0.0, 3.0, 2.0 ], + "strideA1": 2, + "strideA2": 1, + "offsetA": 0, + "B": [ 999.0, 999.0, 2.0, 999.0, 999.0, 1.0, 999.0, 2.0, 999.0, 999.0, 4.0, 999.0, 999.0, 999.0, 999.0, 999.0, 999.0, 999.0 ], + "strideB1": -5, + "strideB2": -3, + "offsetB": 10, + "B_out": [ 999.0, 999.0, -2.0, 999.0, 999.0, -5.5, 999.0, 2.0, 999.0, 999.0, 4.0, 999.0, 999.0, 999, 999.0, 999.0, 999.0, 999.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js index 9a740708eeb5..20662815ea7b 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); -var ones = require( '@stdlib/array/ones' ); -var filled = require( '@stdlib/array/filled' ); var strsm = require( './../lib/ndarray.js' ); @@ -48,38 +46,38 @@ var cacbruntau = require( './fixtures/ca_cb_r_u_nta_u.json' ); var cacbrutanu = require( './fixtures/ca_cb_r_u_ta_nu.json' ); var cacbrutau = require( './fixtures/ca_cb_r_u_ta_u.json' ); var carbllntanu = require( './fixtures/ca_rb_l_l_nta_nu.json' ); -// var carbllntau = require( './fixtures/ca_rb_l_l_nta_u.json' ); -// var carblltanu = require( './fixtures/ca_rb_l_l_ta_nu.json' ); -// var carblltau = require( './fixtures/ca_rb_l_l_ta_u.json' ); -// var carbluntanu = require( './fixtures/ca_rb_l_u_nta_nu.json' ); -// var carbluntau = require( './fixtures/ca_rb_l_u_nta_u.json' ); -// var carblutanu = require( './fixtures/ca_rb_l_u_ta_nu.json' ); -// var carblutau = require( './fixtures/ca_rb_l_u_ta_u.json' ); -// var carbrlntanu = require( './fixtures/ca_rb_r_l_nta_nu.json' ); -// var carbrlntau = require( './fixtures/ca_rb_r_l_nta_u.json' ); -// var carbrltanu = require( './fixtures/ca_rb_r_l_ta_nu.json' ); -// var carbrltau = require( './fixtures/ca_rb_r_l_ta_u.json' ); -// var carbruntanu = require( './fixtures/ca_rb_r_u_nta_nu.json' ); -// var carbruntau = require( './fixtures/ca_rb_r_u_nta_u.json' ); -// var carbrutanu = require( './fixtures/ca_rb_r_u_ta_nu.json' ); -// var carbrutau = require( './fixtures/ca_rb_r_u_ta_u.json' ); +var carbllntau = require( './fixtures/ca_rb_l_l_nta_u.json' ); +var carblltanu = require( './fixtures/ca_rb_l_l_ta_nu.json' ); +var carblltau = require( './fixtures/ca_rb_l_l_ta_u.json' ); +var carbluntanu = require( './fixtures/ca_rb_l_u_nta_nu.json' ); +var carbluntau = require( './fixtures/ca_rb_l_u_nta_u.json' ); +var carblutanu = require( './fixtures/ca_rb_l_u_ta_nu.json' ); +var carblutau = require( './fixtures/ca_rb_l_u_ta_u.json' ); +var carbrlntanu = require( './fixtures/ca_rb_r_l_nta_nu.json' ); +var carbrlntau = require( './fixtures/ca_rb_r_l_nta_u.json' ); +var carbrltanu = require( './fixtures/ca_rb_r_l_ta_nu.json' ); +var carbrltau = require( './fixtures/ca_rb_r_l_ta_u.json' ); +var carbruntanu = require( './fixtures/ca_rb_r_u_nta_nu.json' ); +var carbruntau = require( './fixtures/ca_rb_r_u_nta_u.json' ); +var carbrutanu = require( './fixtures/ca_rb_r_u_ta_nu.json' ); +var carbrutau = require( './fixtures/ca_rb_r_u_ta_u.json' ); var racbllntanu = require( './fixtures/ra_cb_l_l_nta_nu.json' ); -// var racbllntau = require( './fixtures/ra_cb_l_l_nta_u.json' ); -// var racblltanu = require( './fixtures/ra_cb_l_l_ta_nu.json' ); -// var racblltau = require( './fixtures/ra_cb_l_l_ta_u.json' ); +var racbllntau = require( './fixtures/ra_cb_l_l_nta_u.json' ); +var racblltanu = require( './fixtures/ra_cb_l_l_ta_nu.json' ); +var racblltau = require( './fixtures/ra_cb_l_l_ta_u.json' ); var racbluntanu = require( './fixtures/ra_cb_l_u_nta_nu.json' ); -// var racbluntau = require( './fixtures/ra_cb_l_u_nta_u.json' ); -// var racblutanu = require( './fixtures/ra_cb_l_u_ta_nu.json' ); -// var racblutau = require( './fixtures/ra_cb_l_u_ta_u.json' ); -// var racbrlntanu = require( './fixtures/ra_cb_r_l_nta_nu.json' ); -// var racbrlntau = require( './fixtures/ra_cb_r_l_nta_u.json' ); -// var racbrltanu = require( './fixtures/ra_cb_r_l_ta_nu.json' ); -// var racbrltau = require( './fixtures/ra_cb_r_l_ta_u.json' ); -// var racbruntanu = require( './fixtures/ra_cb_r_u_nta_nu.json' ); -// var racbruntau = require( './fixtures/ra_cb_r_u_nta_u.json' ); -// var racbrutanu = require( './fixtures/ra_cb_r_u_ta_nu.json' ); -// var racbrutau = require( './fixtures/ra_cb_r_u_ta_u.json' ); +var racbluntau = require( './fixtures/ra_cb_l_u_nta_u.json' ); +var racblutanu = require( './fixtures/ra_cb_l_u_ta_nu.json' ); +var racblutau = require( './fixtures/ra_cb_l_u_ta_u.json' ); +var racbrlntanu = require( './fixtures/ra_cb_r_l_nta_nu.json' ); +var racbrlntau = require( './fixtures/ra_cb_r_l_nta_u.json' ); +var racbrltanu = require( './fixtures/ra_cb_r_l_ta_nu.json' ); +var racbrltau = require( './fixtures/ra_cb_r_l_ta_u.json' ); +var racbruntanu = require( './fixtures/ra_cb_r_u_nta_nu.json' ); +var racbruntau = require( './fixtures/ra_cb_r_u_nta_u.json' ); +var racbrutanu = require( './fixtures/ra_cb_r_u_ta_nu.json' ); +var racbrutau = require( './fixtures/ra_cb_r_u_ta_u.json' ); var rarbllntanu = require( './fixtures/ra_rb_l_l_nta_nu.json' ); var rarbllntau = require( './fixtures/ra_rb_l_l_nta_u.json' ); var rarblltanu = require( './fixtures/ra_rb_l_l_ta_nu.json' ); @@ -97,20 +95,21 @@ var rarbruntau = require( './fixtures/ra_rb_r_u_nta_u.json' ); var rarbrutanu = require( './fixtures/ra_rb_r_u_ta_nu.json' ); var rarbrutau = require( './fixtures/ra_rb_r_u_ta_u.json' ); -// var rarbllntanusa1sa2 = require( './fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json' ); -// var rarbllntanusa1nsa2 = require( './fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json' ); -// var rarbllntanusa1sa2n = require( './fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json' ); -// var rarbllntanusa1nsa2n = require( './fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json' ); -// var rarbllntanusb1sb2 = require( './fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json' ); -// var rarbllntanusb1nsb2 = require( './fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json' ); -// var rarbllntanusb1sb2n = require( './fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json' ); -// var rarbllntanusb1nsb2n = require( './fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json' ); -// var rarbllntanuoa = require( './fixtures/ra_rb_l_l_nta_nu_oa.json' ); -// var rarbllntanuob = require( './fixtures/ra_rb_l_l_nta_nu_ob.json' ); -// var rrcap = require( './fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json' ); -// var rccap = require( './fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json' ); -// var cccap = require( './fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json' ); -// var crcap = require( './fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json' ); +var rarbllntanusa1sa2 = require( './fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json' ); +var rarbllntanusa1nsa2 = require( './fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json' ); +var rarbllntanusa1sa2n = require( './fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json' ); +var rarbllntanusa1nsa2n = require( './fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json' ); +var rarbllntanusb1sb2 = require( './fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json' ); +var rarbllntanusb1nsb2 = require( './fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json' ); +var rarbllntanusb1sb2n = require( './fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json' ); +var rarbllntanusb1nsb2n = require( './fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json' ); +var rarbllntanuoa = require( './fixtures/ra_rb_l_l_nta_nu_oa.json' ); +var rarbllntanuob = require( './fixtures/ra_rb_l_l_nta_nu_ob.json' ); +var rrcap = require( './fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json' ); +var rccap = require( './fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json' ); +var cccap = require( './fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json' ); +var crcap = require( './fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json' ); + // TESTS // @@ -365,25 +364,25 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, lower, no-transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = racbllntau; + data = racbllntau; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, lower, no-transpose, unit)', function test( t ) { var expected; @@ -405,25 +404,25 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, lower, transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = racblltanu; + data = racblltanu; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, lower, transpose, non-unit)', function test( t ) { var expected; @@ -445,25 +444,25 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, lower, transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = racblltau; + data = racblltau; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, lower, transpose, unit)', function test( t ) { var expected; @@ -525,34 +524,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, upper, no-transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = racbluntau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, upper, no-transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, upper, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbluntau; + data = racbluntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -565,34 +544,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, upper, transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = racblutanu; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, upper, transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, upper, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacblutanu; + data = cacbluntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -605,34 +564,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, upper, transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = racblutau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, upper, transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, upper, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacblutau; + data = racblutanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -645,34 +584,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, lower, no-transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = racbrlntanu; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, lower, no-transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, upper, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbrlntanu; + data = cacblutanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -685,34 +604,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, lower, no-transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = racbrlntau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, lower, no-transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, left, upper, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbrlntau; + data = racblutau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -725,34 +624,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, lower, transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = racbrltanu; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, lower, transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, left, upper, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbrltanu; + data = cacblutau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -765,34 +644,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, lower, transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = racbrltau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, lower, transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, lower, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbrltau; + data = racbrlntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -805,34 +664,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, upper, no-transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = racbruntanu; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, upper, no-transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, lower, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbruntanu; + data = cacbrlntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -845,34 +684,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, upper, no-transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = racbruntau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, upper, no-transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, lower, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbruntau; + data = racbrlntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -885,34 +704,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, upper, transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = racbrutanu; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, upper, transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, lower, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbrutanu; + data = cacbrlntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -925,34 +724,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, upper, transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = racbrutau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, upper, transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, lower, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = cacbrutau; + data = racbrltanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -965,14 +744,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, no-transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, lower, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarbllntanu; + data = cacbrltanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -985,14 +764,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, no-transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, lower, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = carbllntanu; + data = racbrltau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1005,14 +784,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, no-transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, lower, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarbllntau; + data = cacbrltau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1025,34 +804,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, no-transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carbllntau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, upper, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarblltanu; + data = racbruntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1065,34 +824,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carblltanu; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, upper, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarblltau; + data = cacbruntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1105,34 +844,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carblltau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, no-transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, upper, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarbluntanu; + data = racbruntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1145,34 +864,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, no-transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carbluntanu; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, no-transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, upper, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarbluntau; + data = cacbruntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1185,34 +884,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, no-transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carbluntau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, upper, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarblutanu; + data = racbrutanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1225,34 +904,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carblutanu; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, upper, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarblutau; + data = cacbrutanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1265,34 +924,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carblutau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, no-transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, column-major, right, upper, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarbrlntanu; + data = racbrutau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1305,34 +944,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, no-transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carbrlntanu; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, no-transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, column-major, right, upper, transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarbrlntau; + data = cacbrutau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1345,34 +964,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, no-transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carbrlntau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarbrltanu; + data = rarbllntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1385,34 +984,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carbrltanu; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, no-transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarbrltau; + data = carbllntanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1425,34 +1004,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carbrltau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, no-transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarbruntanu; + data = rarbllntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1465,34 +1024,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, no-transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carbruntanu; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, no-transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, no-transpose, unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarbruntau; + data = carbllntau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1505,34 +1044,14 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, no-transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carbruntau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, transpose, non-unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarbrutanu; + data = rarblltanu; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1545,34 +1064,534 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, transpose, non-unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carbrutanu; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, transpose, unit)', function test( t ) { +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, transpose, non-unit)', function test( t ) { var expected; var data; var out; var a; var b; - data = rarbrutau; + data = carblltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarblltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carblltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbluntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbluntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbluntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbluntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarblutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carblutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, left, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarblutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, left, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carblutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbrlntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbrlntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbrlntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbrlntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbrltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbrltanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbrltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, lower, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbrltau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbruntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, no-transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbruntanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbruntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, no-transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbruntau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbrutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, transpose, non-unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbrutanu; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (row-major, row-major, right, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = rarbrutau; + + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); + + expected = new Float32Array( data.B_out ); + + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, transpose, unit)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; + + data = carbrutau; a = new Float32Array( data.A ); b = new Float32Array( data.B ); @@ -1585,26 +1604,6 @@ tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` t.end(); }); -// tape( 'the function performs the matrix-matrix operation `op(A) * X = alpha * B` (column-major, row-major, right, upper, transpose, unit)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = carbrutau; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - tape( 'the function returns a reference to the second input matrix', function test( t ) { var data; var out; @@ -1667,322 +1666,282 @@ tape( 'if `α` is `0`, the function returns the second input matrix filled with t.end(); }); -// tape( 'the function supports specifying the strides of the first and second dimensions of `A`', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = rarbllntanusa1sa2; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -// tape( 'the function supports a negative stride for the first dimension of `A`', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; - -// data = rarbllntanusa1nsa2; - -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); - -// expected = new Float32Array( data.B_out ); - -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); - -// tape( 'the function supports a negative stride for the second dimension of `A`', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function supports specifying the strides of the first and second dimensions of `A`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = rarbllntanusa1sa2n; + data = rarbllntanusa1sa2; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports a negative strides of `A`', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function supports a negative stride for the first dimension of `A`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = rarbllntanusa1nsa2n; + data = rarbllntanusa1nsa2; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports specifying an offset parameter for `A`', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function supports a negative stride for the second dimension of `A`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = rarbllntanuoa; + data = rarbllntanusa1sa2n; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports specifying the strides of the first and second dimensions of `B`', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function supports a negative strides of `A`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = rarbllntanusb1sb2; + data = rarbllntanusa1nsa2n; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports a negative stride for the first dimension of `B`', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function supports specifying an offset parameter for `A`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = rarbllntanusb1nsb2; + data = rarbllntanuoa; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports a negative stride for the second dimension of `B`', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function supports specifying the strides of the first and second dimensions of `B`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = rarbllntanusb1sb2n; + data = rarbllntanusb1sb2; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports a negative strides of `B`', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function supports a negative stride for the first dimension of `B`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = rarbllntanusb1nsb2n; + data = rarbllntanusb1nsb2; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports specifying an offset parameter for `B`', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function supports a negative stride for the second dimension of `B`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = rarbllntanuob; + data = rarbllntanusb1sb2n; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports complex access patterns (row-major, row-major)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function supports a negative strides of `B`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = rrcap; + data = rarbllntanusb1nsb2n; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports complex access patterns (row-major, column-major)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function supports specifying an offset parameter for `B`', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = rccap; + data = rarbllntanuob; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports complex access patterns (column-major, row-major)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function supports complex access patterns (row-major, row-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = crcap; + data = rrcap; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports complex access patterns (column-major, column-major)', function test( t ) { -// var expected; -// var data; -// var out; -// var a; -// var b; +tape( 'the function supports complex access patterns (row-major, column-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// data = cccap; + data = rccap; -// a = new Float32Array( data.A ); -// b = new Float32Array( data.B ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = new Float32Array( data.B_out ); + expected = new Float32Array( data.B_out ); -// out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports computation over large arrays (row-major, row-major)', function test( t ) { -// var expected; -// var out; -// var N; -// var a; -// var b; +tape( 'the function supports complex access patterns (column-major, row-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// N = 100; + data = crcap; -// a = ones( N*N, 'float32' ); -// b = new Float32Array( a.length ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = filled( N, a.length, 'float32' ); + expected = new Float32Array( data.B_out ); -// out = strsm( 'left', 'lower', 'no-transpose', 'non-unit', N, N, 1.0, a, N, 1, 0, b, N, 1, 0 ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); -// tape( 'the function supports computation over large arrays (column-major, column-major)', function test( t ) { -// var expected; -// var out; -// var N; -// var a; -// var b; +tape( 'the function supports complex access patterns (column-major, column-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var b; -// N = 100; + data = cccap; -// a = ones( N*N, 'float32' ); -// b = new Float32Array( a.length ); + a = new Float32Array( data.A ); + b = new Float32Array( data.B ); -// expected = filled( N, a.length, 'float32' ); + expected = new Float32Array( data.B_out ); -// out = strsm( 'left', 'lower', 'no-transpose', 'non-unit', N, N, 1.0, a, 1, N, 0, b, 1, 3, 0 ); -// t.strictEqual( out, b, 'returns expected value' ); -// t.deepEqual( out, expected, 'returns expected value' ); -// t.end(); -// }); + out = strsm( data.side, data.uplo, data.transA, data.diag, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, b, data.strideB1, data.strideB2, data.offsetB ); + t.strictEqual( out, b, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); From a08685d884b4906a8636ae489b81db181eb936ef Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Sun, 8 Jun 2025 13:05:15 +0530 Subject: [PATCH 08/19] chore: clean-up --- 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: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - 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: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js index 1a52128d1b0c..12d32ba64229 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js @@ -65,7 +65,7 @@ var base = require( './base.js' ); * var B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); * * strsm( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); -* // B => [ 0.0, 30.0, 0.0, 0.0, 12.0 ] +* // B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] */ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) { // eslint-disable-line max-len, max-params if ( !isOperationSide( side ) ) { @@ -80,13 +80,13 @@ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, of if ( !isDiagonalType( diag ) ) { throw new TypeError( format( 'invalid argument. Fourth argument must specify whether the matrix is unit triangular or not. Value: `%s`.', diag ) ); } - if ( M < 0 ) { + if ( M < 0 ) { throw new RangeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%d`.', M ) ); } if ( N < 0 ) { throw new RangeError( format( 'invalid argument. Sixth argument must be a nonnegative integer. Value: `%d`.', N ) ); } - if ( strideB1 === 0 ) { + if ( strideB1 === 0 ) { throw new RangeError( format( 'invalid argument. Thirteenth argument must be non-zero. Value: `%d`.', strideB1 ) ); } if ( strideB2 === 0 ) { From 2ff4fd2f1e68779adf979b7b4023b2b07329f8fb Mon Sep 17 00:00:00 2001 From: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> Date: Sun, 8 Jun 2025 07:36:27 +0000 Subject: [PATCH 09/19] chore: update copyright years --- lib/node_modules/@stdlib/blas/base/strsm/README.md | 2 +- .../base/strsm/benchmark/benchmark_ca_cb_l_l_nt_nu.ndarray.js | 2 +- lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts | 2 +- lib/node_modules/@stdlib/blas/base/strsm/docs/types/test.ts | 2 +- lib/node_modules/@stdlib/blas/base/strsm/examples/index.js | 2 +- lib/node_modules/@stdlib/blas/base/strsm/lib/base.js | 2 +- lib/node_modules/@stdlib/blas/base/strsm/lib/index.js | 2 +- lib/node_modules/@stdlib/blas/base/strsm/lib/main.js | 2 +- lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js | 2 +- lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js | 2 +- lib/node_modules/@stdlib/blas/base/strsm/test/test.js | 2 +- lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js | 2 +- lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/README.md b/lib/node_modules/@stdlib/blas/base/strsm/README.md index 084e23ae9df4..8779d971ef4c 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/README.md +++ b/lib/node_modules/@stdlib/blas/base/strsm/README.md @@ -2,7 +2,7 @@ @license Apache-2.0 -Copyright (c) 2024 The Stdlib Authors. +Copyright (c) 2025 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. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark_ca_cb_l_l_nt_nu.ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark_ca_cb_l_l_nt_nu.ndarray.js index 2aba23e6bfc6..7858a2c2d5e6 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark_ca_cb_l_l_nt_nu.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark_ca_cb_l_l_nt_nu.ndarray.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 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. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts index 16b6e5be0a28..7259890fcad1 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts @@ -1,7 +1,7 @@ /* * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 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. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/test.ts b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/test.ts index b983afbb88f4..f2ee6ea0dd43 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/test.ts +++ b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/test.ts @@ -1,7 +1,7 @@ /* * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 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. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/examples/index.js b/lib/node_modules/@stdlib/blas/base/strsm/examples/index.js index ae2c98d55a8f..4db9d3917ecb 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/examples/index.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/examples/index.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 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. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js index 3013289ffad1..145171941537 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 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. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js index 3865d23fec2a..72d30e35b211 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 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. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/main.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/main.js index 0e75a9068b1d..8e21e40c526e 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/main.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/main.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 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. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js index 12d32ba64229..1340741639d5 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 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. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js index 7ea5854924c6..21542d3be9a6 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 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. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/test.js b/lib/node_modules/@stdlib/blas/base/strsm/test/test.js index 759f09a687a3..9393261d4925 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/test.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/test.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 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. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js index 20662815ea7b..5fdb2c04c968 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/test.ndarray.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 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. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js b/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js index bda20ca393ac..83eb3480a32a 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/test.strsm.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2024 The Stdlib Authors. +* Copyright (c) 2025 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. From 3e486e6de04129bddfa50b1d6b43c53d6f023528 Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Sun, 8 Jun 2025 13:11:31 +0530 Subject: [PATCH 10/19] chore: clean-up --- 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: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - 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: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/blas/base/strsm/lib/strsm.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js index 21542d3be9a6..b7f6383df2f1 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js @@ -26,7 +26,7 @@ var isMatrixTriangle = require( '@stdlib/blas/base/assert/is-matrix-triangle' ); var isOperationSide = require( '@stdlib/blas/base/assert/is-operation-side' ); var isTransposeOperation = require( '@stdlib/blas/base/assert/is-transpose-operation' ); var isDiagonalType = require( '@stdlib/blas/base/assert/is-diagonal-type' ); -var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major-string' ); +var isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major-string' ); var format = require( '@stdlib/string/format' ); var base = require( './base.js' ); @@ -66,11 +66,11 @@ var base = require( './base.js' ); * var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); * * strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); -* // B => [ 30.0, 0.0, 0.0, 12.0 ] +* // B => [ 30.0, 6.0, 0.0, 12.0 ] */ function strsm( order, side, uplo, transa, diag, M, N, alpha, A, LDA, B, LDB ) { // eslint-disable-line max-params - var nrowsa; - var isrm; + var nrowsa; + var iscm; var sa1; var sa2; var sb1; @@ -90,25 +90,25 @@ function strsm( order, side, uplo, transa, diag, M, N, alpha, A, LDA, B, LDB ) { if ( !isDiagonalType( diag ) ) { throw new TypeError( format( 'invalid argument. Fifth argument must specify whether the matrix is unit triangular or not. Value: `%s`.', diag ) ); } - if ( M < 0 ) { + if ( M < 0 ) { throw new RangeError( format( 'invalid argument. Sixth argument must be a nonnegative integer. Value: `%d`.', M ) ); } if ( N < 0 ) { throw new RangeError( format( 'invalid argument. Seventh argument must be a nonnegative integer. Value: `%d`.', N ) ); } - if ( side === 'left' ) { + if ( side === 'left' ) { nrowsa = M; } else { nrowsa = N; } - if ( LDA < max( 1, nrowsa ) ) { + if ( LDA < max( 1, nrowsa ) ) { throw new RangeError( format( 'invalid argument. Tenth argument must be greater than or equal to max(1,%d). Value: `%d`.', nrowsa, LDA ) ); } if ( LDB < max( 1, M ) ) { throw new RangeError( format( 'invalid argument. Twelfth argument must be greater than or equal to max(1,%d). Value: `%d`.', M, LDB ) ); } - isrm = isRowMajor( order ); - if ( !isrm ) { + iscm = isColumnMajor( order ); + if ( iscm ) { sa1 = 1; sa2 = LDA; sb1 = 1; From 711a8a4099419b4818a6e445e87db95c605fdd5a Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Tue, 10 Jun 2025 11:53:20 +0530 Subject: [PATCH 11/19] chore: add benchmark --- 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: na - task: lint_javascript_benchmarks status: passed - 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: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../blas/base/strsm/benchmark/benchmark.js | 105 ++++++++++++++++++ ..._nt_nu.ndarray.js => benchmark.ndarray.js} | 2 +- 2 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.js rename lib/node_modules/@stdlib/blas/base/strsm/benchmark/{benchmark_ca_cb_l_l_nt_nu.ndarray.js => benchmark.ndarray.js} (94%) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.js new file mode 100644 index 000000000000..53d2479ef821 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.js @@ -0,0 +1,105 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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 bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var zeros = require( '@stdlib/array/zeros' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var pow = require( '@stdlib/math/base/special/pow' ); +var floor = require( '@stdlib/math/base/special/floor' ); +var pkg = require( './../package.json' ).name; +var strsm = require( './../lib/strsm.js' ); + + +// VARIABLES // + +var options = { + 'dtype': 'float32' +}; + + +// FUNCTIONS // + +/** +* Creates a benchmark function. +* +* @private +* @param {PositiveInteger} N - array dimension size +* @returns {Function} benchmark function +*/ +function createBenchmark( N ) { + var A = uniform( N*N, -10.0, 10.0, options ); + var B = zeros( N*N, options.dtype ); + return benchmark; + + /** + * Benchmark function. + * + * @private + * @param {Benchmark} b - benchmark instance + */ + function benchmark( b ) { + var z; + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + z = strsm( 'row-major', 'left', 'lower', 'no-transpose', 'non-unit', N, N, 1.0, A, N, B, N ); + if ( isnanf( z[ i%z.length ] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( z[ i%z.length ] ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); + } +} + + +// MAIN // + +/** +* Main execution sequence. +* +* @private +*/ +function main() { + var len; + var min; + var max; + var f; + var i; + + min = 1; // 10^min + max = 4; // 10^max + + for ( i = min; i <= max; i++ ) { + len = floor( pow( pow( 10, i ), 1.0/2.0 ) ); + f = createBenchmark( len ); + bench( pkg+':size='+(len*len), f ); + } +} + +main(); diff --git a/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark_ca_cb_l_l_nt_nu.ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.ndarray.js similarity index 94% rename from lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark_ca_cb_l_l_nt_nu.ndarray.js rename to lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.ndarray.js index 7858a2c2d5e6..82b7a2fcc8cc 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark_ca_cb_l_l_nt_nu.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.ndarray.js @@ -98,7 +98,7 @@ function main() { for ( i = min; i <= max; i++ ) { len = floor( pow( pow( 10, i ), 1.0/2.0 ) ); f = createBenchmark( len ); - bench( pkg+':ndarray:order(A)=column-major,order(B)=column-major,side=left,uplo=lower,trans=false,diag=non-unit,size='+(len*len), f ); + bench( pkg+':ndarray:size='+(len*len), f ); } } From 08ab142a7c46ff5e110ab8f39f1f2e43f6f92af7 Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Tue, 10 Jun 2025 11:58:47 +0530 Subject: [PATCH 12/19] chore: clean-up --- 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: na - task: lint_javascript_benchmarks status: passed - 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: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.js | 2 +- .../@stdlib/blas/base/strsm/benchmark/benchmark.ndarray.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.js index 53d2479ef821..8e60bf353bf7 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.js @@ -93,7 +93,7 @@ function main() { var i; min = 1; // 10^min - max = 4; // 10^max + max = 6; // 10^max for ( i = min; i <= max; i++ ) { len = floor( pow( pow( 10, i ), 1.0/2.0 ) ); diff --git a/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.ndarray.js index 82b7a2fcc8cc..37938001d4e2 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/benchmark/benchmark.ndarray.js @@ -93,7 +93,7 @@ function main() { var i; min = 1; // 10^min - max = 4; // 10^max + max = 6; // 10^max for ( i = min; i <= max; i++ ) { len = floor( pow( pow( 10, i ), 1.0/2.0 ) ); From 51ab7462c49a37e73a95a9273833695a0ce6cb2b Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Sun, 15 Jun 2025 13:16:56 +0530 Subject: [PATCH 13/19] chore: update implementation --- 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: passed - 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: na - 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/strsm/README.md | 54 ++++++++++--------- .../blas/base/strsm/docs/types/index.d.ts | 54 +++++++++---------- .../@stdlib/blas/base/strsm/lib/base.js | 10 ++-- .../@stdlib/blas/base/strsm/lib/index.js | 18 +++---- .../@stdlib/blas/base/strsm/lib/ndarray.js | 10 ++-- .../@stdlib/blas/base/strsm/lib/strsm.js | 10 ++-- .../strsm/test/fixtures/ca_cb_l_l_nta_nu.json | 24 ++++++--- ..._cb_l_l_nta_nu_complex_access_pattern.json | 32 +++++++---- .../strsm/test/fixtures/ca_cb_l_l_nta_u.json | 24 ++++++--- .../strsm/test/fixtures/ca_cb_l_l_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_cb_l_l_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ca_cb_l_u_nta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_cb_l_u_nta_u.json | 24 ++++++--- .../strsm/test/fixtures/ca_cb_l_u_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_cb_l_u_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ca_cb_r_l_nta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_cb_r_l_nta_u.json | 26 ++++++--- .../strsm/test/fixtures/ca_cb_r_l_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_cb_r_l_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ca_cb_r_u_nta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_cb_r_u_nta_u.json | 26 ++++++--- .../strsm/test/fixtures/ca_cb_r_u_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_cb_r_u_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_l_l_nta_nu.json | 24 ++++++--- ..._rb_l_l_nta_nu_complex_access_pattern.json | 30 +++++++---- .../strsm/test/fixtures/ca_rb_l_l_nta_u.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_l_l_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_l_l_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_l_u_nta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_l_u_nta_u.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_l_u_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_l_u_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_r_l_nta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_r_l_nta_u.json | 27 +++++++--- .../strsm/test/fixtures/ca_rb_r_l_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_r_l_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_r_u_nta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_r_u_nta_u.json | 26 ++++++--- .../strsm/test/fixtures/ca_rb_r_u_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ca_rb_r_u_ta_u.json | 26 ++++++--- .../fixtures/column_major_l_l_nta_nu.json | 24 ++++++--- .../test/fixtures/column_major_l_l_nta_u.json | 24 ++++++--- .../test/fixtures/column_major_l_l_ta_nu.json | 24 ++++++--- .../test/fixtures/column_major_l_l_ta_u.json | 24 ++++++--- .../fixtures/column_major_l_u_nta_nu.json | 24 ++++++--- .../test/fixtures/column_major_l_u_nta_u.json | 24 ++++++--- .../test/fixtures/column_major_l_u_ta_nu.json | 24 ++++++--- .../test/fixtures/column_major_l_u_ta_u.json | 24 ++++++--- .../fixtures/column_major_r_l_nta_nu.json | 24 ++++++--- .../test/fixtures/column_major_r_l_nta_u.json | 26 ++++++--- .../test/fixtures/column_major_r_l_ta_nu.json | 24 ++++++--- .../test/fixtures/column_major_r_l_ta_u.json | 24 ++++++--- .../fixtures/column_major_r_u_nta_nu.json | 24 ++++++--- .../test/fixtures/column_major_r_u_nta_u.json | 26 ++++++--- .../test/fixtures/column_major_r_u_ta_nu.json | 24 ++++++--- .../test/fixtures/column_major_r_u_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ra_cb_l_l_nta_nu.json | 24 ++++++--- ..._cb_l_l_nta_nu_complex_access_pattern.json | 32 +++++++---- .../strsm/test/fixtures/ra_cb_l_l_nta_u.json | 26 ++++++--- .../strsm/test/fixtures/ra_cb_l_l_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_cb_l_l_ta_u.json | 26 ++++++--- .../strsm/test/fixtures/ra_cb_l_u_nta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_cb_l_u_nta_u.json | 24 ++++++--- .../strsm/test/fixtures/ra_cb_l_u_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_cb_l_u_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ra_cb_r_l_nta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_cb_r_l_nta_u.json | 26 ++++++--- .../strsm/test/fixtures/ra_cb_r_l_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_cb_r_l_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ra_cb_r_u_nta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_cb_r_u_nta_u.json | 26 ++++++--- .../strsm/test/fixtures/ra_cb_r_u_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_cb_r_u_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_l_l_nta_nu.json | 24 ++++++--- ..._rb_l_l_nta_nu_complex_access_pattern.json | 30 +++++++---- .../test/fixtures/ra_rb_l_l_nta_nu_oa.json | 26 ++++++--- .../test/fixtures/ra_rb_l_l_nta_nu_ob.json | 24 ++++++--- .../fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json | 26 ++++++--- .../fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json | 28 ++++++---- .../fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json | 28 ++++++---- .../fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json | 28 ++++++---- .../fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json | 26 ++++++--- .../fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json | 28 ++++++---- .../fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json | 28 ++++++---- .../fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json | 28 ++++++---- .../strsm/test/fixtures/ra_rb_l_l_nta_u.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_l_l_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_l_l_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_l_u_nta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_l_u_nta_u.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_l_u_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_l_u_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_r_l_nta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_r_l_nta_u.json | 26 ++++++--- .../strsm/test/fixtures/ra_rb_r_l_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_r_l_ta_u.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_r_u_nta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_r_u_nta_u.json | 26 ++++++--- .../strsm/test/fixtures/ra_rb_r_u_ta_nu.json | 24 ++++++--- .../strsm/test/fixtures/ra_rb_r_u_ta_u.json | 24 ++++++--- .../test/fixtures/row_major_l_l_nta_nu.json | 24 ++++++--- .../test/fixtures/row_major_l_l_nta_u.json | 24 ++++++--- .../test/fixtures/row_major_l_l_ta_nu.json | 24 ++++++--- .../test/fixtures/row_major_l_l_ta_u.json | 24 ++++++--- .../test/fixtures/row_major_l_u_nta_nu.json | 24 ++++++--- .../test/fixtures/row_major_l_u_nta_u.json | 24 ++++++--- .../test/fixtures/row_major_l_u_ta_nu.json | 24 ++++++--- .../test/fixtures/row_major_l_u_ta_u.json | 24 ++++++--- .../test/fixtures/row_major_r_l_nta_nu.json | 24 ++++++--- .../test/fixtures/row_major_r_l_nta_u.json | 26 ++++++--- .../test/fixtures/row_major_r_l_ta_nu.json | 24 ++++++--- .../test/fixtures/row_major_r_l_ta_u.json | 24 ++++++--- .../test/fixtures/row_major_r_u_nta_nu.json | 24 ++++++--- .../test/fixtures/row_major_r_u_nta_u.json | 26 ++++++--- .../test/fixtures/row_major_r_u_ta_nu.json | 24 ++++++--- .../test/fixtures/row_major_r_u_ta_u.json | 24 ++++++--- 116 files changed, 1994 insertions(+), 891 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/README.md b/lib/node_modules/@stdlib/blas/base/strsm/README.md index 8779d971ef4c..84c8e2c96c26 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/README.md +++ b/lib/node_modules/@stdlib/blas/base/strsm/README.md @@ -20,7 +20,7 @@ limitations under the License. # strsm -> Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +> Solve matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` where `α` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`.
@@ -30,18 +30,18 @@ limitations under the License. var strsm = require( '@stdlib/blas/base/strsm' ); ``` -#### strsm( order, side, uplo, transa, diag, m, n, alpha, A, LDA, B, LDB ) +#### strsm( order, side, uplo, transa, diag, M, N, alpha, A, LDA, B, LDB ) -Solves matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +Solves matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` where `α` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. ```javascript var Float32Array = require( '@stdlib/array/loat32' ); -A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); -B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); +var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); +var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); -strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); -// B => [ 30.0, 6.0, 0.0, 12.0 ] +strsm( 'row-major', 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, B, 3 ); +// B => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] ``` The function has the following parameters: @@ -51,8 +51,8 @@ The function has the following parameters: - **uplo**: specifies whether the upper or lower triangular part of the matrix `A` is supplied. - **transa**: specifies the form of `op( A )` to be used in the matrix multiplication. - **diag**: specifies whether or not `A` is unit triangular. -- **m**: number of rows in `B`. -- **n**: number of columns in `B`. +- **M**: number of rows in `B`. +- **N**: number of columns in `B`. - **alpha**: scalar constant. - **A**: input matrix `A`. - **LDA**: stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`). @@ -61,35 +61,35 @@ The function has the following parameters: Note that indexing is relative to the first index. To introduce an offset, use [`typed array`][mdn-typed-array] views. - + ```javascript var Float32Array = require( '@stdlib/array/loat32' ); // Initial arrays... -var A0 = new Float32Array( [ 0.0, 1.0, 3.0, 0.0, 4.0 ] ); -var B0 = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); +var A0 = new Float32Array( [ 0.0, 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); +var B0 = new Float32Array( [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); // Create offset views... var A1 = new Float32Array( A0.buffer, A0.BYTES_PER_ELEMENT*1 ); // start at 2nd element var B1 = new Float32Array( B0.buffer, B0.BYTES_PER_ELEMENT*1 ); // start at 2nd element -strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A1, 2, B1, 2 ); -// B0 => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +strsm( 'row-major', 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A1, 3, B1, 3 ); +// B0 => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] ``` -#### strsm.ndarray( s, ul, t, d, m, n, α, A, sa1, sa2, oa, B, sb1, sb2, ob ) +#### strsm.ndarray( s, ul, t, d, M, N, α, A, sa1, sa2, oa, B, sb1, sb2, ob ) -Solves matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` using alternative indexing semantics and where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +Solves matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` using alternative indexing semantics and where `α` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. ```javascript var Float32Array = require( '@stdlib/array/loat32' ); -A = new Float32Array( [ 0.0, 0.0, 1.0, 3.0, 0.0, 4.0 ] ); -B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); +var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); +var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); -strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); -// B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +strsm.ndarray( 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, 1, 0, B, 3, 1, 0 ); +// B => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] ``` The function has the following parameters: @@ -98,8 +98,8 @@ The function has the following parameters: - **uplo**: specifies whether the upper or lower triangular part of the matrix `A` is supplied. - **transa**: specifies the form of `op( A )` to be used in the matrix multiplication. - **diag**: specifies whether or not `A` is unit triangular. -- **m**: number of rows in `B`. -- **n**: number of columns in `B`. +- **M**: number of rows in `B`. +- **N**: number of columns in `B`. - **alpha**: scalar constant. - **A**: input matrix `A`. - **sa1**: stride of the first dimension of `A`. @@ -112,14 +112,16 @@ The function has the following parameters: While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying buffer, the offset parameters support indexing semantics based on starting indices. For example, + + ```javascript var Float32Array = require( '@stdlib/array/loat32' ); -A = new Float32Array( [ 0.0, 0.0, 1.0, 3.0, 0.0, 4.0 ] ); -B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); +var A = new Float32Array( [ 0.0, 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); +var B = new Float32Array( [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); -strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); -// B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +strsm.ndarray( 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, 1, 1, B, 3, 1, 1 ); +// B => [ 0.0, 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] ```
diff --git a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts index 7259890fcad1..27dbd757dbba 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts @@ -27,15 +27,15 @@ import { Layout, MatrixTriangle, DiagonalType, OperationSide, TransposeOperation */ interface Routine { /** - * Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. + * Solves matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` where `α` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. * * @param order - storage layout of `A` and `B` * @param side - specifies whether `op( A )` appears on the left or right of `X` * @param uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied * @param transa - specifies the form of `op( A )` to be used in matrix multiplication * @param diag - specifies whether or not `A` is unit triangular - * @param m - number of rows in `B` - * @param n - number of columns in `B` + * @param M - number of rows in `B` + * @param N - number of columns in `B` * @param alpha - scalar constant * @param A - input matrix `A` * @param LDA - stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`) @@ -46,23 +46,23 @@ interface Routine { * @example * var Float32Array = require( '@stdlib/array/float32' ); * - * var A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); - * var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); + * var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); + * var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); * - * strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); - * // B => [ 30.0, 0.0, 0.0, 12.0 ] + * strsm( 'row-major', 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, B, 3 ); + * // B => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] */ - ( order: Layout, side: OperationSide, uplo: MatrixTriangle, transa: TransposeOperation, diag: DiagonalType, m: number, n: number, alpha: number, A: Float32Array, LDA: number, B: Float32Array, LDB: number ): Float32Array; + ( order: Layout, side: OperationSide, uplo: MatrixTriangle, transa: TransposeOperation, diag: DiagonalType, M: number, N: number, alpha: number, A: Float32Array, LDA: number, B: Float32Array, LDB: number ): Float32Array; /** - * Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. + * Solves matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` using alternative indexing semantics and where `α` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. * * @param side - specifies whether `op( A )` appears on the left or right of `X` * @param uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied * @param transa - specifies the form of `op( A )` to be used in matrix multiplication * @param diag - specifies whether or not `A` is unit triangular - * @param m - number of rows in `B` - * @param n - number of columns in `B` + * @param M - number of rows in `B` + * @param N - number of columns in `B` * @param alpha - scalar constant * @param A - input matrix `A` * @param strideA1 - stride of the first dimension of `A` @@ -77,25 +77,25 @@ interface Routine { * @example * var Float32Array = require( '@stdlib/array/float32' ); * - * var A = new Float32Array( [ 0.0, 0.0, 1.0, 3.0, 0.0, 4.0 ] ); - * var B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); + * var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); + * var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); * - * strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); - * // B => [ 0.0, 30.0, 0.0, 0.0, 12.0 ] + * strsm.ndarray( 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, 1, 0, B, 3, 1, 0 ); + * // B => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] */ - ndarray( side: OperationSide, uplo: MatrixTriangle, transa: TransposeOperation, diag: DiagonalType, m: number, n: number, alpha: number, A: Float32Array, strideA1: number, strideA2: number, offsetA: number, B: Float32Array, strideB1: number, strideB2: number, offsetB: number ): Float32Array; + ndarray( side: OperationSide, uplo: MatrixTriangle, transa: TransposeOperation, diag: DiagonalType, M: number, N: number, alpha: number, A: Float32Array, strideA1: number, strideA2: number, offsetA: number, B: Float32Array, strideB1: number, strideB2: number, offsetB: number ): Float32Array; } /** -* Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +* Solves matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` where `α` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. * * @param order - storage layout of `A` and `B` * @param side - specifies whether `op( A )` appears on the left or right of `X` * @param uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied * @param transa - specifies the form of `op( A )` to be used in matrix multiplication * @param diag - specifies whether or not `A` is unit triangular -* @param m - number of rows in `B` -* @param n - number of columns in `B` +* @param M - number of rows in `B` +* @param N - number of columns in `B` * @param alpha - scalar constant * @param A - input matrix `A` * @param LDA - stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`) @@ -106,20 +106,20 @@ interface Routine { * @example * var Float32Array = require( '@stdlib/array/float32' ); * -* var A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); -* var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); +* var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); +* var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); * -* strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); -* // B => [ 30.0, 0.0, 0.0, 12.0 ] +* strsm( 'row-major', 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, B, 3 ); +* // B => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] * * @example * var Float32Array = require( '@stdlib/array/float32' ); * -* var A = new Float32Array( [ 0.0, 0.0, 1.0, 3.0, 0.0, 4.0 ] ); -* var B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); +* var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); +* var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); * -* strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); -* // B => [ 0.0, 30.0, 0.0, 0.0, 12.0 ] +* strsm.ndarray( 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, 1, 0, B, 3, 1, 0 ); +* // B => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] */ declare var strsm: Routine; diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js index 145171941537..3347a5baf7ae 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js @@ -93,7 +93,7 @@ function zeros( M, N, X, strideX1, strideX2, offsetX ) { // TODO: consider movin // MAIN // /** -* Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +* Solves matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` where `α` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. * * @private * @param {string} side - specifies whether `op( A )` appears on the left or right of `X` @@ -116,11 +116,11 @@ function zeros( M, N, X, strideX1, strideX2, offsetX ) { // TODO: consider movin * @example * var Float32Array = require( '@stdlib/array/float32' ); * -* var A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); -* var B = new Float32Array( [ 5.0, 6.0, 0.0, 8.0 ] ); +* var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); +* var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); * -* strsm( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 0, B, 2, 1, 0 ); -* // B => [ 30.0, 0.0, 0.0, 12.0 ] +* strsm( 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, 1, 0, B, 3, 1, 0 ); +* // B => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] */ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) { // eslint-disable-line max-params var nonunit; diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js index 72d30e35b211..de35183b2788 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/index.js @@ -19,7 +19,7 @@ 'use strict'; /** -* BLAS routine to solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +* BLAS routine to solve matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` where `α` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. * * @module @stdlib/blas/base/strsm * @@ -27,21 +27,21 @@ * var Float32Array = require( '@stdlib/array/float32' ); * var strsm = require( '@stdlib/blas/base/strsm' ); * -* var A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); -* var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); +* var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); +* var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); * -* strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); -* // B => [ 30.0, 0.0, 0.0, 12.0 ] +* strsm( 'row-major', 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, B, 3 ); +* // B => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] * * @example * var Float32Array = require( '@stdlib/array/float32' ); * var strsm = require( '@stdlib/blas/base/strsm' ); * -* var A = new Float32Array( [ 0.0, 0.0, 1.0, 3.0, 0.0, 4.0 ] ); -* var B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); +* var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); +* var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); * -* strsm.ndarray( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); -* // B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +* strsm.ndarray( 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, 1, 0, B, 3, 1, 0 ); +* // B => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] */ // MODULES // diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js index 1340741639d5..3789144dffb2 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js @@ -31,7 +31,7 @@ var base = require( './base.js' ); // MAIN // /** -* Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +* Solves matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` where `α` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. * * @param {string} side - specifies whether `op( A )` appears on the left or right of `X` * @param {string} uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied @@ -61,11 +61,11 @@ var base = require( './base.js' ); * @example * var Float32Array = require( '@stdlib/array/float32' ); * -* var A = new Float32Array( [ 0.0, 0.0, 1.0, 3.0, 0.0, 4.0 ] ); -* var B = new Float32Array( [ 0.0, 5.0, 7.0, 0.0, 8.0 ] ); +* var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); +* var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); * -* strsm( 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, 1, 2, B, 2, 1, 1 ); -* // B => [ 0.0, 30.0, 6.0, 0.0, 12.0 ] +* strsm( 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, 1, 0, B, 3, 1, 0 ); +* // B => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] */ function strsm( side, uplo, transa, diag, M, N, alpha, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) { // eslint-disable-line max-len, max-params if ( !isOperationSide( side ) ) { diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js index b7f6383df2f1..da98228752c5 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js @@ -34,7 +34,7 @@ var base = require( './base.js' ); // MAIN // /** -* Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. +* Solves matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` where `α` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. * * @param {string} order - storage layout of `A` and `B` * @param {string} side - specifies whether `op( A )` appears on the left or right of `X` @@ -62,11 +62,11 @@ var base = require( './base.js' ); * @example * var Float32Array = require( '@stdlib/array/float32' ); * -* var A = new Float32Array( [ 1.0, 3.0, 0.0, 4.0 ] ); -* var B = new Float32Array( [ 5.0, 7.0, 0.0, 8.0 ] ); +* var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); +* var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); * -* strsm( 'row-major', 'left', 'upper', 'no-transpose', 'non-unit', 2, 2, 6.0, A, 2, B, 2 ); -* // B => [ 30.0, 6.0, 0.0, 12.0 ] +* strsm( 'row-major', 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, B, 3 ); +* // B => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] */ function strsm( order, side, uplo, transa, diag, M, N, alpha, A, LDA, B, LDB ) { // eslint-disable-line max-params var nrowsa; diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu.json index 47b63e04d14c..fde0a02b26b1 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 2.0, 0.0, 3.0 ], + "A": [ 1.0, 2.0, 3.0, 0.0, 4.0, 5.0, 0.0, 0.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 4.0, 7.0, 2.0, 5.0, 8.0, 3.0, 6.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, -2.0, 1.0, 0.0 ] + "B_out": [ 1.0, 0.5, 0.25, 2.0, 0.25, 0.125, 3.0, 0.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json index 261f98714f45..2d9c3ab92fe2 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_nu_complex_access_pattern.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 999.0, 999.0, 2.0, 999.0, 999.0, 999.0, 999.0, 3.0, 999.0, 999.0, 1.0, 999.0, 999.0, 999.0, 999.0, 999.0, 999.0, 0.0 ], - "strideA1": -3, - "strideA2": -5, - "offsetA": 10, - "B": [ 999.0, 1.0, 999.0, 999.0, 4.0, 2.0, 999.0, 999.0, 2.0, 999.0 ], - "strideB1": -3, - "strideB2": 4, - "offsetB": 4, - "B_out": [ 999.0, -5.5, 999.0, 999.0, 4.0, -2.0, 999.0, 999.0, 2.0, 999.0 ] + "A": [ 999.0, 1.0, 999.0, 2.0, 999.0, 3.0, 999.0, 0.0, 999.0, 4.0, 999.0, 5.0, 999.0, 0.0, 999.0, 0.0, 999.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 2, + "strideA2": 6, + "offsetA": 1, + "B": [ 999.0, 1.0, 999.0, 999.0, 4.0, 999.0, 999.0, 7.0, 999.0, 999.0, 2.0, 999.0, 999.0, 5.0, 999.0, 999.0, 8.0, 999.0, 999.0, 3.0, 999.0, 999.0, 6.0, 999.0, 999.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 3, + "strideB2": 9, + "offsetB": 1, + "B_out": [ 999.0, 1.0, 999.0, 999.0, 0.5, 999.0, 999.0, 0.25, 999.0, 999.0, 2.0, 999.0, 999.0, 0.25, 999.0, 999.0, 0.125, 999.0, 999.0, 3.0, 999.0, 999.0, 0.0, 999.0, 999.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_u.json index 53da622b074e..11e9fc49bf55 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_nta_u.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 2.0, 0.0, 3.0 ], + "A": [ 1.0, 2.0, 3.0, 0.0, 4.0, 5.0, 0.0, 0.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 4.0, 7.0, 2.0, 5.0, 8.0, 3.0, 6.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, -6.0, 1.0, 0.0 ] + "B_out": [ 1.0, 2.0, -6.0, 2.0, 1.0, -3.0, 3.0, 0.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_nu.json index 40e580ab9667..c631c87b9984 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 1.0, 1.0, -2.0, 1.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_u.json index ded03594af77..c5f1a2ce2075 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_l_ta_u.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ -2.0, 2.0, -5.0, 2.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_nu.json index fe844a69e759..d3856591fb24 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 1.0, 1.0, -2.0, 1.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_u.json index da1551849554..b211884bdc02 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_nta_u.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "no-transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ -2.0, 2.0, -5.0, 2.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_nu.json index 85574a31d0a8..0788b249b2d8 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, -5.0, 1.0, -0.5 ] + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_u.json index e4c09e481aab..7ebe4c0f7708 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_l_u_ta_u.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, -10.0, 1.0, -1.0 ] + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_nu.json index 440abe8db189..7c862826981a 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 2.5, -1.0, 0.5, 1.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_u.json index 6b5810357ddf..7c862826981a 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_nta_u.json @@ -2,17 +2,27 @@ "side": "right", "uplo": "lower", "transA": "no-transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 1.0, -4.0, 1.0, 2.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_nu.json index e00990f4f446..fed58d9f23ab 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, 2.0, -5.5, -2.0 ] + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_u.json index 02fdc15ea345..dafd2ef270c9 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_l_ta_u.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, 2.0, -11.0, -4.0 ] + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_nu.json index 20cf7d728be0..25e32ccdbd54 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, 2.0, -5.5, -2.0 ] + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_u.json index 208542307de4..25e32ccdbd54 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_nta_u.json @@ -2,17 +2,27 @@ "side": "right", "uplo": "upper", "transA": "no-transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, 2.0, -11.0, -4.0 ] + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_nu.json index cb689e311a42..75f95500b9c1 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 2.5, -1.0, 0.5, 1.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_u.json index b59a9a087dbe..2bbf37b8d80f 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_cb_r_u_ta_u.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 1.0, -4.0, 1.0, 2.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu.json index 901e59a4a2ec..3975a6d85b0f 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 2.0, 0.0, 3.0 ], + "A": [ 1.0, 2.0, 3.0, 0.0, 4.0, 5.0, 0.0, 0.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, 1.0, -2.0, 0.0 ] + "B_out": [ 1.0, 2.0, 3.0, 0.5, 0.25, 0.0, 0.25, 0.125, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json index 0997a4e7231b..f4e4c6d67e29 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_nu_complex_access_pattern.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 999.0, 999.0, 2.0, 999.0, 999.0, 999.0, 999.0, 3.0, 999.0, 999.0, 1.0, 999.0, 999.0, 999.0, 999.0, 999.0, 999.0, 0.0 ], - "strideA1": -3, - "strideA2": -5, - "offsetA": 10, - "B": [ 1.0, 999.0, 999.0, 2.0, 4.0, 999.0, 999.0, 2.0 ], - "strideB1": -4, + "A": [ 999.0, 1.0, 999.0, 2.0, 999.0, 3.0, 999.0, 0.0, 999.0, 4.0, 999.0, 5.0, 999.0, 0.0, 999.0, 0.0, 999.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 2, + "strideA2": 6, + "offsetA": 1, + "B": [ 999.0, 1.0, 999.0, 999.0, 2.0, 999.0, 999.0, 3.0, 999.0, 999.0, 4.0, 999.0, 999.0, 5.0, 999.0, 999.0, 6.0, 999.0, 999.0, 7.0, 999.0, 999.0, 8.0, 999.0, 999.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 9, "strideB2": 3, - "offsetB": 4, - "B_out": [ -5.5, 999.0, 999.0, -2.0, 4.0, 999.0, 999.0, 2.0 ] + "offsetB": 1, + "B_out": [ 999.0, 1.0, 999.0, 999.0, 2.0, 999.0, 999.0, 3.0, 999.0, 999.0, 0.5, 999.0, 999.0, 0.25, 999.0, 999.0, 0.0, 999.0, 999.0, 0.25, 999.0, 999.0, 0.125, 999.0, 999.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_u.json index ff84b031e4a4..039009443ae7 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_nta_u.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 2.0, 0.0, 3.0 ], + "A": [ 1.0, 2.0, 3.0, 0.0, 4.0, 5.0, 0.0, 0.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, 1.0, -6.0, 0.0 ] + "B_out": [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -6.0, -3.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_nu.json index 6f35b51c017a..f898728eebdc 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 1.0, -2.0, 1.0, 1.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_u.json index caad8caa3d3b..75a8f018101e 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_l_ta_u.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ -2.0, -5.0, 2.0, 2.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_nu.json index 5f302da9f6ac..1d9b3d5d3fe1 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 1.0, -2.0, 1.0, 1.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_u.json index bb46a573823a..f60a2e82482c 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_nta_u.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "no-transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ -2.0, -5.0, 2.0, 2.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_nu.json index b1f3f853bf67..3cf87c34eee6 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, 1.0, -5.0, -0.5 ] + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_u.json index c7363530b2c7..00e1ca6d2096 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_l_u_ta_u.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, 1.0, -10.0, -1.0 ] + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_nu.json index dbf7c31e948b..684af9bb2e0f 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 2.5, 0.5, -1.0, 1.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_u.json index 15aa083d9685..b45379a88cd4 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_nta_u.json @@ -1,18 +1,29 @@ + { "side": "right", "uplo": "lower", "transA": "no-transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 1.0, 1.0, -4.0, 2.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_nu.json index ef5e25252650..f749d110cffa 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, -5.5, 2.0, -2.0 ] + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_u.json index 768990bfc2cc..3b603100ded5 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_l_ta_u.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, -11.0, 2.0, -4.0 ] + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_nu.json index d2b94bd2add5..d4d237f1c096 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, -5.5, 2.0, -2.0 ] + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_u.json index 3359308c326f..d4d237f1c096 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_nta_u.json @@ -2,17 +2,27 @@ "side": "right", "uplo": "upper", "transA": "no-transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, -11.0, 2.0, -4.0 ] + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_nu.json index 8cbe45d5e4c8..a7272a84ceb9 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 2.5, 0.5, -1.0, 1.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_u.json index 61907efced36..a7272a84ceb9 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ca_rb_r_u_ta_u.json @@ -2,17 +2,27 @@ "side": "right", "uplo": "upper", "transA": "transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], "strideA1": 1, - "strideA2": 2, + "strideA2": 3, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 1.0, 1.0, -4.0, 2.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_nu.json index 95f54ae636d6..4314e031c110 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_nu.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 2.0, 0.0, 3.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, -2.0, 1.0, 0.0 ] + "A": [ 1.0, 2.0, 3.0, 0.0, 4.0, 5.0, 0.0, 0.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "lda": 3, + "B": [ 1.0, 4.0, 7.0, 2.0, 5.0, 8.0, 3.0, 6.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 0.5, 0.25, 2.0, 0.25, 0.125, 3.0, 0.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_u.json index 237171d060be..d90b37370147 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_nta_u.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "no-transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 2.0, 0.0, 3.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, -6.0, 1.0, 0.0 ] + "A": [ 1.0, 2.0, 3.0, 0.0, 4.0, 5.0, 0.0, 0.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "lda": 3, + "B": [ 1.0, 4.0, 7.0, 2.0, 5.0, 8.0, 3.0, 6.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 2.0, -6.0, 2.0, 1.0, -3.0, 3.0, 0.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_nu.json index e4b0d3cb610d..f07d7d64bd2e 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_nu.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 1.0, 1.0, -2.0, 1.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_u.json index c4cb03e48d01..8b385cce0082 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_l_ta_u.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ -2.0, 2.0, -5.0, 2.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_nu.json index dca446e7521c..505ce1e9c0a2 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_nu.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 1.0, 1.0, -2.0, 1.0 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_u.json index 123f0e60e7f6..a89ad92caa78 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_nta_u.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "no-transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ -2.0, 2.0, -5.0, 2.0 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_nu.json index bd77f9095ed4..47980ac95e89 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_nu.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, -5.0, 1.0, -0.5 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_u.json index 1438e05d14d8..10afd6e6f8e5 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_l_u_ta_u.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, -10.0, 1.0, -1.0 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_nu.json index 9a740550e6a1..15047c6ba5ef 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_nu.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 2.5, -1.0, 0.5, 1.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_u.json index 7b0cdcece558..15047c6ba5ef 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_nta_u.json @@ -3,13 +3,23 @@ "side": "right", "uplo": "lower", "transA": "no-transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 1.0, -4.0, 1.0, 2.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_nu.json index e3a5a8847b09..1fff9a546079 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_nu.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, 2.0, -5.5, -2.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_u.json index 7bdc329850a2..3329e2dc80bc 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_l_ta_u.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, 2.0, -11.0, -4.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_nu.json index abeac9554ae4..6af2704382de 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_nu.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, 2.0, -5.5, -2.0 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_u.json index bdf2d44cc723..6af2704382de 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_nta_u.json @@ -3,13 +3,23 @@ "side": "right", "uplo": "upper", "transA": "no-transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, 2.0, -11.0, -4.0 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_nu.json index f635deaa5582..faa2e3ce5440 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_nu.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 2.5, -1.0, 0.5, 1.0 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_u.json index daa9b2f8fda5..63be66d06dec 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/column_major_r_u_ta_u.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 1.0, -4.0, 1.0, 2.0 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu.json index 48e756a70b11..aadcab631d90 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 4.0, 7.0, 2.0, 5.0, 8.0, 3.0, 6.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, -5.5, 2.0, -2.0 ] + "B_out": [ 1.0, 0.5, 0.25, 2.0, 0.25, 0.125, 3.0, 0.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json index 81e20ffd8d34..9fa063ab076c 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_nu_complex_access_pattern.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 999.0, 999.0, 2.0, 999.0, 999.0, 3.0, 999.0, 999.0, 999.0, 999.0, 1.0, 999.0, 999.0, 999.0, 999.0, 999.0, 0.0, 999.0 ], - "strideA1": -5, - "strideA2": -3, - "offsetA": 10, - "B": [ 999.0, 1.0, 999.0, 999.0, 4.0, 2.0, 999.0, 999.0, 2.0, 999.0 ], - "strideB1": -3, - "strideB2": 4, - "offsetB": 4, - "B_out": [ 999.0, -5.5, 999.0, 999.0, 4.0, -2.0, 999.0, 999.0, 2.0, 999.0 ] + "A": [ 999.0, 1.0, 999.0, 0.0, 999.0, 0.0, 999.0, 2.0, 999.0, 4.0, 999.0, 0.0, 999.0, 3.0, 999.0, 5.0, 999.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 6, + "strideA2": 2, + "offsetA": 1, + "B": [ 999.0, 1.0, 999.0, 999.0, 4.0, 999.0, 999.0, 7.0, 999.0, 999.0, 2.0, 999.0, 999.0, 5.0, 999.0, 999.0, 8.0, 999.0, 999.0, 3.0, 999.0, 999.0, 6.0, 999.0, 999.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 3, + "strideB2": 9, + "offsetB": 1, + "B_out": [ 999.0, 1.0, 999.0, 999.0, 0.5, 999.0, 999.0, 0.25, 999.0, 999.0, 2.0, 999.0, 999.0, 0.25, 999.0, 999.0, 0.125, 999.0, 999.0, 3.0, 999.0, 999.0, 0.0, 999.0, 999.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json index b49719cb64f0..a9c3863f0d92 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json @@ -1,18 +1,28 @@ { "side": "left", - "uplo": "upper", + "uplo": "lower", "transA": "no-transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 4.0, 7.0, 2.0, 5.0, 8.0, 3.0, 6.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 1.0, 1.0, -4.0, 2.0 ] + "B_out": [ 1.0, 2.0, -6.0, 2.0, 1.0, -3.0, 0.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_nu.json index f29f438e8fdb..e8b436dcfd64 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 2.5, 0.5, -1.0, 1.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_u.json index 6c69d9a423f4..6595cc09acaa 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_ta_u.json @@ -1,18 +1,28 @@ { "side": "left", - "uplo": "upper", + "uplo": "lower", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, -11.0, 2.0, -4.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_nu.json index 03156e02a7d0..6a020f078a37 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 2.5, 0.5, -1.0, 1.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_u.json index b49719cb64f0..1249ca4a159c 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_nta_u.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "no-transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 1.0, 1.0, -4.0, 2.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_nu.json index f4d7ab98fc85..c4c304ade432 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, -5.5, 2.0, -2.0 ] + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_u.json index 6c69d9a423f4..67db56dd6fb8 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_u_ta_u.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, -11.0, 2.0, -4.0 ] + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_nu.json index a7a465fd3d3a..70ef59a28903 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 1.0, -2.0, 1.0, 1.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_u.json index fbdb1609852c..70ef59a28903 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_nta_u.json @@ -2,17 +2,27 @@ "side": "right", "uplo": "lower", "transA": "no-transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ -2.0, -5.0, 2.0, 2.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_nu.json index bea411f85452..8c615758ebc3 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, 1.0, -5.0, -0.5 ] + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_u.json index f08981fff8fd..d6de55b164a8 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_l_ta_u.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, 1.0, -10.0, -1.0 ] + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json index 08440b5d8b50..ef2bd0b9dc47 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 2.0, 0.0, 3.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, 1.0, -2.0, 0.0 ] + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_u.json index de5dab85c3c6..13eda4dc74a1 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_u.json @@ -2,17 +2,27 @@ "side": "right", "uplo": "upper", "transA": "no-transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 2.0, 0.0, 3.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 4.0, 1.0, -6.0, 0.0 ] + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_nu.json index 5fd0732e001f..446c8efb5b50 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ 1.0, -2.0, 1.0, 1.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_u.json index dda404b08076..6fd43c08a014 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_ta_u.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 1.0, 2.0, 2.0 ], + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], "strideB1": 1, - "strideB2": 2, + "strideB2": 3, "offsetB": 0, - "B_out": [ -2.0, -5.0, 2.0, 2.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu.json index da70903340c2..508e42483e61 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, 2.0, -5.5, -2.0 ] + "B_out": [ 1.0, 2.0, 3.0, 0.5, 0.25, 0.0, 0.25, 0.125, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json index 881e394a2988..37f6cb228c8d 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_complex_access_pattern.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 999.0, 999.0, 2.0, 999.0, 999.0, 3.0, 999.0, 999.0, 999.0, 999.0, 1.0, 999.0, 999.0, 999.0, 999.0, 999.0, 0.0, 999.0 ], - "strideA1": -5, - "strideA2": -3, - "offsetA": 10, - "B": [ 1.0, 999.0, 999.0, 2.0, 4.0, 999.0, 999.0, 2.0 ], - "strideB1": -4, + "A": [ 999.0, 1.0, 999.0, 0.0, 999.0, 0.0, 999.0, 2.0, 999.0, 4.0, 999.0, 0.0, 999.0, 3.0, 999.0, 5.0, 999.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 6, + "strideA2": 2, + "offsetA": 1, + "B": [ 999.0, 1.0, 999.0, 999.0, 2.0, 999.0, 999.0, 3.0, 999.0, 999.0, 4.0, 999.0, 999.0, 5.0, 999.0, 999.0, 6.0, 999.0, 999.0, 7.0, 999.0, 999.0, 8.0, 999.0, 999.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 9, "strideB2": 3, - "offsetB": 4, - "B_out": [ -5.5, 999.0, 999.0, -2.0, 4.0, 999.0, 999.0, 2.0 ] + "offsetB": 1, + "B_out": [ 999.0, 1.0, 999.0, 999.0, 2.0, 999.0, 999.0, 3.0, 999.0, 999.0, 0.5, 999.0, 999.0, 0.25, 999.0, 999.0, 0.0, 999.0, 999.0, 0.25, 999.0, 999.0, 0.125, 999.0, 999.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_oa.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_oa.json index 834462e78604..35ba36095cbc 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_oa.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_oa.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 0.0, 0.0, 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 0.0, 0.0, 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 2, - "B": [ 4.0, 1.0, 2.0, 2.0 ], - "strideB1": 1, - "strideB2": 2, + "B": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 3, + "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, -5.5, 2.0, -2.0 ] + "B_out": [ 1.0, 2.0, 3.0, 0.5, 0.25, 0.0, 0.25, 0.125, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json index 87d44f68f33f..89399595496f 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 0.0, 0.0, 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 0.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 2, - "B_out": [ 0.0, 0.0, 4.0, 2.0, -5.5, -2.0 ] + "B_out": [ 1.0, 2.0, 3.0, 0.5, 0.25, 0.0, 0.25, 0.125, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json index 4cc6ff02c8f5..bf942fb2176e 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 999.0, 999.0, 0.0, 999.0, 3.0, 999.0, 999.0, 2.0 ], - "strideA1": 5, - "strideA2": 3, + "A": [ 1.0, 999.0, 0.0, 999.0, 0.0, 999.0, 2.0, 999.0, 4.0, 999.0, 0.0, 999.0, 3.0, 999.0, 5.0, 999.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 6, + "strideA2": 2, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, 2.0, -5.5, -2.0 ] + "B_out": [ 1.0, 2.0, 3.0, 0.5, 0.25, 0.0, 0.25, 0.125, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json index 92c8a3a6b923..a976e304d085 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1_sa2n.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 999.0, 999.0, 999.0, 1.0, 2.0, 0.0, 999.0, 3.0, 999.0 ], - "strideA1": 4, - "strideA2": -3, - "offsetA": 3, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "A": [ 0.0, 0.0, 1.0, 999.0, 999.0, 999.0, 0.0, 4.0, 2.0, 999.0, 999.0, 999.0, 6.0, 5.0, 3.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 6, + "strideA2": -1, + "offsetA": 2, + "B": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, 2.0, -5.5, -2.0 ] + "B_out": [ 1.0, 2.0, 3.0, 0.5, 0.25, 0.0, 0.25, 0.125, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json index fa205e789292..20065a046d93 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 999.0, 999.0, 0.0, 3.0, 999.0, 999.0, 2.0, 999.0, 1.0 ], - "strideA1": -5, - "strideA2": 3, - "offsetA": 8, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "A": [ 3.0, 5.0, 6.0, 999.0, 999.0, 999.0, 2.0, 4.0, 0.0, 999.0, 999.0, 999.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": -6, + "strideA2": 1, + "offsetA": 12, + "B": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, 2.0, -5.5, -2.0 ] + "B_out": [ 1.0, 2.0, 3.0, 0.5, 0.25, 0.0, 0.25, 0.125, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json index 14fb4e5f40a3..2c6d176da51e 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2n.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 999.0, 999.0, 2.0, 999.0, 999.0, 3.0, 999.0, 999.0, 999.0, 999.0, 1.0, 999.0, 999.0, 999.0, 999.0, 999.0, 0.0, 999.0 ], - "strideA1": -5, - "strideA2": -3, - "offsetA": 10, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "A": [ 6.0, 5.0, 3.0, 0.0, 4.0, 2.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": -3, + "strideA2": -1, + "offsetA": 8, + "B": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, 2.0, -5.5, -2.0 ] + "B_out": [ 1.0, 2.0, 3.0, 0.5, 0.25, 0.0, 0.25, 0.125, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json index 818afd451e09..43ef9ff02a13 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 999.0, 999.0, 2.0, 999.0, 1.0, 999.0, 999.0, 2.0 ], - "strideB1": 5, - "strideB2": 3, + "B": [ 1.0, 999.0, 2.0, 999.0, 3.0, 999.0, 4.0, 999.0, 5.0, 999.0, 6.0, 999.0, 7.0, 999.0, 8.0, 999.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 6, + "strideB2": 2, "offsetB": 0, - "B_out": [ 4.0, 999.0, 999.0, 2.0, 999.0, -5.5, 999.0, 999.0, -2.0 ] + "B_out": [ 1.0, 999.0, 2.0, 999.0, 3.0, 999.0, 0.5, 999.0, 0.25, 999.0, 0.0, 999.0, 0.25, 999.0, 0.125, 999.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json index 86140d66b785..b631e30776db 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1_sb2n.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 999.0, 999.0, 2.0, 1.0, 999.0, 999.0, 2.0, 999.0 ], - "strideB1": 4, - "strideB2": -3, - "offsetB": 3, - "B_out": [ 4.0, 999.0, 999.0, 2.0, -5.5, 999.0, 999.0, -2.0, 999.0 ] + "B": [ 3.0, 2.0, 1.0, 999.0, 999.0, 999.0, 6.0, 5.0, 4.0, 999.0, 999.0, 999.0, 9.0, 8.0, 7.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 6, + "strideB2": -1, + "offsetB": 2, + "B_out": [ 3.0, 2.0, 1.0, 999.0, 999.0, 999.0, 0.0, 0.25, 0.5, 999.0, 999.0, 999.0, 0.0, 0.125, 0.25 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json index 38d5cacecf12..c09b9152e9f4 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 1.0, 999.0, 999.0, 2.0, 4.0, 999.0, 999.0, 2.0 ], - "strideB1": -4, - "strideB2": 3, - "offsetB": 4, - "B_out": [ -5.5, 999.0, 999.0, -2.0, 4.0, 999.0, 999.0, 2.0 ] + "B": [ 7.0, 8.0, 9.0, 999.0, 999.0, 999.0, 4.0, 5.0, 6.0, 999.0, 999.0, 999.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": -6, + "strideB2": 1, + "offsetB": 12, + "B_out": [ 0.25, 0.125, 0.0, 999.0, 999.0, 999.0, 0.5, 0.25, 0.0, 999.0, 999.0, 999.0, 1.0, 2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json index bad8d244d419..8dd1ff69e55a 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2n.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 999.0, 999.0, 2.0, 999.0, 999.0, 1.0, 999.0, 2.0, 999.0, 999.0, 4.0, 999.0, 999.0, 999.0, 999.0, 999.0, 999.0, 999.0 ], - "strideB1": -5, - "strideB2": -3, - "offsetB": 10, - "B_out": [ 999.0, 999.0, -2.0, 999.0, 999.0, -5.5, 999.0, 2.0, 999.0, 999.0, 4.0, 999.0, 999.0, 999, 999.0, 999.0, 999.0, 999.0 ] + "B": [ 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": -3, + "strideB2": -1, + "offsetB": 8, + "B_out": [ 0.0, 0.125, 0.25, 0.0, 0.25, 0.5, 3.0, 2.0, 1.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_u.json index 827ceac2d45a..5af8bbdef0c4 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_u.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, 2.0, -11.0, -4.0 ] + "B_out": [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -6.0, -3.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_nu.json index 298941919ebc..2f9d3ea404bc 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 2.5, -1.0, 0.5, 1.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_u.json index 1950639f9549..d79e8a24c416 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_ta_u.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 1.0, -4.0, 1.0, 2.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_nu.json index baba8d60b360..9bfc8df0b3f5 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 2.5, -1.0, 0.5, 1.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_u.json index 58e1bacb2627..d7c3ecc860d3 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_nta_u.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "no-transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 1.0, -4.0, 1.0, 2.0 ] + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_nu.json index ec6ade1c295d..db988517d5d9 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, 2.0, -5.5, -2.0 ] + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_u.json index 21ce8a19b516..e334b9ca9cd6 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_u_ta_u.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, 2.0, -11.0, -4.0 ] + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_nu.json index 6e7a739a90b7..a9e9dda200c5 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 1.0, 1.0, -2.0, 1.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_u.json index 5926401eb419..a9e9dda200c5 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_nta_u.json @@ -2,17 +2,27 @@ "side": "right", "uplo": "lower", "transA": "no-transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ -2.0, 2.0, -5.0, 2.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_nu.json index 62fc667104e7..84e5a2909f52 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, -5.0, 1.0, -0.5 ] + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_u.json index 0c4b4b5e288b..b3b8055ccf2d 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_l_ta_u.json @@ -3,16 +3,26 @@ "uplo": "lower", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, -10.0, 1.0, -1.0 ] + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json index 4468152698a0..adaeee6ad96e 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 2.0, 0.0, 3.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, -2.0, 1.0, 0.0 ] + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_u.json index af39a2725f43..3d01ccddf9a0 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_u.json @@ -2,17 +2,27 @@ "side": "right", "uplo": "upper", "transA": "no-transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 2.0, 0.0, 3.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 4.0, -6.0, 1.0, 0.0 ] + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_nu.json index 1c08556bbc77..e74f229a7cd4 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_nu.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ 1.0, 1.0, -2.0, 1.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_u.json index 0e9b05f3d89f..a60937296ad8 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_ta_u.json @@ -3,16 +3,26 @@ "uplo": "upper", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "strideA1": 2, + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "strideB1": 2, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "strideB1": 3, "strideB2": 1, "offsetB": 0, - "B_out": [ -2.0, 2.0, -5.0, 2.0 ] + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json index 15e58aba0ef2..f5e0a19378c1 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, 2.0, -5.5, -2.0 ] + "A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "lda": 3, + "B": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 2.0, 3.0, 0.5, 0.25, 0.0, 0.25, 0.125, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_u.json index 950ae473c42b..f1768fd0c05a 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_u.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "no-transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, 2.0, -11.0, -4.0 ] + "A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 2.0, 4.0, 0.0 ], + [ 3.0, 5.0, 6.0 ] + ], + "lda": 3, + "B": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ], + "B_mat": [ + [ 1.0, 2.0, 3.0 ], + [ 4.0, 5.0, 6.0 ], + [ 7.0, 8.0, 9.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -6.0, -3.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json index 4b5d6e8c22e7..b0b6c6dc0222 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 2.5, -1.0, 0.5, 1.0 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_u.json index b3379e78c653..151c0791fb59 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_u.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 1.0, -4.0, 1.0, 2.0 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json index 11bb66e704ef..7a2124380498 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 2.5, -1.0, 0.5, 1.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_u.json index 2a4c7fa64eb3..fef7c0409b8d 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_u.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "no-transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 1.0, -4.0, 1.0, 2.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json index 874b8d73abd1..1a495d1724b4 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, 2.0, -5.5, -2.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_u.json index efc7936daafa..24784a5b8e7b 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_u.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, 2.0, -11.0, -4.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json index 240ec7824e29..ddf9097bd983 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 1.0, 1.0, -2.0, 1.0 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_u.json index 0eba9dda2d92..ddf9097bd983 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_u.json @@ -3,13 +3,23 @@ "side": "right", "uplo": "lower", "transA": "no-transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ -2.0, 2.0, -5.0, 2.0 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json index feb622a15dfa..ef1ec1635480 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, -5.0, 1.0, -0.5 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_u.json index 83b0f7da521d..ca4bb4b270ac 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_u.json @@ -4,12 +4,22 @@ "uplo": "lower", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 0.0, 3.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, -10.0, 1.0, -1.0 ] + "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], + "A_mat": [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 1.0, 1.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json index 32a2eafbf16c..86ac26291989 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "no-transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 2.0, 0.0, 3.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, -2.0, 1.0, 0.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_u.json index 989769d6a40f..86ac26291989 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_u.json @@ -3,13 +3,23 @@ "side": "right", "uplo": "upper", "transA": "no-transpose", - "diag": "unit", - "M": 2, - "N": 2, + "diag": "non-unit", + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 2.0, 0.0, 3.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 4.0, -6.0, 1.0, 0.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json index 2b86a102e739..b0e913a57267 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "transpose", "diag": "non-unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ 1.0, 1.0, -2.0, 1.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_u.json index 493e0e313e9b..18b5ba2ba7e7 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_u.json @@ -4,12 +4,22 @@ "uplo": "upper", "transA": "transpose", "diag": "unit", - "M": 2, - "N": 2, + "M": 3, + "N": 3, "alpha": 1.0, - "A": [ 1.0, 3.0, 0.0, 2.0 ], - "lda": 2, - "B": [ 4.0, 2.0, 1.0, 2.0 ], - "ldb": 2, - "B_out": [ -2.0, 2.0, -5.0, 2.0 ] + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "A_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ] + ], + "lda": 3, + "B": [ 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 3.0 ], + "B_mat": [ + [ 1.0, 1.0, 1.0 ], + [ 1.0, 2.0, 1.0 ], + [ 1.0, 1.0, 3.0 ] + ], + "ldb": 3, + "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] } From eb001a01a2eb38aea0d08ddc1c15580ddfda6d22 Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Sun, 15 Jun 2025 13:39:48 +0530 Subject: [PATCH 14/19] chore: update implementation --- 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: passed - 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: na - 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: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- lib/node_modules/@stdlib/blas/base/strsm/README.md | 10 +++++----- .../blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json | 2 +- .../base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json | 2 +- .../base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json | 2 +- .../strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json | 2 +- .../strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json | 2 +- .../base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/README.md b/lib/node_modules/@stdlib/blas/base/strsm/README.md index 84c8e2c96c26..3cb080611ae4 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/README.md +++ b/lib/node_modules/@stdlib/blas/base/strsm/README.md @@ -35,7 +35,7 @@ var strsm = require( '@stdlib/blas/base/strsm' ); Solves matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` where `α` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. ```javascript -var Float32Array = require( '@stdlib/array/loat32' ); +var Float32Array = require( '@stdlib/array/float32' ); var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); @@ -64,7 +64,7 @@ Note that indexing is relative to the first index. To introduce an offset, use [ ```javascript -var Float32Array = require( '@stdlib/array/loat32' ); +var Float32Array = require( '@stdlib/array/float32' ); // Initial arrays... var A0 = new Float32Array( [ 0.0, 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); @@ -75,7 +75,7 @@ var A1 = new Float32Array( A0.buffer, A0.BYTES_PER_ELEMENT*1 ); // start at 2nd var B1 = new Float32Array( B0.buffer, B0.BYTES_PER_ELEMENT*1 ); // start at 2nd element strsm( 'row-major', 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A1, 3, B1, 3 ); -// B0 => [ 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] +// B0 => [ 0.0, 1.0, 2.0, 3.0, 2.0, 1.0, 0.0, -7.0, -5.0, -3.0 ] ``` #### strsm.ndarray( s, ul, t, d, M, N, α, A, sa1, sa2, oa, B, sb1, sb2, ob ) @@ -83,7 +83,7 @@ strsm( 'row-major', 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A1, 3, B Solves matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` using alternative indexing semantics and where `α` is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. ```javascript -var Float32Array = require( '@stdlib/array/loat32' ); +var Float32Array = require( '@stdlib/array/float32' ); var A = new Float32Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); var B = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); @@ -115,7 +115,7 @@ While [`typed array`][mdn-typed-array] views mandate a view offset based on the ```javascript -var Float32Array = require( '@stdlib/array/loat32' ); +var Float32Array = require( '@stdlib/array/float32' ); var A = new Float32Array( [ 0.0, 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); var B = new Float32Array( [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json index a9c3863f0d92..25b051f80df8 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_l_l_nta_u.json @@ -24,5 +24,5 @@ "strideB1": 1, "strideB2": 3, "offsetB": 0, - "B_out": [ 1.0, 2.0, -6.0, 2.0, 1.0, -3.0, 0.0, 0.0 ] + "B_out": [ 1.0, 2.0, -6.0, 2.0, 1.0, -3.0, 3.0, 0.0, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json index ef2bd0b9dc47..13eda4dc74a1 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_cb_r_u_nta_nu.json @@ -6,7 +6,7 @@ "M": 3, "N": 3, "alpha": 1.0, - "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], "A_mat": [ [ 1.0, 1.0, 1.0 ], [ 0.0, 1.0, 1.0 ], diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json index 89399595496f..82e87842cc06 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_ob.json @@ -24,5 +24,5 @@ "strideB1": 3, "strideB2": 1, "offsetB": 2, - "B_out": [ 1.0, 2.0, 3.0, 0.5, 0.25, 0.0, 0.25, 0.125, 0.0 ] + "B_out": [ 0.0, 0.0, 1.0, 2.0, 3.0, 0.5, 0.25, 0.0, 0.25, 0.125, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json index 20065a046d93..d8271015a70a 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sa1n_sa2.json @@ -6,7 +6,7 @@ "M": 3, "N": 3, "alpha": 1.0, - "A": [ 3.0, 5.0, 6.0, 999.0, 999.0, 999.0, 2.0, 4.0, 0.0, 999.0, 999.0, 999.0, 3.0, 5.0, 6.0 ], + "A": [ 3.0, 5.0, 6.0, 999.0, 999.0, 999.0, 2.0, 4.0, 0.0, 999.0, 999.0, 999.0, 1.0, 0.0, 0.0 ], "A_mat": [ [ 1.0, 0.0, 0.0 ], [ 2.0, 4.0, 0.0 ], diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json index c09b9152e9f4..edef2db54355 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_l_l_nta_nu_sb1n_sb2.json @@ -15,7 +15,7 @@ "strideA1": 3, "strideA2": 1, "offsetA": 0, - "B": [ 7.0, 8.0, 9.0, 999.0, 999.0, 999.0, 4.0, 5.0, 6.0, 999.0, 999.0, 999.0, 7.0, 8.0, 9.0 ], + "B": [ 7.0, 8.0, 9.0, 999.0, 999.0, 999.0, 4.0, 5.0, 6.0, 999.0, 999.0, 999.0, 1.0, 2.0, 3.0 ], "B_mat": [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ], diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json index adaeee6ad96e..3d01ccddf9a0 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/ra_rb_r_u_nta_nu.json @@ -6,7 +6,7 @@ "M": 3, "N": 3, "alpha": 1.0, - "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0 ], + "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], "A_mat": [ [ 1.0, 1.0, 1.0 ], [ 0.0, 1.0, 1.0 ], From 04b2529067103aeb7793e49905d4833815dfa747 Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Sun, 15 Jun 2025 16:35:36 +0530 Subject: [PATCH 15/19] chore: update test cases --- 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: na - 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: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json | 4 ++-- .../blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json | 4 ++-- .../blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json | 4 ++-- .../blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json | 4 ++-- .../blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json | 4 ++-- .../blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json | 4 ++-- .../blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json | 4 ++-- .../blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json index f5e0a19378c1..26f38eb16d71 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_nta_nu.json @@ -6,7 +6,7 @@ "diag": "non-unit", "M": 3, "N": 3, - "alpha": 1.0, + "alpha": 2.0, "A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ], "A_mat": [ [ 1.0, 0.0, 0.0 ], @@ -21,5 +21,5 @@ [ 7.0, 8.0, 9.0 ] ], "ldb": 3, - "B_out": [ 1.0, 2.0, 3.0, 0.5, 0.25, 0.0, 0.25, 0.125, 0.0 ] + "B_out": [ 2.0, 4.0, 6.0, 1.0, 0.5, 0.0, 0.5, 0.25, 0.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json index b0b6c6dc0222..3d236debe33b 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_l_ta_nu.json @@ -6,7 +6,7 @@ "diag": "non-unit", "M": 3, "N": 3, - "alpha": 1.0, + "alpha": 2.0, "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], "A_mat": [ [ 1.0, 0.0, 0.0 ], @@ -21,5 +21,5 @@ [ 1.0, 1.0, 3.0 ] ], "ldb": 3, - "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] + "B_out": [ 0.0, -2.0, 0.0, 0.0, 2.0, -4.0, 2.0, 2.0, 6.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json index 7a2124380498..643c210b672f 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_nta_nu.json @@ -6,7 +6,7 @@ "diag": "non-unit", "M": 3, "N": 3, - "alpha": 1.0, + "alpha": 2.0, "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], "A_mat": [ [ 1.0, 1.0, 1.0 ], @@ -21,5 +21,5 @@ [ 1.0, 1.0, 3.0 ] ], "ldb": 3, - "B_out": [ 0.0, -1.0, 0.0, 0.0, 1.0, -2.0, 1.0, 1.0, 3.0 ] + "B_out": [ 0.0, -2.0, 0.0, 0.0, 2.0, -4.0, 2.0, 2.0, 6.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json index 1a495d1724b4..aa82c5ea73a3 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_l_u_ta_nu.json @@ -6,7 +6,7 @@ "diag": "non-unit", "M": 3, "N": 3, - "alpha": 1.0, + "alpha": 2.0, "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], "A_mat": [ [ 1.0, 1.0, 1.0 ], @@ -21,5 +21,5 @@ [ 1.0, 1.0, 3.0 ] ], "ldb": 3, - "B_out": [ 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 2.0 ] + "B_out": [ 2.0, 2.0, 2.0, 0.0, 2.0, 0.0, 0.0, -2.0, 4.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json index ddf9097bd983..ad3770fe1fd2 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_nta_nu.json @@ -6,7 +6,7 @@ "diag": "non-unit", "M": 3, "N": 3, - "alpha": 1.0, + "alpha": 2.0, "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], "A_mat": [ [ 1.0, 0.0, 0.0 ], @@ -21,5 +21,5 @@ [ 1.0, 1.0, 3.0 ] ], "ldb": 3, - "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] + "B_out": [ 0.0, 0.0, 2.0, -2.0, 2.0, 2.0, 0.0, -4.0, 6.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json index ef1ec1635480..c4c1416831dd 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_l_ta_nu.json @@ -6,7 +6,7 @@ "diag": "non-unit", "M": 3, "N": 3, - "alpha": 1.0, + "alpha": 2.0, "A": [ 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0 ], "A_mat": [ [ 1.0, 0.0, 0.0 ], @@ -21,5 +21,5 @@ [ 1.0, 1.0, 3.0 ] ], "ldb": 3, - "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] + "B_out": [ 2.0, 0.0, 0.0, 2.0, 2.0, -2.0, 2.0, 0.0, 4.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json index 86ac26291989..5ded0b15e373 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_nta_nu.json @@ -6,7 +6,7 @@ "diag": "non-unit", "M": 3, "N": 3, - "alpha": 1.0, + "alpha": 2.0, "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], "A_mat": [ [ 1.0, 1.0, 1.0 ], @@ -21,5 +21,5 @@ [ 1.0, 1.0, 3.0 ] ], "ldb": 3, - "B_out": [ 1.0, 0.0, 0.0, 1.0, 1.0, -1.0, 1.0, 0.0, 2.0 ] + "B_out": [ 2.0, 0.0, 0.0, 2.0, 2.0, -2.0, 2.0, 0.0, 4.0 ] } diff --git a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json index b0e913a57267..85680a948046 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/test/fixtures/row_major_r_u_ta_nu.json @@ -6,7 +6,7 @@ "diag": "non-unit", "M": 3, "N": 3, - "alpha": 1.0, + "alpha": 2.0, "A": [ 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], "A_mat": [ [ 1.0, 1.0, 1.0 ], @@ -21,5 +21,5 @@ [ 1.0, 1.0, 3.0 ] ], "ldb": 3, - "B_out": [ 0.0, 0.0, 1.0, -1.0, 1.0, 1.0, 0.0, -2.0, 3.0 ] + "B_out": [ 0.0, 0.0, 2.0, -2.0, 2.0, 2.0, 0.0, -4.0, 6.0 ] } From 062240396072e203e9e8f1d88c40cb235029e000 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Sun, 15 Jun 2025 18:23:31 +0530 Subject: [PATCH 16/19] chore: minor clean-up Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js index da98228752c5..6528748f1acf 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js @@ -82,7 +82,7 @@ function strsm( order, side, uplo, transa, diag, M, N, alpha, A, LDA, B, LDB ) { throw new TypeError( format( 'invalid argument. Second argument must be a valid side. Value: `%s`.', side ) ); } if ( !isMatrixTriangle( uplo ) ) { - throw new TypeError( format( 'invalid argument. Thirds argument must specify whether the lower or upper triangular matrix is supplied. Value: `%s`.', uplo ) ); + throw new TypeError( format( 'invalid argument. Third argument must specify whether the lower or upper triangular matrix is supplied. Value: `%s`.', uplo ) ); } if ( !isTransposeOperation( transa ) ) { throw new TypeError( format( 'invalid argument. Fourth argument must specify correct transpose operation. Value: `%s`.', transa ) ); From 0c5e3a5defc609c875c669ef35d0610f56bdc30f Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Sun, 15 Jun 2025 19:01:43 +0530 Subject: [PATCH 17/19] chore: add repl --- 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: passed - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - 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: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/blas/base/strsm/docs/repl.txt | 151 ++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 lib/node_modules/@stdlib/blas/base/strsm/docs/repl.txt diff --git a/lib/node_modules/@stdlib/blas/base/strsm/docs/repl.txt b/lib/node_modules/@stdlib/blas/base/strsm/docs/repl.txt new file mode 100644 index 000000000000..7f7a77e35bff --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strsm/docs/repl.txt @@ -0,0 +1,151 @@ + +{{alias}}( ord, side, uplo, transa, diag, M, N, α, A, lda, B, ldb ) + Solves matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` where `α` + is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or + non-unit, upper or lower triangular matrix and `op(A)` is one of + `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`. + + Indexing is relative to the first index. To introduce an offset, use typed + array views. + + If `M` or `N` is equal to `0`, the function returns `B` unchanged. + + If `α` equals `0`, returns `B` filled with zeros. + + Parameters + ---------- + ord: string + Row-major (C-style) or column-major (Fortran-style) order. Must be + either 'row-major' or 'column-major'. + + side: string + Specifies whether `op( A )` multiplies `B` from the left or right. + + uplo: string + Specifies whether `A` is an upper or lower triangular matrix. + + transa: string + Specifies whether `A` should be transposed, conjugate-transposed, or + not transposed. + + diag: string + Specifies whether `A` has a unit diagonal. + + M: integer + Number of rows of `B`. + + N: integer + Number of columns of `B`. + + α: number + Scalar constant. + + A: Float32Array + Input matrix. + + lda: integer + Stride of the first dimension of `A` (a.k.a., leading dimension of the + matrix `A`). + + B: Float32Array + Second matrix. + + ldb: integer + Stride of the first dimension of `B` (a.k.a., leading dimension of the + matrix `B`). + + Returns + ------- + B: Float32Array + Second matrix. + + Examples + -------- + > var A = new {{alias:@stdlib/array/float32}}( [ 1.0, 0.0, 2.0, 3.0 ] ); + > var B = new {{alias:@stdlib/array/float32}}( [ 1.0, 2.0, 3.0, 4.0 ] ); + > var ord = 'row-major'; + > var side = 'left'; + > var uplo = 'lower'; + > var transa = 'no-transpose'; + > var diag = 'unit'; + > {{alias}}( ord, side, uplo, transa, diag, 2, 2, 1.0, A, 2, B, 2 ) + [ 1.0, 2.0, 1.0, 0.0 ] + + +{{alias}}.ndarray(side,uplo,transa,diag,M,N,α,A,sa1,sa2,oa,B,sb1,sb2,ob) + Solves matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` where `α` + is a scalar, `X` and `B` are `M` by `N` matrices, `A` is a unit, or + non-unit, upper or lower triangular matrix and `op(A)` is one of + `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B` using + alternative indexing semantics. + + While typed array views mandate a view offset based on the underlying + buffer, the offset parameters support indexing semantics based on starting + indices. + + Parameters + ---------- + side: string + Specifies whether `op( A )` multiplies `B` from the left or right. + + uplo: string + Specifies whether `A` is an upper or lower triangular matrix. + + transa: string + Specifies whether `A` should be transposed, conjugate-transposed, or + not transposed. + + diag: string + Specifies whether `A` has a unit diagonal. + + M: integer + Number of rows of `B`. + + N: integer + Number of columns of `B`. + + α: number + Scalar constant. + + A: Float32Array + Input matrix. + + sa1: integer + Stride of the first dimension of `A`. + + sa2: integer + Stride of the second dimension of `A`. + + oa: integer + Starting index for `A`. + + B: Float32Array + Second matrix. + + sb1: integer + Stride of the first dimension of `B`. + + sb2: integer + Stride of the second dimension of `B`. + + ob: integer + Starting index for `B`. + + Returns + ------- + B: Float32Array + Second matrix. + + Examples + -------- + > var A = new {{alias:@stdlib/array/float32}}( [ 1.0, 0.0, 2.0, 3.0 ] ); + > var B = new {{alias:@stdlib/array/float32}}( [ 1.0, 2.0, 3.0, 4.0 ] ); + > var side = 'left'; + > var uplo = 'lower'; + > var transa = 'no-transpose'; + > var diag = 'unit'; + > {{alias}}.ndarray(side,uplo,transa,diag,2,2,1.0,A,2,1,0,B,2,1,0) + [ 1.0, 2.0, 1.0, 0.0 ] + + See Also + -------- From c1a30dff9b09a8da1e8fc34d059abcea7b3f1e36 Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Sun, 15 Jun 2025 21:00:15 +0530 Subject: [PATCH 18/19] chore: clean-up --- 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: passed - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - 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/strsm/docs/repl.txt | 12 ++++++------ .../@stdlib/blas/base/strsm/docs/types/index.d.ts | 6 +++--- lib/node_modules/@stdlib/blas/base/strsm/lib/base.js | 2 +- .../@stdlib/blas/base/strsm/lib/ndarray.js | 2 +- .../@stdlib/blas/base/strsm/lib/strsm.js | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/docs/repl.txt b/lib/node_modules/@stdlib/blas/base/strsm/docs/repl.txt index 7f7a77e35bff..cadf4a9aa14e 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/docs/repl.txt +++ b/lib/node_modules/@stdlib/blas/base/strsm/docs/repl.txt @@ -19,14 +19,14 @@ either 'row-major' or 'column-major'. side: string - Specifies whether `op( A )` multiplies `B` from the left or right. + Specifies whether `op( A )` appears on the left or right of `X`. uplo: string Specifies whether `A` is an upper or lower triangular matrix. transa: string - Specifies whether `A` should be transposed, conjugate-transposed, or - not transposed. + Specifies whether `op( A )` should be transposed, conjugate-transposed, + or not transposed. diag: string Specifies whether `A` has a unit diagonal. @@ -86,14 +86,14 @@ Parameters ---------- side: string - Specifies whether `op( A )` multiplies `B` from the left or right. + Specifies whether `op( A )` appears on the left or right of `X`. uplo: string Specifies whether `A` is an upper or lower triangular matrix. transa: string - Specifies whether `A` should be transposed, conjugate-transposed, or - not transposed. + Specifies whether `op( A )` should be transposed, conjugate-transposed, + or not transposed. diag: string Specifies whether `A` has a unit diagonal. diff --git a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts index 27dbd757dbba..00e9f14c4d45 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/blas/base/strsm/docs/types/index.d.ts @@ -32,7 +32,7 @@ interface Routine { * @param order - storage layout of `A` and `B` * @param side - specifies whether `op( A )` appears on the left or right of `X` * @param uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied - * @param transa - specifies the form of `op( A )` to be used in matrix multiplication + * @param transa - specifies whether `op( A )` should be transposed, conjugate-transposed, or not transposed * @param diag - specifies whether or not `A` is unit triangular * @param M - number of rows in `B` * @param N - number of columns in `B` @@ -59,7 +59,7 @@ interface Routine { * * @param side - specifies whether `op( A )` appears on the left or right of `X` * @param uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied - * @param transa - specifies the form of `op( A )` to be used in matrix multiplication + * @param transa - specifies whether `op( A )` should be transposed, conjugate-transposed, or not transposed * @param diag - specifies whether or not `A` is unit triangular * @param M - number of rows in `B` * @param N - number of columns in `B` @@ -92,7 +92,7 @@ interface Routine { * @param order - storage layout of `A` and `B` * @param side - specifies whether `op( A )` appears on the left or right of `X` * @param uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied -* @param transa - specifies the form of `op( A )` to be used in matrix multiplication +* @param transa - specifies whether `op( A )` should be transposed, conjugate-transposed, or not transposed * @param diag - specifies whether or not `A` is unit triangular * @param M - number of rows in `B` * @param N - number of columns in `B` diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js index 3347a5baf7ae..1f5436423e95 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/base.js @@ -98,7 +98,7 @@ function zeros( M, N, X, strideX1, strideX2, offsetX ) { // TODO: consider movin * @private * @param {string} side - specifies whether `op( A )` appears on the left or right of `X` * @param {string} uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied -* @param {string} transa - specifies the form of `op( A )` to be used in matrix multiplication +* @param {string} transa - specifies whether `op( A )` should be transposed, conjugate-transposed, or not transposed * @param {string} diag - specifies whether or not `A` is unit triangular * @param {NonNegativeInteger} M - number of rows in `B` * @param {NonNegativeInteger} N - number of columns in `B` diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js index 3789144dffb2..38682295e1ad 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/ndarray.js @@ -35,7 +35,7 @@ var base = require( './base.js' ); * * @param {string} side - specifies whether `op( A )` appears on the left or right of `X` * @param {string} uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied -* @param {string} transa - specifies the form of `op( A )` to be used in matrix multiplication +* @param {string} transa - specifies whether `op( A )` should be transposed, conjugate-transposed, or not transposed * @param {string} diag - specifies whether or not `A` is unit triangular * @param {NonNegativeInteger} M - number of rows in `B` * @param {NonNegativeInteger} N - number of columns in `B` diff --git a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js index 6528748f1acf..8fe4efe61b9f 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js +++ b/lib/node_modules/@stdlib/blas/base/strsm/lib/strsm.js @@ -39,7 +39,7 @@ var base = require( './base.js' ); * @param {string} order - storage layout of `A` and `B` * @param {string} side - specifies whether `op( A )` appears on the left or right of `X` * @param {string} uplo - specifies whether the upper or lower triangular part of the matrix `A` is supplied -* @param {string} transa - specifies the form of `op( A )` to be used in matrix multiplication +* @param {string} transa - specifies whether `op( A )` should be transposed, conjugate-transposed, or not transposed * @param {string} diag - specifies whether or not `A` is unit triangular * @param {NonNegativeInteger} M - number of rows in `B` * @param {NonNegativeInteger} N - number of columns in `B` From 18a36ba24299edf22428c2b5e136841140c9c0b1 Mon Sep 17 00:00:00 2001 From: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> Date: Thu, 19 Jun 2025 10:23:35 +0530 Subject: [PATCH 19/19] chore: minor clean-up Signed-off-by: Shabareesh Shetty <139731143+ShabiShett07@users.noreply.github.com> --- lib/node_modules/@stdlib/blas/base/strsm/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/blas/base/strsm/package.json b/lib/node_modules/@stdlib/blas/base/strsm/package.json index d1176a9eab30..fbd9fe1d649e 100644 --- a/lib/node_modules/@stdlib/blas/base/strsm/package.json +++ b/lib/node_modules/@stdlib/blas/base/strsm/package.json @@ -1,7 +1,7 @@ { "name": "@stdlib/blas/base/strsm", "version": "0.0.0", - "description": "Solve matrix equation `op(A) * X = alpha * B` or `X * op(A) = alpha * B` where `alpha` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`.", + "description": "Solve matrix equation `op(A) * X = α * B` or `X * op(A) = α * B` where `α` is a scalar, `X` and `B` are `m` by `n` matrices, `A` is a unit, or non-unit, upper or lower triangular matrix and `op(A)` is one of `op(A) = A` or `op(A) = A^T`. The matrix `X` is overwritten on `B`.", "license": "Apache-2.0", "author": { "name": "The Stdlib Authors",