Class ComplexForwardSolver
java.lang.Object
org.flag4j.linalg.solvers.exact.triangular.ForwardSolver<CMatrix,CVector,Complex128[]>
org.flag4j.linalg.solvers.exact.triangular.ComplexForwardSolver
- All Implemented Interfaces:
LinearMatrixSolver<CMatrix,
,CVector> LinearSolver<CMatrix>
This solver solves linear systems of equations where the coefficient matrix in a lower triangular complex dense matrix
and the constant vector/matrix is complex and dense.
-
Field Summary
Fields inherited from class org.flag4j.linalg.solvers.exact.triangular.ForwardSolver
enforceLower, isUnit, RANK_CONDITION, xCol
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a solver to solve a linear system where the coefficient matrix is lower triangular.ComplexForwardSolver
(boolean isUnit) Creates a solver to solve a linear system where the coefficient matrix is lower triangular or unit lower triangular.ComplexForwardSolver
(boolean isUnit, boolean enforceLower) Creates a solver to solve a linear system where the coefficient matrix is lower triangular or unit lower triangular. -
Method Summary
Modifier and TypeMethodDescriptiongetDet()
Gets the determinant computed during the last solve.Performs forward substitution for a unit lower triangular matrix L and a matrix B.Performs forward substitution for a unit lower triangular matrix L and a vector b.Performs forward substitution for a unit lower triangular matrix L and the identity matrix.Methods inherited from class org.flag4j.linalg.solvers.exact.triangular.ForwardSolver
checkParams, checkSingular
-
Constructor Details
-
ComplexForwardSolver
public ComplexForwardSolver()Creates a solver to solve a linear system where the coefficient matrix is lower triangular. -
ComplexForwardSolver
public ComplexForwardSolver(boolean isUnit) Creates a solver to solve a linear system where the coefficient matrix is lower triangular or unit lower triangular.- Parameters:
isUnit
- Flag which indicates if the coefficient matrix is unit lower triangular or not.- If
true
, the coefficient matrix is expected to be unit lower triangular. - If
false
, the coefficient matrix is expected to be lower triangular.
- If
-
ComplexForwardSolver
public ComplexForwardSolver(boolean isUnit, boolean enforceLower) Creates a solver to solve a linear system where the coefficient matrix is lower triangular or unit lower triangular.- Parameters:
isUnit
- Flag which indicates if the coefficient matrix is unit lower triangular or not.
- If
true
, the coefficient matrix is expected to be unit lower triangular. - If
false
, the coefficient matrix is expected to be lower triangular.
- If
enforceLower
- Flag indicating if an explicit check should be made that the coefficient matrix is lower triangular.
-
-
Method Details
-
getDet
Gets the determinant computed during the last solve. -
solve
Performs forward substitution for a unit lower triangular matrix L and a vector b. That is, solves the linear system L*x=b where L is a lower triangular matrix.- Parameters:
L
- Unit lower triangular coefficient matrix. IfL
is not unit lower triangular, it will be treated as if it were.b
- Constant vector.- Returns:
- The result of solving the linear system L*x=b where L is a lower triangular matrix.
-
solve
Performs forward substitution for a unit lower triangular matrix L and a matrix B. That is, solves the linear system L*X=B where L is a lower triangular matrix.- Parameters:
L
- Lower triangular coefficient matrix. IfL
is not lower triangular, it will be treated as if it were.B
- Constant Matrix.- Returns:
- The result of solving the linear system L*X=B where L is a lower triangular matrix. If the lower triangular matrix L is singular (i.e. has a zero on the principle diagonal).
- Throws:
SingularMatrixException
- If the matrix lower triangularL
is singular (i.e. has a zero on the principle diagonal).
-
solveIdentity
Performs forward substitution for a unit lower triangular matrix L and the identity matrix. That is, solves the linear system L*X=I where L is a lower triangular matrix and I is the appropriately sized identity matrix.- Parameters:
L
- Lower triangular coefficient matrix. IfL
is not lower triangular, it will be treated as if it were.- Returns:
- The result of solving the linear system L*X=B where L is a lower triangular matrix.
- Throws:
SingularMatrixException
- If the matrix lower triangularL
is singular (i.e. has a zero on the principle diagonal).
-