GenericDecompositionOperations<T>.BandTriangularSolve Method

Solves a triangular system of the form A * X = B or AT * X = B, where A is a triangular band matrix of order N, and B is an N-by NRHS matrix.

Definition

Namespace: Extreme.Mathematics.LinearAlgebra.Implementation
Assembly: Extreme.Numerics.Generic (in Extreme.Numerics.Generic.dll) Version: 8.1.4
C#
public override void BandTriangularSolve(
	MatrixTriangle storedTriangle,
	TransposeOperation trans,
	MatrixDiagonal diag,
	int n,
	int kd,
	int nrhs,
	Array2D<T> ab,
	Array2D<T> b,
	out int info
)

Parameters

storedTriangle  MatrixTriangle
            = 'U':  A is upper triangular;
            = 'L':  A is lower triangular.
            
trans  TransposeOperation
            Specifies the form the system of equations:
            = 'N':  A * X = B  (No transpose)
            = 'T':  AT * X = B  (Transpose)
            = 'C':  AH * X = B  (Conjugate transpose = Transpose)
            
diag  MatrixDiagonal
            = 'N':  A is non-unit triangular;
            = 'U':  A is unit triangular.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
kd  Int32
            The number of superdiagonals or subdiagonals of the
            triangular band matrix A.  KD >= 0.
            
nrhs  Int32
            The number of right hand sides, i.e., the number of columns
            of the matrix B.  NRHS >= 0.
            
ab  Array2D<T>
            Dimension (LDAB,N)
            The upper or lower triangular band matrix A, stored in the
            first kd+1 rows of AB.  The j-th column of A is stored
            in the j-th column of the array AB as follows:
            if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
            if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
            If DIAG = 'U', the diagonal elements of A are not referenced
            and are assumed to be 1.
            
            The leading dimension of the array AB.  LDAB >= KD+1.
            
b  Array2D<T>
            Dimension (LDB,NRHS)
            On entry, the right hand side matrix B.
            On exit, if info = 0, the solution matrix X.
            
            The leading dimension of the array B.  LDB >= max(1,N).
            
info  Int32
info is INTEGER
            = 0:  successful exit
            < 0:  if info = -i, the i-th argument had an illegal value
            > 0:  if info = i, the i-th diagonal element of A is zero,
                  indicating that the matrix is singular and the
                  solutions X have not been computed.
            

Remarks

            A check is made to verify that A is nonsingular.
            

This method corresponds to the LAPACK routine DTBTRS.

See Also