DecompositionOperations<TReal, TComplex>.TriangularInvert Method

Definition

Namespace: Numerics.NET.LinearAlgebra.Implementation
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 9.0.4

Overload List

TriangularInvert(MatrixTriangle, MatrixDiagonal, Int32, Array2D<TReal>, Int32)

Computes the inverse of a real upper or lower triangular matrix A.

TriangularInvert(MatrixTriangle, MatrixDiagonal, Int32, Array2D<TComplex>, Int32) Computes the inverse of a complex triangular matrix.
TriangularInvert(MatrixTriangle, MatrixDiagonal, Int32, Span2D<TReal>, Int32)

Computes the inverse of a real upper or lower triangular matrix A.

TriangularInvert(MatrixTriangle, MatrixDiagonal, Int32, Span2D<TComplex>, Int32) Computes the inverse of a complex triangular matrix.
TriangularInvert(MatrixTriangle, MatrixDiagonal, Int32, Span<TReal>, Int32, Int32)

Computes the inverse of a real upper or lower triangular matrix A.

TriangularInvert(MatrixTriangle, MatrixDiagonal, Int32, Span<TComplex>, Int32, Int32) Computes the inverse of a complex triangular matrix.

TriangularInvert(MatrixTriangle, MatrixDiagonal, Int32, Array2D<TReal>, Int32)

Computes the inverse of a real upper or lower triangular matrix A.

C#
public void TriangularInvert(
	MatrixTriangle storedTriangle,
	MatrixDiagonal diag,
	int n,
	Array2D<TReal> a,
	out int info
)

Parameters

storedTriangle  MatrixTriangle
            = 'U':  A is upper triangular;
            = 'L':  A is lower triangular.
            
diag  MatrixDiagonal
            = 'N':  A is non-unit triangular;
            = 'U':  A is unit triangular.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
a  Array2D<TReal>
            A is TReal array, dimension (LDA,N)
            On entry, the triangular matrix A.  If UPLO = 'U', the
            leading N-by-N upper triangular part of the array A contains
            the upper triangular matrix, and the strictly lower
            triangular part of A is not referenced.  If UPLO = 'L', the
            leading N-by-N lower triangular part of the array A contains
            the lower triangular matrix, and the strictly upper
            triangular part of A is not referenced.  If DIAG = 'U', the
            diagonal elements of A are also not referenced and are
            assumed to be 1.
            On exit, the (triangular) inverse of the original matrix, in
            the same storage format.
            
            The leading dimension of the array A.  LDA >= max(1,N).
            
info  Int32
            = 0: successful exit
            < 0: if INFO = -i, the i-th argument had an illegal value
            > 0: if INFO = i, A(i,i) is exactly zero.  The triangular
                 matrix is singular and its inverse can not be computed.
            

Remarks

            This is the Level 3 BLAS version of the algorithm.
            

This method corresponds to the LAPACK routine ?TRTRI.

TriangularInvert(MatrixTriangle, MatrixDiagonal, Int32, Array2D<TComplex>, Int32)

Computes the inverse of a complex triangular matrix.
C#
public void TriangularInvert(
	MatrixTriangle storedTriangle,
	MatrixDiagonal diag,
	int n,
	Array2D<TComplex> a,
	out int info
)

Parameters

storedTriangle  MatrixTriangle
A MatrixTriangle value that indicates whether the matrix is upper or lower triangular.
diag  MatrixDiagonal
A MatrixDiagonal value that indicates whether the matrix is unit diagonal.
n  Int32
The number of rows and columns of the matrix.
a  Array2D<TComplex>
A complex array that contains the elements of the matrix.
info  Int32
On return, indicates error conditions.

TriangularInvert(MatrixTriangle, MatrixDiagonal, Int32, Span2D<TReal>, Int32)

Computes the inverse of a real upper or lower triangular matrix A.

C#
public void TriangularInvert(
	MatrixTriangle storedTriangle,
	MatrixDiagonal diag,
	int n,
	Span2D<TReal> a,
	out int info
)

Parameters

storedTriangle  MatrixTriangle
            = 'U':  A is upper triangular;
            = 'L':  A is lower triangular.
            
diag  MatrixDiagonal
            = 'N':  A is non-unit triangular;
            = 'U':  A is unit triangular.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
a  Span2D<TReal>
            A is TReal array, dimension (LDA,N)
            On entry, the triangular matrix A.  If UPLO = 'U', the
            leading N-by-N upper triangular part of the array A contains
            the upper triangular matrix, and the strictly lower
            triangular part of A is not referenced.  If UPLO = 'L', the
            leading N-by-N lower triangular part of the array A contains
            the lower triangular matrix, and the strictly upper
            triangular part of A is not referenced.  If DIAG = 'U', the
            diagonal elements of A are also not referenced and are
            assumed to be 1.
            On exit, the (triangular) inverse of the original matrix, in
            the same storage format.
            
            The leading dimension of the array A.  LDA >= max(1,N).
            
info  Int32
            = 0: successful exit
            < 0: if INFO = -i, the i-th argument had an illegal value
            > 0: if INFO = i, A(i,i) is exactly zero.  The triangular
                 matrix is singular and its inverse can not be computed.
            

Remarks

            This is the Level 3 BLAS version of the algorithm.
            

This method corresponds to the LAPACK routine ?TRTRI.

TriangularInvert(MatrixTriangle, MatrixDiagonal, Int32, Span2D<TComplex>, Int32)

Computes the inverse of a complex triangular matrix.
C#
public void TriangularInvert(
	MatrixTriangle storedTriangle,
	MatrixDiagonal diag,
	int n,
	Span2D<TComplex> a,
	out int info
)

Parameters

storedTriangle  MatrixTriangle
A MatrixTriangle value that indicates whether the matrix is upper or lower triangular.
diag  MatrixDiagonal
A MatrixDiagonal value that indicates whether the matrix is unit diagonal.
n  Int32
The number of rows and columns of the matrix.
a  Span2D<TComplex>
A complex array that contains the elements of the matrix.
info  Int32
On return, indicates error conditions.

TriangularInvert(MatrixTriangle, MatrixDiagonal, Int32, Span<TReal>, Int32, Int32)

Computes the inverse of a real upper or lower triangular matrix A.

C#
public abstract void TriangularInvert(
	MatrixTriangle storedTriangle,
	MatrixDiagonal diag,
	int n,
	Span<TReal> a,
	int lda,
	out int info
)

Parameters

storedTriangle  MatrixTriangle
            = 'U':  A is upper triangular;
            = 'L':  A is lower triangular.
            
diag  MatrixDiagonal
            = 'N':  A is non-unit triangular;
            = 'U':  A is unit triangular.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
a  Span<TReal>
            A is TReal array, dimension (LDA,N)
            On entry, the triangular matrix A.  If UPLO = 'U', the
            leading N-by-N upper triangular part of the array A contains
            the upper triangular matrix, and the strictly lower
            triangular part of A is not referenced.  If UPLO = 'L', the
            leading N-by-N lower triangular part of the array A contains
            the lower triangular matrix, and the strictly upper
            triangular part of A is not referenced.  If DIAG = 'U', the
            diagonal elements of A are also not referenced and are
            assumed to be 1.
            On exit, the (triangular) inverse of the original matrix, in
            the same storage format.
            
lda  Int32
            The leading dimension of the array A.  LDA >= max(1,N).
            
info  Int32
            = 0: successful exit
            < 0: if INFO = -i, the i-th argument had an illegal value
            > 0: if INFO = i, A(i,i) is exactly zero.  The triangular
                 matrix is singular and its inverse can not be computed.
            

Remarks

            This is the Level 3 BLAS version of the algorithm.
            

This method corresponds to the LAPACK routine ?TRTRI.

TriangularInvert(MatrixTriangle, MatrixDiagonal, Int32, Span<TComplex>, Int32, Int32)

Computes the inverse of a complex triangular matrix.
C#
public abstract void TriangularInvert(
	MatrixTriangle storedTriangle,
	MatrixDiagonal diag,
	int n,
	Span<TComplex> a,
	int lda,
	out int info
)

Parameters

storedTriangle  MatrixTriangle
A MatrixTriangle value that indicates whether the matrix is upper or lower triangular.
diag  MatrixDiagonal
A MatrixDiagonal value that indicates whether the matrix is unit diagonal.
n  Int32
The number of rows and columns of the matrix.
a  Span<TComplex>
A complex array that contains the elements of the matrix.
lda  Int32
The leading dimension of the matrix a.
info  Int32
On return, indicates error conditions.

See Also