diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/README.md b/lib/node_modules/@stdlib/lapack/base/dlarfb/README.md new file mode 100644 index 000000000000..b1c3b6f7b71c --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/README.md @@ -0,0 +1,270 @@ + + +# dlarfb + +> LAPACK routine to apply a real block reflector `H` or its transpose `H ^ T` to a real `M` by `N` matrix `C`, from either the left or the right. + +
+ +## Usage + +```javascript +var dlarfb = require( '@stdlib/lapack/base/dlarfb' ); +``` + + + +#### dlarfb( order, side, trans, direct, storev, M, N, K, V, LDV, T, LDT, C, LDC, work, LDWORK ) + +Applies a real block reflector `H` or its transpose `H ^ T` to a real `M` by `N` matrix `C`, from either the left or the right. + + + +```javascript +var Float64Array = require( '@stdlib/array/float64' ); + +var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +var work = new Float64Array( 9 ); + +dlarfb( 'row-major', 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); +// C => [ -1350.00, -1400.00, -1450.00, -30961.00, -32102.00, -33243.00, -266612.00, -275464.00, -284316.00 ] +``` + +The function has the following parameters: + +- **order**: storage layout (`'row-major'` or `'column-major'`). +- **side**: specifies whether `H` or `H ^ T` is applied from the left or right (`'left'` or `'right'`). +- **trans**: specifies whether to apply `H` or `H ^ T` (`'no-transpose'` or `'transpose'`). +- **direct**: indicates how `H` is formed from a product of elementary reflectors (`'forward'` or `'backward'`). +- **storev**: indicates how the vectors which define the elementary reflectors are stored (`'column-major'` or `'row-major'`). +- **M**: number of rows of the matrix `C`. +- **N**: number of columns of the matrix `C`. +- **K**: order of the matrix `T`. +- **V**: input matrix stored as a [`Float64Array`][mdn-float64array]. +- **LDV**: leading dimension of `V`. +- **T**: input matrix (upper/lower triangular as dictated by `direct`/`storev`) stored as a [`Float64Array`][mdn-float64array]. +- **LDT**: leading dimension of `T` (must be ≥ max(1,K)). +- **C**: input/output matrix stored as a [`Float64Array`][mdn-float64array]. +- **LDC**: leading dimension of `C`. +- **work**: work array stored as a [`Float64Array`][mdn-float64array]. +- **LDWORK**: leading dimension of `work`. + +The function applies the block reflector `H` to matrix `C` according to the specified parameters. The `side` parameter determines whether the transformation is applied from the left (`C = H*C` or `C = H^T*C`) or from the right (`C = C*H` or `C = C*H^T`). + +#### dlarfb.ndarray( side, trans, direct, storev, M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork ) + +Applies a real block reflector `H` or its transpose `H ^ T` to a real `M` by `N` matrix `C`, from either the left or the right, using alternative indexing semantics. + + + +```javascript +var Float64Array = require( '@stdlib/array/float64' ); + +var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +var work = new Float64Array( 9 ); + +dlarfb.ndarray( 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); +// C => [ -1350.00, -1400.00, -1450.00, -30961.00, -32102.00, -33243.00, -266612.00, -275464.00, -284316.00 ] +``` + +The function has the following additional parameters: + +- **side**: specifies whether `H` or `H ^ T` is applied from the left or right (`'left'` or `'right'`). +- **trans**: specifies whether to apply `H` or `H ^ T` (`'no-transpose'` or `'transpose'`). +- **direct**: indicates how `H` is formed from a product of elementary reflectors (`'forward'` or `'backward'`). +- **storev**: indicates how the vectors which define the elementary reflectors are stored (`'columns'` or `'rows'`). +- **M**: number of rows of the matrix `C`. +- **N**: number of columns of the matrix `C`. +- **K**: order of the matrix `T`. +- **V**: input matrix stored as a [`Float64Array`][mdn-float64array]. +- **strideV1**: stride of the first dimension of `V`. +- **strideV2**: stride of the second dimension of `V`. +- **offsetV**: index offset for `V`. +- **T**: input matrix stored as a [`Float64Array`][mdn-float64array]. +- **strideT1**: stride of the first dimension of `T`. +- **strideT2**: stride of the second dimension of `T`. +- **offsetT**: index offset for `T`. +- **C**: input/output matrix stored as a [`Float64Array`][mdn-float64array]. +- **strideC1**: stride of the first dimension of `C`. +- **strideC2**: stride of the second dimension of `C`. +- **offsetC**: index offset for `C`. +- **work**: work array stored as a [`Float64Array`][mdn-float64array]. +- **strideWork1**: stride of the first dimension of `work`. +- **strideWork2**: stride of the second dimension of `work`. +- **offsetWork**: index offset for `work`. + +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. + +
+ + + +
+ +## Notes + +- Both functions apply the block reflector `H` to matrix `C` according to the specified parameters. +- The `side` parameter determines whether the transformation is applied from the left or right. +- The `trans` parameter determines whether to apply `H` or its transpose `H^T`. +- The `direct` parameter indicates the order in which elementary reflectors are applied. +- The `storev` parameter indicates how the elementary reflector vectors are stored. +- `dlarfb()` corresponds to the [LAPACK][LAPACK] function [`dlarfb`][lapack-dlarfb]. + +
+ + + +
+ +## Examples + + + + + +```javascript +var Float64Array = require( '@stdlib/array/float64' ); +var ndarray2array = require( '@stdlib/ndarray/base/to-array' ); +var dlarfb = require( '@stdlib/lapack/base/dlarfb' ); + +// Specify matrix meta data: +var shape = [ 3, 3 ]; +var strides = [ 1, 3 ]; +var offset = 0; +var order = 'row-major'; + +// Create matrices stored in linear memory: +var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +var work = new Float64Array( 9 ); + +console.log( 'Original matrix C:' ); +console.log( ndarray2array( C, shape, strides, offset, order ) ); + +// Apply block reflector from the left: +dlarfb( order, 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); + +console.log( 'Matrix C after applying block reflector:' ); +console.log( ndarray2array( C, shape, strides, offset, order ) ); +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +TODO +``` + +#### TODO + +TODO. + +```c +TODO +``` + +TODO + +```c +TODO +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +TODO +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/benchmark/benchmark.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/benchmark/benchmark.js new file mode 100644 index 000000000000..25563fcbc442 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/benchmark/benchmark.js @@ -0,0 +1,167 @@ +/** +* @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 isnan = require( '@stdlib/math/base/assert/is-nan' ); +var pow = require( '@stdlib/math/base/special/pow' ); +var floor = require( '@stdlib/math/base/special/floor' ); +var Float64Array = require( '@stdlib/array/float64' ); +var pkg = require( './../package.json' ).name; +var dlarfb = require( './../lib/dlarfb.js' ); + + +// VARIABLES // + +var LAYOUTS = [ + 'row-major', + 'column-major' +]; +var SIDES = [ + 'left', + 'right' +]; +var TRANS = [ + 'no-transpose', + 'transpose' +]; +var DIRECTS = [ + 'forward', + 'backward' +]; +var STOREVS = [ + 'columns', + 'rows' +]; + + +// FUNCTIONS // + +/** +* Creates a benchmark function. +* +* @private +* @param {string} order - storage layout +* @param {string} side - operation side +* @param {string} trans - transpose operation +* @param {string} direct - direction +* @param {string} storev - storage format +* @param {PositiveInteger} N - number of columns +* @returns {Function} benchmark function +*/ +function createBenchmark( order, side, trans, direct, storev, N ) { + var work; + var V; + var T; + var C; + + V = uniform( N*N, 0.0001, 0.001, { + 'dtype': 'float64' + }); + T = uniform( N*N, 0.0001, 0.001, { + 'dtype': 'float64' + }); + C = uniform( N*N, 0.0001, 0.001, { + 'dtype': 'float64' + }); + work = new Float64Array( N*N ); + + 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 = dlarfb( order, side, trans, direct, storev, N, N, N, V, N, T, N, C, N, work, N ); // eslint-disable-line max-len + if ( isnan( z[ i%z.length ] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( z[ i%z.length ] ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); + } +} + + +// MAIN // + +/** +* Main execution sequence. +* +* @private +*/ +function main() { + var storev; + var direct; + var trans; + var side; + var min; + var max; + var ord; + var N; + var f; + var i; + var j; + var k; + var l; + var m; + var n; + + min = 1; // 10^min + max = 3; // 10^max + + for ( k = 0; k < LAYOUTS.length; k++ ) { + ord = LAYOUTS[ k ]; + for ( l = 0; l < SIDES.length; l++ ) { + side = SIDES[ l ]; + for ( m = 0; m < TRANS.length; m++ ) { + trans = TRANS[ m ]; + for ( n = 0; n < DIRECTS.length; n++ ) { + direct = DIRECTS[ n ]; + for ( i = min; i <= max; i++ ) { + N = floor( pow( pow( 10, i ), 1.0/2.0 ) ); + + for ( j = 0; j < STOREVS.length; j++ ) { // eslint-disable-line max-depth + storev = STOREVS[ j ]; + f = createBenchmark( ord, side, trans, direct, storev, N ); // eslint-disable-line max-len + bench( pkg+'::matrix:order='+ord+',side='+side+',trans='+trans+',direct='+direct+',storev='+storev+',N='+N+',size='+(N*N), f ); + } + } + } + } + } + } +} + +main(); diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/benchmark/benchmark.ndarray.js new file mode 100644 index 000000000000..586fdd2c83bc --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/benchmark/benchmark.ndarray.js @@ -0,0 +1,196 @@ +/** +* @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 isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major-string' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var pow = require( '@stdlib/math/base/special/pow' ); +var floor = require( '@stdlib/math/base/special/floor' ); +var Float64Array = require( '@stdlib/array/float64' ); +var pkg = require( './../package.json' ).name; +var dlarfb = require( './../lib/ndarray.js' ); + + +// VARIABLES // + +var LAYOUTS = [ + 'row-major', + 'column-major' +]; +var SIDES = [ + 'left', + 'right' +]; +var TRANS = [ + 'no-transpose', + 'transpose' +]; +var DIRECTS = [ + 'forward', + 'backward' +]; +var STOREVS = [ + 'columns', + 'rows' +]; + + +// FUNCTIONS // + +/** +* Creates a benchmark function. +* +* @private +* @param {string} order - storage layout +* @param {string} side - operation side +* @param {string} trans - transpose operation +* @param {string} direct - direction +* @param {string} storev - storage format +* @param {PositiveInteger} N - number of columns +* @returns {Function} benchmark function +*/ +function createBenchmark( order, side, trans, direct, storev, N ) { + var work; + var sv1; + var sv2; + var st1; + var st2; + var sc1; + var sc2; + var sw1; + var sw2; + var V; + var T; + var C; + + V = uniform( N*N, 0.0001, 0.001, { + 'dtype': 'float64' + }); + T = uniform( N*N, 0.0001, 0.001, { + 'dtype': 'float64' + }); + C = uniform( N*N, 0.0001, 0.001, { + 'dtype': 'float64' + }); + work = new Float64Array( N*N ); + + if ( isColumnMajor( order ) ) { + sv1 = 1; + sv2 = N; + st1 = 1; + st2 = N; + sc1 = 1; + sc2 = N; + sw1 = 1; + sw2 = N; + } else { + sv1 = N; + sv2 = 1; + st1 = N; + st2 = 1; + sc1 = N; + sc2 = 1; + sw1 = N; + sw2 = 1; + } + + 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 = dlarfb( side, trans, direct, storev, N, N, N, V, sv1, sv2, 0, T, st1, st2, 0, C, sc1, sc2, 0, work, sw1, sw2, 0 ); // eslint-disable-line max-len + if ( isnan( z[ i%z.length ] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( z[ i%z.length ] ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); + } +} + + +// MAIN // + +/** +* Main execution sequence. +* +* @private +*/ +function main() { + var direct; + var storev; + var trans; + var side; + var min; + var max; + var ord; + var f; + var i; + var j; + var k; + var l; + var m; + var n; + var N; + + min = 1; // 10^min + max = 3; // 10^max + + for ( k = 0; k < LAYOUTS.length; k++ ) { + ord = LAYOUTS[ k ]; + for ( l = 0; l < SIDES.length; l++ ) { + side = SIDES[ l ]; + for ( m = 0; m < TRANS.length; m++ ) { + trans = TRANS[ m ]; + for ( n = 0; n < DIRECTS.length; n++ ) { + direct = DIRECTS[ n ]; + for ( i = min; i <= max; i++ ) { + N = floor( pow( pow( 10, i ), 1.0/2.0 ) ); + + for ( j = 0; j < STOREVS.length; j++ ) { // eslint-disable-line max-depth + storev = STOREVS[ j ]; + f = createBenchmark( ord, side, trans, direct, storev, N ); // eslint-disable-line max-len + bench( pkg+'::matrix:ndarray:order='+ord+',side='+side+',trans='+trans+',direct='+direct+',storev='+storev+',N='+N+',size='+(N*N), f ); + } + } + } + } + } + } +} + +main(); diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/docs/repl.txt b/lib/node_modules/@stdlib/lapack/base/dlarfb/docs/repl.txt new file mode 100644 index 000000000000..a7d26b5594b4 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/docs/repl.txt @@ -0,0 +1,192 @@ +{{alias}}( o, si, tr, dir, sto, M, N, K, V, LDV, T, LDT, C, LDC, W, LDWORK ) + Applies a real block reflector `H` or its transpose `H ^ T` to a real `M` by + `N` matrix `C`, from either the left or the right. + + Indexing is relative to the first index. To introduce an offset, use typed + array views. + + The function applies the block reflector `H` to matrix `C` according to the + specified parameters. The `si` parameter determines whether the + transformation is applied from the left (`C = H*C` or `C = H^T*C`) or from + the right (`C = C*H` or `C = C*H^T`). + + Parameters + ---------- + o: string + Row-major (C-style) or column-major (Fortran-style) order. Must be + either 'row-major' or 'column-major'. + + si: string + Specifies whether `H` or `H ^ T` is applied from the left or right. + Must be either 'left' or 'right'. + + tr: string + Specifies whether to apply `H` or `H ^ T`. Must be either + 'no-transpose' or 'transpose'. + + dir: string + Indicates how `H` is formed from a product of elementary reflectors. + Must be either 'forward' or 'backward'. + + sto: string + Indicates how the vectors which define the elementary reflectors are + stored. Must be either 'columns' or 'rows'. + + M: integer + Number of rows of the matrix `C`. + + N: integer + Number of columns of the matrix `C`. + + K: integer + Order of the matrix `T`. + + V: Float64Array + Input matrix. + + LDV: integer + Leading dimension of `V`. + + T: Float64Array + Input matrix (upper/lower triangular as dictated by `dir`/`sto`). + + LDT: integer + Leading dimension of `T`. + + C: Float64Array + Input/output matrix. + + LDC: integer + Leading dimension of `C`. + + W: Float64Array + Work array. + + LDWORK: integer + Leading dimension of `W`. + + Returns + ------- + C: Float64Array + Updated matrix `C`. + + Examples + -------- + > var V = new {{alias:@stdlib/array/float64}}( [ 10.0, 40.0, 70.0, 20.0 ] ); + > var T = new {{alias:@stdlib/array/float64}}( [ 1.0, 0.0, 0.0, 2.0 ] ); + > var C = new {{alias:@stdlib/array/float64}}( [ 11.0, 12.0, 13.0, 21.0 ] ); + > var W = new {{alias:@stdlib/array/float64}}( 4 ); + > var o = 'row-major'; + > var si = 'left'; + > var tr = 'transpose'; + > var dir = 'forward'; + > var sto = 'columns'; + > {{alias}}( o, si, tr, dir, sto, 2, 2, 2, V, 2, T, 2, C, 2, W, 2 ) + [ -910.0, -1470.0, -64483.0, -103761.0 ] + + +{{alias}}.ndarray(si,tr,dir,sto,M,N,K,V,sv1,sv2,ov,T,st1,st2,ot,C,sc1,sc2,oc,W,sw1,sw2,ow) + Applies a real block reflector `H` or its transpose `H ^ T` to a real `M` by + `N` matrix `C`, from either the left or the right, 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 + ---------- + si: string + Specifies whether `H` or `H ^ T` is applied from the left or right. + Must be either 'left' or 'right'. + + tr: string + Specifies whether to apply `H` or `H ^ T`. Must be either + 'no-transpose' or 'transpose'. + + dir: string + Indicates how `H` is formed from a product of elementary reflectors. + Must be either 'forward' or 'backward'. + + sto: string + Indicates how the vectors which define the elementary reflectors are + stored. Must be either 'columns' or 'rows'. + + M: integer + Number of rows of the matrix `C`. + + N: integer + Number of columns of the matrix `C`. + + K: integer + Order of the matrix `T`. + + V: Float64Array + Input matrix. + + sv1: integer + Stride of the first dimension of `V`. + + sv2: integer + Stride of the second dimension of `V`. + + ov: integer + Index offset for `V`. + + T: Float64Array + Input matrix. + + st1: integer + Stride of the first dimension of `T`. + + st2: integer + Stride of the second dimension of `T`. + + ot: integer + Index offset for `T`. + + C: Float64Array + Input/output matrix. + + sc1: integer + Stride of the first dimension of `C`. + + sc2: integer + Stride of the second dimension of `C`. + + oc: integer + Index offset for `C`. + + W: Float64Array + Work array. + + sw1: integer + Stride of the first dimension of `W`. + + sw2: integer + Stride of the second dimension of `W`. + + ow: integer + Index offset for `W`. + + Returns + ------- + C: Float64Array + Updated matrix `C`. + + Examples + -------- + > var V = new {{alias:@stdlib/array/float64}}( [ 10.0, 40.0, 70.0, 20.0 ] ); + > var T = new {{alias:@stdlib/array/float64}}( [ 1.0, 0.0, 0.0, 2.0 ] ); + > var C = new {{alias:@stdlib/array/float64}}( [ 11.0, 12.0, 13.0, 21.0 ] ); + > var W = new {{alias:@stdlib/array/float64}}( 4 ); + > var o = 'row-major'; + > var si = 'left'; + > var tr = 'transpose'; + > var dir = 'forward'; + > var sto = 'columns'; + > {{alias}}.ndarray(si,tr,dir,sto,2,2,2, V,2,1,0, T,2,1,0, C,2,1,0, W,2,1,0) + [ -910.0, -1470.0, -64483.0, -103761.0 ] + + See Also + -------- diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/docs/types/index.d.ts b/lib/node_modules/@stdlib/lapack/base/dlarfb/docs/types/index.d.ts new file mode 100644 index 000000000000..a732fb96b53d --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/docs/types/index.d.ts @@ -0,0 +1,169 @@ +/* +* @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. +*/ + +// TypeScript Version: 4.1 + +/// + +import { Layout, TransposeOperation, OperationSide, MatrixOrientation } from '@stdlib/types/blas'; + +/** +* Direction indicator. +* +* ## Notes +* +* The direction indicator specifies how `H` is formed from a product of elementary reflectors: +* +* - `'forward'` - `H = H(1) H(2) ... H(k)` +* - `'backward'` - `H = H(k) ... H(2) H(1)` +*/ +type Direction = 'forward' | 'backward'; + +/** +* Interface describing `dlarfb`. +*/ +interface Routine { + /** + * Applies a real block reflector `H` or its transpose `H ^ T` to a real `M` by `N` matrix `C`, from either the left or the right. + * + * @param order - storage layout + * @param side - specifies whether `H` or `H ^ T` is applied from the left or right + * @param trans - specifies whether to apply `H` or `H ^ T` + * @param direct - indicates how `H` is formed from a product of elementary reflectors + * @param storev - indicates how the vectors which define the elementary reflectors are stored + * @param M - number of rows of the matrix `C` + * @param N - number of columns of the matrix `C` + * @param K - order of the matrix `T` + * @param V - input matrix + * @param LDV - leading dimension of `V` + * @param T - input matrix + * @param LDT - leading dimension of `T` + * @param C - input/output matrix + * @param LDC - leading dimension of `C` + * @param work - work array + * @param LDWORK - leading dimension of `work` + * @returns updated matrix `C` + * + * @example + * var Float64Array = require( '@stdlib/array/float64' ); + * + * var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); + * var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); + * var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); + * var work = new Float64Array( 9 ); + * + * dlarfb( 'row-major', 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); + * + * // C => [ -1350.0, -1400.0, -1450.0, -30961.0, -32102.0, -33243.0, -266612.0, -275464.0, -284316.0 ] + */ + ( order: Layout, side: OperationSide, trans: TransposeOperation, direct: Direction, storev: MatrixOrientation, M: number, N: number, K: number, V: Float64Array, LDV: number, T: Float64Array, LDT: number, C: Float64Array, LDC: number, work: Float64Array, LDWORK: number ): Float64Array; + + /** + * Applies a real block reflector `H` or its transpose `H ^ T` to a real `M` by `N` matrix `C`, from either the left or the right. + * + * @param side - specifies whether `H` or `H ^ T` is applied from the left or right + * @param trans - specifies whether to apply `H` or `H ^ T` + * @param direct - indicates how `H` is formed from a product of elementary reflectors + * @param storev - indicates how the vectors which define the elementary reflectors are stored + * @param M - number of rows of the matrix `C` + * @param N - number of columns of the matrix `C` + * @param K - order of the matrix `T` + * @param V - input matrix + * @param strideV1 - stride of the first dimension of `V` + * @param strideV2 - stride of the second dimension of `V` + * @param offsetV - index offset for `V` + * @param T - input matrix + * @param strideT1 - stride of the first dimension of `T` + * @param strideT2 - stride of the second dimension of `T` + * @param offsetT - index offset for `T` + * @param C - input matrix + * @param strideC1 - stride of the first dimension of `C` + * @param strideC2 - stride of the second dimension of `C` + * @param offsetC - index offset for `C` + * @param work - work array + * @param strideWork1 - stride of the first dimension of `work` + * @param strideWork2 - stride of the second dimension of `work` + * @param offsetWork - index offset for `work` + * @returns updated matrix `C` + * + * @example + * var Float64Array = require( '@stdlib/array/float64' ); + * + * var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); + * var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); + * var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); + * var work = new Float64Array( 9 ); + * + * dlarfb( 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); + * + * // C => [ -1350.0, -1400.0, -1450.0, -30961.0, -32102.0, -33243.0, -266612.0, -275464.0, -284316.0 ] + */ + ndarray( side: OperationSide, trans: TransposeOperation, direct: Direction, storev: MatrixOrientation, M: number, N: number, K: number, V: Float64Array, strideV1: number, strideV2: number, offsetV: number, T: Float64Array, strideT1: number, strideT2: number, offsetT: number, C: Float64Array, strideC1: number, strideC2: number, offsetC: number, work: Float64Array, strideWork1: number, strideWork2: number, offsetWork: number ): Float64Array; +} + +/** +* Applies a real block reflector `H` or its transpose `H ^ T` to a real `M` by `N` matrix `C`, from either the left or the right. +* +* @param order - storage layout +* @param side - specifies whether `H` or `H ^ T` is applied from the left or right +* @param trans - specifies whether to apply `H` or `H ^ T` +* @param direct - indicates how `H` is formed from a product of elementary reflectors +* @param storev - indicates how the vectors which define the elementary reflectors are stored +* @param M - number of rows of the matrix `C` +* @param N - number of columns of the matrix `C` +* @param K - order of the matrix `T` +* @param V - input matrix +* @param LDV - leading dimension of `V` +* @param T - input matrix +* @param LDT - leading dimension of `T` +* @param C - input/output matrix +* @param LDC - leading dimension of `C` +* @param work - work array +* @param LDWORK - leading dimension of `work` +* @returns updated matrix `C` +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* dlarfb( 'row-major', 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); +* +* // C => [ -1350.0, -1400.0, -1450.0, -30961.0, -32102.0, -33243.0, -266612.0, -275464.0, -284316.0 ] +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* dlarfb( 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); +* +* // C => [ -1350.0, -1400.0, -1450.0, -30961.0, -32102.0, -33243.0, -266612.0, -275464.0, -284316.0 ] +*/ +declare var dlarfb: Routine; + + +// EXPORTS // + +export = dlarfb; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/docs/types/test.ts b/lib/node_modules/@stdlib/lapack/base/dlarfb/docs/types/test.ts new file mode 100644 index 000000000000..5834bab0f847 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/docs/types/test.ts @@ -0,0 +1,764 @@ +/* +* @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. +*/ + +import dlarfb = require( './index' ); + + +// TESTS // + +// The function returns a Float64Array... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectType Float64Array +} + +// The compiler throws an error if the function is provided a first argument which is not a string... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 5, 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( true, 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( false, 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( null, 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( void 0, 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( [], 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( {}, 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( ( x: number ): number => x, 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a second argument which is not a string... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 5, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', true, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', false, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', null, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', void 0, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', [], 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', {}, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', ( x: number ): number => x, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a third argument which is not a string... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 5, 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', true, 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', false, 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', null, 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', void 0, 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', [], 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', {}, 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', ( x: number ): number => x, 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fourth argument which is not a string... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 5, 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', true, 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', false, 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', null, 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', void 0, 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', [], 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', {}, 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', ( x: number ): number => x, 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fifth argument which is not a string... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 5, 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', true, 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', false, 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', null, 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', void 0, 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', [], 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', {}, 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', ( x: number ): number => x, 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a sixth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', '5', 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', true, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', false, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', null, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', void 0, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', [], 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', {}, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', ( x: number ): number => x, 3, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a seventh argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, '5', 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, true, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, false, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, null, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, void 0, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, [], 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, {}, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, ( x: number ): number => x, 3, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided an eighth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, '5', V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, true, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, false, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, null, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, void 0, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, [], V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, {}, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, ( x: number ): number => x, V, 3, T, 3, C, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a ninth argument which is not a Float64Array... +{ + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, '5', 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, 5, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, true, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, false, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, null, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, void 0, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, [], 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, {}, 3, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, ( x: number ): number => x, 3, T, 3, C, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a tenth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, '5', T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, true, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, false, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, null, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, void 0, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, [], T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, {}, T, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, ( x: number ): number => x, T, 3, C, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided an eleventh argument which is not a Float64Array... +{ + const V = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, '5', 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 5, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, true, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, false, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, null, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, void 0, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, [], 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, {}, 3, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, ( x: number ): number => x, 3, C, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a twelfth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, '5', C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, true, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, false, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, null, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, void 0, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, [], C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, {}, C, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, ( x: number ): number => x, C, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a thirteenth argument which is not a Float64Array... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, '5', 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, 5, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, true, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, false, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, null, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, void 0, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, [], 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, {}, 3, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, ( x: number ): number => x, 3, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fourteenth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, '5', work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, true, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, false, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, null, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, void 0, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, [], work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, {}, work, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, ( x: number ): number => x, work, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fifteenth argument which is not a Float64Array... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, '5', 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, 5, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, true, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, false, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, null, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, void 0, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, [], 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, {}, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, ( x: number ): number => x, 3 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a sixteenth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, '5' ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, true ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, false ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, null ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, void 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, [] ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, {} ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided an unsupported number of arguments... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb(); // $ExpectError + dlarfb( 'column-major' ); // $ExpectError + dlarfb( 'column-major', 'left' ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose' ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward' ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns' ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3 ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work ); // $ExpectError + dlarfb( 'column-major', 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3, 10 ); // $ExpectError +} + +// Attached to main export is an `ndarray` method which returns a Float64Array... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectType Float64Array +} + +// The compiler throws an error if the function is provided a first argument which is not a string... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 5, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( true, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( false, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( null, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( void 0, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( [], 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( {}, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( ( x: number ): number => x, 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a second argument which is not a string... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 5, 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', true, 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', false, 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', null, 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', void 0, 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', [], 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', {}, 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', ( x: number ): number => x, 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a third argument which is not a string... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 5, 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', true, 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', false, 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', null, 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', void 0, 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', [], 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', {}, 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', ( x: number ): number => x, 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fourth argument which is not a string... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 5, 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', true, 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', false, 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', null, 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', void 0, 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', [], 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', {}, 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', ( x: number ): number => x, 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fifth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', '5', 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', true, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', false, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', null, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', void 0, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', [], 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', {}, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', ( x: number ): number => x, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a sixth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, '5', 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, true, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, false, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, null, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, void 0, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, [], 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, {}, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, ( x: number ): number => x, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a seventh argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, '5', V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, true, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, false, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, null, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, void 0, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, [], V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, {}, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, ( x: number ): number => x, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided an eighth argument which is not a Float64Array... +{ + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, '5', 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, 5, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, true, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, false, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, null, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, void 0, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, [], 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, {}, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, ( x: number ): number => x, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a ninth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, '5', 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, true, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, false, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, null, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, void 0, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, [], 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, {}, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, ( x: number ): number => x, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a tenth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, '5', 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, true, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, false, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, null, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, void 0, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, [], 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, {}, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, ( x: number ): number => x, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided an eleventh argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, '5', T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, true, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, false, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, null, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, void 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, [], T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, {}, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, ( x: number ): number => x, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a twelfth argument which is not a Float64Array... +{ + const V = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, '5', 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, 5, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, true, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, false, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, null, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, void 0, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, [], 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, {}, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, ( x: number ): number => x, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a thirteenth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, '5', 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, true, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, false, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, null, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, void 0, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, [], 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, {}, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, ( x: number ): number => x, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fourteenth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, '5', 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, true, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, false, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, null, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, void 0, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, [], 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, {}, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, ( x: number ): number => x, 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fifteenth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, '5', C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, true, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, false, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, null, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, void 0, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, [], C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, {}, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, ( x: number ): number => x, C, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a sixteenth argument which is not a Float64Array... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, '5', 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, 5, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, true, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, false, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, null, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, void 0, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, [], 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, {}, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, ( x: number ): number => x, 3, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a seventeenth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, '5', 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, true, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, false, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, null, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, void 0, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, [], 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, {}, 1, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, ( x: number ): number => x, 1, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided an eighteenth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, '5', 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, true, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, false, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, null, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, void 0, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, [], 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, {}, 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, ( x: number ): number => x, 0, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a nineteenth argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, '5', work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, true, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, false, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, null, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, void 0, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, [], work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, {}, work, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, ( x: number ): number => x, work, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a twentieth argument which is not a Float64Array... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, '5', 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, 5, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, true, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, false, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, null, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, void 0, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, [], 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, {}, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, ( x: number ): number => x, 3, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a twenty-first argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, '5', 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, true, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, false, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, null, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, void 0, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, [], 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, {}, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, ( x: number ): number => x, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a twenty-second argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, '5', 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, true, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, false, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, null, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, void 0, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, [], 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, {}, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, ( x: number ): number => x, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a twenty-third argument which is not a number... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, '5' ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, true ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, false ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, null ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, void 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, [] ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, {} ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the `ndarray` method is provided an unsupported number of arguments... +{ + const V = new Float64Array( 9 ); + const T = new Float64Array( 9 ); + const C = new Float64Array( 9 ); + const work = new Float64Array( 9 ); + + dlarfb.ndarray(); // $ExpectError + dlarfb.ndarray( 'left' ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose' ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward' ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns' ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1 ); // $ExpectError + dlarfb.ndarray( 'left', 'no-transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0, 10 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/examples/index.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/examples/index.js new file mode 100644 index 000000000000..9c05bd5cd048 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/examples/index.js @@ -0,0 +1,43 @@ +/** +* @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'; + +var Float64Array = require( '@stdlib/array/float64' ); +var ndarray2array = require( '@stdlib/ndarray/base/to-array' ); +var dlarfb = require( './../lib' ); + +// Specify matrix meta data: +var shape = [ 3, 3 ]; +var strides = [ 1, 3 ]; +var offset = 0; +var order = 'row-major'; + +// Create input matrices stored in linear memory: +var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); // eslint-disable-line max-len +var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); // eslint-disable-line max-len +var work = new Float64Array( 9 ); + +console.log( 'Input matrix C:' ); +console.log( ndarray2array( C, shape, strides, offset, order ) ); + +dlarfb( order, 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); + +console.log( 'Output matrix C after applying block reflector:' ); +console.log( ndarray2array( C, shape, strides, offset, order ) ); diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/base.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/base.js new file mode 100644 index 000000000000..538be6e765b2 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/base.js @@ -0,0 +1,112 @@ +/** +* @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. +*/ + +/* eslint-disable max-len, max-params */ + +'use strict'; + +// MODULES // + +var leftForwardColumns = require( './left-forward-columns.js' ); +var leftBackwardColumns = require( './left-backward-columns.js' ); +var leftForwardRows = require( './left-forward-rows.js' ); +var leftBackwardRows = require( './left-backward-rows.js' ); +var rightForwardColumns = require( './right-forward-columns.js' ); +var rightBackwardColumns = require( './right-backward-columns.js' ); +var rightForwardRows = require( './right-forward-rows.js' ); +var rightBackwardRows = require( './right-backward-rows.js' ); + + +// MAIN // + +/** +* Applies a real block reflector `H` or its transpose `H ^ T` to a real `M` by `N` matrix `C`, from either the left or the right. +* +* @private +* @param {string} side - specifies whether `H` or `H ^ T` is applied from the left or right +* @param {string} trans - specifies whether to apply `H` or `H ^ T` +* @param {string} direct - indicates how `H` is formed from a product of elementary reflectors +* @param {string} storev - indicates how the vectors which define the elementary reflectors are stored +* @param {NonNegativeInteger} M - number of rows of the matrix `C` +* @param {NonNegativeInteger} N - number of columns of the matrix `C` +* @param {NonNegativeInteger} K - order of the matrix `T` +* @param {Float64Array} V - input matrix +* @param {integer} strideV1 - stride of the first dimension of `V` +* @param {integer} strideV2 - stride of the second dimension of `V` +* @param {integer} offsetV - index offset for `V` +* @param {Float64Array} T - input matrix +* @param {integer} strideT1 - stride of the first dimension of `T` +* @param {integer} strideT2 - stride of the second dimension of `T` +* @param {integer} offsetT - index offset for `T` +* @param {Float64Array} C - input matrix +* @param {integer} strideC1 - stride of the first dimension of `C` +* @param {integer} strideC2 - stride of the second dimension of `C` +* @param {integer} offsetC - index offset for `C` +* @param {Float64Array} work - work array +* @param {integer} strideWork1 - stride of the first dimension of `work` +* @param {integer} strideWork2 - stride of the second dimension of `work` +* @param {integer} offsetWork - index offset for `work` +* @returns {Float64Array} updated matrix `C` +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* dlarfb( 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); +* +* // C => [ -1350.00, -1400.00, -1450.00, -30961.00, -32102.00, -33243.00, -266612.00, -275464.00, -284316.00 ] +*/ +function dlarfb( side, trans, direct, storev, M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork ) { + // Quick return if possible + if ( M <= 0 || N <= 0 ) { + return C; + } + + // Route to appropriate case function based on parameters + if ( side === 'left' ) { + if ( storev === 'columns' ) { + if ( direct === 'forward' ) { + return leftForwardColumns( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ); + } + return leftBackwardColumns( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ); + } + if ( direct === 'forward' ) { + return leftForwardRows( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ); + } + return leftBackwardRows( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ); + } + if ( storev === 'columns' ) { + if ( direct === 'forward' ) { + return rightForwardColumns( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ); + } + return rightBackwardColumns( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ); + } + if ( direct === 'forward' ) { + return rightForwardRows( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ); + } + return rightBackwardRows( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ); +} + + +// EXPORTS // + +module.exports = dlarfb; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/dlarfb.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/dlarfb.js new file mode 100644 index 000000000000..81b0189c54bf --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/dlarfb.js @@ -0,0 +1,185 @@ +/** +* @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 isLayout = require( '@stdlib/blas/base/assert/is-layout' ); +var isOperationSide = require( '@stdlib/blas/base/assert/is-operation-side' ); +var isTransposeOperation = require( '@stdlib/blas/base/assert/is-transpose-operation' ); +var isMatrixOrientation = require( '@stdlib/blas/base/assert/is-matrix-orientation' ); +var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major-string' ); +var isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major-string' ); +var max = require( '@stdlib/math/base/special/max' ); +var format = require( '@stdlib/string/format' ); +var base = require( './base.js' ); + + +// MAIN // + +/** +* Applies a real block reflector `H` or its transpose `H ^ T` to a real `M` by `N` matrix `C`, from either the left or the right. +* +* @param {string} order - storage layout +* @param {string} side - specifies whether `H` or `H ^ T` is applied from the left or right +* @param {string} trans - specifies whether to apply `H` or `H ^ T` (`'no-transpose'` or `'transpose'`) +* @param {string} direct - indicates how `H` is formed from a product of elementary reflectors (`'forward'` or `'backward'`) +* @param {string} storev - indicates how the vectors which define the elementary reflectors are stored (`'column-major'` or `'row-major'`) +* @param {NonNegativeInteger} M - number of rows of the matrix `C` +* @param {NonNegativeInteger} N - number of columns of the matrix `C` +* @param {NonNegativeInteger} K - order of the matrix `T` +* @param {Float64Array} V - input matrix +* @param {PositiveInteger} LDV - leading dimension of `V` +* @param {Float64Array} T - input matrix (upper/lower triangular as dictated by `direct`/`storev`) +* @param {PositiveInteger} LDT - leading dimension of `T` (must be ≥ max(1,K)) +* @param {Float64Array} C - input/output matrix +* @param {PositiveInteger} LDC - leading dimension of `C` +* @param {Float64Array} work - work array +* @param {PositiveInteger} LDWORK - leading dimension of `work` +* @throws {TypeError} first argument must be a valid order +* @throws {TypeError} invalid `side` +* @throws {TypeError} invalid `trans` +* @throws {TypeError} invalid `direct` +* @throws {TypeError} invalid `storev` +* @throws {RangeError} invalid leading dimension(s) +* @returns {Float64Array} updated matrix `C` +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* dlarfb( 'row-major', 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); +* +* // C => [ -1350.00, -1400.00, -1450.00, -30961.00, -32102.00, -33243.00, -266612.00, -275464.00, -284316.00 ] +*/ +function dlarfb( order, side, trans, direct, storev, M, N, K, V, LDV, T, LDT, C, LDC, work, LDWORK ) { // eslint-disable-line max-params, max-len + var requiredLdwork; + var sv1; + var sv2; + var st1; + var st2; + var sc1; + var sc2; + var sw1; + var sw2; + + 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 BLAS operation side. Value: `%s`.', side ) ); + } + if ( !isTransposeOperation( trans ) ) { + throw new TypeError( format( 'invalid argument. Third argument must be a valid BLAS transpose operation. Value: `%s`.', trans ) ); + } + if ( direct !== 'forward' && direct !== 'backward' ) { + throw new TypeError( format( 'invalid argument. Fourth argument must be either `forward` or `backward`. Value: `%s`.', direct ) ); + } + if ( !isMatrixOrientation( storev ) ) { + throw new TypeError( format( 'invalid argument. Fifth argument must be a valid matrix orientation. Value: `%s`.', storev ) ); + } + + if ( isRowMajor( order ) ) { + if ( LDC < max( 1, N ) ) { + throw new RangeError( format( 'invalid argument. Thirteenth argument must be greater than or equal to max(1,%d). Value: `%d`.', N, LDC ) ); + } + if ( LDT < max( 1, K ) ) { + throw new RangeError( format( 'invalid argument. Twelfth argument must be greater than or equal to max(1,%d). Value: `%d`.', K, LDT ) ); + } + if ( storev === 'columns' ) { + if ( LDV < max( 1, K ) ) { + throw new RangeError( format( 'invalid argument. Eleventh argument must be greater than or equal to max(1,%d). Value: `%d`.', K, LDV ) ); + } + } else if ( storev === 'rows' ) { + if ( side === 'left' ) { + if ( LDV < max( 1, M ) ) { + throw new RangeError( format( 'invalid argument. Eleventh argument must be greater than or equal to max(1,%d). Value: `%d`.', M, LDV ) ); + } + } else if ( side === 'right' ) { + if ( LDV < max( 1, N ) ) { + throw new RangeError( format( 'invalid argument. Eleventh argument must be greater than or equal to max(1,%d). Value: `%d`.', N, LDV ) ); + } + } + } + if ( LDWORK < max( 1, K ) ) { + throw new RangeError( format( 'invalid argument. Fifteenth argument must be greater than or equal to max(1,%d). Value: `%d`.', K, LDWORK ) ); + } + } else if ( isColumnMajor( order ) ) { + if ( LDC < max( 1, M ) ) { + throw new RangeError( format( 'invalid argument. Thirteenth argument must be greater than or equal to max(1,%d). Value: `%d`.', M, LDC ) ); + } + if ( LDT < max( 1, K ) ) { + throw new RangeError( format( 'invalid argument. Twelfth argument must be greater than or equal to max(1,%d). Value: `%d`.', K, LDT ) ); + } + if ( storev === 'columns' ) { + if ( side === 'left' ) { + if ( LDV < max( 1, M ) ) { + throw new RangeError( format( 'invalid argument. Eleventh argument must be greater than or equal to max(1,%d). Value: `%d`.', M, LDV ) ); + } + } else if ( side === 'right' ) { + if ( LDV < max( 1, N ) ) { + throw new RangeError( format( 'invalid argument. Eleventh argument must be greater than or equal to max(1,%d). Value: `%d`.', N, LDV ) ); + } + } + } else if ( storev === 'rows' ) { + if ( LDV < max( 1, K ) ) { + throw new RangeError( format( 'invalid argument. Eleventh argument must be greater than or equal to max(1,%d). Value: `%d`.', K, LDV ) ); + } + } + if ( side === 'left' ) { + requiredLdwork = N; + } else { + requiredLdwork = M; + } + if ( LDWORK < max( 1, requiredLdwork ) ) { + throw new RangeError( format( 'invalid argument. Fifteenth argument must be greater than or equal to max(1,%d). Value: `%d`.', requiredLdwork, LDWORK ) ); + } + } + + if ( isColumnMajor( order ) ) { + sv1 = 1; + sv2 = LDV; + st1 = 1; + st2 = LDT; + sc1 = 1; + sc2 = LDC; + sw1 = 1; + sw2 = LDWORK; + } else { + sv1 = LDV; + sv2 = 1; + st1 = LDT; + st2 = 1; + sc1 = LDC; + sc2 = 1; + sw1 = LDWORK; + sw2 = 1; + } + + return base( side, trans, direct, storev, M, N, K, V, sv1, sv2, 0, T, st1, st2, 0, C, sc1, sc2, 0, work, sw1, sw2, 0 ); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = dlarfb; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/dtrmm.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/dtrmm.js new file mode 100644 index 000000000000..f844cfed69c2 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/dtrmm.js @@ -0,0 +1,361 @@ +/** +* @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. +*/ + +/* eslint-disable max-len, max-statements, max-lines-per-function */ + +'use strict'; + +// MODULES // + +var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major' ); + + +// FUNCTIONS // + +/** +* Fills a matrix with zeros. +* +* @private +* @param {NonNegativeInteger} M - number of rows +* @param {NonNegativeInteger} N - number of columns +* @param {Float64Array} 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 {Float64Array} input matrix +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var X = new Float64Array( [ 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 Float64Array = require( '@stdlib/array/float64' ); +* +* var X = new Float64Array( [ 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 // + +/** +* Performs one of the matrix-matrix operations `B = α * op(A) * B` or `B = α * B * op(A)` where `α` is a scalar, `B` is an `M` by `N` matrix, `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`. +* +* @private +* @param {string} side - specifies whether `op( A )` appears on the left or right side of `B` +* @param {string} uplo - specifies whether the upper or lower triangular part of the matrix `A` should be referenced +* @param {string} transa - specifies whether `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` +* @param {number} alpha - scalar constant +* @param {Float64Array} A - first input matrix +* @param {integer} strideA1 - stride of the first dimension of `A` +* @param {integer} strideA2 - stride of the second dimension of `A` +* @param {NonNegativeInteger} offsetA - starting index for `A` +* @param {Float64Array} B - second input matrix +* @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 {Float64Array} `B` +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var A = new Float64Array( [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ] ); +* var B = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ] ); +* +* dtrmm( 'left', 'lower', 'no-transpose', 'unit', 3, 3, 1.0, A, 3, 1, 0, B, 3, 1, 0 ); +* // B => [ 1.0, 2.0, 3.0, 6.0, 9.0, 12.0, 31.0, 41.0, 51.0 ] +*/ +function dtrmm( 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 tmp; + var oa2; + var ob2; + var sa0; + var sa1; + var sb0; + var sb1; + var oa; + var ob; + var ia; + var ib; + var i; + var j; + var k; + + // Note on variable naming convention: sa#, sb# where # corresponds to the loop number, with `0` being the innermost loop... + + isrma = isRowMajor( [ strideA1, strideA2 ] ); + 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 + sb0 = strideB2; // stride for innermost loop + sb1 = strideB1; // stride for outermost loop + } else { + sa0 = strideA1; // stride for innermost loop + sa1 = strideA2; // stride for outermost loop + 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 ( + ( isrma && side === 'left' && uplo === 'upper' && transa === 'no-transpose' ) || + ( !isrma && side === 'right' && uplo === 'lower' && transa === 'no-transpose' ) + ) { + for ( j = 0; j < N; j++ ) { + ib = offsetB + ( j*sb0 ); + for ( k = 0; k < M; k++ ) { + ob2 = ib + ( k * sb1 ); + tmp = alpha * B[ ob2 ]; + ia = offsetA + ( k*sa0 ); + for ( i = 0; i < k; i++ ) { + B[ ib + ( i*sb1 ) ] += ( tmp * A[ ia + ( i*sa1 ) ] ); + } + if ( nonunit ) { + tmp *= A[ ia + ( k*sa1 ) ]; + } + B[ ob2 ] = tmp; + } + } + 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++ ) { + ib = offsetB + ( j*sb0 ); + for ( k = M - 1; k >= 0; k-- ) { + ob2 = ib + ( k*sb1 ); + tmp = alpha * B[ ob2 ]; + ia = offsetA + ( k*sa0 ); + for ( i = k + 1; i < M; i++ ) { + oa2 = ia + ( i*sa1 ); + B[ ib + ( i*sb1 ) ] += ( tmp * A[ oa2 ] ); + } + if ( nonunit ) { + tmp *= A[ ia + ( k*sa1 ) ]; + } + B[ ob2 ] = tmp; + } + } + 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++ ) { + ib = offsetB + ( j*sb0 ); + for ( i = M - 1; i >= 0; i-- ) { + ob2 = ib + ( i*sb1 ); + tmp = 0.0; + ia = offsetA + ( i*sa0 ); + if ( nonunit ) { + tmp += ( A[ ia + ( i*sa1 ) ] * B[ ob2 ] ); + } else { + tmp += B[ ob2 ]; + } + for ( k = 0; k < i; k++ ) { + oa2 = ia + ( k*sa1 ); + tmp += A[ oa2 ] * B[ ib + ( k*sb1 ) ]; + } + B[ ob2 ] = alpha * tmp; + } + } + return B; + } + if ( + ( isrma && side === 'left' && uplo === 'lower' && transa !== 'no-transpose' ) || + ( !isrma && side === 'right' && uplo === 'upper' && transa === 'transpose' ) + ) { + for ( j = 0; j < N; j++ ) { + ib = offsetB + ( j * sb0 ); + for ( i = 0; i < M; i++ ) { + ia = offsetA + ( i * sa0 ); + ob2 = ib + ( i * sb1 ); + tmp = 0.0; + for ( k = i + 1; k < M; k++ ) { + tmp += A[ ia + ( k * sa1 ) ] * B[ ib + ( k * sb1 ) ]; + } + if ( nonunit ) { + tmp += ( A[ ia + ( i * sa1 ) ] * B[ ob2 ] ); + } else { + tmp += B[ ob2 ]; + } + B[ ob2 ] = alpha * tmp; + } + } + return B; + } + if ( + ( isrma && side === 'right' && uplo === 'upper' && transa === 'no-transpose' ) || + ( !isrma && side === 'left' && uplo === 'lower' && transa === 'no-transpose' ) + ) { + for ( j = N - 1; j >= 0; j-- ) { + ia = offsetA + ( j*sa0 ); + ib = offsetB + ( j*sb0 ); + for ( i = 0; i < M; i++ ) { + ob = ib + ( i*sb1 ); + B[ ob ] *= alpha; + if ( nonunit ) { + oa2 = ia + ( j*sa1 ); + tmp = A[ oa2 ]; + B[ ob ] *= tmp; + } + for ( k = 0; k < j; k++ ) { + oa2 = ia + ( k*sa1 ); + ob2 = offsetB + ( k*sb0 ); + if ( A[ oa2 ] !== 0.0 ) { + tmp = alpha * A[ oa2 ]; + B[ ob ] += ( tmp * B[ ob2 + ( i*sb1 ) ] ); + } + } + } + } + return B; + } + if ( + ( isrma && side === 'right' && uplo === 'lower' && transa === 'no-transpose' ) || + ( !isrma && side === 'left' && uplo === 'upper' && transa === 'no-transpose' ) + ) { + for ( j = 0; j < N; j++ ) { + ia = offsetA + ( j*sa0 ); + for ( i = 0; i < M; i++ ) { + ib = offsetB + ( i*sb1 ); + ob = ib + ( j*sb0 ); + B[ ob ] *= alpha; + if ( nonunit ) { + oa = ia + ( j*sa1 ); + B[ ob ] *= A[ oa ]; + } + for ( k = j + 1; k < N; k++ ) { + oa2 = ia + ( k*sa1 ); + ob2 = ib + ( k*sb0 ); + if ( A[ oa2 ] !== 0.0 ) { + tmp = alpha * A[ oa2 ]; + B[ ob ] += ( tmp * B[ ob2 ] ); + } + } + } + } + return B; + } + if ( + ( isrma && side === 'right' && uplo === 'upper' && transa !== 'no-transpose' ) || + ( !isrma && side === 'left' && uplo === 'lower' && transa !== 'no-transpose' ) + ) { + for ( j = 0; j < N; j++ ) { + ia = offsetA + ( j*sa1 ); + for ( i = 0; i < M; i++ ) { + ib = offsetB + ( i*sb1 ); + oa = ia + ( j*sa0 ); + ob = ib + ( j*sb0 ); + if ( nonunit ) { + tmp = B[ ob ] * A[ oa ]; + } else { + tmp = B[ ob ]; + } + for ( k = j + 1; k < N; k++ ) { + oa2 = ia + ( k*sa0 ); + ob2 = ib + ( k*sb0 ); + tmp += ( B[ ob2 ] * A[ oa2 ] ); + } + B[ ob ] = alpha * tmp; + } + } + return B; + } + // ( isrma && side === 'right' && uplo === 'lower' && transa !== 'no-transpose' ) || ( !isrma && side === 'left' && uplo === 'upper' && transa !== 'no-transpose' ) + for ( i = 0; i < M; i++ ) { + ib = offsetB + ( i*sb1 ); + for ( j = N - 1; j >= 0; j-- ) { + ia = offsetA + ( j*sa1 ); + oa = ia + ( j*sa0 ); + ob = ib + ( j*sb0 ); + if ( nonunit ) { + tmp = B[ ob ] * A[ oa ]; + } else { + tmp = B[ ob ]; + } + for ( k = 0; k < j; k++ ) { + oa2 = ia + ( k*sa0 ); + ob2 = ib + ( k*sb0 ); + tmp += ( B[ ob2 ] * A[ oa2 ] ); + } + B[ ob ] = alpha * tmp; + } + } + return B; +} + + +// EXPORTS // + +module.exports = dtrmm; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/index.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/index.js new file mode 100644 index 000000000000..e82eb8b1373d --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/index.js @@ -0,0 +1,61 @@ +/** +* @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'; + +/** +* LAPACK routine to apply a real block reflector `H` or its transpose `H ^ T` to a real `M` by `N` matrix `C`, from either the left or the right. +* +* @module @stdlib/lapack/base/dlarfb +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* var dlarfb = require( '@stdlib/lapack/base/dlarfb' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* dlarfb( 'row-major', 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, work, 3 ); +* +* // C => [ -1350.0, -1400.0, -1450.0, -30961.0, -32102.0, -33243.0, -266612.0, -275464.0, -284316.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 dlarfb; +var tmp = tryRequire( join( __dirname, './native.js' ) ); +if ( isError( tmp ) ) { + dlarfb = main; +} else { + dlarfb = tmp; +} + + +// EXPORTS // + +module.exports = dlarfb; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/left-backward-columns.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/left-backward-columns.js new file mode 100644 index 000000000000..3f4c9b325beb --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/left-backward-columns.js @@ -0,0 +1,167 @@ +/** +* @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 dgemm = require( '@stdlib/blas/base/dgemm' ).ndarray; +var dcopy = require( '@stdlib/blas/base/dcopy' ).ndarray; +var loopOrder = require( '@stdlib/ndarray/base/unary-loop-interchange-order' ); +var dtrmm = require( './dtrmm.js' ); + + +// MAIN // + +/** +* Applies a real block reflector H or its transpose H^T to a real M by N matrix C from the left, with backward direction and column storage. +* +* @private +* @param {NonNegativeInteger} M - number of rows of the matrix C +* @param {NonNegativeInteger} N - number of columns of the matrix C +* @param {NonNegativeInteger} K - order of the matrix T +* @param {Float64Array} V - input matrix +* @param {integer} strideV1 - stride of the first dimension of V +* @param {integer} strideV2 - stride of the second dimension of V +* @param {integer} offsetV - index offset for V +* @param {Float64Array} T - input matrix +* @param {integer} strideT1 - stride of the first dimension of T +* @param {integer} strideT2 - stride of the second dimension of T +* @param {integer} offsetT - index offset for T +* @param {Float64Array} C - input matrix +* @param {integer} strideC1 - stride of the first dimension of C +* @param {integer} strideC2 - stride of the second dimension of C +* @param {integer} offsetC - index offset for C +* @param {Float64Array} work - work array +* @param {integer} strideWork1 - stride of the first dimension of work +* @param {integer} strideWork2 - stride of the second dimension of work +* @param {integer} offsetWork - index offset for work +* @param {string} trans - specifies whether to apply H or H^T +* @returns {Float64Array} updated matrix C +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* var result = leftBackwardColumns( 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0, 'no-transpose' ); +* // returns [ -557890.0, -592880.0, -627870.0, -596341.0, -632662.0, -668983.0, -7412.0, -7864.0, -8316.0 ] +*/ +function leftBackwardColumns( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ) { // eslint-disable-line max-params, max-len + var transt; + var da0; + var da1; + var db0; + var db1; + var sh; + var sa; + var sb; + var S0; + var S1; + var ia; + var ib; + var ic; + var iv; + var iw; + var i; + var j; + var o; + + // Quick return if possible + if ( M <= 0 || N <= 0 ) { + return C; + } + + if ( trans === 'no-transpose' ) { + transt = 'transpose'; + } else { + transt = 'no-transpose'; + } + + /* Let V = ( V1 ) + * ( V2 ) (last K rows) + * Where V2 is unit upper triangular. + */ + + /* Form H * C or H^T * C where C = ( C1 ) + * ( C2 ) + * W := C**T * V = (C1**T * V1 + C2**T * V2) (stored in WORK) + * W := C2**T + */ + ic = offsetC + ( (M-K) * strideC1 ); + iw = offsetWork; + for ( j = 0; j < K; j++ ) { + iw = offsetWork + ( j * strideWork2 ); + dcopy( N, C, strideC2, ic, work, strideWork1, iw ); + ic += strideC1; + iw += strideWork2; + } + // W := W * V2 + iv = offsetV + ( (M-K) * strideV1 ); + dtrmm( 'right', 'upper', 'no-transpose', 'unit', N, K, 1.0, V, strideV1, strideV2, iv, work, strideWork1, strideWork2, offsetWork ); + if ( M > K ) { + // W := W + C1**T * V1 + dgemm( 'transpose', 'no-transpose', N, K, M-K, 1.0, C, strideC1, strideC2, offsetC, V, strideV1, strideV2, offsetV, 1.0, work, strideWork1, strideWork2, offsetWork ); + } + // W := W * T**T or W * T + dtrmm( 'right', 'lower', transt, 'non-unit', N, K, 1.0, T, strideT1, strideT2, offsetT, work, strideWork1, strideWork2, offsetWork ); + + // C := C - V * W**T + if ( M > K ) { + // C1 := C1 - V1 * W**T + dgemm( 'no-transpose', 'transpose', M-K, N, K, -1.0, V, strideV1, strideV2, offsetV, work, strideWork1, strideWork2, offsetWork, 1.0, C, strideC1, strideC2, offsetC ); + } + // W := W * V2**T + iv = offsetV + ( (M-K) * strideV1 ); + dtrmm( 'right', 'upper', 'transpose', 'unit', N, K, 1.0, V, strideV1, strideV2, iv, work, strideWork1, strideWork2, offsetWork ); + + // C2 := C2 - W**T + o = loopOrder( [ K, N ], [ strideC2, strideC1 ], [ strideWork1, strideWork2 ] ); // eslint-disable-line max-len + sh = o.sh; + sa = o.sx; + sb = o.sy; + S0 = sh[ 0 ]; + S1 = sh[ 1 ]; + da0 = sa[ 0 ]; + da1 = sa[ 1 ] - ( S0 * sa[ 0 ] ); + db0 = sb[ 0 ]; + db1 = sb[ 1 ] - ( S0 * sb[ 0 ] ); + + ia = offsetC + ( (M-K) * strideC1 ); + ib = offsetWork; + + for ( j = 0; j < S1; j++ ) { + for ( i = 0; i < S0; i++ ) { + C[ ia ] -= work[ ib ]; + ia += da0; + ib += db0; + } + ia += da1; + ib += db1; + } + + return C; +} + + +// EXPORTS // + +module.exports = leftBackwardColumns; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/left-backward-rows.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/left-backward-rows.js new file mode 100644 index 000000000000..a7c19979a9d4 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/left-backward-rows.js @@ -0,0 +1,169 @@ +/** +* @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 dgemm = require( '@stdlib/blas/base/dgemm' ).ndarray; +var dcopy = require( '@stdlib/blas/base/dcopy' ).ndarray; +var loopOrder = require( '@stdlib/ndarray/base/unary-loop-interchange-order' ); +var dtrmm = require( './dtrmm.js' ); + + +// MAIN // + +/** +* Applies a real block reflector H or its transpose H^T to a real M by N matrix C from the left, with backward direction and row storage. +* +* @private +* @param {NonNegativeInteger} M - number of rows of the matrix C +* @param {NonNegativeInteger} N - number of columns of the matrix C +* @param {NonNegativeInteger} K - order of the matrix T +* @param {Float64Array} V - input matrix +* @param {integer} strideV1 - stride of the first dimension of V +* @param {integer} strideV2 - stride of the second dimension of V +* @param {integer} offsetV - index offset for V +* @param {Float64Array} T - input matrix +* @param {integer} strideT1 - stride of the first dimension of T +* @param {integer} strideT2 - stride of the second dimension of T +* @param {integer} offsetT - index offset for T +* @param {Float64Array} C - input matrix +* @param {integer} strideC1 - stride of the first dimension of C +* @param {integer} strideC2 - stride of the second dimension of C +* @param {integer} offsetC - index offset for C +* @param {Float64Array} work - work array +* @param {integer} strideWork1 - stride of the first dimension of work +* @param {integer} strideWork2 - stride of the second dimension of work +* @param {integer} offsetWork - index offset for work +* @param {string} trans - specifies whether to apply H or H^T +* @returns {Float64Array} updated matrix C +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* var result = leftBackwardRows( 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0, 'no-transpose' ); +* // returns [ -155530.0, -164560.0, -173590.0, -292241.0, -308662.0, -325083.0, -4832.0, -5104.0, -5376.0 ] +*/ +function leftBackwardRows( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ) { // eslint-disable-line max-params, max-len + var transt; + var da0; + var da1; + var db0; + var db1; + var i0; + var i1; + var sh; + var sa; + var sb; + var S0; + var S1; + var ia; + var ib; + var ic; + var iv; + var iw; + var j; + var o; + + // Quick return if possible + if ( M <= 0 || N <= 0 ) { + return C; + } + + if ( trans === 'no-transpose' ) { + transt = 'transpose'; + } else { + transt = 'no-transpose'; + } + + /* Let V = ( V1 V2 ) (V2: last K columns) + * Where V2 is unit lower triangular. + */ + /* Form H * C or H^T * C where C = ( C1 ) + * ( C2 ) + * W := C**T * V**T = (C1**T * V1**T + C2**T * V2**T) (stored in WORK) + * W := C2**T + */ + ic = offsetC; + iw = offsetWork; + for ( j = 0; j < K; j++ ) { + dcopy( N, C, strideC2, ic, work, strideWork1, iw ); + ic += strideC1; + iw += strideWork2; + } + // W := W * V2**T + iv = offsetV + ( (M-K) * strideV2 ); + dtrmm( 'right', 'lower', 'transpose', 'unit', N, K, 1.0, V, strideV1, strideV2, iv, work, strideWork1, strideWork2, offsetWork ); + if ( M > K ) { + // W := W + C1**T * V1**T + dgemm( 'transpose', 'transpose', N, K, M-K, 1.0, C, strideC1, strideC2, offsetC, V, strideV1, strideV2, offsetV, 1.0, work, strideWork1, strideWork2, offsetWork ); + } + // W := W * T**T or W * T + dtrmm( 'right', 'lower', transt, 'non-unit', N, K, 1.0, T, strideT1, strideT2, offsetT, work, strideWork1, strideWork2, offsetWork ); + + // C := C - V**T * W**T + if ( M > K ) { + // C1 := C1 - V1**T * W**T + dgemm( 'transpose', 'transpose', M-K, N, K, -1.0, V, strideV1, strideV2, offsetV, work, strideWork1, strideWork2, offsetWork, 1.0, C, strideC1, strideC2, offsetC ); + } + // W := W * V2 + iv = offsetV + ( (M-K) * strideV2 ); + dtrmm( 'right', 'lower', 'no-transpose', 'unit', N, K, 1.0, V, strideV1, strideV2, iv, work, strideWork1, strideWork2, offsetWork ); + + // C2 := C2 - W**T + o = loopOrder( [ K, N ], [ strideC1, strideC2 ], [ strideWork2, strideWork1 ] ); // eslint-disable-line max-len + sh = o.sh; + sa = o.sx; + sb = o.sy; + + // Extract loop variables for loop interchange + S0 = sh[ 0 ]; + S1 = sh[ 1 ]; + da0 = sa[ 0 ]; + da1 = sa[ 1 ] - ( S0 * sa[ 0 ] ); + db0 = sb[ 0 ]; + db1 = sb[ 1 ] - ( S0 * sb[ 0 ] ); + + // Set pointers to first indexed elements + ia = offsetC + ( (M-K) * strideC1 ); + ib = offsetWork; + + // Iterate over matrix dimensions with optimized loop order + for ( i1 = 0; i1 < S1; i1++ ) { + for ( i0 = 0; i0 < S0; i0++ ) { + C[ ia ] -= work[ ib ]; + ia += da0; + ib += db0; + } + ia += da1; + ib += db1; + } + + return C; +} + + +// EXPORTS // + +module.exports = leftBackwardRows; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/left-forward-columns.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/left-forward-columns.js new file mode 100644 index 000000000000..cccd9bda3670 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/left-forward-columns.js @@ -0,0 +1,173 @@ +/** +* @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 dgemm = require( '@stdlib/blas/base/dgemm' ).ndarray; +var dcopy = require( '@stdlib/blas/base/dcopy' ).ndarray; +var loopOrder = require( '@stdlib/ndarray/base/unary-loop-interchange-order' ); +var dtrmm = require( './dtrmm.js' ); + + +// MAIN // + +/** +* Applies a real block reflector H or its transpose H^T to a real M by N matrix C from the left, with forward direction and column storage. +* +* @private +* @param {NonNegativeInteger} M - number of rows of the matrix C +* @param {NonNegativeInteger} N - number of columns of the matrix C +* @param {NonNegativeInteger} K - order of the matrix T +* @param {Float64Array} V - input matrix +* @param {integer} strideV1 - stride of the first dimension of V +* @param {integer} strideV2 - stride of the second dimension of V +* @param {integer} offsetV - index offset for V +* @param {Float64Array} T - input matrix +* @param {integer} strideT1 - stride of the first dimension of T +* @param {integer} strideT2 - stride of the second dimension of T +* @param {integer} offsetT - index offset for T +* @param {Float64Array} C - input matrix +* @param {integer} strideC1 - stride of the first dimension of C +* @param {integer} strideC2 - stride of the second dimension of C +* @param {integer} offsetC - index offset for C +* @param {Float64Array} work - work array +* @param {integer} strideWork1 - stride of the first dimension of work +* @param {integer} strideWork2 - stride of the second dimension of work +* @param {integer} offsetWork - index offset for work +* @param {string} trans - specifies whether to apply H or H^T +* @returns {Float64Array} updated matrix C +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* var result = leftForwardColumns( 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0, 'no-transpose' ); +* // returns [ -1350.0, -1400.0, -1450.0, -30961.0, -32102.0, -33243.0, -266612.0, -275464.0, -284316.0 ] +*/ +function leftForwardColumns( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ) { // eslint-disable-line max-params, max-len + var transt; + var da0; + var da1; + var db0; + var db1; + var i0; + var i1; + var sh; + var sa; + var sb; + var S0; + var S1; + var ia; + var ib; + var ic; + var iv; + var iw; + var j; + var o; + + // Quick return if possible + if ( M <= 0 || N <= 0 ) { + return C; + } + + if ( trans === 'no-transpose' ) { + transt = 'transpose'; + } else { + transt = 'no-transpose'; + } + + /* Let V = ( V1 ) (first K rows) + * ( V2 ) + * Where V1 is unit lower triangular. + */ + + /* Form H * C or H^T * C where C = ( C1 ) + * ( C2 ) + * W := C**T * V = (C1**T * V1 + C2**T * V2) (stored in WORK) + * W := C1**T + */ + ic = offsetC; + iw = offsetWork; + for ( j = 0; j < K; j++ ) { + dcopy( N, C, strideC2, ic, work, strideWork1, iw ); + ic += strideC1; + iw += strideWork2; + } + // W := W * V1 + dtrmm( 'right', 'lower', 'no-transpose', 'unit', N, K, 1.0, V, strideV1, strideV2, offsetV, work, strideWork1, strideWork2, offsetWork ); + if ( M > K ) { + // W := W + C2**T * V2 + ic = offsetC + ( K * strideC1 ); // C( k+1, 1 ) - 0 based index + iv = offsetV + ( K * strideV1 ); // V( k+1, 1 ) - 0 based index + dgemm( 'transpose', 'no-transpose', N, K, M-K, 1.0, C, strideC1, strideC2, ic, V, strideV1, strideV2, iv, 1.0, work, strideWork1, strideWork2, offsetWork ); + } + // W := W * T**T or W * T + dtrmm( 'right', 'upper', transt, 'non-unit', N, K, 1.0, T, strideT1, strideT2, offsetT, work, strideWork1, strideWork2, offsetWork ); + + // C := C - V * W**T + if ( M > K ) { + // C2 := C2 - V2 * W**T + ic = offsetC + ( K * strideC1 ); // C( k+1, 1 ) - 0 based index + iv = offsetV + ( K * strideV1 ); // V( k+1, 1 ) - 0 based index + dgemm( 'no-transpose', 'transpose', M-K, N, K, -1.0, V, strideV1, strideV2, iv, work, strideWork1, strideWork2, offsetWork, 1.0, C, strideC1, strideC2, ic ); + } + // W := W * V1**T + dtrmm( 'right', 'lower', 'transpose', 'unit', N, K, 1.0, V, strideV1, strideV2, offsetV, work, strideWork1, strideWork2, offsetWork ); + + // C1 := C1 - W**T + o = loopOrder( [ K, N ], [ strideC1, strideC2 ], [ strideWork2, strideWork1 ] ); // eslint-disable-line max-len + sh = o.sh; + sa = o.sx; + sb = o.sy; + + // Extract loop variables for loop interchange + S0 = sh[ 0 ]; + S1 = sh[ 1 ]; + da0 = sa[ 0 ]; + da1 = sa[ 1 ] - ( S0 * sa[ 0 ] ); + db0 = sb[ 0 ]; + db1 = sb[ 1 ] - ( S0 * sb[ 0 ] ); + + // Set pointers to first indexed elements + ia = offsetC; + ib = offsetWork; + + // Iterate over matrix dimensions with optimized loop order + for ( i1 = 0; i1 < S1; i1++ ) { + for ( i0 = 0; i0 < S0; i0++ ) { + C[ ia ] -= work[ ib ]; + ia += da0; + ib += db0; + } + ia += da1; + ib += db1; + } + + return C; +} + + +// EXPORTS // + +module.exports = leftForwardColumns; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/left-forward-rows.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/left-forward-rows.js new file mode 100644 index 000000000000..851c1bcad3d2 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/left-forward-rows.js @@ -0,0 +1,171 @@ +/** +* @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 dgemm = require( '@stdlib/blas/base/dgemm' ).ndarray; +var dcopy = require( '@stdlib/blas/base/dcopy' ).ndarray; +var loopOrder = require( '@stdlib/ndarray/base/unary-loop-interchange-order' ); +var dtrmm = require( './dtrmm.js' ); + + +// MAIN // + +/** +* Applies a real block reflector H or its transpose H^T to a real M by N matrix C from the left, with forward direction and row storage. +* +* @private +* @param {NonNegativeInteger} M - number of rows of the matrix C +* @param {NonNegativeInteger} N - number of columns of the matrix C +* @param {NonNegativeInteger} K - order of the matrix T +* @param {Float64Array} V - input matrix +* @param {integer} strideV1 - stride of the first dimension of V +* @param {integer} strideV2 - stride of the second dimension of V +* @param {integer} offsetV - index offset for V +* @param {Float64Array} T - input matrix +* @param {integer} strideT1 - stride of the first dimension of T +* @param {integer} strideT2 - stride of the second dimension of T +* @param {integer} offsetT - index offset for T +* @param {Float64Array} C - input matrix +* @param {integer} strideC1 - stride of the first dimension of C +* @param {integer} strideC2 - stride of the second dimension of C +* @param {integer} offsetC - index offset for C +* @param {Float64Array} work - work array +* @param {integer} strideWork1 - stride of the first dimension of work +* @param {integer} strideWork2 - stride of the second dimension of work +* @param {integer} offsetWork - index offset for work +* @param {string} trans - specifies whether to apply H or H^T +* @returns {Float64Array} updated matrix C +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* var result = leftForwardRows( 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0, 'no-transpose' ); +* // returns [ -3010.0, -3120.0, -3230.0, -125821.0, -130422.0, -135023.0, -611692.0, -632424.0, -653156.0 ] +*/ +function leftForwardRows( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ) { // eslint-disable-line max-params, max-len + var transt; + var da0; + var da1; + var db0; + var db1; + var i0; + var i1; + var sh; + var sa; + var sb; + var S0; + var S1; + var ia; + var ib; + var ic; + var iv; + var iw; + var j; + var o; + + // Quick return if possible + if ( M <= 0 || N <= 0 ) { + return C; + } + + if ( trans === 'no-transpose' ) { + transt = 'transpose'; + } else { + transt = 'no-transpose'; + } + + /* Let V = ( V1 V2 ) (V1: first K columns) + * Where V1 is unit upper triangular. + */ + /* Form H * C or H^T * C where C = ( C1 ) + * ( C2 ) + * W := C**T * V**T = (C1**T * V1**T + C2**T * V2**T) (stored in work) + * W := C1**T + */ + ic = offsetC; + iw = offsetWork; + for ( j = 0; j < K; j++ ) { + dcopy( N, C, strideC2, ic, work, strideWork1, iw ); + ic += strideC1; + iw += strideWork2; + } + // W := W * V1**T + dtrmm( 'right', 'upper', 'transpose', 'unit', N, K, 1.0, V, strideV1, strideV2, offsetV, work, strideWork1, strideWork2, offsetWork ); + if ( M > K ) { + // W := W + C2**T * V2**T + ic = offsetC + ( K * strideC1 ); + iv = offsetV + ( K * strideV2 ); + dgemm( 'transpose', 'transpose', N, K, M-K, 1.0, C, strideC1, strideC2, ic, V, strideV1, strideV2, iv, 1.0, work, strideWork1, strideWork2, offsetWork ); + } + // W := W * T**T or W * T + dtrmm( 'right', 'upper', transt, 'non-unit', N, K, 1.0, T, strideT1, strideT2, offsetT, work, strideWork1, strideWork2, offsetWork ); + + // C := C - V**T * W**T + if ( M > K ) { + // C2 := C2 - V2**T * W**T + ic = offsetC + ( K * strideC1 ); + iv = offsetV + ( K * strideV2 ); + dgemm( 'transpose', 'transpose', M-K, N, K, -1.0, V, strideV1, strideV2, iv, work, strideWork1, strideWork2, offsetWork, 1.0, C, strideC1, strideC2, ic ); + } + // W := W * V1 + dtrmm( 'right', 'upper', 'no-transpose', 'unit', N, K, 1.0, V, strideV1, strideV2, offsetV, work, strideWork1, strideWork2, offsetWork ); + + // C1 := C1 - W**T + o = loopOrder( [ K, N ], [ strideC1, strideC2 ], [ strideWork2, strideWork1 ] ); // eslint-disable-line max-len + sh = o.sh; + sa = o.sx; + sb = o.sy; + + // Extract loop variables for loop interchange + S0 = sh[ 0 ]; + S1 = sh[ 1 ]; + da0 = sa[ 0 ]; + da1 = sa[ 1 ] - ( S0 * sa[ 0 ] ); + db0 = sb[ 0 ]; + db1 = sb[ 1 ] - ( S0 * sb[ 0 ] ); + + // Set pointers to first indexed elements + ia = offsetC; + ib = offsetWork; + + // Iterate over matrix dimensions with optimized loop order + for ( i1 = 0; i1 < S1; i1++ ) { + for ( i0 = 0; i0 < S0; i0++ ) { + C[ ia ] -= work[ ib ]; + ia += da0; + ib += db0; + } + ia += da1; + ib += db1; + } + + return C; +} + + +// EXPORTS // + +module.exports = leftForwardRows; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/main.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/main.js new file mode 100644 index 000000000000..784a0ba1d0b0 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/main.js @@ -0,0 +1,35 @@ +/** +* @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 setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' ); +var dlarfb = require( './dlarfb.js' ); +var ndarray = require( './ndarray.js' ); + + +// MAIN // + +setReadOnly( dlarfb, 'ndarray', ndarray ); + + +// EXPORTS // + +module.exports = dlarfb; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/ndarray.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/ndarray.js new file mode 100644 index 000000000000..83713750485f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/ndarray.js @@ -0,0 +1,95 @@ +/** +* @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 isOperationSide = require( '@stdlib/blas/base/assert/is-operation-side' ); +var isTransposeOperation = require( '@stdlib/blas/base/assert/is-transpose-operation' ); +var isMatrixOrientation = require( '@stdlib/blas/base/assert/is-matrix-orientation' ); +var format = require( '@stdlib/string/format' ); +var base = require( './base.js' ); + + +// MAIN // + +/** +* Applies a real block reflector `H` or its transpose `H ^ T` to a real `M` by `N` matrix `C`, from either the left or the right. +* +* @param {string} side - specifies whether `H` or `H ^ T` is applied from the left or right +* @param {string} trans - specifies whether to apply `H` or `H ^ T` +* @param {string} direct - indicates how `H` is formed from a product of elementary reflectors +* @param {string} storev - indicates how the vectors which define the elementary reflectors are stored +* @param {NonNegativeInteger} M - number of rows of the matrix `C` +* @param {NonNegativeInteger} N - number of columns of the matrix `C` +* @param {NonNegativeInteger} K - order of the matrix `T` +* @param {Float64Array} V - input matrix +* @param {integer} strideV1 - stride of the first dimension of `V` +* @param {integer} strideV2 - stride of the second dimension of `V` +* @param {integer} offsetV - index offset for `V` +* @param {Float64Array} T - input matrix +* @param {integer} strideT1 - stride of the first dimension of `T` +* @param {integer} strideT2 - stride of the second dimension of `T` +* @param {integer} offsetT - index offset for `T` +* @param {Float64Array} C - input matrix +* @param {integer} strideC1 - stride of the first dimension of `C` +* @param {integer} strideC2 - stride of the second dimension of `C` +* @param {integer} offsetC - index offset for `C` +* @param {Float64Array} work - work array +* @param {integer} strideWork1 - stride of the first dimension of `work` +* @param {integer} strideWork2 - stride of the second dimension of `work` +* @param {integer} offsetWork - index offset for `work` +* @throws {TypeError} first argument must be a valid BLAS operation side +* @throws {TypeError} second argument must be a valid BLAS transpose operation +* @throws {TypeError} third argument must be either `forward` or `backward` +* @throws {TypeError} fourth argument must be a valid matrix orientation +* @returns {Float64Array} updated matrix `C` +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* dlarfb( 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0 ); +* +* // C => [ -1350.0, -1400.0, -1450.0, -30961.0, -32102.0, -33243.0, -266612.0, -275464.0, -284316.0 ] +*/ +function dlarfb( side, trans, direct, storev, M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork ) { // eslint-disable-line max-len, max-params + if ( !isOperationSide( side ) ) { + throw new TypeError( format( 'invalid argument. First argument must be a valid BLAS operation side. Value: `%s`.', side ) ); + } + if ( !isTransposeOperation( trans ) ) { + throw new TypeError( format( 'invalid argument. Second argument must be a valid BLAS transpose operation. Value: `%s`.', trans ) ); + } + if ( direct !== 'forward' && direct !== 'backward' ) { + throw new TypeError( format( 'invalid argument. Third argument must be either `forward` or `backward`. Value: `%s`.', direct ) ); + } + if ( !isMatrixOrientation( storev ) ) { + throw new TypeError( format( 'invalid argument. Fourth argument must be a valid matrix orientation. Value: `%s`.', storev ) ); + } + return base( side, trans, direct, storev, M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork ); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = dlarfb; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/right-backward-columns.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/right-backward-columns.js new file mode 100644 index 000000000000..5bb09d8db918 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/right-backward-columns.js @@ -0,0 +1,163 @@ +/** +* @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 dgemm = require( '@stdlib/blas/base/dgemm' ).ndarray; +var dcopy = require( '@stdlib/blas/base/dcopy' ).ndarray; +var loopOrder = require( '@stdlib/ndarray/base/unary-loop-interchange-order' ); +var dtrmm = require( './dtrmm.js' ); + + +// MAIN // + +/** +* Applies a real block reflector H or its transpose H^T to a real M by N matrix C from the right, with backward direction and column storage. +* +* @private +* @param {NonNegativeInteger} M - number of rows of the matrix C +* @param {NonNegativeInteger} N - number of columns of the matrix C +* @param {NonNegativeInteger} K - order of the matrix T +* @param {Float64Array} V - input matrix +* @param {integer} strideV1 - stride of the first dimension of V +* @param {integer} strideV2 - stride of the second dimension of V +* @param {integer} offsetV - index offset for V +* @param {Float64Array} T - input matrix +* @param {integer} strideT1 - stride of the first dimension of T +* @param {integer} strideT2 - stride of the second dimension of T +* @param {integer} offsetT - index offset for T +* @param {Float64Array} C - input matrix +* @param {integer} strideC1 - stride of the first dimension of C +* @param {integer} strideC2 - stride of the second dimension of C +* @param {integer} offsetC - index offset for C +* @param {Float64Array} work - work array +* @param {integer} strideWork1 - stride of the first dimension of work +* @param {integer} strideWork2 - stride of the second dimension of work +* @param {integer} offsetWork - index offset for work +* @param {string} trans - specifies whether to apply H or H^T +* @returns {Float64Array} updated matrix C +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* var result = rightBackwardColumns( 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0, 'no-transpose' ); +* // returns [ -402190.0, -419212.0, -5216.0, -752090.0, -782422.0, -9736.0, -1101990.0, -1145632.0, -14256.0 ] +*/ +function rightBackwardColumns( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ) { // eslint-disable-line max-params, max-len + var da0; + var da1; + var db0; + var db1; + var i0; + var i1; + var sh; + var sa; + var sb; + var S0; + var S1; + var ia; + var ib; + var ic; + var iv; + var iw; + var j; + var o; + + // Quick return if possible + if ( M <= 0 || N <= 0 ) { + return C; + } + + /* Let V = ( V1 ) + * ( V2 ) (last K rows) + * Where V2 is unit upper triangular. + */ + + /* Form C * H or C * H^T where C = ( C1 C2 ) + * W := C * V = (C1*V1 + C2*V2) (stored in WORK) + * W := C2 + */ + ic = offsetC + ( (N-K) * strideC2 ); + iw = offsetWork; + for ( j = 0; j < K; j++ ) { + dcopy( M, C, strideC1, ic, work, strideWork1, iw ); + ic += strideC2; + iw += strideWork2; + } + // W := W * V2 + iv = offsetV + ( (N-K) * strideV1 ); + dtrmm( 'right', 'upper', 'no-transpose', 'unit', M, K, 1.0, V, strideV1, strideV2, iv, work, strideWork1, strideWork2, offsetWork ); + if ( N > K ) { + // W := W + C1 * V1 + dgemm( 'no-transpose', 'no-transpose', M, K, N-K, 1.0, C, strideC1, strideC2, offsetC, V, strideV1, strideV2, offsetV, 1.0, work, strideWork1, strideWork2, offsetWork ); + } + // W := W * T or W * T**T + dtrmm( 'right', 'upper', trans, 'non-unit', M, K, 1.0, T, strideT1, strideT2, offsetT, work, strideWork1, strideWork2, offsetWork ); + + // C := C - W * V**T + if ( N > K ) { + // C1 := C1 - W * V1**T + dgemm( 'no-transpose', 'transpose', M, N-K, K, -1.0, work, strideWork1, strideWork2, offsetWork, V, strideV1, strideV2, offsetV, 1.0, C, strideC1, strideC2, offsetC ); + } + // W := W * V2**T + iv = offsetV + ( (N-K) * strideV1 ); + dtrmm( 'right', 'upper', 'transpose', 'unit', M, K, 1.0, V, strideV1, strideV2, iv, work, strideWork1, strideWork2, offsetWork ); + + // C2 := C2 - W + o = loopOrder( [ K, M ], [ strideC1, strideC2 ], [ strideWork1, strideWork2 ] ); // eslint-disable-line max-len + sh = o.sh; + sa = o.sx; + sb = o.sy; + + // Extract loop variables for loop interchange + S0 = sh[ 0 ]; + S1 = sh[ 1 ]; + da0 = sa[ 0 ]; + da1 = sa[ 1 ] - ( S0 * sa[ 0 ] ); + db0 = sb[ 0 ]; + db1 = sb[ 1 ] - ( S0 * sb[ 0 ] ); + + // Set pointers to first indexed elements + ia = offsetC + ( (N-K) * strideC2 ); + ib = offsetWork; + + // Iterate over matrix dimensions with optimized loop order + for ( i1 = 0; i1 < S1; i1++ ) { + for ( i0 = 0; i0 < S0; i0++ ) { + C[ ia ] -= work[ ib ]; + ia += da0; + ib += db0; + } + ia += da1; + ib += db1; + } + + return C; +} + + +// EXPORTS // + +module.exports = rightBackwardColumns; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/right-backward-rows.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/right-backward-rows.js new file mode 100644 index 000000000000..da62c8ead1e7 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/right-backward-rows.js @@ -0,0 +1,161 @@ +/** +* @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 dgemm = require( '@stdlib/blas/base/dgemm' ).ndarray; +var dcopy = require( '@stdlib/blas/base/dcopy' ).ndarray; +var loopOrder = require( '@stdlib/ndarray/base/unary-loop-interchange-order' ); +var dtrmm = require( './dtrmm.js' ); + + +// MAIN // + +/** +* Applies a real block reflector H or its transpose H^T to a real M by N matrix C from the right, with backward direction and row storage. +* +* @private +* @param {NonNegativeInteger} M - number of rows of the matrix C +* @param {NonNegativeInteger} N - number of columns of the matrix C +* @param {NonNegativeInteger} K - order of the matrix T +* @param {Float64Array} V - input matrix +* @param {integer} strideV1 - stride of the first dimension of V +* @param {integer} strideV2 - stride of the second dimension of V +* @param {integer} offsetV - index offset for V +* @param {Float64Array} T - input matrix +* @param {integer} strideT1 - stride of the first dimension of T +* @param {integer} strideT2 - stride of the second dimension of T +* @param {integer} offsetT - index offset for T +* @param {Float64Array} C - input matrix +* @param {integer} strideC1 - stride of the first dimension of C +* @param {integer} strideC2 - stride of the second dimension of C +* @param {integer} offsetC - index offset for C +* @param {Float64Array} work - work array +* @param {integer} strideWork1 - stride of the first dimension of work +* @param {integer} strideWork2 - stride of the second dimension of work +* @param {integer} offsetWork - index offset for work +* @param {string} trans - specifies whether to apply H or H^T +* @returns {Float64Array} updated matrix C +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* var result = rightBackwardRows( 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0, 'no-transpose' ); +* // returns [ -104950.0, -191792.0, -3176.0, -195250.0, -356002.0, -5896.0, -285550.0, -520212.0, -8616.0 ] +*/ +function rightBackwardRows( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ) { // eslint-disable-line max-params, max-len + var da0; + var da1; + var db0; + var db1; + var i0; + var i1; + var sh; + var sa; + var sb; + var S0; + var S1; + var ia; + var ib; + var ic; + var iv; + var iw; + var j; + var o; + + // Quick return if possible + if ( M <= 0 || N <= 0 ) { + return C; + } + + /* Let V = ( V1 V2 ) (V2: last K columns) + * Where V2 is unit lower triangular. + */ + /* Form C * H or C * H^T where C = ( C1 C2 ) + * W := C * V**T = (C1*V1**T + C2*V2**T) (stored in WORK) + * W := C2 + */ + ic = offsetC + ( (N-K) * strideC2 ); + iw = offsetWork; + for ( j = 0; j < K; j++ ) { + dcopy( M, C, strideC1, ic, work, strideWork1, iw ); + iw += strideWork2; + ic += strideC2; + } + // W := W * V2**T + iv = offsetV + ( (N-K) * strideV2 ); + dtrmm( 'right', 'lower', 'transpose', 'unit', M, K, 1.0, V, strideV1, strideV2, iv, work, strideWork1, strideWork2, offsetWork ); + if ( N > K ) { + // W := W + C1 * V1**T + dgemm( 'no-transpose', 'transpose', M, K, N-K, 1.0, C, strideC1, strideC2, offsetC, V, strideV1, strideV2, offsetV, 1.0, work, strideWork1, strideWork2, offsetWork ); + } + // W := W * T or W * T**T + dtrmm( 'right', 'lower', trans, 'non-unit', M, K, 1.0, T, strideT1, strideT2, offsetT, work, strideWork1, strideWork2, offsetWork ); + + // C := C - W * V + if ( N > K ) { + // C1 := C1 - W * V1 + dgemm( 'no-transpose', 'no-transpose', M, N-K, K, -1.0, work, strideWork1, strideWork2, offsetWork, V, strideV1, strideV2, offsetV, 1.0, C, strideC1, strideC2, offsetC ); + } + // W := W * V2 + iv = offsetV + ( (N-K) * strideV2 ); + dtrmm( 'right', 'lower', 'no-transpose', 'unit', M, K, 1.0, V, strideV1, strideV2, iv, work, strideWork1, strideWork2, offsetWork ); + + // C1 := C1 - W + o = loopOrder( [ K, M ], [ strideC1, strideC2 ], [ strideWork1, strideWork2 ] ); // eslint-disable-line max-len + sh = o.sh; + sa = o.sx; + sb = o.sy; + + // Extract loop variables for loop interchange + S0 = sh[ 0 ]; + S1 = sh[ 1 ]; + da0 = sa[ 0 ]; + da1 = sa[ 1 ] - ( S0 * sa[ 0 ] ); + db0 = sb[ 0 ]; + db1 = sb[ 1 ] - ( S0 * sb[ 0 ] ); + + // Set pointers to first indexed elements + ia = offsetC; + ib = offsetWork; + + // Iterate over matrix dimensions with optimized loop order + for ( i1 = 0; i1 < S1; i1++ ) { + for ( i0 = 0; i0 < S0; i0++ ) { + C[ ia ] -= work[ ib ]; + ia += da0; + ib += db0; + } + ia += da1; + ib += db1; + } + + return C; +} + + +// EXPORTS // + +module.exports = rightBackwardRows; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/right-forward-columns.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/right-forward-columns.js new file mode 100644 index 000000000000..eadee62aad4f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/right-forward-columns.js @@ -0,0 +1,165 @@ +/** +* @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 dgemm = require( '@stdlib/blas/base/dgemm' ).ndarray; +var dcopy = require( '@stdlib/blas/base/dcopy' ).ndarray; +var loopOrder = require( '@stdlib/ndarray/base/unary-loop-interchange-order' ); +var dtrmm = require( './dtrmm.js' ); + + +// MAIN // + +/** +* Applies a real block reflector H or its transpose H^T to a real M by N matrix C from the right, with forward direction and column storage. +* +* @private +* @param {NonNegativeInteger} M - number of rows of the matrix C +* @param {NonNegativeInteger} N - number of columns of the matrix C +* @param {NonNegativeInteger} K - order of the matrix T +* @param {Float64Array} V - input matrix +* @param {integer} strideV1 - stride of the first dimension of V +* @param {integer} strideV2 - stride of the second dimension of V +* @param {integer} offsetV - index offset for V +* @param {Float64Array} T - input matrix +* @param {integer} strideT1 - stride of the first dimension of T +* @param {integer} strideT2 - stride of the second dimension of T +* @param {integer} offsetT - index offset for T +* @param {Float64Array} C - input matrix +* @param {integer} strideC1 - stride of the first dimension of C +* @param {integer} strideC2 - stride of the second dimension of C +* @param {integer} offsetC - index offset for C +* @param {Float64Array} work - work array +* @param {integer} strideWork1 - stride of the first dimension of work +* @param {integer} strideWork2 - stride of the second dimension of work +* @param {integer} offsetWork - index offset for work +* @param {string} trans - specifies whether to apply H or H^T +* @returns {Float64Array} updated matrix C +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* var result = rightForwardColumns( 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0, 'no-transpose' ); +* // returns [ -630.0, -14392.0, -114296.0, -1130.0, -25802.0, -202816.0, -1630.0, -37212.0, -291336.0 ] +*/ +function rightForwardColumns( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ) { // eslint-disable-line max-params, max-len + var da0; + var da1; + var db0; + var db1; + var i0; + var i1; + var sh; + var sa; + var sb; + var S0; + var S1; + var ia; + var ib; + var ic; + var iv; + var iw; + var j; + var o; + + // Quick return if possible + if ( M <= 0 || N <= 0 ) { + return C; + } + + /* Let V = ( V1 ) (first K rows) + * ( V2 ) + * Where V1 is unit lower triangular. + */ + + /* Form C * H or C * H^T where C = ( C1 C2 ) + * W := C * V = (C1*V1 + C2*V2) (stored in WORK) + * W := C1 + */ + ic = offsetC; + iw = offsetWork; + for ( j = 0; j < K; j++ ) { + dcopy( M, C, strideC1, ic, work, strideWork1, iw ); + ic += strideC2; + iw += strideWork2; + } + // W := W * V1 + dtrmm( 'right', 'lower', 'no-transpose', 'unit', M, K, 1.0, V, strideV1, strideV2, offsetV, work, strideWork1, strideWork2, offsetWork ); + if ( N > K ) { + // W := W + C2 * V2 + ic = offsetC + ( K * strideC2 ); + iv = offsetV + ( K * strideV1 ); + dgemm( 'no-transpose', 'no-transpose', M, K, N-K, 1.0, C, strideC1, strideC2, ic, V, strideV1, strideV2, iv, 1.0, work, strideWork1, strideWork2, offsetWork ); + } + // W := W * T or W * T**T + dtrmm( 'right', 'upper', trans, 'non-unit', M, K, 1.0, T, strideT1, strideT2, offsetT, work, strideWork1, strideWork2, offsetWork ); + + // C := C - W * V**T + if ( N > K ) { + // C2 := C2 - W * V2**T + ic = offsetC + ( K * strideC2 ); + iv = offsetV + ( K * strideV1 ); + dgemm( 'no-transpose', 'transpose', M, N-K, K, -1.0, work, strideWork1, strideWork2, offsetWork, V, strideV1, strideV2, iv, 1.0, C, strideC1, strideC2, ic ); + } + // W := W * V1**T + dtrmm( 'right', 'lower', 'transpose', 'unit', M, K, 1.0, V, strideV1, strideV2, offsetV, work, strideWork1, strideWork2, offsetWork ); + + // C1 := C1 - W + o = loopOrder( [ K, M ], [ strideC2, strideC1 ], [ strideWork2, strideWork1 ] ); // eslint-disable-line max-len + sh = o.sh; + sa = o.sx; + sb = o.sy; + + // Extract loop variables for loop interchange + S0 = sh[ 0 ]; + S1 = sh[ 1 ]; + da0 = sa[ 0 ]; + da1 = sa[ 1 ] - ( S0 * sa[ 0 ] ); + db0 = sb[ 0 ]; + db1 = sb[ 1 ] - ( S0 * sb[ 0 ] ); + + // Set pointers to first indexed elements + ia = offsetC; + ib = offsetWork; + + // Iterate over matrix dimensions with optimized loop order + for ( i1 = 0; i1 < S1; i1++ ) { + for ( i0 = 0; i0 < S0; i0++ ) { + C[ ia ] -= work[ ib ]; + ia += da0; + ib += db0; + } + ia += da1; + ib += db1; + } + + return C; +} + + +// EXPORTS // + +module.exports = rightForwardColumns; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/right-forward-rows.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/right-forward-rows.js new file mode 100644 index 000000000000..199194f07ef9 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/lib/right-forward-rows.js @@ -0,0 +1,163 @@ +/** +* @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 dgemm = require( '@stdlib/blas/base/dgemm' ).ndarray; +var dcopy = require( '@stdlib/blas/base/dcopy' ).ndarray; +var loopOrder = require( '@stdlib/ndarray/base/unary-loop-interchange-order' ); +var dtrmm = require( './dtrmm.js' ); + + +// MAIN // + +/** +* Applies a real block reflector H or its transpose H^T to a real M by N matrix C from the right, with forward direction and row storage. +* +* @private +* @param {NonNegativeInteger} M - number of rows of the matrix C +* @param {NonNegativeInteger} N - number of columns of the matrix C +* @param {NonNegativeInteger} K - order of the matrix T +* @param {Float64Array} V - input matrix +* @param {integer} strideV1 - stride of the first dimension of V +* @param {integer} strideV2 - stride of the second dimension of V +* @param {integer} offsetV - index offset for V +* @param {Float64Array} T - input matrix +* @param {integer} strideT1 - stride of the first dimension of T +* @param {integer} strideT2 - stride of the second dimension of T +* @param {integer} offsetT - index offset for T +* @param {Float64Array} C - input matrix +* @param {integer} strideC1 - stride of the first dimension of C +* @param {integer} strideC2 - stride of the second dimension of C +* @param {integer} offsetC - index offset for C +* @param {Float64Array} work - work array +* @param {integer} strideWork1 - stride of the first dimension of work +* @param {integer} strideWork2 - stride of the second dimension of work +* @param {integer} offsetWork - index offset for work +* @param {string} trans - specifies whether to apply H or H^T +* @returns {Float64Array} updated matrix C +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var V = new Float64Array( [ 10.0, 40.0, 70.0, 20.0, 50.0, 80.0, 30.0, 60.0, 90.0 ] ); +* var T = new Float64Array( [ 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 3.0 ] ); +* var C = new Float64Array( [ 11.0, 12.0, 13.0, 21.0, 22.0, 23.0, 31.0, 32.0, 33.0 ] ); +* var work = new Float64Array( 9 ); +* +* var result = rightForwardRows( 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, work, 3, 1, 0, 'no-transpose' ); +* // returns [ -1390.0, -58132.0, -266416.0, -2490.0, -104142.0, -473736.0, -3590.0, -150152.0, -681056.0 ] +*/ +function rightForwardRows( M, N, K, V, strideV1, strideV2, offsetV, T, strideT1, strideT2, offsetT, C, strideC1, strideC2, offsetC, work, strideWork1, strideWork2, offsetWork, trans ) { // eslint-disable-line max-params, max-len + var da0; + var da1; + var db0; + var db1; + var i0; + var i1; + var sh; + var sa; + var sb; + var S0; + var S1; + var ia; + var ib; + var ic; + var iv; + var iw; + var j; + var o; + + // Quick return if possible + if ( M <= 0 || N <= 0 ) { + return C; + } + + /* Let V = ( V1 V2 ) (V1: first K columns) + * Where V1 is unit upper triangular. + */ + /* Form C * H or C * H^T where C = ( C1 C2 ) + * W := C * V**T = (C1*V1**T + C2*V2**T) (stored in WORK) + * W := C1 + */ + ic = offsetC; + iw = offsetWork; + for ( j = 0; j < K; j++ ) { + dcopy( M, C, strideC1, ic, work, strideWork1, iw ); + ic += strideC2; + iw += strideWork2; + } + // W := W * V1**T + dtrmm( 'right', 'upper', 'transpose', 'unit', M, K, 1.0, V, strideV1, strideV2, offsetV, work, strideWork1, strideWork2, offsetWork ); + if ( N > K ) { + // W := W + C2 * V2**T + ic = offsetC + ( K * strideC2 ); + iv = offsetV + ( K * strideV2 ); + dgemm( 'no-transpose', 'transpose', M, K, N-K, 1.0, C, strideC1, strideC2, ic, V, strideV1, strideV2, iv, 1.0, work, strideWork1, strideWork2, offsetWork ); + } + // W := W * T or W * T**T + dtrmm( 'right', 'upper', trans, 'non-unit', M, K, 1.0, T, strideT1, strideT2, offsetT, work, strideWork1, strideWork2, offsetWork ); + + // C := C - W * V + if ( N > K ) { + // C2 := C2 - W * V2 + ic = offsetC + ( K * strideC2 ); + iv = offsetV + ( K * strideV2 ); + dgemm( 'no-transpose', 'no-transpose', M, N-K, K, -1.0, work, strideWork1, strideWork2, offsetWork, V, strideV1, strideV2, iv, 1.0, C, strideC1, strideC2, ic ); + } + // W := W * V1 + dtrmm( 'right', 'upper', 'no-transpose', 'unit', M, K, 1.0, V, strideV1, strideV2, offsetV, work, strideWork1, strideWork2, offsetWork ); + + // C1 := C1 - W + o = loopOrder( [ K, M ], [ strideC1, strideC2 ], [ strideWork1, strideWork2 ] ); // eslint-disable-line max-len + sh = o.sh; + sa = o.sx; + sb = o.sy; + + // Extract loop variables for loop interchange + S0 = sh[ 0 ]; + S1 = sh[ 1 ]; + da0 = sa[ 0 ]; + da1 = sa[ 1 ] - ( S0 * sa[ 0 ] ); + db0 = sb[ 0 ]; + db1 = sb[ 1 ] - ( S0 * sb[ 0 ] ); + + // Set pointers to first indexed elements + ia = offsetC; + ib = offsetWork; + + // Iterate over matrix dimensions with optimized loop order + for ( i1 = 0; i1 < S1; i1++ ) { + for ( i0 = 0; i0 < S0; i0++ ) { + C[ ia ] -= work[ ib ]; + ia += da0; + ib += db0; + } + ia += da1; + ib += db1; + } + + return C; +} + + +// EXPORTS // + +module.exports = rightForwardRows; diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/package.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/package.json new file mode 100644 index 000000000000..fe5aad9e77d1 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/package.json @@ -0,0 +1,71 @@ +{ + "name": "@stdlib/lapack/base/dlarfb", + "version": "0.0.0", + "description": "LAPACK routine to apply a real block reflector `H` or its transpose `H ^ T` to a real `M` by `N` matrix `C`, from either the left or the right.", + "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", + "lapack", + "dlarfb", + "reflector", + "block", + "left", + "right", + "linear", + "algebra", + "subroutines", + "array", + "ndarray", + "float64", + "double", + "float64array" + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_backward_col_col_major.json new file mode 100644 index 000000000000..5a0294218d5c --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_backward_col_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + -557890, + 9999, + -596341, + 9999, + -7412, + 9999, + -592880, + 9999, + -632662, + 9999, + -7864, + 9999, + -627870, + 9999, + -668983, + 9999, + -8316, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_backward_col_row_major.json new file mode 100644 index 000000000000..bce44356651c --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_backward_col_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + -557890, + 9999, + -592880, + 9999, + -627870, + 9999, + -596341, + 9999, + -632662, + 9999, + -668983, + 9999, + -7412, + 9999, + -7864, + 9999, + -8316, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_backward_row_col_major.json new file mode 100644 index 000000000000..78f936311a3f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_backward_row_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + -155530, + 9999, + -292241, + 9999, + -4832, + 9999, + -164560, + 9999, + -308662, + 9999, + -5104, + 9999, + -173590, + 9999, + -325083, + 9999, + -5376, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_backward_row_row_major.json new file mode 100644 index 000000000000..41389b900f56 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_backward_row_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + -155530, + 9999, + -164560, + 9999, + -173590, + 9999, + -292241, + 9999, + -308662, + 9999, + -325083, + 9999, + -4832, + 9999, + -5104, + 9999, + -5376, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_forward_col_col_major.json new file mode 100644 index 000000000000..215bd3bf0537 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_forward_col_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + -1350, + 9999, + -30961, + 9999, + -266612, + 9999, + -1400, + 9999, + -32102, + 9999, + -275464, + 9999, + -1450, + 9999, + -33243, + 9999, + -284316, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_forward_col_row_major.json new file mode 100644 index 000000000000..fbd135cbffaf --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_forward_col_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + -1350, + 9999, + -1400, + 9999, + -1450, + 9999, + -30961, + 9999, + -32102, + 9999, + -33243, + 9999, + -266612, + 9999, + -275464, + 9999, + -284316, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_forward_row_col_major.json new file mode 100644 index 000000000000..25c4c7f0ef06 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_forward_row_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + -3010, + 9999, + -125821, + 9999, + -611692, + 9999, + -3120, + 9999, + -130422, + 9999, + -632424, + 9999, + -3230, + 9999, + -135023, + 9999, + -653156, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_forward_row_row_major.json new file mode 100644 index 000000000000..c3e68cb4d62c --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_notrans_forward_row_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + -3010, + 9999, + -3120, + 9999, + -3230, + 9999, + -125821, + 9999, + -130422, + 9999, + -135023, + 9999, + -611692, + 9999, + -632424, + 9999, + -653156, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_backward_col_col_major.json new file mode 100644 index 000000000000..f68c6040dd47 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_backward_col_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + -557890, + 9999, + -596341, + 9999, + -7412, + 9999, + -592880, + 9999, + -632662, + 9999, + -7864, + 9999, + -627870, + 9999, + -668983, + 9999, + -8316, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_backward_col_row_major.json new file mode 100644 index 000000000000..5a345e65b024 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_backward_col_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + -557890, + 9999, + -592880, + 9999, + -627870, + 9999, + -596341, + 9999, + -632662, + 9999, + -668983, + 9999, + -7412, + 9999, + -7864, + 9999, + -8316, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_backward_row_col_major.json new file mode 100644 index 000000000000..b479a8c1664a --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_backward_row_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + -155530, + 9999, + -292241, + 9999, + -4832, + 9999, + -164560, + 9999, + -308662, + 9999, + -5104, + 9999, + -173590, + 9999, + -325083, + 9999, + -5376, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_backward_row_row_major.json new file mode 100644 index 000000000000..b6d165d283a2 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_backward_row_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + -155530, + 9999, + -164560, + 9999, + -173590, + 9999, + -292241, + 9999, + -308662, + 9999, + -325083, + 9999, + -4832, + 9999, + -5104, + 9999, + -5376, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_forward_col_col_major.json new file mode 100644 index 000000000000..a75657678f3c --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_forward_col_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + -1350, + 9999, + -30961, + 9999, + -266612, + 9999, + -1400, + 9999, + -32102, + 9999, + -275464, + 9999, + -1450, + 9999, + -33243, + 9999, + -284316, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_forward_col_row_major.json new file mode 100644 index 000000000000..a1541eedbbae --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_forward_col_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + -1350, + 9999, + -1400, + 9999, + -1450, + 9999, + -30961, + 9999, + -32102, + 9999, + -33243, + 9999, + -266612, + 9999, + -275464, + 9999, + -284316, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_forward_row_col_major.json new file mode 100644 index 000000000000..1ddf1d11c2d9 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_forward_row_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + -3010, + 9999, + -125821, + 9999, + -611692, + 9999, + -3120, + 9999, + -130422, + 9999, + -632424, + 9999, + -3230, + 9999, + -135023, + 9999, + -653156, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_forward_row_row_major.json new file mode 100644 index 000000000000..697e996ad7aa --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/left_trans_forward_row_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + -3010, + 9999, + -3120, + 9999, + -3230, + 9999, + -125821, + 9999, + -130422, + 9999, + -135023, + 9999, + -611692, + 9999, + -632424, + 9999, + -653156, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_backward_col_col_major.json new file mode 100644 index 000000000000..228438e2b6f8 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_backward_col_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + -402190, + 9999, + -752090, + 9999, + -1101990, + 9999, + -419212, + 9999, + -782422, + 9999, + -1145632, + 9999, + -5216, + 9999, + -9736, + 9999, + -14256, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_backward_col_row_major.json new file mode 100644 index 000000000000..02d309ac44cb --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_backward_col_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + -402190, + 9999, + -419212, + 9999, + -5216, + 9999, + -752090, + 9999, + -782422, + 9999, + -9736, + 9999, + -1101990, + 9999, + -1145632, + 9999, + -14256, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_backward_row_col_major.json new file mode 100644 index 000000000000..c321c1c9bdb9 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_backward_row_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + -104950, + 9999, + -195250, + 9999, + -285550, + 9999, + -191792, + 9999, + -356002, + 9999, + -520212, + 9999, + -3176, + 9999, + -5896, + 9999, + -8616, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_backward_row_row_major.json new file mode 100644 index 000000000000..c33e897396f7 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_backward_row_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + -104950, + 9999, + -191792, + 9999, + -3176, + 9999, + -195250, + 9999, + -356002, + 9999, + -5896, + 9999, + -285550, + 9999, + -520212, + 9999, + -8616, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_forward_col_col_major.json new file mode 100644 index 000000000000..c8675061290b --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_forward_col_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + -630, + 9999, + -1130, + 9999, + -1630, + 9999, + -14392, + 9999, + -25802, + 9999, + -37212, + 9999, + -114296, + 9999, + -202816, + 9999, + -291336, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_forward_col_row_major.json new file mode 100644 index 000000000000..90b9ddbe6d28 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_forward_col_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + -630, + 9999, + -14392, + 9999, + -114296, + 9999, + -1130, + 9999, + -25802, + 9999, + -202816, + 9999, + -1630, + 9999, + -37212, + 9999, + -291336, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_forward_row_col_major.json new file mode 100644 index 000000000000..56d484c42d2a --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_forward_row_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + -1390, + 9999, + -2490, + 9999, + -3590, + 9999, + -58132, + 9999, + -104142, + 9999, + -150152, + 9999, + -266416, + 9999, + -473736, + 9999, + -681056, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_forward_row_row_major.json new file mode 100644 index 000000000000..1b8331ad6e2d --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_notrans_forward_row_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + -1390, + 9999, + -58132, + 9999, + -266416, + 9999, + -2490, + 9999, + -104142, + 9999, + -473736, + 9999, + -3590, + 9999, + -150152, + 9999, + -681056, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_backward_col_col_major.json new file mode 100644 index 000000000000..8b44dc30c99b --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_backward_col_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + -402190, + 9999, + -752090, + 9999, + -1101990, + 9999, + -419212, + 9999, + -782422, + 9999, + -1145632, + 9999, + -5216, + 9999, + -9736, + 9999, + -14256, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_backward_col_row_major.json new file mode 100644 index 000000000000..70ea09916767 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_backward_col_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + -402190, + 9999, + -419212, + 9999, + -5216, + 9999, + -752090, + 9999, + -782422, + 9999, + -9736, + 9999, + -1101990, + 9999, + -1145632, + 9999, + -14256, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_backward_row_col_major.json new file mode 100644 index 000000000000..c155ea959950 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_backward_row_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + -104950, + 9999, + -195250, + 9999, + -285550, + 9999, + -191792, + 9999, + -356002, + 9999, + -520212, + 9999, + -3176, + 9999, + -5896, + 9999, + -8616, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_backward_row_row_major.json new file mode 100644 index 000000000000..8a3f4cb65236 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_backward_row_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + -104950, + 9999, + -191792, + 9999, + -3176, + 9999, + -195250, + 9999, + -356002, + 9999, + -5896, + 9999, + -285550, + 9999, + -520212, + 9999, + -8616, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_forward_col_col_major.json new file mode 100644 index 000000000000..32274969d557 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_forward_col_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + -630, + 9999, + -1130, + 9999, + -1630, + 9999, + -14392, + 9999, + -25802, + 9999, + -37212, + 9999, + -114296, + 9999, + -202816, + 9999, + -291336, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_forward_col_row_major.json new file mode 100644 index 000000000000..c276f577ff48 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_forward_col_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + -630, + 9999, + -14392, + 9999, + -114296, + 9999, + -1130, + 9999, + -25802, + 9999, + -202816, + 9999, + -1630, + 9999, + -37212, + 9999, + -291336, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_forward_row_col_major.json new file mode 100644 index 000000000000..043d6a1e432f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_forward_row_col_major.json @@ -0,0 +1,211 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 2, + "strideV2": 6, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 20, + 9999, + 30, + 9999, + 40, + 9999, + 50, + 9999, + 60, + 9999, + 70, + 9999, + 80, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 2, + "strideT2": 6, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 2, + "strideC2": 6, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 21, + 9999, + 31, + 9999, + 12, + 9999, + 22, + 9999, + 32, + 9999, + 13, + 9999, + 23, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 2, + "strideWork2": 6, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + -1390, + 9999, + -2490, + 9999, + -3590, + 9999, + -58132, + 9999, + -104142, + 9999, + -150152, + 9999, + -266416, + 9999, + -473736, + 9999, + -681056, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_forward_row_row_major.json new file mode 100644 index 000000000000..5b5256e9c842 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/large_strides/right_trans_forward_row_row_major.json @@ -0,0 +1,211 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 6, + "strideV2": 2, + "offsetV": 0, + "LDV": 3, + "V": [ + 10, + 9999, + 40, + 9999, + 70, + 9999, + 20, + 9999, + 50, + 9999, + 80, + 9999, + 30, + 9999, + 60, + 9999, + 90, + 9999 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 6, + "strideT2": 2, + "offsetT": 0, + "LDT": 3, + "T": [ + 1, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 2, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 3, + 9999 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 6, + "strideC2": 2, + "offsetC": 0, + "LDC": 3, + "C": [ + 11, + 9999, + 12, + 9999, + 13, + 9999, + 21, + 9999, + 22, + 9999, + 23, + 9999, + 31, + 9999, + 32, + 9999, + 33, + 9999 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 6, + "strideWork2": 2, + "offsetWork": 0, + "work": [ + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999, + 0, + 9999 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + -1390, + 9999, + -58132, + 9999, + -266416, + 9999, + -2490, + 9999, + -104142, + 9999, + -473736, + 9999, + -3590, + 9999, + -150152, + 9999, + -681056, + 9999 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_backward_col_col_major.json new file mode 100644 index 000000000000..7d72a3cdd2a1 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_backward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890.0, + -592880.0, + -627870.0 + ], + [ + -596341.0, + -632662.0, + -668983.0 + ], + [ + -7412.0, + -7864.0, + -8316.0 + ] + ], + "C_out": [ + -557890.0, + -596341.0, + -7412.0, + -592880.0, + -632662.0, + -7864.0, + -627870.0, + -668983.0, + -8316.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_backward_col_row_major.json new file mode 100644 index 000000000000..586096e4c70f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_backward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890.0, + -592880.0, + -627870.0 + ], + [ + -596341.0, + -632662.0, + -668983.0 + ], + [ + -7412.0, + -7864.0, + -8316.0 + ] + ], + "C_out": [ + -557890.0, + -592880.0, + -627870.0, + -596341.0, + -632662.0, + -668983.0, + -7412.0, + -7864.0, + -8316.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_backward_row_col_major.json new file mode 100644 index 000000000000..089b50c9fcf1 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_backward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530.0, + -164560.0, + -173590.0 + ], + [ + -292241.0, + -308662.0, + -325083.0 + ], + [ + -4832.0, + -5104.0, + -5376.0 + ] + ], + "C_out": [ + -155530.0, + -292241.0, + -4832.0, + -164560.0, + -308662.0, + -5104.0, + -173590.0, + -325083.0, + -5376.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_backward_row_row_major.json new file mode 100644 index 000000000000..ea8f36c4461f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_backward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530.0, + -164560.0, + -173590.0 + ], + [ + -292241.0, + -308662.0, + -325083.0 + ], + [ + -4832.0, + -5104.0, + -5376.0 + ] + ], + "C_out": [ + -155530.0, + -164560.0, + -173590.0, + -292241.0, + -308662.0, + -325083.0, + -4832.0, + -5104.0, + -5376.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_forward_col_col_major.json new file mode 100644 index 000000000000..36c128123170 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_forward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350.0, + -1400.0, + -1450.0 + ], + [ + -30961.0, + -32102.0, + -33243.0 + ], + [ + -266612.0, + -275464.0, + -284316.0 + ] + ], + "C_out": [ + -1350.0, + -30961.0, + -266612.0, + -1400.0, + -32102.0, + -275464.0, + -1450.0, + -33243.0, + -284316.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_forward_col_row_major.json new file mode 100644 index 000000000000..e0b460c34486 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_forward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350.0, + -1400.0, + -1450.0 + ], + [ + -30961.0, + -32102.0, + -33243.0 + ], + [ + -266612.0, + -275464.0, + -284316.0 + ] + ], + "C_out": [ + -1350.0, + -1400.0, + -1450.0, + -30961.0, + -32102.0, + -33243.0, + -266612.0, + -275464.0, + -284316.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_forward_row_col_major.json new file mode 100644 index 000000000000..0891f120d55d --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_forward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010.0, + -3120.0, + -3230.0 + ], + [ + -125821.0, + -130422.0, + -135023.0 + ], + [ + -611692.0, + -632424.0, + -653156.0 + ] + ], + "C_out": [ + -3010.0, + -125821.0, + -611692.0, + -3120.0, + -130422.0, + -632424.0, + -3230.0, + -135023.0, + -653156.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_forward_row_row_major.json new file mode 100644 index 000000000000..ed2232f0dfdf --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_notrans_forward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010.0, + -3120.0, + -3230.0 + ], + [ + -125821.0, + -130422.0, + -135023.0 + ], + [ + -611692.0, + -632424.0, + -653156.0 + ] + ], + "C_out": [ + -3010.0, + -3120.0, + -3230.0, + -125821.0, + -130422.0, + -135023.0, + -611692.0, + -632424.0, + -653156.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_backward_col_col_major.json new file mode 100644 index 000000000000..5a1060a37e76 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_backward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890.0, + -592880.0, + -627870.0 + ], + [ + -596341.0, + -632662.0, + -668983.0 + ], + [ + -7412.0, + -7864.0, + -8316.0 + ] + ], + "C_out": [ + -557890.0, + -596341.0, + -7412.0, + -592880.0, + -632662.0, + -7864.0, + -627870.0, + -668983.0, + -8316.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_backward_col_row_major.json new file mode 100644 index 000000000000..0acc711d1d53 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_backward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890.0, + -592880.0, + -627870.0 + ], + [ + -596341.0, + -632662.0, + -668983.0 + ], + [ + -7412.0, + -7864.0, + -8316.0 + ] + ], + "C_out": [ + -557890.0, + -592880.0, + -627870.0, + -596341.0, + -632662.0, + -668983.0, + -7412.0, + -7864.0, + -8316.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_backward_row_col_major.json new file mode 100644 index 000000000000..ad1bc6d101e8 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_backward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530.0, + -164560.0, + -173590.0 + ], + [ + -292241.0, + -308662.0, + -325083.0 + ], + [ + -4832.0, + -5104.0, + -5376.0 + ] + ], + "C_out": [ + -155530.0, + -292241.0, + -4832.0, + -164560.0, + -308662.0, + -5104.0, + -173590.0, + -325083.0, + -5376.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_backward_row_row_major.json new file mode 100644 index 000000000000..0ec74c592a7b --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_backward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530.0, + -164560.0, + -173590.0 + ], + [ + -292241.0, + -308662.0, + -325083.0 + ], + [ + -4832.0, + -5104.0, + -5376.0 + ] + ], + "C_out": [ + -155530.0, + -164560.0, + -173590.0, + -292241.0, + -308662.0, + -325083.0, + -4832.0, + -5104.0, + -5376.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_forward_col_col_major.json new file mode 100644 index 000000000000..4dd73ad623f8 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_forward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350.0, + -1400.0, + -1450.0 + ], + [ + -30961.0, + -32102.0, + -33243.0 + ], + [ + -266612.0, + -275464.0, + -284316.0 + ] + ], + "C_out": [ + -1350.0, + -30961.0, + -266612.0, + -1400.0, + -32102.0, + -275464.0, + -1450.0, + -33243.0, + -284316.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_forward_col_row_major.json new file mode 100644 index 000000000000..ecc254a411aa --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_forward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350.0, + -1400.0, + -1450.0 + ], + [ + -30961.0, + -32102.0, + -33243.0 + ], + [ + -266612.0, + -275464.0, + -284316.0 + ] + ], + "C_out": [ + -1350.0, + -1400.0, + -1450.0, + -30961.0, + -32102.0, + -33243.0, + -266612.0, + -275464.0, + -284316.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_forward_row_col_major.json new file mode 100644 index 000000000000..ffb9e833c14e --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_forward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010.0, + -3120.0, + -3230.0 + ], + [ + -125821.0, + -130422.0, + -135023.0 + ], + [ + -611692.0, + -632424.0, + -653156.0 + ] + ], + "C_out": [ + -3010.0, + -125821.0, + -611692.0, + -3120.0, + -130422.0, + -632424.0, + -3230.0, + -135023.0, + -653156.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_forward_row_row_major.json new file mode 100644 index 000000000000..67f1bbe1f432 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/left_trans_forward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010.0, + -3120.0, + -3230.0 + ], + [ + -125821.0, + -130422.0, + -135023.0 + ], + [ + -611692.0, + -632424.0, + -653156.0 + ] + ], + "C_out": [ + -3010.0, + -3120.0, + -3230.0, + -125821.0, + -130422.0, + -135023.0, + -611692.0, + -632424.0, + -653156.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_backward_col_col_major.json new file mode 100644 index 000000000000..d623c035485c --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_backward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + -627870, + -668983, + -8316, + -592880, + -632662, + -7864, + -557890, + -596341, + -7412 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_backward_col_row_major.json new file mode 100644 index 000000000000..76caa8fc0e09 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_backward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + -7412, + -7864, + -8316, + -596341, + -632662, + -668983, + -557890, + -592880, + -627870 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_backward_row_col_major.json new file mode 100644 index 000000000000..d94826e3a66d --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_backward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + -173590, + -325083, + -5376, + -164560, + -308662, + -5104, + -155530, + -292241, + -4832 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_backward_row_row_major.json new file mode 100644 index 000000000000..104345db5f3f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_backward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + -4832, + -5104, + -5376, + -292241, + -308662, + -325083, + -155530, + -164560, + -173590 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_forward_col_col_major.json new file mode 100644 index 000000000000..ab28f843d8bf --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_forward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + -1450, + -33243, + -284316, + -1400, + -32102, + -275464, + -1350, + -30961, + -266612 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_forward_col_row_major.json new file mode 100644 index 000000000000..6f660a8f26b9 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_forward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + -266612, + -275464, + -284316, + -30961, + -32102, + -33243, + -1350, + -1400, + -1450 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_forward_row_col_major.json new file mode 100644 index 000000000000..90abd9e87db4 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_forward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + -3230, + -135023, + -653156, + -3120, + -130422, + -632424, + -3010, + -125821, + -611692 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_forward_row_row_major.json new file mode 100644 index 000000000000..feb5009412f4 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_notrans_forward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + -611692, + -632424, + -653156, + -125821, + -130422, + -135023, + -3010, + -3120, + -3230 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_backward_col_col_major.json new file mode 100644 index 000000000000..9ae4e6eddb68 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_backward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + -627870, + -668983, + -8316, + -592880, + -632662, + -7864, + -557890, + -596341, + -7412 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_backward_col_row_major.json new file mode 100644 index 000000000000..4881b5115a5a --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_backward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + -7412, + -7864, + -8316, + -596341, + -632662, + -668983, + -557890, + -592880, + -627870 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_backward_row_col_major.json new file mode 100644 index 000000000000..2e8750c613b0 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_backward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + -173590, + -325083, + -5376, + -164560, + -308662, + -5104, + -155530, + -292241, + -4832 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_backward_row_row_major.json new file mode 100644 index 000000000000..e46e1c56e241 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_backward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + -4832, + -5104, + -5376, + -292241, + -308662, + -325083, + -155530, + -164560, + -173590 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_forward_col_col_major.json new file mode 100644 index 000000000000..40415e52f991 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_forward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + -1450, + -33243, + -284316, + -1400, + -32102, + -275464, + -1350, + -30961, + -266612 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_forward_col_row_major.json new file mode 100644 index 000000000000..0b51efab5011 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_forward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + -266612, + -275464, + -284316, + -30961, + -32102, + -33243, + -1350, + -1400, + -1450 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_forward_row_col_major.json new file mode 100644 index 000000000000..a98a3c52f514 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_forward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + -3230, + -135023, + -653156, + -3120, + -130422, + -632424, + -3010, + -125821, + -611692 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_forward_row_row_major.json new file mode 100644 index 000000000000..728c3dbd0f76 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/left_trans_forward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + -611692, + -632424, + -653156, + -125821, + -130422, + -135023, + -3010, + -3120, + -3230 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_backward_col_col_major.json new file mode 100644 index 000000000000..1da1c08cdc6f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_backward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + -5216, + -9736, + -14256, + -419212, + -782422, + -1145632, + -402190, + -752090, + -1101990 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_backward_col_row_major.json new file mode 100644 index 000000000000..7625556eac4c --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_backward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + -1101990, + -1145632, + -14256, + -752090, + -782422, + -9736, + -402190, + -419212, + -5216 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_backward_row_col_major.json new file mode 100644 index 000000000000..4bae7b201888 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_backward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + -3176, + -5896, + -8616, + -191792, + -356002, + -520212, + -104950, + -195250, + -285550 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_backward_row_row_major.json new file mode 100644 index 000000000000..26954b45bf8f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_backward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + -285550, + -520212, + -8616, + -195250, + -356002, + -5896, + -104950, + -191792, + -3176 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_forward_col_col_major.json new file mode 100644 index 000000000000..b9eb24e0d18e --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_forward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + -114296, + -202816, + -291336, + -14392, + -25802, + -37212, + -630, + -1130, + -1630 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_forward_col_row_major.json new file mode 100644 index 000000000000..fc141396a741 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_forward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + -1630, + -37212, + -291336, + -1130, + -25802, + -202816, + -630, + -14392, + -114296 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_forward_row_col_major.json new file mode 100644 index 000000000000..0137e47bd633 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_forward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + -266416, + -473736, + -681056, + -58132, + -104142, + -150152, + -1390, + -2490, + -3590 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_forward_row_row_major.json new file mode 100644 index 000000000000..c6cd29acf521 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_notrans_forward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + -3590, + -150152, + -681056, + -2490, + -104142, + -473736, + -1390, + -58132, + -266416 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_backward_col_col_major.json new file mode 100644 index 000000000000..0fb6532080dd --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_backward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + -5216, + -9736, + -14256, + -419212, + -782422, + -1145632, + -402190, + -752090, + -1101990 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_backward_col_row_major.json new file mode 100644 index 000000000000..1e1f4426ad5f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_backward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + -1101990, + -1145632, + -14256, + -752090, + -782422, + -9736, + -402190, + -419212, + -5216 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_backward_row_col_major.json new file mode 100644 index 000000000000..57ad39d212c4 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_backward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + -3176, + -5896, + -8616, + -191792, + -356002, + -520212, + -104950, + -195250, + -285550 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_backward_row_row_major.json new file mode 100644 index 000000000000..6bcd6aea6aaa --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_backward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + -285550, + -520212, + -8616, + -195250, + -356002, + -5896, + -104950, + -191792, + -3176 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_forward_col_col_major.json new file mode 100644 index 000000000000..a6b4b86c3c93 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_forward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + -114296, + -202816, + -291336, + -14392, + -25802, + -37212, + -630, + -1130, + -1630 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_forward_col_row_major.json new file mode 100644 index 000000000000..916f25683ac9 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_forward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + -1630, + -37212, + -291336, + -1130, + -25802, + -202816, + -630, + -14392, + -114296 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_forward_row_col_major.json new file mode 100644 index 000000000000..808f92f5e144 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_forward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": -3, + "offsetV": 6, + "LDV": 3, + "V": [ + 70, + 80, + 90, + 40, + 50, + 60, + 10, + 20, + 30 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": -3, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": -3, + "offsetC": 6, + "LDC": 3, + "C": [ + 13, + 23, + 33, + 12, + 22, + 32, + 11, + 21, + 31 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + -266416, + -473736, + -681056, + -58132, + -104142, + -150152, + -1390, + -2490, + -3590 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_forward_row_row_major.json new file mode 100644 index 000000000000..16d94ff8cfb8 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/mixed_strides/right_trans_forward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": 1, + "offsetV": 6, + "LDV": 3, + "V": [ + 30, + 60, + 90, + 20, + 50, + 80, + 10, + 40, + 70 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": 1, + "offsetT": 6, + "LDT": 3, + "T": [ + 0, + 0, + 3, + 0, + 2, + 0, + 1, + 0, + 0 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": 1, + "offsetC": 6, + "LDC": 3, + "C": [ + 31, + 32, + 33, + 21, + 22, + 23, + 11, + 12, + 13 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + -3590, + -150152, + -681056, + -2490, + -104142, + -473736, + -1390, + -58132, + -266416 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_backward_col_col_major.json new file mode 100644 index 000000000000..7312ffeb332f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_backward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + -8316, + -668983, + -627870, + -7864, + -632662, + -592880, + -7412, + -596341, + -557890 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_backward_col_row_major.json new file mode 100644 index 000000000000..613b8a0a2cd3 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_backward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + -8316, + -7864, + -7412, + -668983, + -632662, + -596341, + -627870, + -592880, + -557890 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_backward_row_col_major.json new file mode 100644 index 000000000000..419960d92fa5 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_backward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + -5376, + -325083, + -173590, + -5104, + -308662, + -164560, + -4832, + -292241, + -155530 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_backward_row_row_major.json new file mode 100644 index 000000000000..b4d8e6f472d7 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_backward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + -5376, + -5104, + -4832, + -325083, + -308662, + -292241, + -173590, + -164560, + -155530 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_forward_col_col_major.json new file mode 100644 index 000000000000..faadc5295ddb --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_forward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + -284316, + -33243, + -1450, + -275464, + -32102, + -1400, + -266612, + -30961, + -1350 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_forward_col_row_major.json new file mode 100644 index 000000000000..562cceb50e1c --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_forward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + -284316, + -275464, + -266612, + -33243, + -32102, + -30961, + -1450, + -1400, + -1350 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_forward_row_col_major.json new file mode 100644 index 000000000000..b242444167f4 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_forward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + -653156, + -135023, + -3230, + -632424, + -130422, + -3120, + -611692, + -125821, + -3010 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_forward_row_row_major.json new file mode 100644 index 000000000000..39269b335486 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_notrans_forward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + -653156, + -632424, + -611692, + -135023, + -130422, + -125821, + -3230, + -3120, + -3010 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_backward_col_col_major.json new file mode 100644 index 000000000000..3d6bd21e13c1 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_backward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + -8316, + -668983, + -627870, + -7864, + -632662, + -592880, + -7412, + -596341, + -557890 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_backward_col_row_major.json new file mode 100644 index 000000000000..91d496f85fc3 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_backward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + -8316, + -7864, + -7412, + -668983, + -632662, + -596341, + -627870, + -592880, + -557890 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_backward_row_col_major.json new file mode 100644 index 000000000000..bb88d005bbb0 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_backward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + -5376, + -325083, + -173590, + -5104, + -308662, + -164560, + -4832, + -292241, + -155530 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_backward_row_row_major.json new file mode 100644 index 000000000000..c49c74716d76 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_backward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + -5376, + -5104, + -4832, + -325083, + -308662, + -292241, + -173590, + -164560, + -155530 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_forward_col_col_major.json new file mode 100644 index 000000000000..fb5d0095b543 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_forward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + -284316, + -33243, + -1450, + -275464, + -32102, + -1400, + -266612, + -30961, + -1350 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_forward_col_row_major.json new file mode 100644 index 000000000000..b092c7d0c176 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_forward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + -284316, + -275464, + -266612, + -33243, + -32102, + -30961, + -1450, + -1400, + -1350 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_forward_row_col_major.json new file mode 100644 index 000000000000..f4e8f502728e --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_forward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + -653156, + -135023, + -3230, + -632424, + -130422, + -3120, + -611692, + -125821, + -3010 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_forward_row_row_major.json new file mode 100644 index 000000000000..2906b3270fec --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/left_trans_forward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + -653156, + -632424, + -611692, + -135023, + -130422, + -125821, + -3230, + -3120, + -3010 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_backward_col_col_major.json new file mode 100644 index 000000000000..0c8227b9f47f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_backward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + -14256, + -9736, + -5216, + -1145632, + -782422, + -419212, + -1101990, + -752090, + -402190 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_backward_col_row_major.json new file mode 100644 index 000000000000..5fc19cadad39 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_backward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + -14256, + -1145632, + -1101990, + -9736, + -782422, + -752090, + -5216, + -419212, + -402190 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_backward_row_col_major.json new file mode 100644 index 000000000000..806d6336ea95 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_backward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + -8616, + -5896, + -3176, + -520212, + -356002, + -191792, + -285550, + -195250, + -104950 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_backward_row_row_major.json new file mode 100644 index 000000000000..cd216632db6c --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_backward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + -8616, + -520212, + -285550, + -5896, + -356002, + -195250, + -3176, + -191792, + -104950 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_forward_col_col_major.json new file mode 100644 index 000000000000..2b6131c97c92 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_forward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + -291336, + -202816, + -114296, + -37212, + -25802, + -14392, + -1630, + -1130, + -630 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_forward_col_row_major.json new file mode 100644 index 000000000000..064d306a6034 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_forward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + -291336, + -37212, + -1630, + -202816, + -25802, + -1130, + -114296, + -14392, + -630 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_forward_row_col_major.json new file mode 100644 index 000000000000..0f1a69828866 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_forward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + -681056, + -473736, + -266416, + -150152, + -104142, + -58132, + -3590, + -2490, + -1390 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_forward_row_row_major.json new file mode 100644 index 000000000000..81dfcb8348c1 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_notrans_forward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + -681056, + -150152, + -3590, + -473736, + -104142, + -2490, + -266416, + -58132, + -1390 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_backward_col_col_major.json new file mode 100644 index 000000000000..a3d85ecd111a --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_backward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + -14256, + -9736, + -5216, + -1145632, + -782422, + -419212, + -1101990, + -752090, + -402190 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_backward_col_row_major.json new file mode 100644 index 000000000000..d8d3d351f5b0 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_backward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + -14256, + -1145632, + -1101990, + -9736, + -782422, + -752090, + -5216, + -419212, + -402190 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_backward_row_col_major.json new file mode 100644 index 000000000000..fc92824a9698 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_backward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + -8616, + -5896, + -3176, + -520212, + -356002, + -191792, + -285550, + -195250, + -104950 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_backward_row_row_major.json new file mode 100644 index 000000000000..716723e98d98 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_backward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + -8616, + -520212, + -285550, + -5896, + -356002, + -195250, + -3176, + -191792, + -104950 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_forward_col_col_major.json new file mode 100644 index 000000000000..cdd241442808 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_forward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + -291336, + -202816, + -114296, + -37212, + -25802, + -14392, + -1630, + -1130, + -630 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_forward_col_row_major.json new file mode 100644 index 000000000000..1fde0a9badc7 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_forward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + -291336, + -37212, + -1630, + -202816, + -25802, + -1130, + -114296, + -14392, + -630 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_forward_row_col_major.json new file mode 100644 index 000000000000..161c70a26651 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_forward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -1, + "strideV2": -3, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 80, + 70, + 60, + 50, + 40, + 30, + 20, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -1, + "strideT2": -3, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -1, + "strideC2": -3, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 23, + 13, + 32, + 22, + 12, + 31, + 21, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -1, + "strideWork2": -3, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + -681056, + -473736, + -266416, + -150152, + -104142, + -58132, + -3590, + -2490, + -1390 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_forward_row_row_major.json new file mode 100644 index 000000000000..f053ea9b4d64 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/negative_strides/right_trans_forward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": -3, + "strideV2": -1, + "offsetV": 8, + "LDV": 3, + "V": [ + 90, + 60, + 30, + 80, + 50, + 20, + 70, + 40, + 10 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": -3, + "strideT2": -1, + "offsetT": 8, + "LDT": 3, + "T": [ + 3, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": -3, + "strideC2": -1, + "offsetC": 8, + "LDC": 3, + "C": [ + 33, + 32, + 31, + 23, + 22, + 21, + 13, + 12, + 11 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": -3, + "strideWork2": -1, + "offsetWork": 8, + "work": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + -681056, + -150152, + -3590, + -473736, + -104142, + -2490, + -266416, + -58132, + -1390 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_backward_col_col_major.json new file mode 100644 index 000000000000..037018ce6ddb --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_backward_col_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + 9999, + -557890, + -596341, + -7412, + -592880, + -632662, + -7864, + -627870, + -668983, + -8316 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_backward_col_row_major.json new file mode 100644 index 000000000000..61a45e9baefe --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_backward_col_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + 9999, + -557890, + -592880, + -627870, + -596341, + -632662, + -668983, + -7412, + -7864, + -8316 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_backward_row_col_major.json new file mode 100644 index 000000000000..c4771e949a83 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_backward_row_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + 9999, + -155530, + -292241, + -4832, + -164560, + -308662, + -5104, + -173590, + -325083, + -5376 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_backward_row_row_major.json new file mode 100644 index 000000000000..8ee21c285fb1 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_backward_row_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + 9999, + -155530, + -164560, + -173590, + -292241, + -308662, + -325083, + -4832, + -5104, + -5376 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_forward_col_col_major.json new file mode 100644 index 000000000000..bbe31af04fcb --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_forward_col_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + 9999, + -1350, + -30961, + -266612, + -1400, + -32102, + -275464, + -1450, + -33243, + -284316 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_forward_col_row_major.json new file mode 100644 index 000000000000..3ec56b6a0db3 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_forward_col_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + 9999, + -1350, + -1400, + -1450, + -30961, + -32102, + -33243, + -266612, + -275464, + -284316 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_forward_row_col_major.json new file mode 100644 index 000000000000..72a705457a69 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_forward_row_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + 9999, + -3010, + -125821, + -611692, + -3120, + -130422, + -632424, + -3230, + -135023, + -653156 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_forward_row_row_major.json new file mode 100644 index 000000000000..081eb84e5d64 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_notrans_forward_row_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "left", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + 9999, + -3010, + -3120, + -3230, + -125821, + -130422, + -135023, + -611692, + -632424, + -653156 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_backward_col_col_major.json new file mode 100644 index 000000000000..4782cbd00650 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_backward_col_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + 9999, + -557890, + -596341, + -7412, + -592880, + -632662, + -7864, + -627870, + -668983, + -8316 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_backward_col_row_major.json new file mode 100644 index 000000000000..50fc5f732f2b --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_backward_col_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -557890, + -592880, + -627870 + ], + [ + -596341, + -632662, + -668983 + ], + [ + -7412, + -7864, + -8316 + ] + ], + "C_out": [ + 9999, + -557890, + -592880, + -627870, + -596341, + -632662, + -668983, + -7412, + -7864, + -8316 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_backward_row_col_major.json new file mode 100644 index 000000000000..973c577c533c --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_backward_row_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + 9999, + -155530, + -292241, + -4832, + -164560, + -308662, + -5104, + -173590, + -325083, + -5376 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_backward_row_row_major.json new file mode 100644 index 000000000000..b6207948a12a --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_backward_row_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -155530, + -164560, + -173590 + ], + [ + -292241, + -308662, + -325083 + ], + [ + -4832, + -5104, + -5376 + ] + ], + "C_out": [ + 9999, + -155530, + -164560, + -173590, + -292241, + -308662, + -325083, + -4832, + -5104, + -5376 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_forward_col_col_major.json new file mode 100644 index 000000000000..d3aa122274c2 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_forward_col_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + 9999, + -1350, + -30961, + -266612, + -1400, + -32102, + -275464, + -1450, + -33243, + -284316 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_forward_col_row_major.json new file mode 100644 index 000000000000..c1ec70064047 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_forward_col_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1350, + -1400, + -1450 + ], + [ + -30961, + -32102, + -33243 + ], + [ + -266612, + -275464, + -284316 + ] + ], + "C_out": [ + 9999, + -1350, + -1400, + -1450, + -30961, + -32102, + -33243, + -266612, + -275464, + -284316 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_forward_row_col_major.json new file mode 100644 index 000000000000..61d3c8f71994 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_forward_row_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + 9999, + -3010, + -125821, + -611692, + -3120, + -130422, + -632424, + -3230, + -135023, + -653156 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_forward_row_row_major.json new file mode 100644 index 000000000000..244eb931bdea --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/left_trans_forward_row_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "left", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -3010, + -3120, + -3230 + ], + [ + -125821, + -130422, + -135023 + ], + [ + -611692, + -632424, + -653156 + ] + ], + "C_out": [ + 9999, + -3010, + -3120, + -3230, + -125821, + -130422, + -135023, + -611692, + -632424, + -653156 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_backward_col_col_major.json new file mode 100644 index 000000000000..11c74763d913 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_backward_col_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + 9999, + -402190, + -752090, + -1101990, + -419212, + -782422, + -1145632, + -5216, + -9736, + -14256 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_backward_col_row_major.json new file mode 100644 index 000000000000..ca237bbbaf22 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_backward_col_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + 9999, + -402190, + -419212, + -5216, + -752090, + -782422, + -9736, + -1101990, + -1145632, + -14256 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_backward_row_col_major.json new file mode 100644 index 000000000000..3ab3a195c66b --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_backward_row_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + 9999, + -104950, + -195250, + -285550, + -191792, + -356002, + -520212, + -3176, + -5896, + -8616 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_backward_row_row_major.json new file mode 100644 index 000000000000..bd56f12dbae8 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_backward_row_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + 9999, + -104950, + -191792, + -3176, + -195250, + -356002, + -5896, + -285550, + -520212, + -8616 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_forward_col_col_major.json new file mode 100644 index 000000000000..b9668361ed3b --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_forward_col_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + 9999, + -630, + -1130, + -1630, + -14392, + -25802, + -37212, + -114296, + -202816, + -291336 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_forward_col_row_major.json new file mode 100644 index 000000000000..ddc1a4391f21 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_forward_col_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + 9999, + -630, + -14392, + -114296, + -1130, + -25802, + -202816, + -1630, + -37212, + -291336 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_forward_row_col_major.json new file mode 100644 index 000000000000..e9dbfed8c967 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_forward_row_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + 9999, + -1390, + -2490, + -3590, + -58132, + -104142, + -150152, + -266416, + -473736, + -681056 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_forward_row_row_major.json new file mode 100644 index 000000000000..b6c443cbf622 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_notrans_forward_row_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + 9999, + -1390, + -58132, + -266416, + -2490, + -104142, + -473736, + -3590, + -150152, + -681056 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_backward_col_col_major.json new file mode 100644 index 000000000000..f316ec4faa07 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_backward_col_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + 9999, + -402190, + -752090, + -1101990, + -419212, + -782422, + -1145632, + -5216, + -9736, + -14256 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_backward_col_row_major.json new file mode 100644 index 000000000000..845d85dee640 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_backward_col_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190, + -419212, + -5216 + ], + [ + -752090, + -782422, + -9736 + ], + [ + -1101990, + -1145632, + -14256 + ] + ], + "C_out": [ + 9999, + -402190, + -419212, + -5216, + -752090, + -782422, + -9736, + -1101990, + -1145632, + -14256 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_backward_row_col_major.json new file mode 100644 index 000000000000..7cb3a9a2ff18 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_backward_row_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + 9999, + -104950, + -195250, + -285550, + -191792, + -356002, + -520212, + -3176, + -5896, + -8616 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_backward_row_row_major.json new file mode 100644 index 000000000000..25a1dcb4137a --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_backward_row_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950, + -191792, + -3176 + ], + [ + -195250, + -356002, + -5896 + ], + [ + -285550, + -520212, + -8616 + ] + ], + "C_out": [ + 9999, + -104950, + -191792, + -3176, + -195250, + -356002, + -5896, + -285550, + -520212, + -8616 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_forward_col_col_major.json new file mode 100644 index 000000000000..a6756d703a20 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_forward_col_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + 9999, + -630, + -1130, + -1630, + -14392, + -25802, + -37212, + -114296, + -202816, + -291336 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_forward_col_row_major.json new file mode 100644 index 000000000000..366a529331cf --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_forward_col_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630, + -14392, + -114296 + ], + [ + -1130, + -25802, + -202816 + ], + [ + -1630, + -37212, + -291336 + ] + ], + "C_out": [ + 9999, + -630, + -14392, + -114296, + -1130, + -25802, + -202816, + -1630, + -37212, + -291336 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_forward_row_col_major.json new file mode 100644 index 000000000000..569b3a68b919 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_forward_row_col_major.json @@ -0,0 +1,171 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 21, + 31, + 12, + 22, + 32, + 13, + 23, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + 9999, + -1390, + -2490, + -3590, + -58132, + -104142, + -150152, + -266416, + -473736, + -681056 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_forward_row_row_major.json new file mode 100644 index 000000000000..4a5b49f950a3 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/offsets/right_trans_forward_row_row_major.json @@ -0,0 +1,171 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10, + 40, + 70 + ], + [ + 20, + 50, + 80 + ], + [ + 30, + 60, + 90 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 1, + "LDV": 3, + "V": [ + 9999, + 10, + 40, + 70, + 20, + 50, + 80, + 30, + 60, + 90 + ], + "T_mat": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 0, + 0, + 3 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 1, + "LDT": 3, + "T": [ + 9999, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "C_mat": [ + [ + 11, + 12, + 13 + ], + [ + 21, + 22, + 23 + ], + [ + 31, + 32, + 33 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 1, + "LDC": 3, + "C": [ + 9999, + 11, + 12, + 13, + 21, + 22, + 23, + 31, + 32, + 33 + ], + "work_mat": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 1, + "work": [ + 9999, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390, + -58132, + -266416 + ], + [ + -2490, + -104142, + -473736 + ], + [ + -3590, + -150152, + -681056 + ] + ], + "C_out": [ + 9999, + -1390, + -58132, + -266416, + -2490, + -104142, + -473736, + -3590, + -150152, + -681056 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_backward_col_col_major.json new file mode 100644 index 000000000000..c6277b57da06 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_backward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190.0, + -419212.0, + -5216.0 + ], + [ + -752090.0, + -782422.0, + -9736.0 + ], + [ + -1101990.0, + -1145632.0, + -14256.0 + ] + ], + "C_out": [ + -402190.0, + -752090.0, + -1101990.0, + -419212.0, + -782422.0, + -1145632.0, + -5216.0, + -9736.0, + -14256.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_backward_col_row_major.json new file mode 100644 index 000000000000..eb9bb449866a --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_backward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190.0, + -419212.0, + -5216.0 + ], + [ + -752090.0, + -782422.0, + -9736.0 + ], + [ + -1101990.0, + -1145632.0, + -14256.0 + ] + ], + "C_out": [ + -402190.0, + -419212.0, + -5216.0, + -752090.0, + -782422.0, + -9736.0, + -1101990.0, + -1145632.0, + -14256.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_backward_row_col_major.json new file mode 100644 index 000000000000..908b2e29de16 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_backward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950.0, + -191792.0, + -3176.0 + ], + [ + -195250.0, + -356002.0, + -5896.0 + ], + [ + -285550.0, + -520212.0, + -8616.0 + ] + ], + "C_out": [ + -104950.0, + -195250.0, + -285550.0, + -191792.0, + -356002.0, + -520212.0, + -3176.0, + -5896.0, + -8616.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_backward_row_row_major.json new file mode 100644 index 000000000000..2938caccfad4 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_backward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950.0, + -191792.0, + -3176.0 + ], + [ + -195250.0, + -356002.0, + -5896.0 + ], + [ + -285550.0, + -520212.0, + -8616.0 + ] + ], + "C_out": [ + -104950.0, + -191792.0, + -3176.0, + -195250.0, + -356002.0, + -5896.0, + -285550.0, + -520212.0, + -8616.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_forward_col_col_major.json new file mode 100644 index 000000000000..5c132c045430 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_forward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630.0, + -14392.0, + -114296.0 + ], + [ + -1130.0, + -25802.0, + -202816.0 + ], + [ + -1630.0, + -37212.0, + -291336.0 + ] + ], + "C_out": [ + -630.0, + -1130.0, + -1630.0, + -14392.0, + -25802.0, + -37212.0, + -114296.0, + -202816.0, + -291336.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_forward_col_row_major.json new file mode 100644 index 000000000000..57ce7b94c865 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_forward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630.0, + -14392.0, + -114296.0 + ], + [ + -1130.0, + -25802.0, + -202816.0 + ], + [ + -1630.0, + -37212.0, + -291336.0 + ] + ], + "C_out": [ + -630.0, + -14392.0, + -114296.0, + -1130.0, + -25802.0, + -202816.0, + -1630.0, + -37212.0, + -291336.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_forward_row_col_major.json new file mode 100644 index 000000000000..bc26e5187ff1 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_forward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390.0, + -58132.0, + -266416.0 + ], + [ + -2490.0, + -104142.0, + -473736.0 + ], + [ + -3590.0, + -150152.0, + -681056.0 + ] + ], + "C_out": [ + -1390.0, + -2490.0, + -3590.0, + -58132.0, + -104142.0, + -150152.0, + -266416.0, + -473736.0, + -681056.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_forward_row_row_major.json new file mode 100644 index 000000000000..8626b9b0cec6 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_notrans_forward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "no-transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390.0, + -58132.0, + -266416.0 + ], + [ + -2490.0, + -104142.0, + -473736.0 + ], + [ + -3590.0, + -150152.0, + -681056.0 + ] + ], + "C_out": [ + -1390.0, + -58132.0, + -266416.0, + -2490.0, + -104142.0, + -473736.0, + -3590.0, + -150152.0, + -681056.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_backward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_backward_col_col_major.json new file mode 100644 index 000000000000..d77de0576056 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_backward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190.0, + -419212.0, + -5216.0 + ], + [ + -752090.0, + -782422.0, + -9736.0 + ], + [ + -1101990.0, + -1145632.0, + -14256.0 + ] + ], + "C_out": [ + -402190.0, + -752090.0, + -1101990.0, + -419212.0, + -782422.0, + -1145632.0, + -5216.0, + -9736.0, + -14256.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_backward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_backward_col_row_major.json new file mode 100644 index 000000000000..52784ad3aa88 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_backward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -402190.0, + -419212.0, + -5216.0 + ], + [ + -752090.0, + -782422.0, + -9736.0 + ], + [ + -1101990.0, + -1145632.0, + -14256.0 + ] + ], + "C_out": [ + -402190.0, + -419212.0, + -5216.0, + -752090.0, + -782422.0, + -9736.0, + -1101990.0, + -1145632.0, + -14256.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_backward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_backward_row_col_major.json new file mode 100644 index 000000000000..4808276d2cc8 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_backward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950.0, + -191792.0, + -3176.0 + ], + [ + -195250.0, + -356002.0, + -5896.0 + ], + [ + -285550.0, + -520212.0, + -8616.0 + ] + ], + "C_out": [ + -104950.0, + -195250.0, + -285550.0, + -191792.0, + -356002.0, + -520212.0, + -3176.0, + -5896.0, + -8616.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_backward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_backward_row_row_major.json new file mode 100644 index 000000000000..d1c8cfff128d --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_backward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "backward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -104950.0, + -191792.0, + -3176.0 + ], + [ + -195250.0, + -356002.0, + -5896.0 + ], + [ + -285550.0, + -520212.0, + -8616.0 + ] + ], + "C_out": [ + -104950.0, + -191792.0, + -3176.0, + -195250.0, + -356002.0, + -5896.0, + -285550.0, + -520212.0, + -8616.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_forward_col_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_forward_col_col_major.json new file mode 100644 index 000000000000..b5bab9d0abc7 --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_forward_col_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630.0, + -14392.0, + -114296.0 + ], + [ + -1130.0, + -25802.0, + -202816.0 + ], + [ + -1630.0, + -37212.0, + -291336.0 + ] + ], + "C_out": [ + -630.0, + -1130.0, + -1630.0, + -14392.0, + -25802.0, + -37212.0, + -114296.0, + -202816.0, + -291336.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_forward_col_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_forward_col_row_major.json new file mode 100644 index 000000000000..3a853c3d811f --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_forward_col_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "columns", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -630.0, + -14392.0, + -114296.0 + ], + [ + -1130.0, + -25802.0, + -202816.0 + ], + [ + -1630.0, + -37212.0, + -291336.0 + ] + ], + "C_out": [ + -630.0, + -14392.0, + -114296.0, + -1130.0, + -25802.0, + -202816.0, + -1630.0, + -37212.0, + -291336.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_forward_row_col_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_forward_row_col_major.json new file mode 100644 index 000000000000..6935cfffb1dd --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_forward_row_col_major.json @@ -0,0 +1,166 @@ +{ + "order": "column-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 1, + "strideV2": 3, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 1, + "strideT2": 3, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 1, + "strideC2": 3, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 21.0, + 31.0, + 12.0, + 22.0, + 32.0, + 13.0, + 23.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 1, + "strideWork2": 3, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390.0, + -58132.0, + -266416.0 + ], + [ + -2490.0, + -104142.0, + -473736.0 + ], + [ + -3590.0, + -150152.0, + -681056.0 + ] + ], + "C_out": [ + -1390.0, + -2490.0, + -3590.0, + -58132.0, + -104142.0, + -150152.0, + -266416.0, + -473736.0, + -681056.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_forward_row_row_major.json b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_forward_row_row_major.json new file mode 100644 index 000000000000..1a0a6a5cdf7a --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/fixtures/right_trans_forward_row_row_major.json @@ -0,0 +1,166 @@ +{ + "order": "row-major", + "side": "right", + "trans": "transpose", + "direct": "forward", + "storev": "rows", + "M": 3, + "N": 3, + "K": 3, + "V_mat": [ + [ + 10.0, + 40.0, + 70.0 + ], + [ + 20.0, + 50.0, + 80.0 + ], + [ + 30.0, + 60.0, + 90.0 + ] + ], + "strideV1": 3, + "strideV2": 1, + "offsetV": 0, + "LDV": 3, + "V": [ + 10.0, + 40.0, + 70.0, + 20.0, + 50.0, + 80.0, + 30.0, + 60.0, + 90.0 + ], + "T_mat": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.0, + 0.0 + ], + [ + 0.0, + 0.0, + 3.0 + ] + ], + "strideT1": 3, + "strideT2": 1, + "offsetT": 0, + "LDT": 3, + "T": [ + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 3.0 + ], + "C_mat": [ + [ + 11.0, + 12.0, + 13.0 + ], + [ + 21.0, + 22.0, + 23.0 + ], + [ + 31.0, + 32.0, + 33.0 + ] + ], + "strideC1": 3, + "strideC2": 1, + "offsetC": 0, + "LDC": 3, + "C": [ + 11.0, + 12.0, + 13.0, + 21.0, + 22.0, + 23.0, + 31.0, + 32.0, + 33.0 + ], + "work_mat": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "strideWork1": 3, + "strideWork2": 1, + "offsetWork": 0, + "work": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "LDWORK": 3, + "C_out_mat": [ + [ + -1390.0, + -58132.0, + -266416.0 + ], + [ + -2490.0, + -104142.0, + -473736.0 + ], + [ + -3590.0, + -150152.0, + -681056.0 + ] + ], + "C_out": [ + -1390.0, + -58132.0, + -266416.0, + -2490.0, + -104142.0, + -473736.0, + -3590.0, + -150152.0, + -681056.0 + ] +} diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/test.dlarfb.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/test.dlarfb.js new file mode 100644 index 000000000000..320eb32570eb --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/test.dlarfb.js @@ -0,0 +1,1039 @@ +/** +* @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. +*/ + +/* eslint-disable max-len, id-length */ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var Float64Array = require( '@stdlib/array/float64' ); +var dlarfb = require( './../lib/dlarfb.js' ); + + +// FIXTURES // + +var LEFT_TRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/left_trans_forward_col_row_major.json' ); +var LEFT_TRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/left_trans_forward_col_col_major.json' ); +var LEFT_TRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/left_trans_forward_row_row_major.json' ); +var LEFT_TRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/left_trans_forward_row_col_major.json' ); +var LEFT_TRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/left_trans_backward_col_row_major.json' ); +var LEFT_TRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/left_trans_backward_col_col_major.json' ); +var LEFT_TRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/left_trans_backward_row_row_major.json' ); +var LEFT_TRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/left_trans_backward_row_col_major.json' ); + +var LEFT_NOTRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/left_notrans_forward_col_row_major.json' ); +var LEFT_NOTRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/left_notrans_forward_col_col_major.json' ); +var LEFT_NOTRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/left_notrans_forward_row_row_major.json' ); +var LEFT_NOTRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/left_notrans_forward_row_col_major.json' ); +var LEFT_NOTRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/left_notrans_backward_col_row_major.json' ); +var LEFT_NOTRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/left_notrans_backward_col_col_major.json' ); +var LEFT_NOTRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/left_notrans_backward_row_row_major.json' ); +var LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/left_notrans_backward_row_col_major.json' ); + +var RIGHT_TRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/right_trans_forward_col_row_major.json' ); +var RIGHT_TRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/right_trans_forward_col_col_major.json' ); +var RIGHT_TRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/right_trans_forward_row_row_major.json' ); +var RIGHT_TRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/right_trans_forward_row_col_major.json' ); +var RIGHT_TRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/right_trans_backward_col_row_major.json' ); +var RIGHT_TRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/right_trans_backward_col_col_major.json' ); +var RIGHT_TRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/right_trans_backward_row_row_major.json' ); +var RIGHT_TRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/right_trans_backward_row_col_major.json' ); + +var RIGHT_NOTRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/right_notrans_forward_col_row_major.json' ); +var RIGHT_NOTRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/right_notrans_forward_col_col_major.json' ); +var RIGHT_NOTRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/right_notrans_forward_row_row_major.json' ); +var RIGHT_NOTRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/right_notrans_forward_row_col_major.json' ); +var RIGHT_NOTRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/right_notrans_backward_col_row_major.json' ); +var RIGHT_NOTRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/right_notrans_backward_col_col_major.json' ); +var RIGHT_NOTRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/right_notrans_backward_row_row_major.json' ); +var RIGHT_NOTRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/right_notrans_backward_row_col_major.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof dlarfb, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function throws an error if provided a first argument which is not a valid order', function test( t ) { + var values; + var V; + var T; + var C; + var i; + + V = new Float64Array( 9 ); + T = new Float64Array( 9 ); + C = new Float64Array( 9 ); + + values = [ 'foo', 'bar', -5, NaN, true, false, null, void 0, [], {}, function noop() {} ]; + 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() { + dlarfb( value, 'left', 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, new Float64Array( 9 ), 3 ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid `side`', function test( t ) { + var values; + var V; + var T; + var C; + var i; + + V = new Float64Array( 9 ); + T = new Float64Array( 9 ); + C = new Float64Array( 9 ); + + values = [ 'foo', 'beep', 'boop', 5, null, void 0, [], {} ]; + 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() { + dlarfb( 'row-major', value, 'transpose', 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, new Float64Array( 9 ), 3 ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid `trans`', function test( t ) { + var values; + var V; + var T; + var C; + var i; + + V = new Float64Array( 9 ); + T = new Float64Array( 9 ); + C = new Float64Array( 9 ); + + values = [ 'foo', 'beep', 'boop', 5, null, void 0, [], {} ]; + 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() { + dlarfb( 'row-major', 'left', value, 'forward', 'columns', 3, 3, 3, V, 3, T, 3, C, 3, new Float64Array( 9 ), 3 ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid `direct`', function test( t ) { + var values; + var V; + var T; + var C; + var i; + + V = new Float64Array( 9 ); + T = new Float64Array( 9 ); + C = new Float64Array( 9 ); + + values = [ 'foo', 'beep', 'boop', 5, null, void 0, [], {} ]; + 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() { + dlarfb( 'row-major', 'left', 'transpose', value, 'columns', 3, 3, 3, V, 3, T, 3, C, 3, new Float64Array( 9 ), 3 ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid `storev`', function test( t ) { + var values; + var V; + var T; + var C; + var i; + + V = new Float64Array( 9 ); + T = new Float64Array( 9 ); + C = new Float64Array( 9 ); + + values = [ 'foo', 'beep', 'boop', 5, null, void 0, [], {} ]; + 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() { + dlarfb( 'row-major', 'left', 'transpose', 'forward', value, 3, 3, 3, V, 3, T, 3, C, 3, new Float64Array( 9 ), 3 ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid `LDC`', function test( t ) { + var values; + var data; + var i; + + data = LEFT_TRANS_FORWARD_COL_ROW_MAJOR; + + values = [ 0, 1, 2 ]; + for ( i = 0; i < values.length; i++ ) { + t.throws( badRow( values[ i ] ), RangeError, 'row-major throws when provided ' + values[ i ] ); + t.throws( badCol( values[ i ] ), RangeError, 'column-major throws when provided ' + values[ i ] ); + } + t.end(); + + function badRow( value ) { + return function badRow() { + dlarfb( data.order, data.side, data.trans, data.direct, 'columns', data.M, data.N, data.K, new Float64Array( data.V ), data.LDV, new Float64Array( data.T ), data.LDT, new Float64Array( data.C ), value, new Float64Array( data.work ), data.LDWORK ); + }; + } + + function badCol( value ) { + return function badCol() { + dlarfb( data.order, data.side, data.trans, data.direct, 'columns', data.M, data.N, data.K, new Float64Array( data.V ), data.LDV, new Float64Array( data.T ), data.LDT, new Float64Array( data.C ), value, new Float64Array( data.work ), data.LDWORK ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid `LDT`', function test( t ) { + var values; + var data; + var V; + var T; + var C; + var i; + + data = LEFT_TRANS_FORWARD_COL_ROW_MAJOR; + + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + + values = [ 0, 1, 2 ]; + 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() { + dlarfb( data.order, data.side, data.trans, data.direct, 'columns', data.M, data.N, data.K, V, data.LDV, T, value, C, data.LDC, new Float64Array( data.work ), data.LDWORK ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid `LDV` for row-major with rows orientation (left side)', function test( t ) { + var values; + var data; + var V; + var T; + var C; + var i; + + data = LEFT_TRANS_FORWARD_COL_ROW_MAJOR; + + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + + values = [ 0, 1, 2 ]; + 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() { + dlarfb( data.order, data.side, data.trans, data.direct, 'rows', data.M, data.N, data.K, V, value, T, data.LDT, C, data.LDC, new Float64Array( data.work ), data.LDWORK ); + }; + } +}); + +tape( 'the function throws an error if provided an invalid `LDWORK` for column-major (side dependent)', function test( t ) { + var values; + var data; + var V; + var T; + var C; + var i; + + data = LEFT_TRANS_FORWARD_COL_COL_MAJOR; + + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + + values = [ 0, 1, 2 ]; + 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() { + dlarfb( data.order, data.side, data.trans, data.direct, 'columns', data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, new Float64Array( data.work ), value ); + }; + } +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.order, data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.LDV, T, data.LDT, C, data.LDC, work, data.LDWORK ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/test.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/test.js new file mode 100644 index 000000000000..0fe4ee138b2c --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/test.js @@ -0,0 +1,82 @@ +/** +* @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 tape = require( 'tape' ); +var proxyquire = require( 'proxyquire' ); +var IS_BROWSER = require( '@stdlib/assert/is-browser' ); +var dlarfb = 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 dlarfb, '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 dlarfb.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 dlarfb = proxyquire( './../lib', { + '@stdlib/utils/try-require': tryRequire + }); + + t.strictEqual( dlarfb, 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 dlarfb; + var main; + + main = require( './../lib/dlarfb.js' ); + + dlarfb = proxyquire( './../lib', { + '@stdlib/utils/try-require': tryRequire + }); + + t.strictEqual( dlarfb, main, 'returns expected value' ); + t.end(); + + function tryRequire() { + return new Error( 'Cannot find module' ); + } +}); diff --git a/lib/node_modules/@stdlib/lapack/base/dlarfb/test/test.ndarray.js b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/test.ndarray.js new file mode 100644 index 000000000000..1cb2255a3edd --- /dev/null +++ b/lib/node_modules/@stdlib/lapack/base/dlarfb/test/test.ndarray.js @@ -0,0 +1,3934 @@ +/** +* @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. +*/ + +/* eslint-disable max-len, id-length, max-lines */ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var Float64Array = require( '@stdlib/array/float64' ); +var dlarfb = require( './../lib/ndarray.js' ); + + +// FIXTURES // + +var LEFT_TRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/left_trans_forward_col_row_major.json' ); +var LEFT_TRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/left_trans_forward_col_col_major.json' ); +var LEFT_TRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/left_trans_forward_row_row_major.json' ); +var LEFT_TRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/left_trans_forward_row_col_major.json' ); +var LEFT_TRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/left_trans_backward_col_row_major.json' ); +var LEFT_TRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/left_trans_backward_col_col_major.json' ); +var LEFT_TRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/left_trans_backward_row_row_major.json' ); +var LEFT_TRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/left_trans_backward_row_col_major.json' ); + +var LEFT_NOTRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/left_notrans_forward_col_row_major.json' ); +var LEFT_NOTRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/left_notrans_forward_col_col_major.json' ); +var LEFT_NOTRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/left_notrans_forward_row_row_major.json' ); +var LEFT_NOTRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/left_notrans_forward_row_col_major.json' ); +var LEFT_NOTRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/left_notrans_backward_col_row_major.json' ); +var LEFT_NOTRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/left_notrans_backward_col_col_major.json' ); +var LEFT_NOTRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/left_notrans_backward_row_row_major.json' ); +var LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/left_notrans_backward_row_col_major.json' ); + +var RIGHT_TRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/right_trans_forward_col_row_major.json' ); +var RIGHT_TRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/right_trans_forward_col_col_major.json' ); +var RIGHT_TRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/right_trans_forward_row_row_major.json' ); +var RIGHT_TRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/right_trans_forward_row_col_major.json' ); +var RIGHT_TRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/right_trans_backward_col_row_major.json' ); +var RIGHT_TRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/right_trans_backward_col_col_major.json' ); +var RIGHT_TRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/right_trans_backward_row_row_major.json' ); +var RIGHT_TRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/right_trans_backward_row_col_major.json' ); + +var RIGHT_NOTRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/right_notrans_forward_col_row_major.json' ); +var RIGHT_NOTRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/right_notrans_forward_col_col_major.json' ); +var RIGHT_NOTRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/right_notrans_forward_row_row_major.json' ); +var RIGHT_NOTRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/right_notrans_forward_row_col_major.json' ); +var RIGHT_NOTRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/right_notrans_backward_col_row_major.json' ); +var RIGHT_NOTRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/right_notrans_backward_col_col_major.json' ); +var RIGHT_NOTRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/right_notrans_backward_row_row_major.json' ); +var RIGHT_NOTRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/right_notrans_backward_row_col_major.json' ); + +var OFFSETS_LEFT_TRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/offsets/left_trans_forward_col_row_major.json' ); +var OFFSETS_LEFT_TRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/offsets/left_trans_forward_col_col_major.json' ); +var OFFSETS_LEFT_TRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/offsets/left_trans_forward_row_row_major.json' ); +var OFFSETS_LEFT_TRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/offsets/left_trans_forward_row_col_major.json' ); +var OFFSETS_LEFT_TRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/offsets/left_trans_backward_col_row_major.json' ); +var OFFSETS_LEFT_TRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/offsets/left_trans_backward_col_col_major.json' ); +var OFFSETS_LEFT_TRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/offsets/left_trans_backward_row_row_major.json' ); +var OFFSETS_LEFT_TRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/offsets/left_trans_backward_row_col_major.json' ); +var OFFSETS_LEFT_NOTRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/offsets/left_notrans_forward_col_row_major.json' ); +var OFFSETS_LEFT_NOTRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/offsets/left_notrans_forward_col_col_major.json' ); +var OFFSETS_LEFT_NOTRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/offsets/left_notrans_forward_row_row_major.json' ); +var OFFSETS_LEFT_NOTRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/offsets/left_notrans_forward_row_col_major.json' ); +var OFFSETS_LEFT_NOTRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/offsets/left_notrans_backward_col_row_major.json' ); +var OFFSETS_LEFT_NOTRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/offsets/left_notrans_backward_col_col_major.json' ); +var OFFSETS_LEFT_NOTRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/offsets/left_notrans_backward_row_row_major.json' ); +var OFFSETS_LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/offsets/left_notrans_backward_row_col_major.json' ); +var OFFSETS_RIGHT_TRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/offsets/right_trans_forward_col_row_major.json' ); +var OFFSETS_RIGHT_TRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/offsets/right_trans_forward_col_col_major.json' ); +var OFFSETS_RIGHT_TRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/offsets/right_trans_forward_row_row_major.json' ); +var OFFSETS_RIGHT_TRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/offsets/right_trans_forward_row_col_major.json' ); +var OFFSETS_RIGHT_TRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/offsets/right_trans_backward_col_row_major.json' ); +var OFFSETS_RIGHT_TRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/offsets/right_trans_backward_col_col_major.json' ); +var OFFSETS_RIGHT_TRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/offsets/right_trans_backward_row_row_major.json' ); +var OFFSETS_RIGHT_TRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/offsets/right_trans_backward_row_col_major.json' ); +var OFFSETS_RIGHT_NOTRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/offsets/right_notrans_forward_col_row_major.json' ); +var OFFSETS_RIGHT_NOTRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/offsets/right_notrans_forward_col_col_major.json' ); +var OFFSETS_RIGHT_NOTRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/offsets/right_notrans_forward_row_row_major.json' ); +var OFFSETS_RIGHT_NOTRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/offsets/right_notrans_forward_row_col_major.json' ); +var OFFSETS_RIGHT_NOTRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/offsets/right_notrans_backward_col_row_major.json' ); +var OFFSETS_RIGHT_NOTRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/offsets/right_notrans_backward_col_col_major.json' ); +var OFFSETS_RIGHT_NOTRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/offsets/right_notrans_backward_row_row_major.json' ); +var OFFSETS_RIGHT_NOTRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/offsets/right_notrans_backward_row_col_major.json' ); + +var LARGE_STRIDES_LEFT_TRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/large_strides/left_trans_forward_col_row_major.json' ); +var LARGE_STRIDES_LEFT_TRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/large_strides/left_trans_forward_col_col_major.json' ); +var LARGE_STRIDES_LEFT_TRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/large_strides/left_trans_forward_row_row_major.json' ); +var LARGE_STRIDES_LEFT_TRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/large_strides/left_trans_forward_row_col_major.json' ); +var LARGE_STRIDES_LEFT_TRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/large_strides/left_trans_backward_col_row_major.json' ); +var LARGE_STRIDES_LEFT_TRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/large_strides/left_trans_backward_col_col_major.json' ); +var LARGE_STRIDES_LEFT_TRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/large_strides/left_trans_backward_row_row_major.json' ); +var LARGE_STRIDES_LEFT_TRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/large_strides/left_trans_backward_row_col_major.json' ); +var LARGE_STRIDES_LEFT_NOTRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/large_strides/left_notrans_forward_col_row_major.json' ); +var LARGE_STRIDES_LEFT_NOTRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/large_strides/left_notrans_forward_col_col_major.json' ); +var LARGE_STRIDES_LEFT_NOTRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/large_strides/left_notrans_forward_row_row_major.json' ); +var LARGE_STRIDES_LEFT_NOTRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/large_strides/left_notrans_forward_row_col_major.json' ); +var LARGE_STRIDES_LEFT_NOTRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/large_strides/left_notrans_backward_col_row_major.json' ); +var LARGE_STRIDES_LEFT_NOTRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/large_strides/left_notrans_backward_col_col_major.json' ); +var LARGE_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/large_strides/left_notrans_backward_row_row_major.json' ); +var LARGE_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/large_strides/left_notrans_backward_row_col_major.json' ); +var LARGE_STRIDES_RIGHT_TRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/large_strides/right_trans_forward_col_row_major.json' ); +var LARGE_STRIDES_RIGHT_TRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/large_strides/right_trans_forward_col_col_major.json' ); +var LARGE_STRIDES_RIGHT_TRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/large_strides/right_trans_forward_row_row_major.json' ); +var LARGE_STRIDES_RIGHT_TRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/large_strides/right_trans_forward_row_col_major.json' ); +var LARGE_STRIDES_RIGHT_TRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/large_strides/right_trans_backward_col_row_major.json' ); +var LARGE_STRIDES_RIGHT_TRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/large_strides/right_trans_backward_col_col_major.json' ); +var LARGE_STRIDES_RIGHT_TRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/large_strides/right_trans_backward_row_row_major.json' ); +var LARGE_STRIDES_RIGHT_TRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/large_strides/right_trans_backward_row_col_major.json' ); +var LARGE_STRIDES_RIGHT_NOTRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/large_strides/right_notrans_forward_col_row_major.json' ); +var LARGE_STRIDES_RIGHT_NOTRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/large_strides/right_notrans_forward_col_col_major.json' ); +var LARGE_STRIDES_RIGHT_NOTRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/large_strides/right_notrans_forward_row_row_major.json' ); +var LARGE_STRIDES_RIGHT_NOTRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/large_strides/right_notrans_forward_row_col_major.json' ); +var LARGE_STRIDES_RIGHT_NOTRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/large_strides/right_notrans_backward_col_row_major.json' ); +var LARGE_STRIDES_RIGHT_NOTRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/large_strides/right_notrans_backward_col_col_major.json' ); +var LARGE_STRIDES_RIGHT_NOTRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/large_strides/right_notrans_backward_row_row_major.json' ); +var LARGE_STRIDES_RIGHT_NOTRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/large_strides/right_notrans_backward_row_col_major.json' ); + +var MIXED_STRIDES_LEFT_TRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/mixed_strides/left_trans_forward_col_row_major.json' ); +var MIXED_STRIDES_LEFT_TRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/mixed_strides/left_trans_forward_col_col_major.json' ); +var MIXED_STRIDES_LEFT_TRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/mixed_strides/left_trans_forward_row_row_major.json' ); +var MIXED_STRIDES_LEFT_TRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/mixed_strides/left_trans_forward_row_col_major.json' ); +var MIXED_STRIDES_LEFT_TRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/mixed_strides/left_trans_backward_col_row_major.json' ); +var MIXED_STRIDES_LEFT_TRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/mixed_strides/left_trans_backward_col_col_major.json' ); +var MIXED_STRIDES_LEFT_TRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/mixed_strides/left_trans_backward_row_row_major.json' ); +var MIXED_STRIDES_LEFT_TRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/mixed_strides/left_trans_backward_row_col_major.json' ); +var MIXED_STRIDES_LEFT_NOTRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/mixed_strides/left_notrans_forward_col_row_major.json' ); +var MIXED_STRIDES_LEFT_NOTRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/mixed_strides/left_notrans_forward_col_col_major.json' ); +var MIXED_STRIDES_LEFT_NOTRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/mixed_strides/left_notrans_forward_row_row_major.json' ); +var MIXED_STRIDES_LEFT_NOTRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/mixed_strides/left_notrans_forward_row_col_major.json' ); +var MIXED_STRIDES_LEFT_NOTRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/mixed_strides/left_notrans_backward_col_row_major.json' ); +var MIXED_STRIDES_LEFT_NOTRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/mixed_strides/left_notrans_backward_col_col_major.json' ); +var MIXED_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/mixed_strides/left_notrans_backward_row_row_major.json' ); +var MIXED_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/mixed_strides/left_notrans_backward_row_col_major.json' ); +var MIXED_STRIDES_RIGHT_TRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/mixed_strides/right_trans_forward_col_row_major.json' ); +var MIXED_STRIDES_RIGHT_TRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/mixed_strides/right_trans_forward_col_col_major.json' ); +var MIXED_STRIDES_RIGHT_TRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/mixed_strides/right_trans_forward_row_row_major.json' ); +var MIXED_STRIDES_RIGHT_TRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/mixed_strides/right_trans_forward_row_col_major.json' ); +var MIXED_STRIDES_RIGHT_TRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/mixed_strides/right_trans_backward_col_row_major.json' ); +var MIXED_STRIDES_RIGHT_TRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/mixed_strides/right_trans_backward_col_col_major.json' ); +var MIXED_STRIDES_RIGHT_TRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/mixed_strides/right_trans_backward_row_row_major.json' ); +var MIXED_STRIDES_RIGHT_TRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/mixed_strides/right_trans_backward_row_col_major.json' ); +var MIXED_STRIDES_RIGHT_NOTRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/mixed_strides/right_notrans_forward_col_row_major.json' ); +var MIXED_STRIDES_RIGHT_NOTRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/mixed_strides/right_notrans_forward_col_col_major.json' ); +var MIXED_STRIDES_RIGHT_NOTRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/mixed_strides/right_notrans_forward_row_row_major.json' ); +var MIXED_STRIDES_RIGHT_NOTRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/mixed_strides/right_notrans_forward_row_col_major.json' ); +var MIXED_STRIDES_RIGHT_NOTRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/mixed_strides/right_notrans_backward_col_row_major.json' ); +var MIXED_STRIDES_RIGHT_NOTRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/mixed_strides/right_notrans_backward_col_col_major.json' ); +var MIXED_STRIDES_RIGHT_NOTRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/mixed_strides/right_notrans_backward_row_row_major.json' ); +var MIXED_STRIDES_RIGHT_NOTRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/mixed_strides/right_notrans_backward_row_col_major.json' ); + +var NEGATIVE_STRIDES_LEFT_TRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/negative_strides/left_trans_forward_col_row_major.json' ); +var NEGATIVE_STRIDES_LEFT_TRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/negative_strides/left_trans_forward_col_col_major.json' ); +var NEGATIVE_STRIDES_LEFT_TRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/negative_strides/left_trans_forward_row_row_major.json' ); +var NEGATIVE_STRIDES_LEFT_TRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/negative_strides/left_trans_forward_row_col_major.json' ); +var NEGATIVE_STRIDES_LEFT_TRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/negative_strides/left_trans_backward_col_row_major.json' ); +var NEGATIVE_STRIDES_LEFT_TRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/negative_strides/left_trans_backward_col_col_major.json' ); +var NEGATIVE_STRIDES_LEFT_TRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/negative_strides/left_trans_backward_row_row_major.json' ); +var NEGATIVE_STRIDES_LEFT_TRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/negative_strides/left_trans_backward_row_col_major.json' ); +var NEGATIVE_STRIDES_LEFT_NOTRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/negative_strides/left_notrans_forward_col_row_major.json' ); +var NEGATIVE_STRIDES_LEFT_NOTRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/negative_strides/left_notrans_forward_col_col_major.json' ); +var NEGATIVE_STRIDES_LEFT_NOTRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/negative_strides/left_notrans_forward_row_row_major.json' ); +var NEGATIVE_STRIDES_LEFT_NOTRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/negative_strides/left_notrans_forward_row_col_major.json' ); +var NEGATIVE_STRIDES_LEFT_NOTRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/negative_strides/left_notrans_backward_col_row_major.json' ); +var NEGATIVE_STRIDES_LEFT_NOTRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/negative_strides/left_notrans_backward_col_col_major.json' ); +var NEGATIVE_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/negative_strides/left_notrans_backward_row_row_major.json' ); +var NEGATIVE_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/negative_strides/left_notrans_backward_row_col_major.json' ); +var NEGATIVE_STRIDES_RIGHT_TRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/negative_strides/right_trans_forward_col_row_major.json' ); +var NEGATIVE_STRIDES_RIGHT_TRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/negative_strides/right_trans_forward_col_col_major.json' ); +var NEGATIVE_STRIDES_RIGHT_TRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/negative_strides/right_trans_forward_row_row_major.json' ); +var NEGATIVE_STRIDES_RIGHT_TRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/negative_strides/right_trans_forward_row_col_major.json' ); +var NEGATIVE_STRIDES_RIGHT_TRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/negative_strides/right_trans_backward_col_row_major.json' ); +var NEGATIVE_STRIDES_RIGHT_TRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/negative_strides/right_trans_backward_col_col_major.json' ); +var NEGATIVE_STRIDES_RIGHT_TRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/negative_strides/right_trans_backward_row_row_major.json' ); +var NEGATIVE_STRIDES_RIGHT_TRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/negative_strides/right_trans_backward_row_col_major.json' ); +var NEGATIVE_STRIDES_RIGHT_NOTRANS_FORWARD_COL_ROW_MAJOR = require( './fixtures/negative_strides/right_notrans_forward_col_row_major.json' ); +var NEGATIVE_STRIDES_RIGHT_NOTRANS_FORWARD_COL_COL_MAJOR = require( './fixtures/negative_strides/right_notrans_forward_col_col_major.json' ); +var NEGATIVE_STRIDES_RIGHT_NOTRANS_FORWARD_ROW_ROW_MAJOR = require( './fixtures/negative_strides/right_notrans_forward_row_row_major.json' ); +var NEGATIVE_STRIDES_RIGHT_NOTRANS_FORWARD_ROW_COL_MAJOR = require( './fixtures/negative_strides/right_notrans_forward_row_col_major.json' ); +var NEGATIVE_STRIDES_RIGHT_NOTRANS_BACKWARD_COL_ROW_MAJOR = require( './fixtures/negative_strides/right_notrans_backward_col_row_major.json' ); +var NEGATIVE_STRIDES_RIGHT_NOTRANS_BACKWARD_COL_COL_MAJOR = require( './fixtures/negative_strides/right_notrans_backward_col_col_major.json' ); +var NEGATIVE_STRIDES_RIGHT_NOTRANS_BACKWARD_ROW_ROW_MAJOR = require( './fixtures/negative_strides/right_notrans_backward_row_row_major.json' ); +var NEGATIVE_STRIDES_RIGHT_NOTRANS_BACKWARD_ROW_COL_MAJOR = require( './fixtures/negative_strides/right_notrans_backward_row_col_major.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof dlarfb, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function throws an error if provided an invalid `storev`', function test( t ) { + var values; + var V; + var T; + var C; + var i; + + V = new Float64Array( 9 ); + T = new Float64Array( 9 ); + C = new Float64Array( 9 ); + + values = [ 'foo', 'beep', 'boop', 5, null, void 0, [], {} ]; + 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() { + dlarfb( 'left', 'transpose', 'forward', value, 3, 3, 3, V, 3, 1, 0, T, 3, 1, 0, C, 3, 1, 0, new Float64Array( 9 ), 3, 1, 0 ); + }; + } +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_TRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_TRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = columns, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = columns, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = rows, (row-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = rows, (column-major)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = RIGHT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = columns, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_TRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = columns, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_TRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = rows, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_TRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = rows, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_TRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = columns, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_TRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = columns, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_TRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = rows, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_TRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = rows, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_TRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = columns, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_NOTRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = columns, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_NOTRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = rows, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_NOTRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = rows, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_NOTRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = columns, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_NOTRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = columns, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_NOTRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_NOTRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = columns, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_TRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = columns, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_TRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = rows, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_TRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = rows, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_TRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = columns, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_TRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = columns, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_TRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = rows, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_TRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = rows, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_TRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = columns, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_NOTRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = columns, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_NOTRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = rows, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_NOTRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = rows, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_NOTRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = columns, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_NOTRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = columns, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_NOTRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = rows, (row-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_NOTRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = rows, (column-major) (offsets)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = OFFSETS_RIGHT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = columns, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_TRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = columns, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_TRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = rows, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_TRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = rows, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_TRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = columns, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_TRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = columns, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_TRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = rows, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_TRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = rows, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_TRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = columns, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_NOTRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = columns, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_NOTRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = rows, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_NOTRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = rows, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_NOTRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = columns, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_NOTRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = columns, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_NOTRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = columns, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_TRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = columns, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_TRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = rows, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_TRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = rows, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_TRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = columns, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_TRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = columns, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_TRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = rows, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_TRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = rows, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_TRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = columns, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_NOTRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = columns, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_NOTRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = rows, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_NOTRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = rows, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_NOTRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = columns, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_NOTRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = columns, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_NOTRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = rows, (row-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_NOTRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = rows, (column-major) (large strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = LARGE_STRIDES_RIGHT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = columns, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_TRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = columns, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_TRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = rows, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_TRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = rows, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_TRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = columns, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_TRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = columns, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_TRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = rows, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_TRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = rows, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_TRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = columns, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_NOTRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = columns, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_NOTRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = rows, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_NOTRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = rows, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_NOTRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = columns, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_NOTRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = columns, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_NOTRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = columns, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_TRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = columns, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_TRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = rows, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_TRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = forward, store = rows, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_TRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = columns, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_TRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = columns, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_TRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = rows, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_TRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, transpose, direct = backward, store = rows, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_TRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = columns, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_NOTRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = columns, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_NOTRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = rows, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_NOTRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = forward, store = rows, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_NOTRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = columns, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_NOTRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = columns, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_NOTRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = columns, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_TRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = columns, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_TRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = rows, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_TRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = rows, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_TRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = columns, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_TRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = columns, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_TRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = rows, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_TRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = rows, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_TRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = columns, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_NOTRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = columns, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_NOTRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = rows, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_NOTRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = rows, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_NOTRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = columns, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_NOTRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = columns, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_NOTRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = rows, (row-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_NOTRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = rows, (column-major) (negative strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = NEGATIVE_STRIDES_RIGHT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = left, no-transpose, direct = backward, store = rows, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_LEFT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = columns, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_TRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = columns, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_TRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = rows, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_TRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = forward, store = rows, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_TRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = columns, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_TRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = columns, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_TRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = rows, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_TRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, transpose, direct = backward, store = rows, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_TRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = columns, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_NOTRANS_FORWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = columns, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_NOTRANS_FORWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = rows, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_NOTRANS_FORWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = forward, store = rows, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_NOTRANS_FORWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = columns, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_NOTRANS_BACKWARD_COL_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = columns, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_NOTRANS_BACKWARD_COL_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = rows, (row-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_NOTRANS_BACKWARD_ROW_ROW_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns expected values for side = right, no-transpose, direct = backward, store = rows, (column-major) (mixed strides)', function test( t ) { + var expected; + var work; + var data; + var out; + var V; + var T; + var C; + + data = MIXED_STRIDES_RIGHT_NOTRANS_BACKWARD_ROW_COL_MAJOR; + + expected = new Float64Array( data.C_out ); + V = new Float64Array( data.V ); + T = new Float64Array( data.T ); + C = new Float64Array( data.C ); + work = new Float64Array( data.work ); + + out = dlarfb( data.side, data.trans, data.direct, data.storev, data.M, data.N, data.K, V, data.strideV1, data.strideV2, data.offsetV, T, data.strideT1, data.strideT2, data.offsetT, C, data.strideC1, data.strideC2, data.offsetC, work, data.strideWork1, data.strideWork2, data.offsetWork ); + t.strictEqual( out, C, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); +});