Triangular Solver¶
- template<typename T, typename L, internal::TransposeFlag Trans, MatrixTriangularType UpLo, template<typename, typename> typename S2>
internal::TriangularSolver<T, L, UpLo, Matrix<T, L, S2>> trsolve(internal::ConjugateTransposeOp<TriangularMap<T, UpLo, L>, Trans> &&R, OpSide side, internal::ScalingOp<Matrix<T, L, S2>> &&rhs)¶
- template<typename T, typename L, MatrixTriangularType UpLo, template<typename, typename> typename S2>
internal::TriangularSolver<T, L, UpLo, Matrix<T, L, S2>> trsolve(const TriangularMap<T, UpLo, L> &R, OpSide side, internal::ScalingOp<Matrix<T, L, S2>> &&rhs)¶
- template<typename T, typename L, internal::TransposeFlag Trans, MatrixTriangularType UpLo, template<typename, typename> typename S2>
internal::TriangularSolver<T, L, UpLo, Matrix<T, L, S2>> trsolve(internal::ConjugateTransposeOp<TriangularMap<T, UpLo, L>, Trans> &&R, OpSide side, const Matrix<T, L, S2> &rhs)¶
- template<typename T, typename L, MatrixTriangularType UpLo, template<typename, typename> typename S2>
internal::TriangularSolver<T, L, UpLo, Matrix<T, L, S2>> trsolve(const TriangularMap<T, UpLo, L> &R, OpSide side, const Matrix<T, L, S2> &rhs)¶Solves the triangular linear system \( \text{op}(\mathbf{R}) \; \mathbf{X} = \alpha \mathbf{B}\), where
R
is upper or lower triangular andop(R) = R or op(R) = R.T()
. This operation can be done in-place by callingX = trsolve(R, side, X)
.
- Parameters:
R – [in] coefficient matrix:
R
orR.T()
side – [in] specify the location of the
A
in the system:kLeft
( \( \mathbf{R} \; \mathbf{X} = \alpha \mathbf{B}\)) orkRight
( \( \mathbf{X} \; \mathbf{R} = \alpha \mathbf{B}\))rhs – [in] right hand side of the system:
B
oralpha * B
- Returns:
An abstract object representing the solution of the linear system.
- template<typename T, typename L, internal::TransposeFlag Trans, MatrixTriangularType UpLo, template<typename, typename> typename S2>
internal::TriangularSolver<T, L, UpLo, Vector<T, L, S2>> trsolve(internal::ConjugateTransposeOp<TriangularMap<T, UpLo, L>, Trans> &&R, const Vector<T, L, S2> &rhs)¶
- template<typename T, typename L, MatrixTriangularType UpLo, template<typename, typename> typename S2>
internal::TriangularSolver<T, L, UpLo, Vector<T, L, S2>> trsolve(const TriangularMap<T, UpLo, L> &R, const Vector<T, L, S2> &rhs)¶Solves the triangular linear system \( \text{op}((\mathbf{R}) \; \vec{x} = \alpha \vec{b}\), where
R
is upper or lower triangular andop(R) = R or op(R) = R.T()
. This operation can be done in-place by callingx = trsolve(R, x)
.
- Parameters:
R – [in] coefficient matrix:
A
orA.T()
rhs – [in] right hand side of the system:
b
- Returns:
An abstract object representing the solution of the linear system.
- template<Number T, DataLocation L, MatrixTriangularType UpLo>
T trcond(const TriangularMap<T, UpLo, L> &A)¶Calculates the reciprocal of the condition number of a triangular matrix
A
using the l1 norm: \( \kappa_1(\mathbf{A}) = \| \mathbf{A} \|_1 \| \mathbf{A}^{-1} \|_1 \)
- Parameters:
A – [in] input matrix