GenericDecompositionOperations<T>.LUSolve Method

Definition

Namespace: Extreme.Mathematics.LinearAlgebra.Implementation
Assembly: Extreme.Numerics.Generic (in Extreme.Numerics.Generic.dll) Version: 8.1.4

Overload List

LUSolve(TransposeOperation, Int32, Int32, Array2D<T>, Array1D<Int32>, Array2D<T>, Int32)

Solves a system of linear equations A * X = B or AT * X = B with a general N-by-N matrix A using the LU factorization computed by DGETRF.

LUSolve(TransposeOperation, Int32, Int32, Array2D<Complex<T>>, Array1D<Int32>, Array2D<Complex<T>>, Int32) ZGETRS solves a system of linear equations A * X = B or A' * X = B with a general N-by-N matrix A using the LU decomposition computed by ZGETRF. Arguments ========= TRANS (input) CHARACTER*1 Specifies the form of the system of equations: = 'N': A * X = B (No transpose) = TransposeOperation.Transpose: A'* X = B (Transpose) = 'C': A'* X = B (Conjugate transpose = Transpose) N (input) INTEGER The elementOrder of the matrix A. N >= 0. NRHS (input) INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. A (input) ZOUBLE PRECISION array, dimension (LDA,N) The factors L and U from the decomposition A = P*L*U as computed by ZGETRF. LDA (input) INTEGER The leading dimension of the array A. LDA >= Max(1,N). IPIV (input) INTEGER array, dimension (N) The pivot indexes from ZGETRF; for 1< =i< =N, row i of the matrix was interchanged with row IPIVi. B (input/output) ZOUBLE PRECISION array, dimension (LDB,NRHS) On entry, the right hand side matrix B. On exit, the solution matrix X. LDB (input) INTEGER The leading dimension of the array B. LDB >= Max(1,N). info (output) INTEGER = 0: successful exit < 0: if info = -i, the i-th argument had an illegal value =====================================================================

LUSolve(TransposeOperation, Int32, Int32, Array2D<T>, Array1D<Int32>, Array2D<T>, Int32)

Solves a system of linear equations A * X = B or AT * X = B with a general N-by-N matrix A using the LU factorization computed by DGETRF.

C#
public override void LUSolve(
	TransposeOperation trans,
	int n,
	int nrhs,
	Array2D<T> a,
	Array1D<int> ipiv,
	Array2D<T> b,
	out int info
)

Parameters

trans  TransposeOperation
            Specifies the form of the system of equations:
            = 'N':  A * X = B  (No transpose)
            = 'T':  AT* X = B  (Transpose)
            = 'C':  AT* X = B  (Conjugate transpose = Transpose)
            
n  Int32
            The order of the matrix A.  N >= 0.
            
nrhs  Int32
            The number of right hand sides, i.e., the number of columns
            of the matrix B.  NRHS >= 0.
            
a  Array2D<T>
            Dimension (LDA,N)
            The factors L and U from the factorization A = P*L*U
            as computed by DGETRF.
            
            The leading dimension of the array A.  LDA >= max(1,N).
            
ipiv  Array1D<Int32>
            Dimension (N)
            The pivot indices from DGETRF; for 1<=i<=N, row i of the
            matrix was interchanged with row IPIV(i).
            
b  Array2D<T>
            Dimension (LDB,NRHS)
            On entry, the right hand side matrix B.
            On exit, 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
            

Remarks

This method corresponds to the LAPACK routine DGETRS.

LUSolve(TransposeOperation, Int32, Int32, Array2D<Complex<T>>, Array1D<Int32>, Array2D<Complex<T>>, Int32)

ZGETRS solves a system of linear equations A * X = B or A' * X = B with a general N-by-N matrix A using the LU decomposition computed by ZGETRF. Arguments ========= TRANS (input) CHARACTER*1 Specifies the form of the system of equations: = 'N': A * X = B (No transpose) = TransposeOperation.Transpose: A'* X = B (Transpose) = 'C': A'* X = B (Conjugate transpose = Transpose) N (input) INTEGER The elementOrder of the matrix A. N >= 0. NRHS (input) INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. A (input) ZOUBLE PRECISION array, dimension (LDA,N) The factors L and U from the decomposition A = P*L*U as computed by ZGETRF. LDA (input) INTEGER The leading dimension of the array A. LDA >= Max(1,N). IPIV (input) INTEGER array, dimension (N) The pivot indexes from ZGETRF; for 1< =i< =N, row i of the matrix was interchanged with row IPIVi. B (input/output) ZOUBLE PRECISION array, dimension (LDB,NRHS) On entry, the right hand side matrix B. On exit, the solution matrix X. LDB (input) INTEGER The leading dimension of the array B. LDB >= Max(1,N). info (output) INTEGER = 0: successful exit < 0: if info = -i, the i-th argument had an illegal value =====================================================================
C#
public override void LUSolve(
	TransposeOperation trans,
	int n,
	int nrhs,
	Array2D<Complex<T>> a,
	Array1D<int> ipiv,
	Array2D<Complex<T>> b,
	out int info
)

Parameters

trans  TransposeOperation
 
n  Int32
 
nrhs  Int32
 
a  Array2D<Complex<T>>
 
ipiv  Array1D<Int32>
 
b  Array2D<Complex<T>>
 
info  Int32
 

See Also