| 149 | template <typename ExpressionType, unsigned int Mode> |
| 150 | template <typename OtherDerived> |
| 151 | void TriangularViewImpl<ExpressionType, Mode, Sparse>::solveInPlace(MatrixBase<OtherDerived>& other) const { |
| 152 | eigen_assert(derived().cols() == derived().rows() && derived().cols() == other.rows()); |
| 153 | eigen_assert((!(Mode & ZeroDiag)) && bool(Mode & (Upper | Lower))); |
| 154 | |
| 155 | enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit }; |
| 156 | |
| 157 | typedef std::conditional_t<copy, typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&> |
| 158 | OtherCopy; |
| 159 | OtherCopy otherCopy(other.derived()); |
| 160 | |
| 161 | internal::sparse_solve_triangular_selector<ExpressionType, std::remove_reference_t<OtherCopy>, Mode>::run( |
| 162 | derived().nestedExpression(), otherCopy); |
| 163 | |
| 164 | if (copy) other = otherCopy; |
| 165 | } |
| 166 | #endif |
| 167 | |
| 168 | // pure sparse path |
no test coverage detected