All files ndarray.js

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

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 702x 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 10x 10x 10x 2x 2x 2x 2x 2x  
/**
* @license Apache-2.0
*
* Copyright (c) 2026 The Stdlib Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*    http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
 
'use strict';
 
// MODULES //
 
var base = require( './base.js' );
 
 
// MAIN //
 
/**
* Computes the reciprocal pivot growth factor norm(A)/norm(U) for a general banded matrix `A` using alternating indexing semantics.
*
* ## Notes
*
* -   The norm is used. If this is much less than 1, the stability of the LU factorization of the (equilibrated) matrix `A` could be poor. This also means that the solution `X`, estimated condition numbers, and error bounds could be unreliable.
* -   Matrix `AB` is the matrix A in band storage, in rows 0 to `KL+KU`. The j-th column of A is stored in the j-th column of the matrix `AB` as `AB( KU+i-j, j ) = A( i, j )` for `max( 0, j - KU ) <= i <= min( N - 1, j + KL )`.
* -   Matrix `AFB` stores the details of the LU factorization of the band matrix `A`, as computed by `DGBTRF`. `U` is stored as an upper triangular band matrix with KL+KU superdiagonals in rows 0 to `KL+KU+1`, and the multipliers used during the factorization are stored in rows `KL+KU+1` to `2*KL+KU`.
* -   The leading dimension of `AB`, `LDAB` >= `KL+KU+1`.
* -   The leading dimension of `AFB`, `LDAFB` >= `2*KL+KU+1`.
*
* @param {NonNegativeInteger} N - number of rows in matrix `A`
* @param {NonNegativeInteger} KL - number of subdiagonals within the band of matrix `A`
* @param {NonNegativeInteger} KU - number of superdiagonals within the band of matrix `A`
* @param {NonNegativeInteger} NCOLS - number of columns in matrix `A`
* @param {Float64Array} AB - the matrix A in band storage
* @param {integer} strideAB1 - stride of the first dimension of `AB`
* @param {integer} strideAB2 - stride of the second dimension of `AB`
* @param {NonNegativeInteger} offsetAB - index offset for `AB`
* @param {Float64Array} AFB - details of the LU factorization of the band matrix `A`
* @param {integer} strideAFB1 - stride of the first dimension of `AFB`
* @param {integer} strideAFB2 - stride of the second dimension of `AFB`
* @param {NonNegativeInteger} offsetAFB - index offset for `AFB`
* @returns {number} the reciprocal pivot growth factor
*
* @example
* var Float64Array = require( '@stdlib/array/float64' );
*
* var AB = new Float64Array( [ 0.0, 2.0, 5.0, 8.0, 1.0, 4.0, 7.0, 10.0, 3.0, 6.0, 9.0, 0.0 ] );
* var AFB = new Float64Array( [ 0.0, 0.0, 5.0, 8.0, 0.0, 4.0, 7.0, 10.0, 3.0, 6.0, 9.0, 1.8272, 0.3333, 0.1111, -0.2716, 0.0 ] );
*
* var out = dlagbrpvgrw( 4, 1, 1, 4, AB, 4, 1, 0, AFB, 4, 1, 0 );
* // returns 1.0
*/
function dlagbrpvgrw( N, KL, KU, NCOLS, AB, strideAB1, strideAB2, offsetAB, AFB, strideAFB1, strideAFB2, offsetAFB ) { // eslint-disable-line max-len, max-params
	return base( N, KL, KU, NCOLS, AB, strideAB1, strideAB2, offsetAB, AFB, strideAFB1, strideAFB2, offsetAFB ); // eslint-disable-line max-len
}
 
 
// EXPORTS //
 
module.exports = dlagbrpvgrw;