diff --git a/Eigen/src/Core/products/SelfadjointRank2Update.h b/Eigen/src/Core/products/SelfadjointRank2Update.h index 6c8a28f65..65a321fde 100644 --- a/Eigen/src/Core/products/SelfadjointRank2Update.h +++ b/Eigen/src/Core/products/SelfadjointRank2Update.h @@ -63,7 +63,7 @@ struct ei_selfadjoint_rank2_update_selector }; template struct ei_conj_expr_if - : ei_meta_if::Scalar>,T> > {}; diff --git a/Eigen/src/Core/products/TriangularMatrixVector.h b/Eigen/src/Core/products/TriangularMatrixVector.h index 0fbbb50d2..c557e5237 100644 --- a/Eigen/src/Core/products/TriangularMatrixVector.h +++ b/Eigen/src/Core/products/TriangularMatrixVector.h @@ -37,12 +37,12 @@ struct ei_product_triangular_vector_selector::Scalar alpha) + static EIGEN_DONT_INLINE void run(const Lhs& lhs, const Rhs& rhs, Result& res, typename ei_traits::Scalar alpha) { static const int PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH; typename ei_conj_expr_if::ret cjLhs(lhs); typename ei_conj_expr_if::ret cjRhs(rhs); - + int size = lhs.cols(); for (int pi=0; pi -// struct ei_triangular_vector_product_returntype -// : public ReturnByValue, -// Matrix::Scalar, -// Rhs::RowsAtCompileTime,Rhs::ColsAtCompileTime> > -// { -// typedef typename Lhs::Scalar Scalar; -// typedef typename ei_cleantype::type RhsNested; -// ei_triangular_vector_product_returntype(const Lhs& lhs, const Rhs& rhs, Scalar alpha) -// : m_lhs(lhs), m_rhs(rhs), m_alpha(alpha) -// {} -// -// template void evalTo(Dest& dst) const -// { -// typedef typename Lhs::MatrixType MatrixType; -// -// typedef ei_blas_traits LhsBlasTraits; -// typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType; -// typedef typename ei_cleantype::type _ActualLhsType; -// const ActualLhsType actualLhs = LhsBlasTraits::extract(m_lhs._expression()); -// -// typedef ei_blas_traits RhsBlasTraits; -// typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType; -// typedef typename ei_cleantype::type _ActualRhsType; -// const ActualRhsType actualRhs = RhsBlasTraits::extract(m_rhs); -// -// Scalar actualAlpha = m_alpha * LhsBlasTraits::extractScalarFactor(m_lhs._expression()) -// * RhsBlasTraits::extractScalarFactor(m_rhs); -// -// dst.resize(m_rhs.rows(), m_rhs.cols()); -// dst.setZero(); -// ei_product_triangular_vector_selector -// <_ActualLhsType,_ActualRhsType,Dest, -// ei_traits::Mode, -// LhsBlasTraits::NeedToConjugate, -// RhsBlasTraits::NeedToConjugate, -// ei_traits::Flags&RowMajorBit> -// ::run(actualLhs,actualRhs,dst,actualAlpha); -// } -// -// const Lhs m_lhs; -// const typename Rhs::Nested m_rhs; -// const Scalar m_alpha; -// }; - - /*************************************************************************** * Wrapper to ei_product_triangular_vector ***************************************************************************/ @@ -207,8 +161,6 @@ struct ei_triangular_product_returntype Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(m_lhs) * RhsBlasTraits::extractScalarFactor(m_rhs); - dst.resize(m_rhs.rows(), m_rhs.cols()); - dst.setZero(); ei_product_triangular_vector_selector <_ActualLhsType,_ActualRhsType,Dest, Mode,