DecompositionOperations<TReal, TComplex>.HermitianInvert Method

Definition

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

Overload List

HermitianInvert(MatrixTriangle, Int32, Array2D<TComplex>, Array1D<Int32>, Int32)

Computes the inverse of a complex Hermitian indefinite matrix A using the factorization A = U*D*UH or A = L*D*LH computed by ZHETRF.

HermitianInvert(MatrixTriangle, Int32, Span2D<TComplex>, Span<Int32>, Int32)

Computes the inverse of a complex Hermitian indefinite matrix A using the factorization A = U*D*UH or A = L*D*LH computed by ZHETRF.

HermitianInvert(MatrixTriangle, Int32, Span<TComplex>, Int32, ReadOnlySpan<Int32>, Int32)

Computes the inverse of a complex Hermitian indefinite matrix A using the factorization A = U*D*UH or A = L*D*LH computed by ZHETRF.

HermitianInvert(MatrixTriangle, Int32, Array2D<TComplex>, Array1D<Int32>, Int32)

Computes the inverse of a complex Hermitian indefinite matrix A using the factorization A = U*D*UH or A = L*D*LH computed by ZHETRF.

C#
public void HermitianInvert(
	MatrixTriangle uplo,
	int n,
	Array2D<TComplex> a,
	Array1D<int> ipiv,
	out int info
)

Parameters

uplo  MatrixTriangle
            Specifies whether the details of the factorization are stored
            as an upper or lower triangular matrix.
            = 'U':  Upper triangular, form is A = U*D*UH;
            = 'L':  Lower triangular, form is A = L*D*LH.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
a  Array2D<TComplex>
            A is TComplex array, dimension (LDA,N)
            On entry, the block diagonal matrix D and the multipliers
            used to obtain the factor U or L as computed by ZHETRF.
            On exit, if INFO = 0, the (Hermitian) inverse of the original
            matrix.  If UPLO = 'U', the upper triangular part of the
            inverse is formed and the part of A below the diagonal is not
            referenced; if UPLO = 'L' the lower triangular part of the
            inverse is formed and the part of A above the diagonal is
            not referenced.
            
            The leading dimension of the array A.  LDA >= max(1,N).
            
ipiv  Array1D<Int32>
            Dimension (N)
            Details of the interchanges and the block structure of D
            as determined by ZHETRF.
            
info  Int32
            = 0: successful exit
            < 0: if INFO = -i, the i-th argument had an illegal value
            > 0: if INFO = i, D(i,i) = 0; the matrix is singular and its
                 inverse could not be computed.
            

HermitianInvert(MatrixTriangle, Int32, Span2D<TComplex>, Span<Int32>, Int32)

Computes the inverse of a complex Hermitian indefinite matrix A using the factorization A = U*D*UH or A = L*D*LH computed by ZHETRF.

C#
public void HermitianInvert(
	MatrixTriangle uplo,
	int n,
	Span2D<TComplex> a,
	Span<int> ipiv,
	out int info
)

Parameters

uplo  MatrixTriangle
            Specifies whether the details of the factorization are stored
            as an upper or lower triangular matrix.
            = 'U':  Upper triangular, form is A = U*D*UH;
            = 'L':  Lower triangular, form is A = L*D*LH.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
a  Span2D<TComplex>
            A is TComplex array, dimension (LDA,N)
            On entry, the block diagonal matrix D and the multipliers
            used to obtain the factor U or L as computed by ZHETRF.
            On exit, if INFO = 0, the (Hermitian) inverse of the original
            matrix.  If UPLO = 'U', the upper triangular part of the
            inverse is formed and the part of A below the diagonal is not
            referenced; if UPLO = 'L' the lower triangular part of the
            inverse is formed and the part of A above the diagonal is
            not referenced.
            
            The leading dimension of the array A.  LDA >= max(1,N).
            
ipiv  Span<Int32>
            Dimension (N)
            Details of the interchanges and the block structure of D
            as determined by ZHETRF.
            
info  Int32
            = 0: successful exit
            < 0: if INFO = -i, the i-th argument had an illegal value
            > 0: if INFO = i, D(i,i) = 0; the matrix is singular and its
                 inverse could not be computed.
            

HermitianInvert(MatrixTriangle, Int32, Span<TComplex>, Int32, ReadOnlySpan<Int32>, Int32)

Computes the inverse of a complex Hermitian indefinite matrix A using the factorization A = U*D*UH or A = L*D*LH computed by ZHETRF.

C#
public abstract void HermitianInvert(
	MatrixTriangle uplo,
	int n,
	Span<TComplex> a,
	int lda,
	ReadOnlySpan<int> ipiv,
	out int info
)

Parameters

uplo  MatrixTriangle
            Specifies whether the details of the factorization are stored
            as an upper or lower triangular matrix.
            = 'U':  Upper triangular, form is A = U*D*UH;
            = 'L':  Lower triangular, form is A = L*D*LH.
            
n  Int32
            The order of the matrix A.  N >= 0.
            
a  Span<TComplex>
            A is TComplex array, dimension (LDA,N)
            On entry, the block diagonal matrix D and the multipliers
            used to obtain the factor U or L as computed by ZHETRF.
            On exit, if INFO = 0, the (Hermitian) inverse of the original
            matrix.  If UPLO = 'U', the upper triangular part of the
            inverse is formed and the part of A below the diagonal is not
            referenced; if UPLO = 'L' the lower triangular part of the
            inverse is formed and the part of A above the diagonal is
            not referenced.
            
lda  Int32
            The leading dimension of the array A.  LDA >= max(1,N).
            
ipiv  ReadOnlySpan<Int32>
            Dimension (N)
            Details of the interchanges and the block structure of D
            as determined by ZHETRF.
            
info  Int32
            = 0: successful exit
            < 0: if INFO = -i, the i-th argument had an illegal value
            > 0: if INFO = i, D(i,i) = 0; the matrix is singular and its
                 inverse could not be computed.
            

See Also