| 178 | template<typename ExpressionType,unsigned int Mode> |
| 179 | template<typename OtherDerived> |
| 180 | void TriangularViewImpl<ExpressionType,Mode,Sparse>::solveInPlace(MatrixBase<OtherDerived>& other) const |
| 181 | { |
| 182 | eigen_assert(derived().cols() == derived().rows() && derived().cols() == other.rows()); |
| 183 | eigen_assert((!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower))); |
| 184 | |
| 185 | enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit }; |
| 186 | |
| 187 | typedef std::conditional_t<copy, |
| 188 | typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&> OtherCopy; |
| 189 | OtherCopy otherCopy(other.derived()); |
| 190 | |
| 191 | internal::sparse_solve_triangular_selector<ExpressionType, std::remove_reference_t<OtherCopy>, Mode>::run(derived().nestedExpression(), otherCopy); |
| 192 | |
| 193 | if (copy) |
| 194 | other = otherCopy; |
| 195 | } |
| 196 | #endif |
| 197 | |
| 198 | // pure sparse path |
no test coverage detected