diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/README.md b/lib/node_modules/@stdlib/lapack/base/dgtts2/README.md
new file mode 100644
index 000000000000..3d51fe8de2de
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/README.md
@@ -0,0 +1,302 @@
+
+
+
+
+# dgtts2
+
+> Solve a system of linear equations with a tridiagonal matrix using the LU factorization computed by [dgttrf][lapack-dgttrf].
+
+
+
+## Usage
+
+```javascript
+var dgtts2 = require( '@stdlib/lapack/base/dgtts2' );
+```
+
+#### dgtts2( order, itrans, N, nrhs, DL, D, DU, DU2, IPIV, B, LDB )
+
+Solves a system of linear equations with a tri diagonal matrix using the LU factorization computed by [dgttrf][lapack-dgttrf].
+
+```javascript
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+
+var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+var DU2 = new Float64Array( [ 0.0 ] );
+var IPIV = new Int32Array( [ 0, 1, 2 ] );
+var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+
+var out = dgtts2( 'column-major', 1, 3, 1, DL, D, DU, DU2, IPIV, B, 3 );
+// out => [ ~1.44, ~1.25, ~1.55 ]
+```
+
+The function has the following parameters:
+
+- **order**: storage layout.
+- **itrans**: specifies the form of the system of equations.
+- **N**: order of the matrix `A`.
+- **nrhs**: number of right-hand sides, i.e., the number of columns of the matrix `B`.
+- **DL**: multipliers that define the matrix `L` as a [`Float64Array`][mdn-float64array].
+- **D**: diagonal elements of the upper triangular matrix `U` as a [`Float64Array`][mdn-float64array].
+- **DU**: elements of the first super-diagonal of `U` as a [`Float64Array`][mdn-float64array].
+- **DU2**: elements of the second super-diagonal of `U` as a [`Float64Array`][mdn-float64array].
+- **IPIV**: vector of pivot indices as an [`Int32Array`][mdn-int32array].
+- **B**: right-hand side matrix B, overwritten by the solution matrix `X` as a [`Float64Array`][mdn-float64array].
+- **LDB**: stride of the first dimension of `B` (a.k.a., leading dimension of the matrix `B`).
+
+Note that indexing is relative to the first index. To introduce an offset, use [`typed array`][mdn-typed-array] views.
+
+
+
+```javascript
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+
+// Initial arrays...
+var DL0 = new Float64Array( [ 0.0, 0.25, 0.26666667 ] );
+var D0 = new Float64Array( [ 0.0, 4.0, 3.75, 3.73333333 ] );
+var DU0 = new Float64Array( [ 0.0, 1.0, 0.73333333 ] );
+var DU20 = new Float64Array( [ 0.0, 0.0 ] );
+var IPIV0 = new Int32Array( [ 0, 0, 1, 2 ] );
+var B0 = new Float64Array( [ 0.0, 7.0, 8.0, 7.0 ] );
+
+// Create offset views...
+var DL = new Float64Array( DL0.buffer, DL0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
+var D = new Float64Array( D0.buffer, D0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
+var DU = new Float64Array( DU0.buffer, DU0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
+var DU2 = new Float64Array( DU20.buffer, DU20.BYTES_PER_ELEMENT*1 ); // start at 2nd element
+var IPIV = new Int32Array( IPIV0.buffer, IPIV0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
+var B = new Float64Array( B0.buffer, B0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
+
+dgtts2( 'column-major', 1, 3, 1, DL, D, DU, DU2, IPIV, B, 3 );
+// B0 => [ 0.0, ~1.44, ~1.25, ~1.55 ]
+```
+
+#### dgtts2.ndarray( itrans, N, nrhs, DL, sdl, odl, D, sd, od, DU, sdu, odu, DU2, sdu2, odu2, IPIV, si, oi, B, sb1, sb2, ob )
+
+Solves a system of linear equations with a tri diagonal matrix using the LU factorization computed by [dgttrf][lapack-dgttrf] and alternative indexing semantics.
+
+```javascript
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+
+var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+var DU2 = new Float64Array( [ 0.0 ] );
+var IPIV = new Int32Array( [ 0, 1, 2 ] );
+var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+
+var out = dgtts2.ndarray( 1, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 );
+// out => [ ~1.44, ~1.25, ~1.55 ]
+```
+
+The function has the following parameters:
+
+- **itrans**: specifies the form of the system of equations.
+- **N**: order of the matrix `A`.
+- **nrhs**: number of right-hand sides, i.e., the number of columns of the matrix `B`.
+- **DL**: multipliers that define the matrix `L` as a [`Float64Array`][mdn-float64array].
+- **sdl**: stride length for `DL`.
+- **odl**: starting index for `DL`.
+- **D**: diagonal elements of the upper triangular matrix `U` as a [`Float64Array`][mdn-float64array].
+- **sd**: stride length for `D`.
+- **od**: starting index for `D`.
+- **DU**: elements of the first super-diagonal of `U` as a [`Float64Array`][mdn-float64array].
+- **sdu**: stride length for `DU`.
+- **odu**: starting index for `DU`.
+- **DU2**: elements of the second super-diagonal of `U` as a [`Float64Array`][mdn-float64array].
+- **sdu2**: stride length for `DU2`.
+- **odu2**: starting index for `DU2`.
+- **IPIV**: vector of pivot indices as an [`Int32Array`][mdn-int32array].
+- **si**: stride length for `IPIV`.
+- **oi**: starting index for `IPIV`.
+- **B**: right-hand side matrix B, overwritten by the solution matrix `X` as a [`Float64Array`][mdn-float64array].
+- **sb1**: stride length for first dimension of `B`.
+- **sb2**: stride length for second dimension of `B`.
+- **ob**: starting index for `B`.
+
+While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying buffer, the offset parameters support indexing semantics based on starting indices. For example,
+
+```javascript
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+
+var DL = new Float64Array( [ 0.0, 0.25, 0.26666667 ] );
+var D = new Float64Array( [ 0.0, 4.0, 3.75, 3.73333333 ] );
+var DU = new Float64Array( [ 0.0, 1.0, 0.73333333 ] );
+var DU2 = new Float64Array( [ 0.0, 0.0 ] );
+var IPIV = new Int32Array( [ 0, 0, 1, 2 ] );
+var B = new Float64Array( [ 0.0, 7.0, 8.0, 7.0 ] );
+
+var out = dgtts2.ndarray( 1, 3, 1, DL, 1, 1, D, 1, 1, DU, 1, 1, DU2, 1, 1, IPIV, 1, 1, B, 1, 1, 1 );
+// out => [ 0.0, ~1.44, ~1.25, ~1.55 ]
+```
+
+
+
+
+
+
+
+## Notes
+
+- `dgtts2()` corresponds to the [LAPACK][lapack] routine [`dgtts2`][lapack-dgtts2].
+
+
+
+
+
+
+
+## Examples
+
+
+
+```javascript
+var ndarray2array = require( '@stdlib/ndarray/base/to-array' );
+var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+var dgtts2 = require( '@stdlib/lapack/base/dgtts2' );
+
+var shape = [ 3, 3 ];
+var order = 'row-major';
+var strides = shape2strides( shape, order );
+
+var B = new Float64Array( [ 7.0, 8.0, 7.0, 2.0, 3.0, 4.0, 1.0, 1.5, 2.0 ] );
+console.log( ndarray2array( B, shape, strides, 0, order ) );
+
+var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+var DU2 = new Float64Array( [ 0.0 ] );
+var IPIV = new Int32Array( [ 0, 1, 2 ] );
+
+var X = dgtts2( 'row-major', 1, 3, 3, DL, D, DU, DU2, IPIV, B, 3 );
+console.log( ndarray2array( X, shape, strides, 0, order ) );
+```
+
+
+
+
+
+
+
+* * *
+
+
+
+## C APIs
+
+
+
+
+
+
+
+
+
+
+
+### Usage
+
+```c
+TODO
+```
+
+#### TODO
+
+TODO.
+
+```c
+TODO
+```
+
+TODO
+
+```c
+TODO
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### Examples
+
+```c
+TODO
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[lapack]: https://www.netlib.org/lapack/explore-html/
+
+[lapack-dgtts2]: https://www.netlib.org/lapack/explore-html/d2/dea/group__gtts2_gae123fb2b13f2398457e4c47f5c7f7fcd.html#gae123fb2b13f2398457e4c47f5c7f7fcd
+
+[lapack-dgttrf]: https://www.netlib.org/lapack/explore-html/d6/d46/group__gttrf_ga8d1e46216e6c861c89bd4328b8be52a1.html#ga8d1e46216e6c861c89bd4328b8be52a1
+
+[mdn-float64array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array
+
+[mdn-int32array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array
+
+[mdn-typed-array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
+
+
+
+
+
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/benchmark/benchmark.js b/lib/node_modules/@stdlib/lapack/base/dgtts2/benchmark/benchmark.js
new file mode 100644
index 000000000000..759d3b40d601
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/benchmark/benchmark.js
@@ -0,0 +1,127 @@
+/**
+* @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 Int32Array = require( '@stdlib/array/int32' );
+var dgttrf = require( '@stdlib/lapack/base/dgttrf' );
+var Float64Array = require( '@stdlib/array/float64' );
+var pkg = require( './../package.json' ).name;
+var dgtts2 = require( './../lib/dgtts2.js' );
+
+
+// VARIABLES //
+
+var LAYOUTS = [
+ 'row-major',
+ 'column-major'
+];
+var opts = {
+ 'dtype': 'float64'
+};
+
+
+// FUNCTIONS //
+
+/**
+* Creates a benchmark function.
+*
+* @private
+* @param {string} order - storage layout
+* @param {PositiveInteger} itrans - specifies the form of the system of equations
+* @param {PositiveInteger} N - number of elements along each dimension
+* @returns {Function} benchmark function
+*/
+function createBenchmark( order, itrans, N ) {
+ var IPIV = new Int32Array( N );
+ var DU2 = new Float64Array( N-2 );
+ var DL = uniform( N-1, 100.0, 10000.0, opts );
+ var DU = uniform( N-1, 100.0, 10000.0, opts );
+ var D = uniform( N, 100.0, 1000000.0, opts );
+ var B = uniform( N*N, 0, 10000, opts );
+
+ dgttrf( N, DL, D, DU, DU2, IPIV );
+
+ 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 = dgtts2( order, itrans, N, N, DL, D, DU, DU2, IPIV, B, N );
+ 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 itrans;
+ var min;
+ var max;
+ var ord;
+ var N;
+ var f;
+ var i;
+ var k;
+
+ min = 1; // 10^min
+ max = 3; // 10^max
+
+ for ( k = 0; k < LAYOUTS.length; k++ ) {
+ ord = LAYOUTS[ k ];
+ for ( itrans = 0; itrans < 3; itrans++ ) {
+ for ( i = min; i <= max; i++ ) {
+ N = pow( 10, i );
+ f = createBenchmark( ord, itrans, N );
+ bench( pkg+'::square_matrix:order='+ord+',itrans='+itrans+',size='+(N*N), f );
+ }
+ }
+ }
+}
+
+main();
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/lapack/base/dgtts2/benchmark/benchmark.ndarray.js
new file mode 100644
index 000000000000..09db22b42610
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/benchmark/benchmark.ndarray.js
@@ -0,0 +1,145 @@
+/**
+* @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 isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major-string' );
+var Int32Array = require( '@stdlib/array/int32' );
+var dgttrf = require( '@stdlib/lapack/base/dgttrf' );
+var Float64Array = require( '@stdlib/array/float64' );
+var pkg = require( './../package.json' ).name;
+var dgtts2 = require( './../lib/ndarray.js' );
+
+
+// VARIABLES //
+
+var LAYOUTS = [
+ 'row-major',
+ 'column-major'
+];
+var opts = {
+ 'dtype': 'float64'
+};
+
+
+// FUNCTIONS //
+
+/**
+* Creates a benchmark function.
+*
+* @private
+* @param {string} order - storage layout
+* @param {PositiveInteger} itrans - specifies the form of the system of equations
+* @param {PositiveInteger} N - number of elements along each dimension
+* @returns {Function} benchmark function
+*/
+function createBenchmark( order, itrans, N ) {
+ var IPIV;
+ var DU2;
+ var sb1;
+ var sb2;
+ var DU;
+ var DL;
+ var B;
+ var D;
+
+ IPIV = new Int32Array( N );
+ DU2 = new Float64Array( N-2 );
+ DL = uniform( N-1, 100.0, 10000.0, opts );
+ DU = uniform( N-1, 100.0, 10000.0, opts );
+ D = uniform( N, 100.0, 1000000.0, opts );
+ B = uniform( N*N, 0, 10000, opts );
+
+ if ( isColumnMajor( order ) ) {
+ sb1 = 1;
+ sb2 = N;
+ } else {
+ sb1 = N;
+ sb2 = 1;
+ }
+
+ dgttrf( N, DL, D, DU, DU2, IPIV );
+
+ 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 = dgtts2( itrans, N, N, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, sb1, sb2, 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 itrans;
+ var min;
+ var max;
+ var ord;
+ var N;
+ var f;
+ var i;
+ var k;
+
+ min = 1; // 10^min
+ max = 3; // 10^max
+
+ for ( k = 0; k < LAYOUTS.length; k++ ) {
+ ord = LAYOUTS[ k ];
+ for ( itrans = 0; itrans < 3; itrans++ ) {
+ for ( i = min; i <= max; i++ ) {
+ N = pow( 10, i );
+ f = createBenchmark( ord, itrans, N );
+ bench( pkg+'::square_matrix:order='+ord+',itrans='+itrans+',size='+(N*N), f );
+ }
+ }
+ }
+}
+
+main();
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/docs/repl.txt b/lib/node_modules/@stdlib/lapack/base/dgtts2/docs/repl.txt
new file mode 100644
index 000000000000..d148fc4f58b0
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/docs/repl.txt
@@ -0,0 +1,184 @@
+
+{{alias}}( order, itrans, N, nrhs, DL, D, DU, DU2, IPIV, B, LDB )
+ Solves a system of linear equations with a tri diagonal matrix using
+ the LU factorization computed by `dgttrf`.
+
+ Indexing is relative to the first index. To introduce an offset, use
+ typed array views.
+
+ If `N` is equal to `0`, the function returns `B` unchanged.
+
+ Parameters
+ ----------
+ order: string
+ Row-major (C-style) or column-major (Fortran-style) order. Must be
+ either 'row-major' or 'column-major'.
+
+ itrans: integer
+ Specifies the form of the system of equations. To solve A * X = B
+ (no transpose) use itrans = 0, to solve A**T * X = B (transpose)
+ use itrans = 1, to solve A**T * X = B (conjugate transpose = transpose)
+ use itrans = 2.
+
+ N: integer
+ Order of the matrix `A`.
+
+ nrhs: integer
+ Number of right-hand sides, i.e., the number of columns of the
+ matrix `B`.
+
+ DL: Float64Array
+ Multipliers that define the matrix `L`.
+
+ D: Float64Array
+ Diagonal elements of the upper triangular matrix `U`.
+
+ DU: Float64Array
+ Elements of the first super-diagonal of `U`.
+
+ DU2: Float64Array
+ Elements of the second super-diagonal of `U`.
+
+ IPIV: Int32Array
+ Array of pivot indices.
+
+ B: Float64Array
+ Right-hand side matrix `B`, overwritten by the solution
+ matrix `X`.
+
+ LDB: integer
+ Leading dimension of array `B`.
+
+ Returns
+ -------
+ B: Float64Array
+ Mutated input matrix.
+
+ Examples
+ --------
+ > var DL = new {{alias:@stdlib/array/float64}}( [ 0.25, 0.26666667 ] );
+ > var D = new {{alias:@stdlib/array/float64}}( [ 4.0, 3.75, 3.73333333 ] );
+ > var DU = new {{alias:@stdlib/array/float64}}( [ 1.0, 0.73333333 ] );
+ > var DU2 = new {{alias:@stdlib/array/float64}}( [ 0.0 ] );
+ > var B = new {{alias:@stdlib/array/float64}}( [ 7.0, 8.0, 7.0 ] );
+ > var IPIV = new {{alias:@stdlib/array/int32}}( [ 0, 1, 2 ] );
+ > var ord = 'column-major';
+ > {{alias}}( ord, 1, 3, 1, DL, D, DU, DU2, IPIV, B, 3 )
+ [ ~1.44, ~1.25, ~1.55 ]
+
+ // Using typed array views:
+ > var DL0 = new {{alias:@stdlib/array/float64}}( [ 0.0, 0.25, 0.26666667 ] );
+ > var D0 = new {{alias:@stdlib/array/float64}}( [ 0.0, 4.0, 3.75, 3.73333333 ] );
+ > var DU0 = new {{alias:@stdlib/array/float64}}( [ 0.0, 1.0, 0.73333333 ] );
+ > var DU20 = new {{alias:@stdlib/array/float64}}( [ 0.0, 0.0 ] );
+ > var IPIV0 = new {{alias:@stdlib/array/int32}}( [ 0, 0, 1, 2 ] );
+ > var B0 = new {{alias:@stdlib/array/float64}}( [ 0.0, 7.0, 8.0, 7.0 ] );
+ > DL = new Float64Array( DL0.buffer, DL0.BYTES_PER_ELEMENT*1 );
+ > D = new Float64Array( D0.buffer, D0.BYTES_PER_ELEMENT*1 );
+ > DU = new Float64Array( DU0.buffer, DU0.BYTES_PER_ELEMENT*1 );
+ > DU2 = new Float64Array( DU20.buffer, DU20.BYTES_PER_ELEMENT*1 );
+ > IPIV = new Int32Array( IPIV0.buffer, IPIV0.BYTES_PER_ELEMENT*1 );
+ > B = new Float64Array( B0.buffer, B0.BYTES_PER_ELEMENT*1 );
+ > {{alias}}( ord, 1, 3, 1, DL, D, DU, DU2, IPIV, B, 3 );
+ > B0
+ [ 0.0, ~1.44, ~1.25, ~1.55 ]
+
+
+{{alias}}.ndarray(tr,N,r,L,sl,ol,D,sd,od,U,su,ou,U2,su2,ou2,I,si,oi,B,s1,s2,ob)
+ Solves a system of linear equations with a tri diagonal matrix using the
+ LU factorization computed by `dgttrf` and 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
+ ----------
+ tr: integer
+ Specifies the form of the system of equations. To solve A * X = B
+ (no transpose) use itrans = 0, to solve A**T * X = B (transpose)
+ use itrans = 1, to solve A**T * X = B (conjugate transpose = transpose)
+ use itrans = 2.
+
+ N: integer
+ Order of the matrix `A`.
+
+ r: integer
+ Number of right-hand sides, i.e., the number of columns of the
+ matrix `B`.
+
+ L: Float64Array
+ Multipliers that define the matrix `L`.
+
+ sl: integer
+ Stride length for `L`.
+
+ ol: integer
+ Starting index for `L`.
+
+ D: Float64Array
+ Diagonal elements of the upper triangular matrix `U`.
+
+ sd: integer
+ Stride length for `D`.
+
+ od: integer
+ Starting index for `D`.
+
+ U: Float64Array
+ Elements of the first super-diagonal of `U`.
+
+ su: integer
+ Stride length for `U`.
+
+ ou: integer
+ Starting index for `U`.
+
+ U2: Float64Array
+ Elements of the second super-diagonal of `U`.
+
+ su2: integer
+ Stride length for `U2`.
+
+ ou2: integer
+ Starting index for `U2`.
+
+ I: Int32Array
+ Array of pivot indices.
+
+ si: integer
+ Stride length for `I`.
+
+ oi: integer
+ Starting index for `I`.
+
+ B: Float64Array
+ Right-hand side matrix `B`, overwritten by the solution matrix `X`.
+
+ s1: integer
+ Stride length for the first dimension of `B`.
+
+ s2: integer
+ Stride length for the second dimension of `B`.
+
+ ob: integer
+ Starting index for `B`.
+
+ Returns
+ -------
+ B: Float64Array
+ Mutated input matrix.
+
+ Examples
+ --------
+ > var DL = new {{alias:@stdlib/array/float64}}( [ 0.25, 0.26666667 ] );
+ > var D = new {{alias:@stdlib/array/float64}}([ 4.0, 3.75, 3.73333333 ]);
+ > var DU = new {{alias:@stdlib/array/float64}}( [ 1.0, 0.73333333 ] );
+ > var DU2 = new {{alias:@stdlib/array/float64}}( [ 0.0 ] );
+ > var B = new {{alias:@stdlib/array/float64}}( [ 7.0, 8.0, 7.0 ] );
+ > var I = new {{alias:@stdlib/array/int32}}( [ 0, 1, 2 ] );
+ > {{alias}}.ndarray( 1,3,1, DL,1,0, D,1,0, DU,1,0, DU2,1,0, I,1,0, B,1,1,0 )
+ [ ~1.44, ~1.25, ~1.55 ]
+
+ See Also
+ --------
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/docs/types/index.d.ts b/lib/node_modules/@stdlib/lapack/base/dgtts2/docs/types/index.d.ts
new file mode 100644
index 000000000000..68807fee536b
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/docs/types/index.d.ts
@@ -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.
+*/
+
+// TypeScript Version: 4.1
+
+///
+
+import { Layout } from '@stdlib/types/blas';
+
+/**
+* Interface describing `dgtts2`.
+*/
+interface Routine {
+ /**
+ * Solves a system of linear equations with a tri diagonal matrix using the LU factorization computed by `dgttrf`.
+ *
+ * ## Notes
+ *
+ * - To solve A * X = B (no transpose), use itrans = 0.
+ * - To solve AT * X = B (transpose), use itrans = 1.
+ * - To solve AT * X = B (conjugate transpose = transpose), use itrans = 2.
+ *
+ * @param order - storage layout of B
+ * @param itrans - specifies the form of the system of equations (0: no transpose, 1: transpose, 2: conjugate transpose)
+ * @param N - order of the matrix A
+ * @param nrhs - number of right-hand sides
+ * @param DL - multipliers defining matrix L (length N-1)
+ * @param D - diagonal elements of upper triangular matrix U (length N)
+ * @param DU - first super-diagonal elements of U (length N-1)
+ * @param DU2 - second super-diagonal elements of U (length N-2)
+ * @param IPIV - pivot indices from factorization (length N)
+ * @param B - right-hand side matrix (overwritten with solution)
+ * @param LDB - leading dimension of B
+ * @returns the solution matrix X
+ *
+ * @example
+ * var Float64Array = require( '@stdlib/array/float64' );
+ * var Int32Array = require( '@stdlib/array/int32' );
+ *
+ * var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+ * var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+ * var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+ * var DU2 = new Float64Array( [ 0.0 ] );
+ * var IPIV = new Int32Array( [ 0, 1, 2 ] );
+ * var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+ *
+ * dgtts2( 'column-major', 1, 3, 1, DL, D, DU, DU2, IPIV, B, 3 );
+ * // B => [ ~1.44, ~1.25, ~1.55 ]
+ */
+ ( order: Layout, itrans: number, N: number, nrhs: number, DL: Float64Array, D: Float64Array, DU: Float64Array, DU2: Float64Array, IPIV: Int32Array, B: Float64Array, LDB: number ): Float64Array;
+
+ /**
+ * Solves a system of linear equations with a tri diagonal matrix using the LU factorization computed by `dgttrf` and alternative indexing semantics.
+ *
+ * ## Notes
+ *
+ * - To solve A * X = B (no transpose), use itrans = 0.
+ * - To solve AT * X = B (transpose), use itrans = 1.
+ * - To solve AT * X = B (conjugate transpose = transpose), use itrans = 2.
+ *
+ * @param itrans - specifies the form of the system of equations
+ * @param N - order of the matrix A
+ * @param nrhs - number of right-hand sides
+ * @param DL - multipliers defining matrix L
+ * @param sdl - DL stride length
+ * @param odl - DL starting index
+ * @param D - diagonal elements of U
+ * @param sd - D stride length
+ * @param od - D starting index
+ * @param DU - first super-diagonal elements
+ * @param sdu - DU stride length
+ * @param odu - DU starting index
+ * @param DU2 - second super-diagonal elements
+ * @param sdu2 - DU2 stride length
+ * @param odu2 - DU2 starting index
+ * @param IPIV - pivot indices
+ * @param si - IPIV stride length
+ * @param oi - IPIV starting index
+ * @param B - right-hand side matrix
+ * @param sb1 - B first dimension stride
+ * @param sb2 - B second dimension stride
+ * @param ob - B starting index
+ * @returns the solution matrix X
+ *
+ * @example
+ * var Float64Array = require( '@stdlib/array/float64' );
+ * var Int32Array = require( '@stdlib/array/int32' );
+ *
+ * var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+ * var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+ * var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+ * var DU2 = new Float64Array( [ 0.0 ] );
+ * var IPIV = new Int32Array( [ 0, 1, 2 ] );
+ * var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+ *
+ * dgtts2.ndarray( 1, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 );
+ * // B => [ ~1.44, ~1.25, ~1.55 ]
+ */
+ ndarray( itrans: number, N: number, nrhs: number, DL: Float64Array, sdl: number, odl: number, D: Float64Array, sd: number, od: number, DU: Float64Array, sdu: number, odu: number, DU2: Float64Array, sdu2: number, odu2: number, IPIV: Int32Array, si: number, oi: number, B: Float64Array, sb1: number, sb2: number, ob: number ): Float64Array;
+}
+
+/**
+* Solves a system of linear equations with a tri diagonal matrix using the LU factorization computed by `dgttrf`.
+*
+* ## Notes
+*
+* - To solve A * X = B (no transpose), use itrans = 0.
+* - To solve AT * X = B (transpose), use itrans = 1.
+* - To solve AT * X = B (conjugate transpose = transpose), use itrans = 2.
+*
+* @param order - storage layout of B
+* @param itrans - system equation form specification
+* @param N - matrix order
+* @param nrhs - number of right-hand sides
+* @param DL - L matrix multipliers
+* @param D - U matrix diagonal
+* @param DU - U first super-diagonal
+* @param DU2 - U second super-diagonal
+* @param IPIV - pivot indices
+* @param B - right-hand side matrix
+* @param LDB - B leading dimension
+* @returns the solution matrix X
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var Int32Array = require( '@stdlib/array/int32' );
+*
+* var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+* var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+* var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+* var DU2 = new Float64Array( [ 0.0 ] );
+* var IPIV = new Int32Array( [ 0, 1, 2 ] );
+* var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+*
+* dgtts2( 'row-major', 1, 3, 1, DL, D, DU, DU2, IPIV, B, 3 );
+* // B => [ ~1.44, ~1.25, ~1.55 ]
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var Int32Array = require( '@stdlib/array/int32' );
+*
+* var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+* var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+* var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+* var DU2 = new Float64Array( [ 0.0 ] );
+* var IPIV = new Int32Array( [ 0, 1, 2 ] );
+* var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+*
+* dgtts2.ndarray( 1, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 );
+* // B => [ ~1.44, ~1.25, ~1.55 ]
+*/
+declare var dgtts2: Routine;
+
+// EXPORTS //
+
+export = dgtts2;
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/docs/types/test.ts b/lib/node_modules/@stdlib/lapack/base/dgtts2/docs/types/test.ts
new file mode 100644
index 000000000000..76314099a9bb
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/docs/types/test.ts
@@ -0,0 +1,718 @@
+/*
+* @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 dgtts2 = require( './index' );
+
+
+// TESTS //
+
+// The function returns a Float64Array...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectType Float64Array
+}
+
+// The compiler throws an error if the function is provided a first argument which is not a string...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2( 5, 0, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( true, 0, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( false, 0, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( null, 0, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( void 0, 0, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( [], 0, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( {}, 0, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( ( x: number ): number => x, 0, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided a second argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2( 'column-major', '5', 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', true, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', false, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', null, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', void 0, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', [], 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', {}, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', ( x: number ): number => x, 3, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided a third argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2( 'column-major', 0, '3', 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, true, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, false, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, null, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, void 0, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, [], 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, {}, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, ( x: number ): number => x, 1, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided a fourth argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2( 'column-major', 0, 3, '1', DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, true, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, false, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, null, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, void 0, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, [], DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, {}, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, ( x: number ): number => x, DL, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided a fifth argument which is not a Float64Array...
+{
+ const IPIV = new Int32Array( 3 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2( 'column-major', 0, 3, 1, 'DL', D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, true, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, false, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, null, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, void 0, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, [], D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, {}, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, ( x: number ): number => x, D, DU, DU2, IPIV, B, 3 ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided a sixth argument which is not a Float64Array...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2( 'column-major', 0, 3, 1, DL, 'D', DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, true, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, false, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, null, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, void 0, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, [], DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, {}, DU, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, ( x: number ): number => x, DU, DU2, IPIV, B, 3 ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided a seventh argument which is not a Float64Array...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2( 'column-major', 0, 3, 1, DL, D, 'DU', DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, true, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, false, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, null, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, void 0, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, [], DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, {}, DU2, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, ( x: number ): number => x, DU2, IPIV, B, 3 ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided an eighth argument which is not a Float64Array...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const B = new Float64Array( 6 );
+
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, 'DU2', IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, true, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, false, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, null, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, void 0, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, [], IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, {}, IPIV, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, ( x: number ): number => x, IPIV, B, 3 ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided a ninth argument which is not an Int32Array...
+{
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, 'IPIV', B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, true, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, false, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, null, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, void 0, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, [], B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, {}, B, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, ( x: number ): number => x, B, 3 ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided a tenth argument which is not a Float64Array...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, 'B', 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, true, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, false, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, null, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, void 0, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, [], 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, {}, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, ( x: number ): number => x, 3 ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided an eleventh argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, B, '3' ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, B, true ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, B, false ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, B, null ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, B, void 0 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, B, [] ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, B, {} ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, B, ( x: number ): number => x ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided an invalid number of arguments...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2(); // $ExpectError
+ dgtts2( 'column-major' ); // $ExpectError
+ dgtts2( 'column-major', 0 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2 ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, B ); // $ExpectError
+ dgtts2( 'column-major', 0, 3, 1, DL, D, DU, DU2, IPIV, B, 3, 10 ); // $ExpectError
+}
+
+// Attached to main export is an `ndarray` method which returns a status code...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectType Float64Array
+}
+
+// The compiler throws an error if the `ndarray` method is provided a first argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( '0', 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( true, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( false, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( null, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( void 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( [], 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( {}, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( ( x: number ): number => x, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a second argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, '3', 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, true, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, false, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, null, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, void 0, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, [], 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, {}, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, ( x: number ): number => x, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a third argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, '1', DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, true, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, false, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, null, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, void 0, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, [], DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, {}, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, ( x: number ): number => x, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a fourth argument which is not a Float64Array...
+{
+ const IPIV = new Int32Array( 3 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, 'DL', 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, true, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, false, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, null, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, void 0, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, [], 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, {}, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, ( x: number ): number => x, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a fifth argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, '1', 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, true, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, false, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, null, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, void 0, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, [], 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, {}, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, ( x: number ): number => x, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a sixth argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, '0', D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, true, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, false, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, null, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, void 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, [], D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, {}, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, ( x: number ): number => x, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a seventh argument which is not a Float64Array...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, 'D', 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, true, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, false, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, null, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, void 0, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, [], 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, {}, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, ( x: number ): number => x, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided an eighth argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, '1', 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, true, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, false, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, null, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, void 0, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, [], 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, {}, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, ( x: number ): number => x, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a ninth argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, '0', DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, true, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, false, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, null, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, void 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, [], DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, {}, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, ( x: number ): number => x, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a tenth argument which is not a Float64Array...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, 'DU', 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, true, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, false, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, null, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, void 0, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, [], 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, {}, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, ( x: number ): number => x, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided an eleventh argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, '1', 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, true, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, false, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, null, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, void 0, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, [], 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, {}, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, ( x: number ): number => x, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a twelfth argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, '0', DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, true, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, false, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, null, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, void 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, [], DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, {}, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, ( x: number ): number => x, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a thirteenth argument which is not a Float64Array...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, 'DU2', 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, true, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, false, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, null, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, void 0, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, [], 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, {}, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, ( x: number ): number => x, 1, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a fourteenth argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, '1', 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, true, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, false, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, null, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, void 0, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, [], 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, {}, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, ( x: number ): number => x, 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a fifteenth argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, '0', IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, true, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, false, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, null, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, void 0, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, [], IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, {}, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, ( x: number ): number => x, IPIV, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a sixteenth argument which is not an Int32Array...
+{
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, 'IPIV', 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, true, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, false, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, null, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, void 0, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, [], 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, {}, 1, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, ( x: number ): number => x, 1, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a seventeenth argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, '1', 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, true, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, false, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, null, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, void 0, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, [], 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, {}, 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, ( x: number ): number => x, 0, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided an eighteenth argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, '0', B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, true, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, false, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, null, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, void 0, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, [], B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, {}, B, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, ( x: number ): number => x, B, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a nineteenth argument which is not a Float64Array...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, 'B', 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, true, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, false, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, null, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, void 0, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, [], 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, {}, 1, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, ( x: number ): number => x, 1, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a twentieth argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, '1', 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, true, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, false, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, null, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, void 0, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, [], 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, {}, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, ( x: number ): number => x, 1, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a twenty-first argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, '1', 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, true, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, false, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, null, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, void 0, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, [], 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, {}, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, ( x: number ): number => x, 0 ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided a twenty-second argument which is not a number...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, '0' ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, true ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, false ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, null ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, void 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, [] ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, {} ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, ( x: number ): number => x ); // $ExpectError
+}
+
+// The compiler throws an error if the `ndarray` method is provided an invalid number of arguments...
+{
+ const IPIV = new Int32Array( 3 );
+ const DL = new Float64Array( 2 );
+ const D = new Float64Array( 3 );
+ const DU = new Float64Array( 2 );
+ const DU2 = new Float64Array( 1 );
+ const B = new Float64Array( 6 );
+
+ dgtts2.ndarray(); // $ExpectError
+ dgtts2.ndarray( 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1 ); // $ExpectError
+ dgtts2.ndarray( 0, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0, 10 ); // $ExpectError
+}
+
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/examples/index.js b/lib/node_modules/@stdlib/lapack/base/dgtts2/examples/index.js
new file mode 100644
index 000000000000..b2c0f0cc7d89
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/examples/index.js
@@ -0,0 +1,41 @@
+/**
+* @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 ndarray2array = require( '@stdlib/ndarray/base/to-array' );
+var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+var dgtts2 = require( './../lib' );
+
+var shape = [ 3, 3 ];
+var order = 'row-major';
+var strides = shape2strides( shape, order );
+
+var B = new Float64Array( [ 7.0, 8.0, 7.0, 2.0, 3.0, 4.0, 1.0, 1.5, 2.0 ] );
+console.log( ndarray2array( B, shape, strides, 0, order ) );
+
+var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+var DU2 = new Float64Array( [ 0.0 ] );
+var IPIV = new Int32Array( [ 0, 1, 2 ] );
+
+var X = dgtts2( 'row-major', 1, 3, 3, DL, D, DU, DU2, IPIV, B, 3 );
+console.log( ndarray2array( X, shape, strides, 0, order ) );
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/base.js b/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/base.js
new file mode 100644
index 000000000000..b4426003f5a9
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/base.js
@@ -0,0 +1,372 @@
+/**
+* @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';
+
+// FUNCTIONS //
+
+/**
+* Solve AT * X = B using the LU factorization of A computed by `dgttrf`, overwriting B with the solution.
+*
+* @private
+* @param {NonNegativeInteger} N - order of the matrix A
+* @param {NonNegativeInteger} nrhs - number of right-hand sides, i.e., the number of columns of the matrix B
+* @param {Float64Array} DL - multipliers that define the matrix L
+* @param {integer} strideDL - stride length for DL
+* @param {NonNegativeInteger} offsetDL - starting index of DL
+* @param {Float64Array} D - N diagonal elements of the upper triangular matrix U
+* @param {integer} strideD - stride length for D
+* @param {NonNegativeInteger} offsetD - starting index of D
+* @param {Float64Array} DU - elements of the first super-diagonal of U
+* @param {integer} strideDU - stride length for DU
+* @param {NonNegativeInteger} offsetDU - starting index of DU
+* @param {Float64Array} DU2 - elements of the second super-diagonal of U
+* @param {integer} strideDU2 - stride length for DU2
+* @param {NonNegativeInteger} offsetDU2 - starting index of DU2
+* @param {Int32Array} IPIV - vector of pivot indices
+* @param {integer} strideIPIV - stride length for IPIV
+* @param {NonNegativeInteger} offsetIPIV - starting index for IPIV
+* @param {Float64Array} B - right-hand side matrix B, overwritten by the solution matrix X
+* @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 of B
+* @returns {Float64Array} the solution matrix X
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var Int32Array = require( '@stdlib/array/int32' );
+*
+* var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+* var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+* var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+* var DU2 = new Float64Array( [ 0.0 ] );
+* var IPIV = new Int32Array( [ 0, 1, 2 ] );
+* var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+*
+* var out = transpose( 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 );
+* // out => [ ~1.44, ~1.25, ~1.55 ]
+*/
+function transpose( N, nrhs, DL, strideDL, offsetDL, D, strideD, offsetD, DU, strideDU, offsetDU, DU2, strideDU2, offsetDU2, IPIV, strideIPIV, offsetIPIV, B, strideB1, strideB2, offsetB ) {
+ var idu2;
+ var temp;
+ var idu;
+ var idl;
+ var ib1;
+ var ib2;
+ var ib3;
+ var id;
+ var ip;
+ var i;
+ var j;
+
+ if ( nrhs <= 1 ) {
+ ib1 = offsetB;
+ for ( j = 0; j < nrhs; j++) {
+ ip = offsetIPIV + ( (N-2) * strideIPIV );
+ idl = offsetDL + ( (N-2) * strideDL );
+ id = offsetD;
+ idu = offsetDU;
+ idu2 = offsetDU2;
+
+ B[ ib1 ] /= D[ id ];
+ if ( N > 1 ) {
+ B[ ib1 + strideB1 ] = ( B[ ib1 + strideB1 ] - ( DU[ idu ] * B[ ib1 ] ) ) / D[ id + strideD ];
+ }
+
+ idu = offsetDU + strideDU;
+ id = offsetD + ( 2 * strideD );
+
+ ib2 = strideB1 * 2;
+ for ( i = 2; i < N; i++ ) {
+ B[ ib1 + ib2 ] = ( B[ ib1 + ib2 ] - ( DU[ idu ] * B[ ib1 + ib2 - strideB1 ] ) - ( DU2[ idu2 ] * B[ ib1 + ib2 - (2*strideB1) ] ) ) / D[ id ];
+
+ idu += strideDU;
+ idu2 += strideDU2;
+ id += strideD;
+ ib2 += strideB1;
+ }
+
+ ib2 = strideB1 * ( N-2 );
+ for ( i = N - 2; i >= 0; i-- ) {
+ ib3 = offsetB + ( strideB1 * IPIV[ ip ] ) + ( strideB2 * j );
+ temp = B[ ib1 + ib2 ] - ( DL[ idl ] * B[ ib1 + ib2 + strideB1 ] );
+ B[ ib1 + ib2 ] = B[ ib3 ];
+ B[ ib3 ] = temp;
+
+ ip -= strideIPIV;
+ idl -= strideDL;
+ ib2 -= strideB1;
+ }
+
+ ib1 += strideB2;
+ }
+ } else {
+ ib1 = offsetB;
+ for ( j = 0; j < nrhs; j++ ) {
+ idu = offsetDU;
+ id = offsetD;
+ idu2 = offsetDU2;
+ ip = offsetIPIV + ( (N-2) * strideIPIV );
+
+ B[ ib1 ] /= D[ id ];
+ if ( N > 1 ) {
+ B[ ib1 + strideB1 ] = ( B[ ib1 + strideB1 ] - ( DU[ idu ] * B[ ib1 ] ) ) / D[ id + strideD ];
+ }
+ idu = offsetDU + strideDU;
+ id = offsetD + ( 2 * strideD );
+ ib2 = 2 * strideB1;
+ for ( i = 2; i < N; i++ ) {
+ B[ ib1 + ib2 ] = ( B[ ib1 + ib2 ] - ( DU[ idu ] * B[ ib1 + ib2 - strideB1 ] ) - ( DU2[ idu2 ] * B[ ib1 + ib2 - (2*strideB1) ] ) ) / D[ id ];
+
+ idu += strideDU;
+ id += strideD;
+ idu2 += strideDU2;
+ ib2 += strideB1;
+ }
+
+ ib2 = ( N-2 ) * strideB1;
+ idl = offsetDL + ( (N-2) * strideDL );
+ for ( i = N - 2; i >= 0; i-- ) {
+ if ( IPIV[ ip ] === i ) {
+ B[ ib1 + ib2 ] -= DL[ idl ] * B[ ib1 + ib2 + strideB1 ];
+ } else {
+ temp = B[ ib1 + ib2 + strideB1 ];
+ B[ ib1 + ib2 + strideB1 ] = B[ ib1 + ib2 ] - ( DL[ idl ] * temp );
+ B[ ib1 + ib2 ] = temp;
+ }
+
+ ip -= strideIPIV;
+ idl -= strideDL;
+ ib2 -= strideB1;
+ }
+
+ ib1 += strideB2;
+ }
+ }
+
+ return B;
+}
+
+/**
+* Solve A * X = B using the LU factorization of A computed by `dgttrf`, overwriting B with the solution.
+*
+* @private
+* @param {NonNegativeInteger} N - order of the matrix A
+* @param {NonNegativeInteger} nrhs - number of right-hand sides, i.e., the number of columns of the matrix B
+* @param {Float64Array} DL - multipliers that define the matrix L
+* @param {integer} strideDL - stride length for DL
+* @param {NonNegativeInteger} offsetDL - starting index of DL
+* @param {Float64Array} D - N diagonal elements of the upper triangular matrix U
+* @param {integer} strideD - stride length for D
+* @param {NonNegativeInteger} offsetD - starting index of D
+* @param {Float64Array} DU - elements of the first super-diagonal of U
+* @param {integer} strideDU - stride length for DU
+* @param {NonNegativeInteger} offsetDU - starting index of DU
+* @param {Float64Array} DU2 - elements of the second super-diagonal of U
+* @param {integer} strideDU2 - stride length for DU2
+* @param {NonNegativeInteger} offsetDU2 - starting index of DU2
+* @param {Int32Array} IPIV - vector of pivot indices
+* @param {integer} strideIPIV - stride length for IPIV
+* @param {NonNegativeInteger} offsetIPIV - starting index for IPIV
+* @param {Float64Array} B - right-hand side matrix B, overwritten by the solution matrix X
+* @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 of B
+* @returns {Float64Array} the solution matrix X
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var Int32Array = require( '@stdlib/array/int32' );
+*
+* var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+* var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+* var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+* var DU2 = new Float64Array( [ 0.0 ] );
+* var IPIV = new Int32Array( [ 0, 1, 2 ] );
+* var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+*
+* var out = noTranspose( 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 );
+* // out => [ ~1.40, ~1.39, ~1.43 ]
+*/
+function noTranspose( N, nrhs, DL, strideDL, offsetDL, D, strideD, offsetD, DU, strideDU, offsetDU, DU2, strideDU2, offsetDU2, IPIV, strideIPIV, offsetIPIV, B, strideB1, strideB2, offsetB ) {
+ var temp;
+ var idu2;
+ var ipi;
+ var idl;
+ var idu;
+ var ib3;
+ var ib1;
+ var ib2;
+ var ip;
+ var id;
+ var j;
+ var i;
+
+ if ( nrhs <= 1 ) {
+ ib1 = offsetB;
+ for ( j = 0; j < nrhs; j++ ) {
+ ip = offsetIPIV;
+ idl = offsetDL;
+ id = offsetD;
+ idu2 = offsetDU2;
+
+ ib2 = 0;
+ for ( i = 0; i < N - 1; i++ ) {
+ ipi = IPIV[ ip ];
+ ib3 = offsetB + (strideB1*ipi) + (strideB2*j);
+ temp = B[ offsetB + (strideB1*(i+1-ipi+i)) + (strideB2*j) ] - ( DL[ idl ] * B[ ib3 ] );
+ B[ ib1 + ib2 ] = B[ ib3 ];
+ B[ ib1 + ib2 + strideB1 ] = temp;
+
+ ip += strideIPIV;
+ idl += strideDL;
+ ib2 += strideB1;
+ }
+
+ B[ ib1 + ib2 ] /= D[ offsetD + (strideD*(N-1)) ];
+
+ idu = offsetDU + ( (N-3) * strideDU );
+ id = offsetD + ( (N-3) * strideD );
+ if ( N > 1 ) {
+ B[ ib1 + ib2 - strideB1 ] = ( B[ ib1 + ib2 - strideB1 ] - ( DU[ idu + strideDU ] * B[ ib1 + ib2 ] ) ) / D[ id + strideD ];
+ }
+
+ idu2 = offsetDU2 + ( (N-3) * strideDU2 );
+ ib2 = ( N - 3 ) * strideB1;
+ for ( i = N - 3; i >= 0; i-- ) {
+ B[ ib1 + ib2 ] = ( B[ ib1 + ib2 ] - ( DU[ idu ] * B[ ib1 + ib2 + strideB1 ] ) - ( DU2[ idu2 ] * B[ ib1 + ib2 + ( 2 * strideB1 ) ] ) ) / D[ id ];
+
+ idu -= strideDU;
+ idu2 -= strideDU2;
+ id -= strideD;
+ ib2 -= strideB1;
+ }
+ ib1 += strideB2;
+ }
+ } else {
+ ib1 = offsetB;
+ for ( j = 0; j < nrhs; j++ ) {
+ ip = offsetIPIV;
+ idl = offsetDL;
+ ib2 = 0;
+ for ( i = 0; i < N - 1; i++ ) {
+ if ( IPIV[ ip ] === i ) {
+ B[ ib1 + ib2 + strideB1 ] -= DL[ idl ] * B[ ib1 + ib2 ];
+ } else {
+ temp = B[ ib1 + ib2 ];
+ B[ ib1 + ib2 ] = B[ ib1 + ib2 + strideB1 ];
+ B[ ib1 + ib2 + strideB1 ] = temp - ( DL[ idl ] * B[ ib1 + ib2 ] );
+ }
+
+ ip += strideIPIV;
+ idl += strideDL;
+ ib2 += strideB1;
+ }
+ B[ ib1 + ib2 ] /= D[ offsetD + (strideD*(N-1)) ];
+
+ idu = offsetDU + ( (N-3) * strideDU );
+ id = offsetD + ( (N-3) * strideD );
+ if ( N > 1 ) {
+ B[ ib1 + ib2 - strideB1 ] = ( B[ ib1 + ib2 - strideB1 ] - ( DU[ idu + strideDU ] * B[ ib1 + ib2 ] ) ) / D[ id + strideD ];
+ }
+
+ idu2 = offsetDU2 + ( (N-3) * strideDU2 );
+ ib2 = ( N - 3 ) * strideB1;
+ for ( i = N - 3; i >= 0; i-- ) {
+ B[ ib1 + ib2 ] = ( B[ ib1 + ib2 ] - ( DU[ idu ] * B[ ib1 + ib2 + strideB1 ] ) - ( DU2[ idu2 ] * B[ ib1 + ib2 + ( 2 * strideB1 ) ] ) ) / D[ id ];
+
+ idu -= strideDU;
+ idu2 -= strideDU2;
+ id -= strideD;
+ }
+
+ ib1 += strideB2;
+ }
+ }
+
+ return B;
+}
+
+
+// MAIN //
+
+/**
+* Solves a system of linear equations with a tri diagonal matrix using the LU factorization computed by `dgttrf`.
+*
+* ## Notes
+*
+* - To solve A * X = B (no transpose), use itrans = 0.
+* - To solve AT * X = B (transpose), use itrans = 1.
+* - To solve AT * X = B (conjugate transpose = transpose), use itrans = 2.
+*
+* @param {integer} itrans - specifies the form of the system of equations
+* @param {NonNegativeInteger} N - order of the matrix A
+* @param {NonNegativeInteger} nrhs - number of right-hand sides, i.e., the number of columns of the matrix B
+* @param {Float64Array} DL - multipliers that define the matrix L
+* @param {integer} strideDL - stride length for DL
+* @param {NonNegativeInteger} offsetDL - starting index of DL
+* @param {Float64Array} D - N diagonal elements of the upper triangular matrix U
+* @param {integer} strideD - stride length for D
+* @param {NonNegativeInteger} offsetD - starting index of D
+* @param {Float64Array} DU - elements of the first super-diagonal of U
+* @param {integer} strideDU - stride length for DU
+* @param {NonNegativeInteger} offsetDU - starting index of DU
+* @param {Float64Array} DU2 - elements of the second super-diagonal of U
+* @param {integer} strideDU2 - stride length for DU2
+* @param {NonNegativeInteger} offsetDU2 - starting index of DU2
+* @param {Int32Array} IPIV - vector of pivot indices
+* @param {integer} strideIPIV - stride length for IPIV
+* @param {NonNegativeInteger} offsetIPIV - starting index for IPIV
+* @param {Float64Array} B - right-hand side matrix B, overwritten by the solution matrix X
+* @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 of B
+* @returns {Float64Array} the solution matrix X
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var Int32Array = require( '@stdlib/array/int32' );
+*
+* var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+* var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+* var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+* var DU2 = new Float64Array( [ 0.0 ] );
+* var IPIV = new Int32Array( [ 0, 1, 2 ] );
+* var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+*
+* var out = dgtts2( 1, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 );
+* // out => [ ~1.44, ~1.25, ~1.55 ]
+*/
+function dgtts2( itrans, N, nrhs, DL, strideDL, offsetDL, D, strideD, offsetD, DU, strideDU, offsetDU, DU2, strideDU2, offsetDU2, IPIV, strideIPIV, offsetIPIV, B, strideB1, strideB2, offsetB ) {
+ if ( N === 0 || nrhs === 0 ) {
+ return B;
+ }
+ if ( itrans === 0 ) {
+ // Solve A * X = B using the LU factorization of A, overwriting B with the solution
+ return noTranspose( N, nrhs, DL, strideDL, offsetDL, D, strideD, offsetD, DU, strideDU, offsetDU, DU2, strideDU2, offsetDU2, IPIV, strideIPIV, offsetIPIV, B, strideB1, strideB2, offsetB );
+ }
+ // Solve Solve A**T * X = B using the LU factorization of A, overwriting B with the solution.
+ return transpose( N, nrhs, DL, strideDL, offsetDL, D, strideD, offsetD, DU, strideDU, offsetDU, DU2, strideDU2, offsetDU2, IPIV, strideIPIV, offsetIPIV, B, strideB1, strideB2, offsetB );
+}
+
+
+// EXPORTS //
+
+module.exports = dgtts2;
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/dgtts2.js b/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/dgtts2.js
new file mode 100644
index 000000000000..893ab691f7a4
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/dgtts2.js
@@ -0,0 +1,91 @@
+/**
+* @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 format = require( '@stdlib/string/format' );
+var base = require( './base.js' );
+
+
+// MAIN //
+
+/**
+* Solves a system of linear equations with a tri diagonal matrix using the LU factorization computed by `dgttrf`.
+*
+* ## Notes
+*
+* - To solve A * X = B (no transpose), use itrans = 0.
+* - To solve AT * X = B (transpose), use itrans = 1.
+* - To solve AT * X = B (conjugate transpose = transpose), use itrans = 2.
+*
+* @param {string} order - storage layout of B
+* @param {integer} itrans - specifies the form of the system of equations
+* @param {NonNegativeInteger} N - order of the matrix A
+* @param {NonNegativeInteger} nrhs - number of right-hand sides, i.e., the number of columns of the matrix B
+* @param {Float64Array} DL - multipliers that define the matrix L
+* @param {Float64Array} D - diagonal elements of the upper triangular matrix U
+* @param {Float64Array} DU - elements of the first super-diagonal of U
+* @param {Float64Array} DU2 - elements of the second super-diagonal of U
+* @param {Int32Array} IPIV - vector of pivot indices
+* @param {Float64Array} B - right-hand side matrix B, overwritten by the solution matrix X
+* @param {NonNegativeInteger} LDB - leading dimension of array B
+* @throws {TypeError} first argument must be a valid order
+* @throws {RangeError} eleventh argument must be greater than or equal to N
+* @returns {Float64Array} The solution matrix X
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var Int32Array = require( '@stdlib/array/int32' );
+*
+* var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+* var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+* var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+* var DU2 = new Float64Array( [ 0.0 ] );
+* var IPIV = new Int32Array( [ 0, 1, 2 ] );
+* var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+*
+* var out = dgtts2( 'column-major', 1, 3, 1, DL, D, DU, DU2, IPIV, B, 3 );
+* // out => [ ~1.44, ~1.25, ~1.55 ]
+*/
+function dgtts2( order, itrans, N, nrhs, DL, D, DU, DU2, IPIV, B, LDB ) { // eslint-disable-line max-params
+ var sb1;
+ var sb2;
+
+ if ( !isLayout( order ) ) {
+ throw new TypeError( format( 'invalid argument. First argument must be a valid order. Value: `%s`.', order ) );
+ }
+ if ( order === 'column-major' ) {
+ sb1 = 1;
+ sb2 = LDB;
+ } else { // order === 'row-major'
+ if ( LDB < nrhs ) {
+ throw new RangeError( format( 'invalid argument. Eighth argument must be greater than or equal to %d. Value: `%d`.', N, LDB ) );
+ }
+ sb1 = LDB;
+ sb2 = 1;
+ }
+ return base( itrans, N, nrhs, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, sb1, sb2, 0 ); // eslint-disable-line max-len
+}
+
+
+// EXPORTS //
+
+module.exports = dgtts2;
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/index.js b/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/index.js
new file mode 100644
index 000000000000..a9084f89eb61
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/index.js
@@ -0,0 +1,80 @@
+/**
+* @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 solve a system of linear equations with a tri diagonal matrix using the LU factorization.
+*
+* @module @stdlib/lapack/base/dgtts2
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var Int32Array = require( '@stdlib/array/int32' );
+* var dgtts2 = require( '@stdlib/lapack/base/dgtts2' );
+*
+* var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+* var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+* var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+* var DU2 = new Float64Array( [ 0.0 ] );
+* var IPIV = new Int32Array( [ 0, 1, 2 ] );
+* var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+*
+* dgtts2( 'row-major', 1, 3, 1, DL, D, DU, DU2, IPIV, B, 3 );
+* // B => [ 1.4365079379889456, 1.2539682480442178, 1.5476190504889455 ]
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var Int32Array = require( '@stdlib/array/int32' );
+* var dgtts2 = require( '@stdlib/lapack/base/dgtts2' );
+*
+* var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+* var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+* var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+* var DU2 = new Float64Array( [ 0.0 ] );
+* var IPIV = new Int32Array( [ 0, 1, 2 ] );
+* var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+*
+* dgtts2.ndarray( 1, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 );
+* // B => [ 1.4365079379889456, 1.2539682480442178, 1.5476190504889455 ]
+*/
+
+// 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 dgtts2;
+var tmp = tryRequire( join( __dirname, './native.js' ) );
+if ( isError( tmp ) ) {
+ dgtts2 = main;
+} else {
+ dgtts2 = tmp;
+}
+
+
+// EXPORTS //
+
+module.exports = dgtts2;
+
+// exports: { "ndarray": "dgtts2.ndarray" }
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/main.js b/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/main.js
new file mode 100644
index 000000000000..89d62c6160b1
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/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 dgtts2 = require( './dgtts2.js' );
+var ndarray = require( './ndarray.js' );
+
+
+// MAIN //
+
+setReadOnly( dgtts2, 'ndarray', ndarray );
+
+
+// EXPORTS //
+
+module.exports = dgtts2;
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/ndarray.js b/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/ndarray.js
new file mode 100644
index 000000000000..1831dbf68707
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/lib/ndarray.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 base = require( './base.js' );
+
+
+// MAIN //
+
+/**
+* Solves a system of linear equations with a tri diagonal matrix using the LU factorization computed by `dgttrf` and alternative indexing semantics.
+*
+* ## Notes
+*
+* - To solve A * X = B (no transpose), use itrans = 0.
+* - To solve AT * X = B (transpose), use itrans = 1.
+* - To solve AT * X = B (conjugate transpose = transpose), use itrans = 2.
+*
+* @param {integer} itrans - specifies the form of the system of equations
+* @param {NonNegativeInteger} N - order of the matrix A
+* @param {NonNegativeInteger} nrhs - number of right-hand sides, i.e., the number of columns of the matrix B
+* @param {Float64Array} DL - multipliers that define the matrix L
+* @param {integer} sdl - stride length for DL
+* @param {NonNegativeInteger} odl - starting index of DL
+* @param {Float64Array} D - N diagonal elements of the upper triangular matrix U
+* @param {integer} sd - stride length for D
+* @param {NonNegativeInteger} od - starting index of D
+* @param {Float64Array} DU - elements of the first super-diagonal of U
+* @param {integer} sdu - stride length for DU
+* @param {NonNegativeInteger} odu - starting index of DU
+* @param {Float64Array} DU2 - elements of the second super-diagonal of U
+* @param {integer} sdu2 - stride length for DU2
+* @param {NonNegativeInteger} odu2 - starting index of DU2
+* @param {Int32Array} IPIV - vector of pivot indices
+* @param {integer} si - stride length for IPIV
+* @param {NonNegativeInteger} oi - starting index for IPIV
+* @param {Float64Array} B - right-hand side matrix B, overwritten by the solution matrix X
+* @param {integer} sb1 - stride length for the first dimension of B
+* @param {integer} sb2 - stride for the second dimension of B
+* @param {NonNegativeInteger} ob - starting index of B
+* @returns {Float64Array} the solution matrix X
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var Int32Array = require( '@stdlib/array/int32' );
+*
+* var DL = new Float64Array( [ 0.25, 0.26666667 ] );
+* var D = new Float64Array( [ 4.0, 3.75, 3.73333333 ] );
+* var DU = new Float64Array( [ 1.0, 0.73333333 ] );
+* var DU2 = new Float64Array( [ 0.0 ] );
+* var IPIV = new Int32Array( [ 0, 1, 2 ] );
+* var B = new Float64Array( [ 7.0, 8.0, 7.0 ] );
+*
+* var out = dgtts2( 1, 3, 1, DL, 1, 0, D, 1, 0, DU, 1, 0, DU2, 1, 0, IPIV, 1, 0, B, 1, 1, 0 );
+* // out => [ ~1.44, ~1.25, ~1.55 ]
+*/
+function dgtts2( itrans, N, nrhs, DL, sdl, odl, D, sd, od, DU, sdu, odu, DU2, sdu2, odu2, IPIV, si, oi, B, sb1, sb2, ob ) { // eslint-disable-line max-len, max-params
+ return base( itrans, N, nrhs, DL, sdl, odl, D, sd, od, DU, sdu, odu, DU2, sdu2, odu2, IPIV, si, oi, B, sb1, sb2, ob ); // eslint-disable-line max-len
+}
+
+
+// EXPORTS //
+
+module.exports = dgtts2;
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/package.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/package.json
new file mode 100644
index 000000000000..a1be2fca3fbd
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/package.json
@@ -0,0 +1,69 @@
+{
+ "name": "@stdlib/lapack/base/dgtts2",
+ "version": "0.0.0",
+ "description": "Solve a system of linear equations with a tri diagonal matrix using the LU factorization computed by dgttrf.",
+ "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",
+ "dgtts2",
+ "cholesky",
+ "factorization",
+ "linear",
+ "algebra",
+ "subroutines",
+ "array",
+ "ndarray",
+ "float64",
+ "double",
+ "float64array"
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_no_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_no_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..cc007b93f30b
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_no_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 0.5 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 2.0, 1.0, 0.5 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 1.0 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 2, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 1,
+ "sb2": 3,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [ 1.0, 5.0, -4.0, 1.5, 5.0, -3.5, 2.0, 3.0, -1.0 ],
+
+ "expected_mat": [
+ [ 1.0, 1.5, 2.0 ],
+ [ 5.0, 5.0, 3.0 ],
+ [ -4.0, -3.5, -1.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_no_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_no_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..9a068bbf0826
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_no_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 8.0, 7.0 ],
+ "sb1": 1,
+ "sb2": 3,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4031746026466836, 1.3873015894132654, 1.4285714242665817 ],
+
+ "expected_mat": [
+ [ 1.4031746026466836 ],
+ [ 1.3873015894132654 ],
+ [ 1.4285714242665817 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_no_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_no_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..eefab16501bd
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_no_trans_nrhs_gt_one.json
@@ -0,0 +1,57 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 1,
+ "sb2": 3,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [
+ 1.7455555555,
+ 0.017777778,
+ 0.25,
+ 1.9494841268814838,
+ 0.2020634924740646,
+ 0.33035714225924745,
+ 1.6183333331681546,
+ 0.526666667327381,
+ 0.37499999832589287
+ ],
+
+ "expected_mat": [
+ [ 1.7455555555, 1.9494841268814838, 1.6183333331681546 ],
+ [ 0.017777778, 0.2020634924740646, 0.526666667327381 ],
+ [ 0.25, 0.33035714225924745, 0.37499999832589287 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..6e73c13240fe
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 0.5 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 2.0, 1.0, 0.5 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 1.0 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 2, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 1,
+ "sb2": 3,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [ 1.0, 5.0, -4.0, 1.5, 5.0, -3.5, 2.0, 3.0, -1.0 ],
+
+ "expected_mat": [
+ [ 1.0, 1.5, 2.0 ],
+ [ 5.0, 5.0, 3.0 ],
+ [ -4.0, -3.5, -1.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..ab3a0381e7aa
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 8.0, 7.0 ],
+ "sb1": 1,
+ "sb2": 1,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4365079379889456, 1.2539682480442178, 1.5476190504889455 ],
+
+ "expected_mat": [
+ [ 1.4365079379889456 ],
+ [ 1.2539682480442178 ],
+ [ 1.5476190504889455 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..04d039568ae8
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/col_major_trans_nrhs_gt_one.json
@@ -0,0 +1,57 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 1,
+ "sb2": 3,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [
+ 1.7503174605488945,
+ -0.0012698421955782274,
+ 0.25476190504889457,
+ 1.9566269844548256,
+ 0.1734920621806973,
+ 0.34940476245482566,
+ 1.6278571432659439,
+ 0.48857142693622446,
+ 0.4178571437659439
+ ],
+
+ "expected_mat": [
+ [ 1.7503174605488945, 1.9566269844548256, 1.6278571432659439 ],
+ [ -0.0012698421955782274, 0.1734920621806973, 0.48857142693622446 ],
+ [ 0.25476190504889457, 0.34940476245482566, 0.4178571437659439 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_no_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_no_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..4d566e0f6e9b
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_no_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 0.5 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 2.0, 1.0, 0.5 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 1.0 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 2, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 9999.0, 1.0, 9999.0, 2.0, 9999.0, 7.0, 9999.0, 9999.0, 1.5, 9999.0, 3.0, 9999.0, 8.0, 9999.0, 9999.0, 2.0, 9999.0, 4.0, 9999.0, 7.0 ],
+ "sb1": -2,
+ "sb2": 7,
+ "ob": 5,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [ 9999.0, -4.0, 9999.0, 5.0, 9999.0, 1.0, 9999.0, 9999.0, -3.5, 9999.0, 5.0, 9999.0, 1.5, 9999.0, 9999.0, -1.0, 9999.0, 3.0, 9999.0, 2.0 ],
+
+ "expected_mat": [
+ [ 1.0, 1.5, 2.0 ],
+ [ 5.0, 5.0, 3.0 ],
+ [ -4.0, -3.5, -1.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_no_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_no_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..e433f855c0c1
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_no_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 8.0, 7.0 ],
+ "sb1": 1,
+ "sb2": -3,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4031746026466836, 1.3873015894132654, 1.4285714242665817 ],
+
+ "expected_mat": [
+ [ 1.4031746026466836 ],
+ [ 1.3873015894132654 ],
+ [ 1.4285714242665817 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_no_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_no_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..7df49de91a36
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_no_trans_nrhs_gt_one.json
@@ -0,0 +1,70 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 9999.0, 1.0, 9999.0, 2.0, 9999.0, 7.0, 9999.0, 9999.0, 1.5, 9999.0, 3.0, 9999.0, 8.0, 9999.0, 9999.0, 2.0, 9999.0, 4.0, 9999.0, 7.0 ],
+ "sb1": -2,
+ "sb2": 7,
+ "ob": 5,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [
+ 9999.0,
+ 0.25,
+ 9999.0,
+ 0.017777778,
+ 9999.0,
+ 1.7455555555,
+ 9999.0,
+
+ 9999.0,
+ 0.33035714225924745,
+ 9999.0,
+ 0.2020634924740646,
+ 9999.0,
+ 1.9494841268814838,
+ 9999.0,
+
+ 9999.0,
+ 0.37499999832589287,
+ 9999.0,
+ 0.526666667327381,
+ 9999.0,
+ 1.6183333331681546
+ ],
+
+ "expected_mat": [
+ [ 1.7455555555, 1.9494841268814838, 1.6183333331681546 ],
+ [ 0.017777778, 0.2020634924740646, 0.526666667327381 ],
+ [ 0.25, 0.33035714225924745, 0.37499999832589287 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..206c9f4db336
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 0.5 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 2.0, 1.0, 0.5 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 1.0 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 2, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 9999.0, 1.0, 9999.0, 2.0, 9999.0, 7.0, 9999.0, 9999.0, 1.5, 9999.0, 3.0, 9999.0, 8.0, 9999.0, 9999.0, 2.0, 9999.0, 4.0, 9999.0, 7.0 ],
+ "sb1": -2,
+ "sb2": 7,
+ "ob": 5,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [ 9999.0, -4.0, 9999.0, 5.0, 9999.0, 1.0, 9999.0, 9999.0, -3.5, 9999.0, 5.0, 9999.0, 1.5, 9999.0, 9999.0, -1.0, 9999.0, 3.0, 9999.0, 2.0 ],
+
+ "expected_mat": [
+ [ 1.0, 1.5, 2.0 ],
+ [ 5.0, 5.0, 3.0 ],
+ [ -4.0, -3.5, -1.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..43d364cfc758
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 8.0, 7.0 ],
+ "sb1": 1,
+ "sb2": -3,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4365079379889456, 1.2539682480442178, 1.5476190504889455 ],
+
+ "expected_mat": [
+ [ 1.4365079379889456 ],
+ [ 1.2539682480442178 ],
+ [ 1.5476190504889455 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..5f7ecf9032d3
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_col_major_trans_nrhs_gt_one.json
@@ -0,0 +1,70 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 9999.0, 1.0, 9999.0, 2.0, 9999.0, 7.0, 9999.0, 9999.0, 1.5, 9999.0, 3.0, 9999.0, 8.0, 9999.0, 9999.0, 2.0, 9999.0, 4.0, 9999.0, 7.0 ],
+ "sb1": -2,
+ "sb2": 7,
+ "ob": 5,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [
+ 9999.0,
+ 0.25476190504889457,
+ 9999.0,
+ -0.0012698421955782274,
+ 9999.0,
+ 1.7503174605488945,
+ 9999.0,
+
+ 9999.0,
+ 0.34940476245482566,
+ 9999.0,
+ 0.1734920621806973,
+ 9999.0,
+ 1.9566269844548256,
+ 9999.0,
+
+ 9999.0,
+ 0.4178571437659439,
+ 9999.0,
+ 0.48857142693622446,
+ 9999.0,
+ 1.6278571432659439
+ ],
+
+ "expected_mat": [
+ [ 1.7503174605488945, 1.9566269844548256, 1.6278571432659439 ],
+ [ -0.0012698421955782274, 0.1734920621806973, 0.48857142693622446 ],
+ [ 0.25476190504889457, 0.34940476245482566, 0.4178571437659439 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_no_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_no_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..25dfcaca960e
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_no_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 0.5 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 2.0, 1.0, 0.5 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 1.0 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 2, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 9999.0, 1.0, 9999.0, 2.0, 9999.0, 7.0, 9999.0, 9999.0, 1.5, 9999.0, 3.0, 9999.0, 8.0, 9999.0, 9999.0, 2.0, 9999.0, 4.0, 9999.0, 7.0 ],
+ "sb1": 7,
+ "sb2": -2,
+ "ob": 5,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [ 9999.0, -0.5, 9999.0, -1.0, 9999.0, 1.0, 9999.0, 9999.0, 2.0, 9999.0, 4.0, 9999.0, 5.0, 9999.0, 9999.0, 0.0, 9999.0, 0.0, 9999.0, 2.0 ],
+
+ "expected_mat": [
+ [ 1.0, -1.0, -0.5 ],
+ [ 5.0, 4.0, 2.0 ],
+ [ 2.0, 0.0, 0.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_no_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_no_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..e433f855c0c1
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_no_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 8.0, 7.0 ],
+ "sb1": 1,
+ "sb2": -3,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4031746026466836, 1.3873015894132654, 1.4285714242665817 ],
+
+ "expected_mat": [
+ [ 1.4031746026466836 ],
+ [ 1.3873015894132654 ],
+ [ 1.4285714242665817 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_no_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_no_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..796944fc988e
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_no_trans_nrhs_gt_one.json
@@ -0,0 +1,70 @@
+{
+ "order": "row-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 9999.0, 1.0, 9999.0, 2.0, 9999.0, 7.0, 9999.0, 9999.0, 1.5, 9999.0, 3.0, 9999.0, 8.0, 9999.0, 9999.0, 2.0, 9999.0, 4.0, 9999.0, 7.0 ],
+ "sb1": 7,
+ "sb2": -2,
+ "ob": 5,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [
+ 9999.0,
+ 0.1884920633577806,
+ 9999.0,
+ 0.3769841267155612,
+ 9999.0,
+ 1.4031746026466836,
+ 9999.0,
+
+ 9999.0,
+ 0.24603174656887758,
+ 9999.0,
+ 0.49206349313775516,
+ 9999.0,
+ 1.3873015894132654,
+ 9999.0,
+
+ 9999.0,
+ 0.44642857071109693,
+ 9999.0,
+ 0.8928571414221939,
+ 9999.0,
+ 1.4285714242665817
+ ],
+
+ "expected_mat": [
+ [ 1.4031746026466836, 0.3769841267155612, 0.1884920633577806 ],
+ [ 1.3873015894132654, 0.49206349313775516, 0.24603174656887758 ],
+ [ 1.4285714242665817, 0.8928571414221939, 0.44642857071109693 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..25dfcaca960e
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 0.5 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 2.0, 1.0, 0.5 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 1.0 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 2, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 9999.0, 1.0, 9999.0, 2.0, 9999.0, 7.0, 9999.0, 9999.0, 1.5, 9999.0, 3.0, 9999.0, 8.0, 9999.0, 9999.0, 2.0, 9999.0, 4.0, 9999.0, 7.0 ],
+ "sb1": 7,
+ "sb2": -2,
+ "ob": 5,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [ 9999.0, -0.5, 9999.0, -1.0, 9999.0, 1.0, 9999.0, 9999.0, 2.0, 9999.0, 4.0, 9999.0, 5.0, 9999.0, 9999.0, 0.0, 9999.0, 0.0, 9999.0, 2.0 ],
+
+ "expected_mat": [
+ [ 1.0, -1.0, -0.5 ],
+ [ 5.0, 4.0, 2.0 ],
+ [ 2.0, 0.0, 0.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..bf0d350a28a9
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 8.0, 7.0 ],
+ "sb1": 1,
+ "sb2": -3,
+ "ob": 0,
+ "LDB": 1,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4365079379889456, 1.2539682480442178, 1.5476190504889455 ],
+
+ "expected_mat": [
+ [ 1.4365079379889456 ],
+ [ 1.2539682480442178 ],
+ [ 1.5476190504889455 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..07c613c8a0d4
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/complex-access/complex_access_row_major_trans_nrhs_gt_one.json
@@ -0,0 +1,70 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 9999.0, 1.0, 9999.0, 2.0, 9999.0, 7.0, 9999.0, 9999.0, 1.5, 9999.0, 3.0, 9999.0, 8.0, 9999.0, 9999.0, 2.0, 9999.0, 4.0, 9999.0, 7.0 ],
+ "sb1": 7,
+ "sb2": -2,
+ "ob": 5,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [
+ 9999.0,
+ 0.19801587345556973,
+ 9999.0,
+ 0.39603174691113946,
+ 9999.0,
+ 1.4365079379889456,
+ 9999.0,
+
+ 9999.0,
+ 0.20793650617772105,
+ 9999.0,
+ 0.4158730123554421,
+ 9999.0,
+ 1.2539682480442178,
+ 9999.0,
+
+ 9999.0,
+ 0.47023809595556976,
+ 9999.0,
+ 0.9404761919111395,
+ 9999.0,
+ 1.5476190504889455
+ ],
+
+ "expected_mat": [
+ [ 1.4365079379889456, 0.39603174691113946, 0.19801587345556973 ],
+ [ 1.2539682480442178, 0.4158730123554421, 0.20793650617772105 ],
+ [ 1.5476190504889455, 0.9404761919111395, 0.47023809595556976 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_no_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_no_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..dc60ea8e1a64
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_no_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 0.5 ],
+ "sdl": -1,
+ "odl": 1,
+
+ "D": [ 0.5, 1.0, 2.0 ],
+ "sd": -1,
+ "od": 2,
+
+ "DU": [ 1.0, 1.0 ],
+ "sdu": -1,
+ "odu": 1,
+
+ "DU2": [ 0.0 ],
+ "sdu2": -1,
+ "odu2": 0,
+
+ "IPIV": [ 2, 2, 0 ],
+ "si": -1,
+ "oi": 2,
+
+ "B": [ 2.0, 4.0, 7.0, 1.5, 3.0, 8.0, 1.0, 2.0, 7.0 ],
+ "sb1": -1,
+ "sb2": -3,
+ "ob": 8,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [ -1.0, 3.0, 2.0, -3.5, 5.0, 1.5, -4.0, 5.0, 1.0 ],
+
+ "expected_mat": [
+ [ 1.0, 1.5, 2.0 ],
+ [ 5.0, 5.0, 3.0 ],
+ [ -4.0, -3.5, -1.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_no_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_no_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..e83233fb0d87
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_no_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.26666667, 0.25 ],
+ "sdl": -1,
+ "odl": 1,
+
+ "D": [ 3.73333333, 3.75, 4.0 ],
+ "sd": -1,
+ "od": 2,
+
+ "DU": [ 0.73333333, 1.0 ],
+ "sdu": -1,
+ "odu": 1,
+
+ "DU2": [ 0.0 ],
+ "sdu2": -1,
+ "odu2": 0,
+
+ "IPIV": [ 2, 1, 0 ],
+ "si": -1,
+ "oi": 2,
+
+ "B": [ 7.0, 8.0, 7.0 ],
+ "sb1": -1,
+ "sb2": -3,
+ "ob": 2,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4285714242665817, 1.3873015894132654, 1.4031746026466836 ],
+
+ "expected_mat": [
+ [ 1.4031746026466836 ],
+ [ 1.3873015894132654 ],
+ [ 1.4285714242665817 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_no_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_no_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..20756a6b1de2
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_no_trans_nrhs_gt_one.json
@@ -0,0 +1,57 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.26666667, 0.25 ],
+ "sdl": -1,
+ "odl": 1,
+
+ "D": [ 3.73333333, 3.75, 4.0 ],
+ "sd": -1,
+ "od": 2,
+
+ "DU": [ 0.73333333, 1.0 ],
+ "sdu": -1,
+ "odu": 1,
+
+ "DU2": [ 0.0 ],
+ "sdu2": -1,
+ "odu2": 0,
+
+ "IPIV": [ 2, 1, 0 ],
+ "si": -1,
+ "oi": 2,
+
+ "B": [ 2.0, 4.0, 7.0, 1.5, 3.0, 8.0, 1.0, 2.0, 7.0 ],
+ "sb1": -1,
+ "sb2": -3,
+ "ob": 8,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [
+ 0.37499999832589287,
+ 0.526666667327381,
+ 1.6183333331681546,
+ 0.33035714225924745,
+ 0.2020634924740646,
+ 1.9494841268814838,
+ 0.25,
+ 0.017777778,
+ 1.7455555555
+ ],
+
+ "expected_mat": [
+ [ 1.7455555555, 1.9494841268814838, 1.6183333331681546 ],
+ [ 0.017777778, 0.2020634924740646, 0.526666667327381 ],
+ [ 0.25, 0.33035714225924745, 0.37499999832589287 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..770758b032c5
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 0.5 ],
+ "sdl": -1,
+ "odl": 1,
+
+ "D": [ 0.5, 1.0, 2.0 ],
+ "sd": -1,
+ "od": 2,
+
+ "DU": [ 1.0, 1.0 ],
+ "sdu": -1,
+ "odu": 1,
+
+ "DU2": [ 0.0 ],
+ "sdu2": -1,
+ "odu2": 0,
+
+ "IPIV": [ 2, 2, 0 ],
+ "si": -1,
+ "oi": 2,
+
+ "B": [ 2.0, 4.0, 7.0, 1.5, 3.0, 8.0, 1.0, 2.0, 7.0 ],
+ "sb1": -1,
+ "sb2": -3,
+ "ob": 8,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [ -1.0, 3.0, 2.0, -3.5, 5.0, 1.5, -4.0, 5.0, 1.0 ],
+
+ "expected_mat": [
+ [ 1.0, 1.5, 2.0 ],
+ [ 5.0, 5.0, 3.0 ],
+ [ -4.0, -3.5, -1.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..b0db5406be98
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.26666667, 0.25 ],
+ "sdl": -1,
+ "odl": 1,
+
+ "D": [ 3.73333333, 3.75, 4.0 ],
+ "sd": -1,
+ "od": 2,
+
+ "DU": [ 0.73333333, 1.0 ],
+ "sdu": -1,
+ "odu": 1,
+
+ "DU2": [ 0.0 ],
+ "sdu2": -1,
+ "odu2": 0,
+
+ "IPIV": [ 2, 1, 0 ],
+ "si": -1,
+ "oi": 2,
+
+ "B": [ 7.0, 8.0, 7.0 ],
+ "sb1": -1,
+ "sb2": -1,
+ "ob": 2,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.5476190504889455, 1.2539682480442178, 1.4365079379889456 ],
+
+ "expected_mat": [
+ [ 1.4365079379889456 ],
+ [ 1.2539682480442178 ],
+ [ 1.5476190504889455 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..c9ddc646efd9
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_col_major_trans_nrhs_gt_one.json
@@ -0,0 +1,57 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.26666667, 0.25 ],
+ "sdl": -1,
+ "odl": 1,
+
+ "D": [ 3.73333333, 3.75, 4.0 ],
+ "sd": -1,
+ "od": 2,
+
+ "DU": [ 0.73333333, 1.0 ],
+ "sdu": -1,
+ "odu": 1,
+
+ "DU2": [ 0.0 ],
+ "sdu2": -1,
+ "odu2": 0,
+
+ "IPIV": [ 2, 1, 0 ],
+ "si": -1,
+ "oi": 2,
+
+ "B": [ 2.0, 4.0, 7.0, 1.5, 3.0, 8.0, 1.0, 2.0, 7.0 ],
+ "sb1": -1,
+ "sb2": -3,
+ "ob": 8,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [
+ 0.4178571437659439,
+ 0.48857142693622446,
+ 1.6278571432659439,
+ 0.34940476245482566,
+ 0.1734920621806973,
+ 1.9566269844548256,
+ 0.25476190504889457,
+ -0.0012698421955782274,
+ 1.7503174605488945
+ ],
+
+ "expected_mat": [
+ [ 1.7503174605488945, 1.9566269844548256, 1.6278571432659439 ],
+ [ -0.0012698421955782274, 0.1734920621806973, 0.48857142693622446 ],
+ [ 0.25476190504889457, 0.34940476245482566, 0.4178571437659439 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_no_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_no_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..9584ada1c3c6
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_no_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 0.5 ],
+ "sdl": -1,
+ "odl": 1,
+
+ "D": [ 0.5, 1.0, 2.0 ],
+ "sd": -1,
+ "od": 2,
+
+ "DU": [ 1.0, 1.0 ],
+ "sdu": -1,
+ "odu": 1,
+
+ "DU2": [ 0.0 ],
+ "sdu2": -1,
+ "odu2": 0,
+
+ "IPIV": [ 2, 2, 0 ],
+ "si": -1,
+ "oi": 2,
+
+ "B": [ 2.0, 4.0, 7.0, 1.5, 3.0, 8.0, 1.0, 2.0, 7.0 ],
+ "sb1": -3,
+ "sb2": -1,
+ "ob": 8,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [ 0.0, 0.0, 2.0, 2.0, 4.0, 5.0, -0.5, -1.0, 1.0 ],
+
+ "expected_mat": [
+ [ 1.0, -1.0, -0.5 ],
+ [ 5.0, 4.0, 2.0 ],
+ [ 2.0, 0.0, 0.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_no_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_no_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..25d940e353c1
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_no_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.26666667, 0.25 ],
+ "sdl": -1,
+ "odl": 1,
+
+ "D": [ 3.73333333, 3.75, 4.0 ],
+ "sd": -1,
+ "od": 2,
+
+ "DU": [ 0.73333333, 1.0 ],
+ "sdu": -1,
+ "odu": 1,
+
+ "DU2": [ 0.0 ],
+ "sdu2": -1,
+ "odu2": 0,
+
+ "IPIV": [ 2, 1, 0 ],
+ "si": -1,
+ "oi": 2,
+
+ "B": [ 7.0, 8.0, 7.0 ],
+ "sb1": -1,
+ "sb2": -1,
+ "ob": 2,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4285714242665817, 1.3873015894132654, 1.4031746026466836 ],
+
+ "expected_mat": [
+ [ 1.4031746026466836 ],
+ [ 1.3873015894132654 ],
+ [ 1.4285714242665817 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_no_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_no_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..638536738693
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_no_trans_nrhs_gt_one.json
@@ -0,0 +1,57 @@
+{
+ "order": "row-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.26666667, 0.25 ],
+ "sdl": -1,
+ "odl": 1,
+
+ "D": [ 3.73333333, 3.75, 4.0 ],
+ "sd": -1,
+ "od": 2,
+
+ "DU": [ 0.73333333, 1.0 ],
+ "sdu": -1,
+ "odu": 1,
+
+ "DU2": [ 0.0 ],
+ "sdu2": -1,
+ "odu2": 0,
+
+ "IPIV": [ 2, 1, 0 ],
+ "si": -1,
+ "oi": 2,
+
+ "B": [ 2.0, 4.0, 7.0, 1.5, 3.0, 8.0, 1.0, 2.0, 7.0 ],
+ "sb1": -3,
+ "sb2": -1,
+ "ob": 8,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [
+ 0.44642857071109693,
+ 0.8928571414221939,
+ 1.4285714242665817,
+ 0.24603174656887758,
+ 0.49206349313775516,
+ 1.3873015894132654,
+ 0.1884920633577806,
+ 0.3769841267155612,
+ 1.4031746026466836
+ ],
+
+ "expected_mat": [
+ [ 1.4031746026466836, 0.3769841267155612, 0.1884920633577806 ],
+ [ 1.3873015894132654, 0.49206349313775516, 0.24603174656887758 ],
+ [ 1.4285714242665817, 0.8928571414221939, 0.44642857071109693 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..9584ada1c3c6
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 0.5 ],
+ "sdl": -1,
+ "odl": 1,
+
+ "D": [ 0.5, 1.0, 2.0 ],
+ "sd": -1,
+ "od": 2,
+
+ "DU": [ 1.0, 1.0 ],
+ "sdu": -1,
+ "odu": 1,
+
+ "DU2": [ 0.0 ],
+ "sdu2": -1,
+ "odu2": 0,
+
+ "IPIV": [ 2, 2, 0 ],
+ "si": -1,
+ "oi": 2,
+
+ "B": [ 2.0, 4.0, 7.0, 1.5, 3.0, 8.0, 1.0, 2.0, 7.0 ],
+ "sb1": -3,
+ "sb2": -1,
+ "ob": 8,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [ 0.0, 0.0, 2.0, 2.0, 4.0, 5.0, -0.5, -1.0, 1.0 ],
+
+ "expected_mat": [
+ [ 1.0, -1.0, -0.5 ],
+ [ 5.0, 4.0, 2.0 ],
+ [ 2.0, 0.0, 0.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..ce372d5c4857
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.26666667, 0.25 ],
+ "sdl": -1,
+ "odl": 1,
+
+ "D": [ 3.73333333, 3.75, 4.0 ],
+ "sd": -1,
+ "od": 2,
+
+ "DU": [ 0.73333333, 1.0 ],
+ "sdu": -1,
+ "odu": 1,
+
+ "DU2": [ 0.0 ],
+ "sdu2": -1,
+ "odu2": 0,
+
+ "IPIV": [ 2, 1, 0 ],
+ "si": -1,
+ "oi": 2,
+
+ "B": [ 7.0, 8.0, 7.0 ],
+ "sb1": -1,
+ "sb2": -1,
+ "ob": 2,
+ "LDB": 1,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.5476190504889455, 1.2539682480442178, 1.4365079379889456 ],
+
+ "expected_mat": [
+ [ 1.4365079379889456 ],
+ [ 1.2539682480442178 ],
+ [ 1.5476190504889455 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..236b93523220
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/negative-strides/neg_stride_row_major_trans_nrhs_gt_one.json
@@ -0,0 +1,57 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.26666667, 0.25 ],
+ "sdl": -1,
+ "odl": 1,
+
+ "D": [ 3.73333333, 3.75, 4.0 ],
+ "sd": -1,
+ "od": 2,
+
+ "DU": [ 0.73333333, 1.0 ],
+ "sdu": -1,
+ "odu": 1,
+
+ "DU2": [ 0.0 ],
+ "sdu2": -1,
+ "odu2": 0,
+
+ "IPIV": [ 2, 1, 0 ],
+ "si": -1,
+ "oi": 2,
+
+ "B": [ 2.0, 4.0, 7.0, 1.5, 3.0, 8.0, 1.0, 2.0, 7.0 ],
+ "sb1": -3,
+ "sb2": -1,
+ "ob": 8,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [
+ 0.47023809595556976,
+ 0.9404761919111395,
+ 1.5476190504889455,
+ 0.20793650617772105,
+ 0.4158730123554421,
+ 1.2539682480442178,
+ 0.19801587345556973,
+ 0.39603174691113946,
+ 1.4365079379889456
+ ],
+
+ "expected_mat": [
+ [ 1.4365079379889456, 0.39603174691113946, 0.19801587345556973 ],
+ [ 1.2539682480442178, 0.4158730123554421, 0.20793650617772105 ],
+ [ 1.5476190504889455, 0.9404761919111395, 0.47023809595556976 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_no_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_no_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..3fdc5b1bb624
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_no_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.0, 0.5, 0.5 ],
+ "sdl": 1,
+ "odl": 1,
+
+ "D": [ 0.0, 2.0, 1.0, 0.5 ],
+ "sd": 1,
+ "od": 1,
+
+ "DU": [ 0.0, 1.0, 1.0 ],
+ "sdu": 1,
+ "odu": 1,
+
+ "DU2": [ 0.0, 0.0 ],
+ "sdu2": 1,
+ "odu2": 1,
+
+ "IPIV": [ 0, 0, 2, 2 ],
+ "si": 1,
+ "oi": 1,
+
+ "B": [ 0.0, 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 1,
+ "sb2": 3,
+ "ob": 1,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [ 0.0, 1.0, 5.0, -4.0, 1.5, 5.0, -3.5, 2.0, 3.0, -1.0 ],
+
+ "expected_mat": [
+ [ 1.0, 1.5, 2.0 ],
+ [ 5.0, 5.0, 3.0 ],
+ [ -4.0, -3.5, -1.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_no_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_no_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..eeab2f76f5e6
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_no_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.0, 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 1,
+
+ "D": [ 0.0, 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 1,
+
+ "DU": [ 0.0, 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 1,
+
+ "DU2": [ 0.0, 0.0 ],
+ "sdu2": 1,
+ "odu2": 1,
+
+ "IPIV": [ 0, 0, 1, 2 ],
+ "si": 1,
+ "oi": 1,
+
+ "B": [ 0.0, 7.0, 8.0, 7.0 ],
+ "sb1": 1,
+ "sb2": 3,
+ "ob": 1,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 0.0, 1.4031746026466836, 1.3873015894132654, 1.4285714242665817 ],
+
+ "expected_mat": [
+ [ 1.4031746026466836 ],
+ [ 1.3873015894132654 ],
+ [ 1.4285714242665817 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_no_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_no_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..2a10968a7e47
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_no_trans_nrhs_gt_one.json
@@ -0,0 +1,58 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.0, 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 1,
+
+ "D": [ 0.0, 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 1,
+
+ "DU": [ 0.0, 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 1,
+
+ "DU2": [ 0.0, 0.0 ],
+ "sdu2": 1,
+ "odu2": 1,
+
+ "IPIV": [ 0, 0, 1, 2 ],
+ "si": 1,
+ "oi": 1,
+
+ "B": [ 0.0, 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 1,
+ "sb2": 3,
+ "ob": 1,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [
+ 0.0,
+ 1.7455555555,
+ 0.017777778,
+ 0.25,
+ 1.9494841268814838,
+ 0.2020634924740646,
+ 0.33035714225924745,
+ 1.6183333331681546,
+ 0.526666667327381,
+ 0.37499999832589287
+ ],
+
+ "expected_mat": [
+ [ 1.7455555555, 1.9494841268814838, 1.6183333331681546 ],
+ [ 0.017777778, 0.2020634924740646, 0.526666667327381 ],
+ [ 0.25, 0.33035714225924745, 0.37499999832589287 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..411a5e83c795
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.0, 0.5, 0.5 ],
+ "sdl": 1,
+ "odl": 1,
+
+ "D": [ 0.0, 2.0, 1.0, 0.5 ],
+ "sd": 1,
+ "od": 1,
+
+ "DU": [ 0.0, 1.0, 1.0 ],
+ "sdu": 1,
+ "odu": 1,
+
+ "DU2": [ 0.0, 0.0 ],
+ "sdu2": 1,
+ "odu2": 1,
+
+ "IPIV": [ 0, 0, 2, 2 ],
+ "si": 1,
+ "oi": 1,
+
+ "B": [ 0.0, 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 1,
+ "sb2": 3,
+ "ob": 1,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [ 0.0, 1.0, 5.0, -4.0, 1.5, 5.0, -3.5, 2.0, 3.0, -1.0 ],
+
+ "expected_mat": [
+ [ 1.0, 1.5, 2.0 ],
+ [ 5.0, 5.0, 3.0 ],
+ [ -4.0, -3.5, -1.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..377498106148
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.0, 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 1,
+
+ "D": [ 0.0, 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 1,
+
+ "DU": [ 0.0, 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 1,
+
+ "DU2": [ 0.0, 0.0 ],
+ "sdu2": 1,
+ "odu2": 1,
+
+ "IPIV": [ 0, 0, 1, 2 ],
+ "si": 1,
+ "oi": 1,
+
+ "B": [ 0.0, 7.0, 8.0, 7.0 ],
+ "sb1": 1,
+ "sb2": 1,
+ "ob": 1,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 0.0, 1.4365079379889456, 1.2539682480442178, 1.5476190504889455 ],
+
+ "expected_mat": [
+ [ 1.4365079379889456 ],
+ [ 1.2539682480442178 ],
+ [ 1.5476190504889455 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..d0b9c6d7e4bb
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_col_major_trans_nrhs_gt_one.json
@@ -0,0 +1,58 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.0, 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 1,
+
+ "D": [ 0.0, 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 1,
+
+ "DU": [ 0.0, 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 1,
+
+ "DU2": [ 0.0, 0.0 ],
+ "sdu2": 1,
+ "odu2": 1,
+
+ "IPIV": [ 0, 0, 1, 2 ],
+ "si": 1,
+ "oi": 1,
+
+ "B": [ 0.0, 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 1,
+ "sb2": 3,
+ "ob": 1,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [
+ 0.0,
+ 1.7503174605488945,
+ -0.0012698421955782274,
+ 0.25476190504889457,
+ 1.9566269844548256,
+ 0.1734920621806973,
+ 0.34940476245482566,
+ 1.6278571432659439,
+ 0.48857142693622446,
+ 0.4178571437659439
+ ],
+
+ "expected_mat": [
+ [ 1.7503174605488945, 1.9566269844548256, 1.6278571432659439 ],
+ [ -0.0012698421955782274, 0.1734920621806973, 0.48857142693622446 ],
+ [ 0.25476190504889457, 0.34940476245482566, 0.4178571437659439 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_no_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_no_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..f0a738faa481
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_no_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.0, 0.5, 0.5 ],
+ "sdl": 1,
+ "odl": 1,
+
+ "D": [ 0.0, 2.0, 1.0, 0.5 ],
+ "sd": 1,
+ "od": 1,
+
+ "DU": [ 0.0, 1.0, 1.0 ],
+ "sdu": 1,
+ "odu": 1,
+
+ "DU2": [ 0.0, 0.0 ],
+ "sdu2": 1,
+ "odu2": 1,
+
+ "IPIV": [ 0, 0, 2, 2 ],
+ "si": 1,
+ "oi": 1,
+
+ "B": [ 0.0, 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 3,
+ "sb2": 1,
+ "ob": 1,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [ 0.0, 1.0, -1.0, -0.5, 5.0, 4.0, 2.0, 2.0, 0.0, 0.0 ],
+
+ "expected_mat": [
+ [ 1.0, -1.0, -0.5 ],
+ [ 5.0, 4.0, 2.0 ],
+ [ 2.0, 0.0, 0.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_no_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_no_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..eb746c7ce900
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_no_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.0, 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 1,
+
+ "D": [ 0.0, 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 1,
+
+ "DU": [ 0.0, 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 1,
+
+ "DU2": [ 0.0, 0.0 ],
+ "sdu2": 1,
+ "odu2": 1,
+
+ "IPIV": [ 0, 0, 1, 2 ],
+ "si": 1,
+ "oi": 1,
+
+ "B": [ 0.0, 7.0, 8.0, 7.0 ],
+ "sb1": 1,
+ "sb2": 1,
+ "ob": 1,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 0.0, 1.4031746026466836, 1.3873015894132654, 1.4285714242665817 ],
+
+ "expected_mat": [
+ [ 1.4031746026466836 ],
+ [ 1.3873015894132654 ],
+ [ 1.4285714242665817 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_no_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_no_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..ba466dd458de
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_no_trans_nrhs_gt_one.json
@@ -0,0 +1,58 @@
+{
+ "order": "row-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.0, 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 1,
+
+ "D": [ 0.0, 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 1,
+
+ "DU": [ 0.0, 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 1,
+
+ "DU2": [ 0.0, 0.0 ],
+ "sdu2": 1,
+ "odu2": 1,
+
+ "IPIV": [ 0, 0, 1, 2 ],
+ "si": 1,
+ "oi": 1,
+
+ "B": [ 0.0, 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 3,
+ "sb2": 1,
+ "ob": 1,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [
+ 0.0,
+ 1.4031746026466836,
+ 0.3769841267155612,
+ 0.1884920633577806,
+ 1.3873015894132654,
+ 0.49206349313775516,
+ 0.24603174656887758,
+ 1.4285714242665817,
+ 0.8928571414221939,
+ 0.44642857071109693
+ ],
+
+ "expected_mat": [
+ [ 1.4031746026466836, 0.3769841267155612, 0.1884920633577806 ],
+ [ 1.3873015894132654, 0.49206349313775516, 0.24603174656887758 ],
+ [ 1.4285714242665817, 0.8928571414221939, 0.44642857071109693 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..f0a738faa481
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.0, 0.5, 0.5 ],
+ "sdl": 1,
+ "odl": 1,
+
+ "D": [ 0.0, 2.0, 1.0, 0.5 ],
+ "sd": 1,
+ "od": 1,
+
+ "DU": [ 0.0, 1.0, 1.0 ],
+ "sdu": 1,
+ "odu": 1,
+
+ "DU2": [ 0.0, 0.0 ],
+ "sdu2": 1,
+ "odu2": 1,
+
+ "IPIV": [ 0, 0, 2, 2 ],
+ "si": 1,
+ "oi": 1,
+
+ "B": [ 0.0, 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 3,
+ "sb2": 1,
+ "ob": 1,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [ 0.0, 1.0, -1.0, -0.5, 5.0, 4.0, 2.0, 2.0, 0.0, 0.0 ],
+
+ "expected_mat": [
+ [ 1.0, -1.0, -0.5 ],
+ [ 5.0, 4.0, 2.0 ],
+ [ 2.0, 0.0, 0.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..6ce25debfb5a
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.0, 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 1,
+
+ "D": [ 0.0, 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 1,
+
+ "DU": [ 0.0, 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 1,
+
+ "DU2": [ 0.0, 0.0 ],
+ "sdu2": 1,
+ "odu2": 1,
+
+ "IPIV": [ 0, 0, 1, 2 ],
+ "si": 1,
+ "oi": 1,
+
+ "B": [ 0.0, 7.0, 8.0, 7.0 ],
+ "sb1": 1,
+ "sb2": 1,
+ "ob": 1,
+ "LDB": 1,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 0.0, 1.4365079379889456, 1.2539682480442178, 1.5476190504889455 ],
+
+ "expected_mat": [
+ [ 1.4365079379889456 ],
+ [ 1.2539682480442178 ],
+ [ 1.5476190504889455 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..ee6fbd20d971
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/offsets/offset_row_major_trans_nrhs_gt_one.json
@@ -0,0 +1,58 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.0, 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 1,
+
+ "D": [ 0.0, 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 1,
+
+ "DU": [ 0.0, 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 1,
+
+ "DU2": [ 0.0, 0.0 ],
+ "sdu2": 1,
+ "odu2": 1,
+
+ "IPIV": [ 0, 0, 1, 2 ],
+ "si": 1,
+ "oi": 1,
+
+ "B": [ 0.0, 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 3,
+ "sb2": 1,
+ "ob": 1,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [
+ 0.0,
+ 1.4365079379889456,
+ 0.39603174691113946,
+ 0.19801587345556973,
+ 1.2539682480442178,
+ 0.4158730123554421,
+ 0.20793650617772105,
+ 1.5476190504889455,
+ 0.9404761919111395,
+ 0.47023809595556976
+ ],
+
+ "expected_mat": [
+ [ 1.4365079379889456, 0.39603174691113946, 0.19801587345556973 ],
+ [ 1.2539682480442178, 0.4158730123554421, 0.20793650617772105 ],
+ [ 1.5476190504889455, 0.9404761919111395, 0.47023809595556976 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_no_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_no_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..12b27fe2002f
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_no_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 9999.0, 0.5, 9999.0 ],
+ "sdl": 2,
+ "odl": 0,
+
+ "D": [ 2.0, 9999.0, 1.0, 9999.0, 0.5, 9999.0 ],
+ "sd": 2,
+ "od": 0,
+
+ "DU": [ 1.0, 9999.0, 1.0, 9999.0 ],
+ "sdu": 2,
+ "odu": 0,
+
+ "DU2": [ 0.0, 9999.0 ],
+ "sdu2": 2,
+ "odu2": 0,
+
+ "IPIV": [ 0, 9999, 2, 9999, 2, 9999 ],
+ "si": 2,
+ "oi": 0,
+
+ "B": [ 7.0, 9999.0, 2.0, 9999.0, 1.0, 9999.0, 9999.0, 8.0, 9999.0, 3.0, 9999.0, 1.5, 9999.0, 9999.0, 7.0, 9999.0, 4.0, 9999.0, 2.0, 9999.0, 9999.0 ],
+ "sb1": 2,
+ "sb2": 7,
+ "ob": 0,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [ 1.0, 9999.0, 5.0, 9999.0, -4.0, 9999.0, 9999.0, 1.5, 9999.0, 5.0, 9999.0, -3.5, 9999.0, 9999.0, 2.0, 9999.0, 3.0, 9999.0, -1.0, 9999.0, 9999.0 ],
+
+ "expected_mat": [
+ [ 1.0, 1.5, 2.0 ],
+ [ 5.0, 5.0, 3.0 ],
+ [ -4.0, -3.5, -1.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_no_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_no_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..6c06da13fc67
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_no_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.25, 9999.0, 0.26666667, 9999.0 ],
+ "sdl": 2,
+ "odl": 0,
+
+ "D": [ 4.0, 9999.0, 3.75, 9999.0, 3.73333333, 9999.0 ],
+ "sd": 2,
+ "od": 0,
+
+ "DU": [ 1.0, 9999.0, 0.73333333, 9999.0 ],
+ "sdu": 2,
+ "odu": 0,
+
+ "DU2": [ 0.0, 9999.0 ],
+ "sdu2": 2,
+ "odu2": 0,
+
+ "IPIV": [ 0, 9999, 1, 9999, 2, 9999 ],
+ "si": 2,
+ "oi": 0,
+
+ "B": [ 7.0, 9999.0, 8.0, 9999.0, 7.0, 9999.0 ],
+ "sb1": 2,
+ "sb2": 2,
+ "ob": 0,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4031746026466836, 9999.0, 1.3873015894132654, 9999.0, 1.4285714242665817, 9999.0 ],
+
+ "expected_mat": [
+ [ 1.4031746026466836 ],
+ [ 1.3873015894132654 ],
+ [ 1.4285714242665817 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_no_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_no_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..8cb6043dbaa7
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_no_trans_nrhs_gt_one.json
@@ -0,0 +1,71 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.25, 9999.0, 0.26666667, 9999.0 ],
+ "sdl": 2,
+ "odl": 0,
+
+ "D": [ 4.0, 9999.0, 3.75, 9999.0, 3.73333333, 9999.0 ],
+ "sd": 2,
+ "od": 0,
+
+ "DU": [ 1.0, 9999.0, 0.73333333, 9999.0 ],
+ "sdu": 2,
+ "odu": 0,
+
+ "DU2": [ 0.0, 9999.0 ],
+ "sdu2": 2,
+ "odu2": 0,
+
+ "IPIV": [ 0, 9999, 1, 9999, 2, 9999 ],
+ "si": 2,
+ "oi": 0,
+
+ "B": [ 7.0, 9999.0, 2.0, 9999.0, 1.0, 9999.0, 9999.0, 8.0, 9999.0, 3.0, 9999.0, 1.5, 9999.0, 9999.0, 7.0, 9999.0, 4.0, 9999.0, 2.0, 9999.0, 9999.0 ],
+ "sb1": 2,
+ "sb2": 7,
+ "ob": 0,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [
+ 1.7455555555,
+ 9999.0,
+ 0.017777778,
+ 9999.0,
+ 0.25,
+ 9999.0,
+ 9999.0,
+
+ 1.9494841268814838,
+ 9999.0,
+ 0.2020634924740646,
+ 9999.0,
+ 0.33035714225924745,
+ 9999.0,
+ 9999.0,
+
+ 1.6183333331681546,
+ 9999.0,
+ 0.526666667327381,
+ 9999.0,
+ 0.37499999832589287,
+ 9999.0,
+ 9999.0
+ ],
+
+ "expected_mat": [
+ [ 1.7455555555, 1.9494841268814838, 1.6183333331681546 ],
+ [ 0.017777778, 0.2020634924740646, 0.526666667327381 ],
+ [ 0.25, 0.33035714225924745, 0.37499999832589287 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..9deb1efa9641
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 9999.0, 0.5, 9999.0 ],
+ "sdl": 2,
+ "odl": 0,
+
+ "D": [ 2.0, 9999.0, 1.0, 9999.0, 0.5, 9999.0 ],
+ "sd": 2,
+ "od": 0,
+
+ "DU": [ 1.0, 9999.0, 1.0, 9999.0 ],
+ "sdu": 2,
+ "odu": 0,
+
+ "DU2": [ 0.0, 9999.0 ],
+ "sdu2": 2,
+ "odu2": 0,
+
+ "IPIV": [ 0, 9999, 2, 9999, 2, 9999 ],
+ "si": 2,
+ "oi": 0,
+
+ "B": [ 7.0, 9999.0, 2.0, 9999.0, 1.0, 9999.0, 9999.0, 8.0, 9999.0, 3.0, 9999.0, 1.5, 9999.0, 9999.0, 7.0, 9999.0, 4.0, 9999.0, 2.0, 9999.0, 9999.0 ],
+ "sb1": 2,
+ "sb2": 7,
+ "ob": 0,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [ 1.0, 9999.0, 5.0, 9999.0, -4.0, 9999.0, 9999.0, 1.5, 9999.0, 5.0, 9999.0, -3.5, 9999.0, 9999.0, 2.0, 9999.0, 3.0, 9999.0, -1.0, 9999.0, 9999.0 ],
+
+ "expected_mat": [
+ [ 1.0, 1.5, 2.0 ],
+ [ 5.0, 5.0, 3.0 ],
+ [ -4.0, -3.5, -1.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..e2a42853cde7
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.25, 9999.0, 0.26666667, 9999.0 ],
+ "sdl": 2,
+ "odl": 0,
+
+ "D": [ 4.0, 9999.0, 3.75, 9999.0, 3.73333333, 9999.0 ],
+ "sd": 2,
+ "od": 0,
+
+ "DU": [ 1.0, 9999.0, 0.73333333, 9999.0 ],
+ "sdu": 2,
+ "odu": 0,
+
+ "DU2": [ 0.0, 9999.0 ],
+ "sdu2": 2,
+ "odu2": 0,
+
+ "IPIV": [ 0, 9999, 1, 9999, 2, 9999 ],
+ "si": 2,
+ "oi": 0,
+
+ "B": [ 7.0, 9999.0, 8.0, 9999.0, 7.0, 9999.0 ],
+ "sb1": 2,
+ "sb2": 2,
+ "ob": 0,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4365079379889456, 9999.0, 1.2539682480442178, 9999.0, 1.5476190504889455, 9999.0 ],
+
+ "expected_mat": [
+ [ 1.4365079379889456 ],
+ [ 1.2539682480442178 ],
+ [ 1.5476190504889455 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..eb06a9fb2acd
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_col_major_trans_nrhs_gt_one.json
@@ -0,0 +1,71 @@
+{
+ "order": "column-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.25, 9999.0, 0.26666667, 9999.0 ],
+ "sdl": 2,
+ "odl": 0,
+
+ "D": [ 4.0, 9999.0, 3.75, 9999.0, 3.73333333, 9999.0 ],
+ "sd": 2,
+ "od": 0,
+
+ "DU": [ 1.0, 9999.0, 0.73333333, 9999.0 ],
+ "sdu": 2,
+ "odu": 0,
+
+ "DU2": [ 0.0, 9999.0 ],
+ "sdu2": 2,
+ "odu2": 0,
+
+ "IPIV": [ 0, 9999, 1, 9999, 2, 9999 ],
+ "si": 2,
+ "oi": 0,
+
+ "B": [ 7.0, 9999.0, 2.0, 9999.0, 1.0, 9999.0, 9999.0, 8.0, 9999.0, 3.0, 9999.0, 1.5, 9999.0, 9999.0, 7.0, 9999.0, 4.0, 9999.0, 2.0, 9999.0, 9999.0 ],
+ "sb1": 2,
+ "sb2": 7,
+ "ob": 0,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 8.0, 7.0 ],
+ [ 2.0, 3.0, 4.0 ],
+ [ 1.0, 1.5, 2.0 ]
+ ],
+
+ "expected": [
+ 1.7503174605488945,
+ 9999.0,
+ -0.0012698421955782274,
+ 9999.0,
+ 0.25476190504889457,
+ 9999.0,
+ 9999.0,
+
+ 1.9566269844548256,
+ 9999.0,
+ 0.1734920621806973,
+ 9999.0,
+ 0.34940476245482566,
+ 9999.0,
+ 9999.0,
+
+ 1.6278571432659439,
+ 9999.0,
+ 0.48857142693622446,
+ 9999.0,
+ 0.4178571437659439,
+ 9999.0,
+ 9999.0
+ ],
+
+ "expected_mat": [
+ [ 1.7503174605488945, 1.9566269844548256, 1.6278571432659439 ],
+ [ -0.0012698421955782274, 0.1734920621806973, 0.48857142693622446 ],
+ [ 0.25476190504889457, 0.34940476245482566, 0.4178571437659439 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_no_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_no_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..24e08981e262
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_no_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 9999.0, 0.5, 9999.0 ],
+ "sdl": 2,
+ "odl": 0,
+
+ "D": [ 2.0, 9999.0, 1.0, 9999.0, 0.5, 9999.0 ],
+ "sd": 2,
+ "od": 0,
+
+ "DU": [ 1.0, 9999.0, 1.0, 9999.0 ],
+ "sdu": 2,
+ "odu": 0,
+
+ "DU2": [ 0.0, 9999.0 ],
+ "sdu2": 2,
+ "odu2": 0,
+
+ "IPIV": [ 0, 9999, 2, 9999, 2, 9999 ],
+ "si": 2,
+ "oi": 0,
+
+ "B": [ 7.0, 9999.0, 2.0, 9999.0, 1.0, 9999.0, 9999.0, 8.0, 9999.0, 3.0, 9999.0, 1.5, 9999.0, 9999.0, 7.0, 9999.0, 4.0, 9999.0, 2.0, 9999.0, 9999.0 ],
+ "sb1": 7,
+ "sb2": 2,
+ "ob": 0,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [ 1.0, 9999.0, -1.0, 9999.0, -0.5, 9999.0, 9999.0, 5.0, 9999.0, 4.0, 9999.0, 2.0, 9999.0, 9999.0, 2.0, 9999.0, 0.0, 9999.0, 0.0, 9999.0, 9999.0 ],
+
+ "expected_mat": [
+ [ 1.0, -1.0, -0.5 ],
+ [ 5.0, 4.0, 2.0 ],
+ [ 2.0, 0.0, 0.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_no_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_no_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..1da15761d580
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_no_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.25, 9999.0, 0.26666667, 9999.0 ],
+ "sdl": 2,
+ "odl": 0,
+
+ "D": [ 4.0, 9999.0, 3.75, 9999.0, 3.73333333, 9999.0 ],
+ "sd": 2,
+ "od": 0,
+
+ "DU": [ 1.0, 9999.0, 0.73333333, 9999.0 ],
+ "sdu": 2,
+ "odu": 0,
+
+ "DU2": [ 0.0, 9999.0 ],
+ "sdu2": 2,
+ "odu2": 0,
+
+ "IPIV": [ 0, 9999, 1, 9999, 2, 9999 ],
+ "si": 2,
+ "oi": 0,
+
+ "B": [ 7.0, 9999.0, 8.0, 9999.0, 7.0, 9999.0 ],
+ "sb1": 2,
+ "sb2": 2,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4031746026466836, 9999.0, 1.3873015894132654, 9999.0, 1.4285714242665817, 9999.0 ],
+
+ "expected_mat": [
+ [ 1.4031746026466836 ],
+ [ 1.3873015894132654 ],
+ [ 1.4285714242665817 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_no_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_no_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..6b2d7af9e43a
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_no_trans_nrhs_gt_one.json
@@ -0,0 +1,71 @@
+{
+ "order": "row-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.25, 9999.0, 0.26666667, 9999.0 ],
+ "sdl": 2,
+ "odl": 0,
+
+ "D": [ 4.0, 9999.0, 3.75, 9999.0, 3.73333333, 9999.0 ],
+ "sd": 2,
+ "od": 0,
+
+ "DU": [ 1.0, 9999.0, 0.73333333, 9999.0 ],
+ "sdu": 2,
+ "odu": 0,
+
+ "DU2": [ 0.0, 9999.0 ],
+ "sdu2": 2,
+ "odu2": 0,
+
+ "IPIV": [ 0, 9999, 1, 9999, 2, 9999 ],
+ "si": 2,
+ "oi": 0,
+
+ "B": [ 7.0, 9999.0, 2.0, 9999.0, 1.0, 9999.0, 9999.0, 8.0, 9999.0, 3.0, 9999.0, 1.5, 9999.0, 9999.0, 7.0, 9999.0, 4.0, 9999.0, 2.0, 9999.0, 9999.0 ],
+ "sb1": 7,
+ "sb2": 2,
+ "ob": 0,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [
+ 1.4031746026466836,
+ 9999.0,
+ 0.3769841267155612,
+ 9999.0,
+ 0.1884920633577806,
+ 9999.0,
+ 9999.0,
+
+ 1.3873015894132654,
+ 9999.0,
+ 0.49206349313775516,
+ 9999.0,
+ 0.24603174656887758,
+ 9999.0,
+ 9999.0,
+
+ 1.4285714242665817,
+ 9999.0,
+ 0.8928571414221939,
+ 9999.0,
+ 0.44642857071109693,
+ 9999.0,
+ 9999.0
+ ],
+
+ "expected_mat": [
+ [ 1.4031746026466836, 0.3769841267155612, 0.1884920633577806 ],
+ [ 1.3873015894132654, 0.49206349313775516, 0.24603174656887758 ],
+ [ 1.4285714242665817, 0.8928571414221939, 0.44642857071109693 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..24e08981e262
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 9999.0, 0.5, 9999.0 ],
+ "sdl": 2,
+ "odl": 0,
+
+ "D": [ 2.0, 9999.0, 1.0, 9999.0, 0.5, 9999.0 ],
+ "sd": 2,
+ "od": 0,
+
+ "DU": [ 1.0, 9999.0, 1.0, 9999.0 ],
+ "sdu": 2,
+ "odu": 0,
+
+ "DU2": [ 0.0, 9999.0 ],
+ "sdu2": 2,
+ "odu2": 0,
+
+ "IPIV": [ 0, 9999, 2, 9999, 2, 9999 ],
+ "si": 2,
+ "oi": 0,
+
+ "B": [ 7.0, 9999.0, 2.0, 9999.0, 1.0, 9999.0, 9999.0, 8.0, 9999.0, 3.0, 9999.0, 1.5, 9999.0, 9999.0, 7.0, 9999.0, 4.0, 9999.0, 2.0, 9999.0, 9999.0 ],
+ "sb1": 7,
+ "sb2": 2,
+ "ob": 0,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [ 1.0, 9999.0, -1.0, 9999.0, -0.5, 9999.0, 9999.0, 5.0, 9999.0, 4.0, 9999.0, 2.0, 9999.0, 9999.0, 2.0, 9999.0, 0.0, 9999.0, 0.0, 9999.0, 9999.0 ],
+
+ "expected_mat": [
+ [ 1.0, -1.0, -0.5 ],
+ [ 5.0, 4.0, 2.0 ],
+ [ 2.0, 0.0, 0.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..1ec5f7dfbf1f
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.25, 9999.0, 0.26666667, 9999.0 ],
+ "sdl": 2,
+ "odl": 0,
+
+ "D": [ 4.0, 9999.0, 3.75, 9999.0, 3.73333333 ],
+ "sd": 2,
+ "od": 0,
+
+ "DU": [ 1.0, 9999.0, 0.73333333, 9999.0 ],
+ "sdu": 2,
+ "odu": 0,
+
+ "DU2": [ 0.0, 9999.0 ],
+ "sdu2": 2,
+ "odu2": 0,
+
+ "IPIV": [ 0, 9999, 1, 9999, 2, 9999 ],
+ "si": 2,
+ "oi": 0,
+
+ "B": [ 7.0, 9999.0, 8.0, 9999.0, 7.0, 9999.0 ],
+ "sb1": 2,
+ "sb2": 2,
+ "ob": 0,
+ "LDB": 1,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4365079379889456, 9999.0, 1.2539682480442178, 9999.0, 1.5476190504889455, 9999.0 ],
+
+ "expected_mat": [
+ [ 1.4365079379889456 ],
+ [ 1.2539682480442178 ],
+ [ 1.5476190504889455 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..8d49bd81a12a
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/positive-strides/pos_stride_row_major_trans_nrhs_gt_one.json
@@ -0,0 +1,71 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 9999.0, 2.0, 9999.0, 1.0, 9999.0, 9999.0, 8.0, 9999.0, 3.0, 9999.0, 1.5, 9999.0, 9999.0, 7.0, 9999.0, 4.0, 9999.0, 2.0, 9999.0, 9999.0 ],
+ "sb1": 7,
+ "sb2": 2,
+ "ob": 0,
+ "LDB": null,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [
+ 1.4365079379889456,
+ 9999.0,
+ 0.39603174691113946,
+ 9999.0,
+ 0.19801587345556973,
+ 9999.0,
+ 9999.0,
+
+ 1.2539682480442178,
+ 9999.0,
+ 0.4158730123554421,
+ 9999.0,
+ 0.20793650617772105,
+ 9999.0,
+ 9999.0,
+
+ 1.5476190504889455,
+ 9999.0,
+ 0.9404761919111395,
+ 9999.0,
+ 0.47023809595556976,
+ 9999.0,
+ 9999.0
+ ],
+
+ "expected_mat": [
+ [ 1.4365079379889456, 0.39603174691113946, 0.19801587345556973 ],
+ [ 1.2539682480442178, 0.4158730123554421, 0.20793650617772105 ],
+ [ 1.5476190504889455, 0.9404761919111395, 0.47023809595556976 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_no_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_no_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..658e8357c7d9
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_no_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 0.5 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 2.0, 1.0, 0.5 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 1.0 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 2, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 3,
+ "sb2": 1,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [ 1.0, -1.0, -0.5, 5.0, 4.0, 2.0, 2.0, 0.0, 0.0 ],
+
+ "expected_mat": [
+ [ 1.0, -1.0, -0.5 ],
+ [ 5.0, 4.0, 2.0 ],
+ [ 2.0, 0.0, 0.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_no_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_no_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..194f7bd7a144
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_no_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "column-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 8.0, 7.0 ],
+ "sb1": 1,
+ "sb2": 1,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4031746026466836, 1.3873015894132654, 1.4285714242665817 ],
+
+ "expected_mat": [
+ [ 1.4031746026466836 ],
+ [ 1.3873015894132654 ],
+ [ 1.4285714242665817 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_no_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_no_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..b0746e8eaeae
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_no_trans_nrhs_gt_one.json
@@ -0,0 +1,57 @@
+{
+ "order": "row-major",
+
+ "itrans": 0,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 3,
+ "sb2": 1,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [
+ 1.4031746026466836,
+ 0.3769841267155612,
+ 0.1884920633577806,
+ 1.3873015894132654,
+ 0.49206349313775516,
+ 0.24603174656887758,
+ 1.4285714242665817,
+ 0.8928571414221939,
+ 0.44642857071109693
+ ],
+
+ "expected_mat": [
+ [ 1.4031746026466836, 0.3769841267155612, 0.1884920633577806 ],
+ [ 1.3873015894132654, 0.49206349313775516, 0.24603174656887758 ],
+ [ 1.4285714242665817, 0.8928571414221939, 0.44642857071109693 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_trans_ipiv_ne_i.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_trans_ipiv_ne_i.json
new file mode 100644
index 000000000000..658e8357c7d9
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_trans_ipiv_ne_i.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.5, 0.5 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 2.0, 1.0, 0.5 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 1.0 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 2, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 3,
+ "sb2": 1,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [ 1.0, -1.0, -0.5, 5.0, 4.0, 2.0, 2.0, 0.0, 0.0 ],
+
+ "expected_mat": [
+ [ 1.0, -1.0, -0.5 ],
+ [ 5.0, 4.0, 2.0 ],
+ [ 2.0, 0.0, 0.0 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_trans_nrhs_eq_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_trans_nrhs_eq_one.json
new file mode 100644
index 000000000000..d3d89d36c3fc
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_trans_nrhs_eq_one.json
@@ -0,0 +1,47 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 1,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 8.0, 7.0 ],
+ "sb1": 1,
+ "sb2": 1,
+ "ob": 0,
+ "LDB": 1,
+
+ "B_mat": [
+ [ 7.0 ],
+ [ 8.0 ],
+ [ 7.0 ]
+ ],
+
+ "expected": [ 1.4365079379889456, 1.2539682480442178, 1.5476190504889455 ],
+
+ "expected_mat": [
+ [ 1.4365079379889456 ],
+ [ 1.2539682480442178 ],
+ [ 1.5476190504889455 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_trans_nrhs_gt_one.json b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_trans_nrhs_gt_one.json
new file mode 100644
index 000000000000..90fe82ef09ba
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/fixtures/row_major_trans_nrhs_gt_one.json
@@ -0,0 +1,57 @@
+{
+ "order": "row-major",
+
+ "itrans": 1,
+ "N": 3,
+ "nrhs": 3,
+
+ "DL": [ 0.25, 0.26666667 ],
+ "sdl": 1,
+ "odl": 0,
+
+ "D": [ 4.0, 3.75, 3.73333333 ],
+ "sd": 1,
+ "od": 0,
+
+ "DU": [ 1.0, 0.73333333 ],
+ "sdu": 1,
+ "odu": 0,
+
+ "DU2": [ 0.0 ],
+ "sdu2": 1,
+ "odu2": 0,
+
+ "IPIV": [ 0, 1, 2 ],
+ "si": 1,
+ "oi": 0,
+
+ "B": [ 7.0, 2.0, 1.0, 8.0, 3.0, 1.5, 7.0, 4.0, 2.0 ],
+ "sb1": 3,
+ "sb2": 1,
+ "ob": 0,
+ "LDB": 3,
+
+ "B_mat": [
+ [ 7.0, 2.0, 1.0 ],
+ [ 8.0, 3.0, 1.5 ],
+ [ 7.0, 4.0, 2.0 ]
+ ],
+
+ "expected": [
+ 1.4365079379889456,
+ 0.39603174691113946,
+ 0.19801587345556973,
+ 1.2539682480442178,
+ 0.4158730123554421,
+ 0.20793650617772105,
+ 1.5476190504889455,
+ 0.9404761919111395,
+ 0.47023809595556976
+ ],
+
+ "expected_mat": [
+ [ 1.4365079379889456, 0.39603174691113946, 0.19801587345556973 ],
+ [ 1.2539682480442178, 0.4158730123554421, 0.20793650617772105 ],
+ [ 1.5476190504889455, 0.9404761919111395, 0.47023809595556976 ]
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/test.dgtts2.js b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/test.dgtts2.js
new file mode 100644
index 000000000000..3b6d7c4b116d
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/test.dgtts2.js
@@ -0,0 +1,481 @@
+/**
+* @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 Int32Array = require( '@stdlib/array/int32' );
+var Float64Array = require( '@stdlib/array/float64' );
+var dgtts2 = require( './../lib/dgtts2.js' );
+
+
+// FIXTURES //
+
+var COL_MAJOR_TRANS_NRHS_GT_ONE = require( './fixtures/col_major_trans_nrhs_gt_one.json' );
+var COL_MAJOR_NO_TRANS_NRHS_GT_ONE = require( './fixtures/col_major_no_trans_nrhs_gt_one.json' );
+var ROW_MAJOR_TRANS_NRHS_GT_ONE = require( './fixtures/row_major_trans_nrhs_gt_one.json' );
+var ROW_MAJOR_NO_TRANS_NRHS_GT_ONE = require( './fixtures/row_major_no_trans_nrhs_gt_one.json' );
+
+var COL_MAJOR_NO_TRANS_NRHS_EQ_ONE = require( './fixtures/col_major_no_trans_nrhs_eq_one.json' );
+var COL_MAJOR_TRANS_NRHS_EQ_ONE = require( './fixtures/col_major_trans_nrhs_eq_one.json' );
+var ROW_MAJOR_TRANS_NRHS_EQ_ONE = require( './fixtures/row_major_trans_nrhs_eq_one.json' );
+var ROW_MAJOR_NO_TRANS_NRHS_EQ_ONE = require( './fixtures/row_major_no_trans_nrhs_eq_one.json' );
+
+var COL_MAJOR_TRANS_IPIV_NE_I = require( './fixtures/col_major_trans_ipiv_ne_i.json' );
+var COL_MAJOR_NO_TRANS_IPIV_NE_I = require( './fixtures/col_major_no_trans_ipiv_ne_i.json' );
+var ROW_MAJOR_TRANS_IPIV_NE_I = require( './fixtures/row_major_trans_ipiv_ne_i.json' );
+var ROW_MAJOR_NO_TRANS_IPIV_NE_I = require( './fixtures/row_major_no_trans_ipiv_ne_i.json' );
+
+
+// TESTS //
+
+tape( 'main export is a function', function test( t ) {
+ t.ok( true, __filename );
+ t.strictEqual( typeof dgtts2, 'function', 'main export is a function' );
+ t.end();
+});
+
+tape( 'the function has an arity of 11', function test( t ) {
+ t.strictEqual( dgtts2.length, 11, 'returns expected value' );
+ 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 data;
+ var i;
+
+ data = COL_MAJOR_TRANS_NRHS_GT_ONE;
+
+ values = [
+ 'foo',
+ 'bar',
+ 'beep',
+ 'boop',
+ -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() {
+ dgtts2( value, data.itrans, data.N, data.nrhs, data.DL, data.D, data.DU, data.DU2, data.IPIV, data.B, data.LDB );
+ };
+ }
+});
+
+tape( 'the function throws an error if provided an eleventh argument which is not a valid `LDA` value (row-major)', function test( t ) {
+ var values;
+ var data;
+ var i;
+
+ data = ROW_MAJOR_TRANS_NRHS_GT_ONE;
+
+ 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() {
+ dgtts2( data.order, data.itrans, data.N, data.nrhs, data.DL, data.D, data.DU, data.DU2, data.IPIV, data.B, value );
+ };
+ }
+});
+
+tape( 'the function returns the input array unchanged if N is zero', function test( t ) {
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, 0, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+ t.deepEqual( B, X, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A * X = B (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, data.N, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A * X = B (row-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_NO_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, data.N, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A * X = B (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COL_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, data.N, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A * X = B (column-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COL_MAJOR_NO_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, data.N, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A**T * X = B (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, data.N, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A**T * X = B (row-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, data.N, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A**T * X = B (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COL_MAJOR_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, data.N, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A**T * X = B (column-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COL_MAJOR_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, data.N, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A**T * X = B when IPIV[ i ] != i (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COL_MAJOR_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, data.N, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A * X = B when IPIV[ i ] != i (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COL_MAJOR_NO_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, data.N, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A**T * X = B when IPIV[ i ] != i (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, data.N, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A * X = B when IPIV[ i ] != i (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_NO_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.order, data.itrans, data.N, data.nrhs, DL, D, DU, DU2, IPIV, B, data.LDB );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/test.js b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/test.js
new file mode 100644
index 000000000000..c6d966afa132
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/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 dgtts2 = 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 dgtts2, '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 dgtts2.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 dgtts2 = proxyquire( './../lib', {
+ '@stdlib/utils/try-require': tryRequire
+ });
+
+ t.strictEqual( dgtts2, 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 dgtts2;
+ var main;
+
+ main = require( './../lib/dgtts2.js' );
+
+ dgtts2 = proxyquire( './../lib', {
+ '@stdlib/utils/try-require': tryRequire
+ });
+
+ t.strictEqual( dgtts2, main, 'returns expected value' );
+ t.end();
+
+ function tryRequire() {
+ return new Error( 'Cannot find module' );
+ }
+});
diff --git a/lib/node_modules/@stdlib/lapack/base/dgtts2/test/test.ndarray.js b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/test.ndarray.js
new file mode 100644
index 000000000000..86a8c13921a5
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dgtts2/test/test.ndarray.js
@@ -0,0 +1,1825 @@
+/**
+* @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 Int32Array = require( '@stdlib/array/int32' );
+var Float64Array = require( '@stdlib/array/float64' );
+var dgtts2 = require( './../lib/ndarray.js' );
+
+
+// FIXTURES //
+
+var COL_MAJOR_TRANS_NRHS_GT_ONE = require( './fixtures/col_major_trans_nrhs_gt_one.json' );
+var COL_MAJOR_NO_TRANS_NRHS_GT_ONE = require( './fixtures/col_major_no_trans_nrhs_gt_one.json' );
+var ROW_MAJOR_TRANS_NRHS_GT_ONE = require( './fixtures/row_major_trans_nrhs_gt_one.json' );
+var ROW_MAJOR_NO_TRANS_NRHS_GT_ONE = require( './fixtures/row_major_no_trans_nrhs_gt_one.json' );
+
+var COL_MAJOR_NO_TRANS_NRHS_EQ_ONE = require( './fixtures/col_major_no_trans_nrhs_eq_one.json' );
+var COL_MAJOR_TRANS_NRHS_EQ_ONE = require( './fixtures/col_major_trans_nrhs_eq_one.json' );
+var ROW_MAJOR_TRANS_NRHS_EQ_ONE = require( './fixtures/row_major_trans_nrhs_eq_one.json' );
+var ROW_MAJOR_NO_TRANS_NRHS_EQ_ONE = require( './fixtures/row_major_no_trans_nrhs_eq_one.json' );
+
+var COL_MAJOR_TRANS_IPIV_NE_I = require( './fixtures/col_major_trans_ipiv_ne_i.json' );
+var COL_MAJOR_NO_TRANS_IPIV_NE_I = require( './fixtures/col_major_no_trans_ipiv_ne_i.json' );
+var ROW_MAJOR_TRANS_IPIV_NE_I = require( './fixtures/row_major_trans_ipiv_ne_i.json' );
+var ROW_MAJOR_NO_TRANS_IPIV_NE_I = require( './fixtures/row_major_no_trans_ipiv_ne_i.json' );
+
+var COMPLEX_ACCESS_COL_MAJOR_TRANS_NRHS_GT_ONE = require( './fixtures/complex-access/complex_access_col_major_trans_nrhs_gt_one.json' );
+var COMPLEX_ACCESS_COL_MAJOR_NO_TRANS_NRHS_GT_ONE = require( './fixtures/complex-access/complex_access_col_major_no_trans_nrhs_gt_one.json' );
+var COMPLEX_ACCESS_ROW_MAJOR_TRANS_NRHS_GT_ONE = require( './fixtures/complex-access/complex_access_row_major_trans_nrhs_gt_one.json' );
+var COMPLEX_ACCESS_ROW_MAJOR_NO_TRANS_NRHS_GT_ONE = require( './fixtures/complex-access/complex_access_row_major_no_trans_nrhs_gt_one.json' );
+
+var COMPLEX_ACCESS_COL_MAJOR_NO_TRANS_NRHS_EQ_ONE = require( './fixtures/complex-access/complex_access_col_major_no_trans_nrhs_eq_one.json' );
+var COMPLEX_ACCESS_COL_MAJOR_TRANS_NRHS_EQ_ONE = require( './fixtures/complex-access/complex_access_col_major_trans_nrhs_eq_one.json' );
+var COMPLEX_ACCESS_ROW_MAJOR_TRANS_NRHS_EQ_ONE = require( './fixtures/complex-access/complex_access_row_major_trans_nrhs_eq_one.json' );
+var COMPLEX_ACCESS_ROW_MAJOR_NO_TRANS_NRHS_EQ_ONE = require( './fixtures/complex-access/complex_access_row_major_no_trans_nrhs_eq_one.json' );
+
+var COMPLEX_ACCESS_COL_MAJOR_TRANS_IPIV_NE_I = require( './fixtures/complex-access/complex_access_col_major_trans_ipiv_ne_i.json' );
+var COMPLEX_ACCESS_COL_MAJOR_NO_TRANS_IPIV_NE_I = require( './fixtures/complex-access/complex_access_col_major_no_trans_ipiv_ne_i.json' );
+var COMPLEX_ACCESS_ROW_MAJOR_TRANS_IPIV_NE_I = require( './fixtures/complex-access/complex_access_row_major_trans_ipiv_ne_i.json' );
+var COMPLEX_ACCESS_ROW_MAJOR_NO_TRANS_IPIV_NE_I = require( './fixtures/complex-access/complex_access_row_major_no_trans_ipiv_ne_i.json' );
+
+var OFFSET_COL_MAJOR_TRANS_NRHS_GT_ONE = require( './fixtures/offsets/offset_col_major_trans_nrhs_gt_one.json' );
+var OFFSET_COL_MAJOR_NO_TRANS_NRHS_GT_ONE = require( './fixtures/offsets/offset_col_major_no_trans_nrhs_gt_one.json' );
+var OFFSET_ROW_MAJOR_TRANS_NRHS_GT_ONE = require( './fixtures/offsets/offset_row_major_trans_nrhs_gt_one.json' );
+var OFFSET_ROW_MAJOR_NO_TRANS_NRHS_GT_ONE = require( './fixtures/offsets/offset_row_major_no_trans_nrhs_gt_one.json' );
+
+var OFFSET_COL_MAJOR_NO_TRANS_NRHS_EQ_ONE = require( './fixtures/offsets/offset_col_major_no_trans_nrhs_eq_one.json' );
+var OFFSET_COL_MAJOR_TRANS_NRHS_EQ_ONE = require( './fixtures/offsets/offset_col_major_trans_nrhs_eq_one.json' );
+var OFFSET_ROW_MAJOR_TRANS_NRHS_EQ_ONE = require( './fixtures/offsets/offset_row_major_trans_nrhs_eq_one.json' );
+var OFFSET_ROW_MAJOR_NO_TRANS_NRHS_EQ_ONE = require( './fixtures/offsets/offset_row_major_no_trans_nrhs_eq_one.json' );
+
+var OFFSET_COL_MAJOR_TRANS_IPIV_NE_I = require( './fixtures/offsets/offset_col_major_trans_ipiv_ne_i.json' );
+var OFFSET_COL_MAJOR_NO_TRANS_IPIV_NE_I = require( './fixtures/offsets/offset_col_major_no_trans_ipiv_ne_i.json' );
+var OFFSET_ROW_MAJOR_TRANS_IPIV_NE_I = require( './fixtures/offsets/offset_row_major_trans_ipiv_ne_i.json' );
+var OFFSET_ROW_MAJOR_NO_TRANS_IPIV_NE_I = require( './fixtures/offsets/offset_row_major_no_trans_ipiv_ne_i.json' );
+
+var POS_STRIDE_COL_MAJOR_TRANS_NRHS_GT_ONE = require( './fixtures/positive-strides/pos_stride_col_major_trans_nrhs_gt_one.json' );
+var POS_STRIDE_COL_MAJOR_NO_TRANS_NRHS_GT_ONE = require( './fixtures/positive-strides/pos_stride_col_major_no_trans_nrhs_gt_one.json' );
+var POS_STRIDE_ROW_MAJOR_TRANS_NRHS_GT_ONE = require( './fixtures/positive-strides/pos_stride_row_major_trans_nrhs_gt_one.json' );
+var POS_STRIDE_ROW_MAJOR_NO_TRANS_NRHS_GT_ONE = require( './fixtures/positive-strides/pos_stride_row_major_no_trans_nrhs_gt_one.json' );
+
+var POS_STRIDE_COL_MAJOR_NO_TRANS_NRHS_EQ_ONE = require( './fixtures/positive-strides/pos_stride_col_major_no_trans_nrhs_eq_one.json' );
+var POS_STRIDE_COL_MAJOR_TRANS_NRHS_EQ_ONE = require( './fixtures/positive-strides/pos_stride_col_major_trans_nrhs_eq_one.json' );
+var POS_STRIDE_ROW_MAJOR_TRANS_NRHS_EQ_ONE = require( './fixtures/positive-strides/pos_stride_row_major_trans_nrhs_eq_one.json' );
+var POS_STRIDE_ROW_MAJOR_NO_TRANS_NRHS_EQ_ONE = require( './fixtures/positive-strides/pos_stride_row_major_no_trans_nrhs_eq_one.json' );
+
+var POS_STRIDE_COL_MAJOR_TRANS_IPIV_NE_I = require( './fixtures/positive-strides/pos_stride_col_major_trans_ipiv_ne_i.json' );
+var POS_STRIDE_COL_MAJOR_NO_TRANS_IPIV_NE_I = require( './fixtures/positive-strides/pos_stride_col_major_no_trans_ipiv_ne_i.json' );
+var POS_STRIDE_ROW_MAJOR_TRANS_IPIV_NE_I = require( './fixtures/positive-strides/pos_stride_row_major_trans_ipiv_ne_i.json' );
+var POS_STRIDE_ROW_MAJOR_NO_TRANS_IPIV_NE_I = require( './fixtures/positive-strides/pos_stride_row_major_no_trans_ipiv_ne_i.json' );
+
+var NEG_STRIDE_COL_MAJOR_TRANS_NRHS_GT_ONE = require( './fixtures/negative-strides/neg_stride_col_major_trans_nrhs_gt_one.json' );
+var NEG_STRIDE_COL_MAJOR_NO_TRANS_NRHS_GT_ONE = require( './fixtures/negative-strides/neg_stride_col_major_no_trans_nrhs_gt_one.json' );
+var NEG_STRIDE_ROW_MAJOR_TRANS_NRHS_GT_ONE = require( './fixtures/negative-strides/neg_stride_row_major_trans_nrhs_gt_one.json' );
+var NEG_STRIDE_ROW_MAJOR_NO_TRANS_NRHS_GT_ONE = require( './fixtures/negative-strides/neg_stride_row_major_no_trans_nrhs_gt_one.json' );
+
+var NEG_STRIDE_COL_MAJOR_NO_TRANS_NRHS_EQ_ONE = require( './fixtures/negative-strides/neg_stride_col_major_no_trans_nrhs_eq_one.json' );
+var NEG_STRIDE_COL_MAJOR_TRANS_NRHS_EQ_ONE = require( './fixtures/negative-strides/neg_stride_col_major_trans_nrhs_eq_one.json' );
+var NEG_STRIDE_ROW_MAJOR_TRANS_NRHS_EQ_ONE = require( './fixtures/negative-strides/neg_stride_row_major_trans_nrhs_eq_one.json' );
+var NEG_STRIDE_ROW_MAJOR_NO_TRANS_NRHS_EQ_ONE = require( './fixtures/negative-strides/neg_stride_row_major_no_trans_nrhs_eq_one.json' );
+
+var NEG_STRIDE_COL_MAJOR_TRANS_IPIV_NE_I = require( './fixtures/negative-strides/neg_stride_col_major_trans_ipiv_ne_i.json' );
+var NEG_STRIDE_COL_MAJOR_NO_TRANS_IPIV_NE_I = require( './fixtures/negative-strides/neg_stride_col_major_no_trans_ipiv_ne_i.json' );
+var NEG_STRIDE_ROW_MAJOR_TRANS_IPIV_NE_I = require( './fixtures/negative-strides/neg_stride_row_major_trans_ipiv_ne_i.json' );
+var NEG_STRIDE_ROW_MAJOR_NO_TRANS_IPIV_NE_I = require( './fixtures/negative-strides/neg_stride_row_major_no_trans_ipiv_ne_i.json' );
+
+
+// TESTS //
+
+tape( 'main export is a function', function test( t ) {
+ t.ok( true, __filename );
+ t.strictEqual( typeof dgtts2, 'function', 'main export is a function' );
+ t.end();
+});
+
+tape( 'the function has an arity of 22', function test( t ) {
+ t.strictEqual( dgtts2.length, 22, 'returns expected value' );
+ t.end();
+});
+
+tape( 'the function returns the input array unchanged if N is zero', function test( t ) {
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+ t.deepEqual( B, X, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A * X = B (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A * X = B (row-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_NO_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A * X = B (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COL_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A * X = B (column-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COL_MAJOR_NO_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A**T * X = B (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A**T * X = B (row-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A**T * X = B (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COL_MAJOR_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A**T * X = B (column-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COL_MAJOR_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A**T * X = B when IPIV[ i ] != i (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COL_MAJOR_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A * X = B when IPIV[ i ] != i (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COL_MAJOR_NO_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A**T * X = B when IPIV[ i ] != i (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function solves A * X = B when IPIV[ i ] != i (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = ROW_MAJOR_NO_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports an offset parameter while solving A * X = B (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = OFFSET_ROW_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports an offset parameter while solving A * X = B (row-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = OFFSET_ROW_MAJOR_NO_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports an offset parameter while solving A * X = B (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = OFFSET_COL_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports an offset parameter while solving A * X = B (column-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = OFFSET_COL_MAJOR_NO_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports an offset parameter while solving A**T * X = B (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = OFFSET_ROW_MAJOR_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports an offset parameter while solving A**T * X = B (row-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = OFFSET_ROW_MAJOR_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports an offset parameter while solving A**T * X = B (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = OFFSET_COL_MAJOR_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports an offset parameter while solving A**T * X = B (column-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = OFFSET_COL_MAJOR_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports an offset parameter while solving A**T * X = B when IPIV[ i ] != i (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = OFFSET_COL_MAJOR_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports an offset parameter while solving A * X = B when IPIV[ i ] != i (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = OFFSET_COL_MAJOR_NO_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports an offset parameter while solving A**T * X = B when IPIV[ i ] != i (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = OFFSET_ROW_MAJOR_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports an offset parameter while solving A * X = B when IPIV[ i ] != i (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = OFFSET_ROW_MAJOR_NO_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports positive strides while solving A * X = B (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = POS_STRIDE_ROW_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports positive strides while solving A * X = B (row-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = POS_STRIDE_ROW_MAJOR_NO_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports positive strides while solving A * X = B (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = POS_STRIDE_COL_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports positive strides while solving A * X = B (column-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = POS_STRIDE_COL_MAJOR_NO_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports positive strides while solving A**T * X = B (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = POS_STRIDE_ROW_MAJOR_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports positive strides while solving A**T * X = B (row-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = POS_STRIDE_ROW_MAJOR_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports positive strides while solving A**T * X = B (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = POS_STRIDE_COL_MAJOR_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports positive strides while solving A**T * X = B (column-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = POS_STRIDE_COL_MAJOR_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports positive strides while solving A**T * X = B when IPIV[ i ] != i (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = POS_STRIDE_COL_MAJOR_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports positive strides while solving A * X = B when IPIV[ i ] != i (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = POS_STRIDE_COL_MAJOR_NO_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports positive strides while solving A**T * X = B when IPIV[ i ] != i (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = POS_STRIDE_ROW_MAJOR_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports positive strides while solving A * X = B when IPIV[ i ] != i (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = POS_STRIDE_ROW_MAJOR_NO_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports negative strides while solving A * X = B (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = NEG_STRIDE_ROW_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports negative strides while solving A * X = B (row-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = NEG_STRIDE_ROW_MAJOR_NO_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports negative strides while solving A * X = B (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = NEG_STRIDE_COL_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports negative strides while solving A * X = B (column-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = NEG_STRIDE_COL_MAJOR_NO_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports negative strides while solving A**T * X = B (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = NEG_STRIDE_ROW_MAJOR_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports negative strides while solving A**T * X = B (row-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = NEG_STRIDE_ROW_MAJOR_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports negative strides while solving A**T * X = B (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = NEG_STRIDE_COL_MAJOR_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports negative strides while solving A**T * X = B (column-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = NEG_STRIDE_COL_MAJOR_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports negative strides while solving A**T * X = B when IPIV[ i ] != i (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = NEG_STRIDE_COL_MAJOR_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports negative strides while solving A * X = B when IPIV[ i ] != i (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = NEG_STRIDE_COL_MAJOR_NO_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports negative strides while solving A**T * X = B when IPIV[ i ] != i (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = NEG_STRIDE_ROW_MAJOR_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports negative strides while solving A * X = B when IPIV[ i ] != i (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = NEG_STRIDE_ROW_MAJOR_NO_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports complex access patterns while solving A * X = B (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COMPLEX_ACCESS_ROW_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports complex access patterns while solving A * X = B (row-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COMPLEX_ACCESS_ROW_MAJOR_NO_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports complex access patterns while solving A * X = B (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COMPLEX_ACCESS_COL_MAJOR_NO_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports complex access patterns while solving A * X = B (column-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COMPLEX_ACCESS_COL_MAJOR_NO_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports complex access patterns while solving A**T * X = B (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COMPLEX_ACCESS_ROW_MAJOR_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports complex access patterns while solving A**T * X = B (row-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COMPLEX_ACCESS_ROW_MAJOR_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports complex access patterns while solving A**T * X = B (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COMPLEX_ACCESS_COL_MAJOR_TRANS_NRHS_GT_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports complex access patterns while solving A**T * X = B (column-major, nrhs <= 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COMPLEX_ACCESS_COL_MAJOR_TRANS_NRHS_EQ_ONE;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports complex access patterns while solving A**T * X = B when IPIV[ i ] != i (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COMPLEX_ACCESS_COL_MAJOR_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports complex access patterns while solving A * X = B when IPIV[ i ] != i (column-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COMPLEX_ACCESS_COL_MAJOR_NO_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports complex access patterns while solving A**T * X = B when IPIV[ i ] != i (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COMPLEX_ACCESS_ROW_MAJOR_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});
+
+tape( 'the function supports complex access patterns while solving A * X = B when IPIV[ i ] != i (row-major, nrhs > 1)', function test( t ) {
+ var expectedX;
+ var IPIV;
+ var data;
+ var DU2;
+ var DU;
+ var DL;
+ var D;
+ var B;
+ var X;
+
+ data = COMPLEX_ACCESS_ROW_MAJOR_NO_TRANS_IPIV_NE_I;
+
+ DL = new Float64Array( data.DL );
+ D = new Float64Array( data.D );
+ DU = new Float64Array( data.DU );
+ DU2 = new Float64Array( data.DU2 );
+ IPIV = new Int32Array( data.IPIV );
+ B = new Float64Array( data.B );
+
+ X = dgtts2( data.itrans, data.N, data.nrhs, DL, data.sdl, data.odl, D, data.sd, data.od, DU, data.sdu, data.odu, DU2, data.sdu2, data.odu2, IPIV, data.si, data.oi, B, data.sb1, data.sb2, data.ob );
+
+ expectedX = new Float64Array( data.expected );
+ t.deepEqual( X, expectedX, 'returns expected value' );
+
+ t.end();
+});