All files / lapack/base/dgtts2/lib ndarray.js

100% Statements 82/82
100% Branches 2/2
100% Functions 1/1
100% Lines 82/82

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 832x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 61x 61x 61x 2x 2x 2x 2x 2x  
/**
* @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 => <Float64Array>[ ~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;