mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-04 03:00:39 +08:00
cleaning and fix a perf issue
This commit is contained in:
parent
f95b77be62
commit
b5e4064289
@ -63,7 +63,7 @@ struct ei_selfadjoint_rank2_update_selector<Scalar,UType,VType,UpperTriangular>
|
||||
};
|
||||
|
||||
template<bool Cond, typename T> struct ei_conj_expr_if
|
||||
: ei_meta_if<!Cond, T,
|
||||
: ei_meta_if<!Cond, const T&,
|
||||
CwiseUnaryOp<ei_scalar_conjugate_op<typename ei_traits<T>::Scalar>,T> > {};
|
||||
|
||||
|
||||
|
@ -37,12 +37,12 @@ struct ei_product_triangular_vector_selector<Lhs,Rhs,Result,Mode,ConjLhs,ConjRhs
|
||||
IsLowerTriangular = ((Mode&LowerTriangularBit)==LowerTriangularBit),
|
||||
HasUnitDiag = (Mode & UnitDiagBit)==UnitDiagBit
|
||||
};
|
||||
static void run(const Lhs& lhs, const Rhs& rhs, Result& res, typename ei_traits<Lhs>::Scalar alpha)
|
||||
static EIGEN_DONT_INLINE void run(const Lhs& lhs, const Rhs& rhs, Result& res, typename ei_traits<Lhs>::Scalar alpha)
|
||||
{
|
||||
static const int PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
|
||||
typename ei_conj_expr_if<ConjLhs,Lhs>::ret cjLhs(lhs);
|
||||
typename ei_conj_expr_if<ConjRhs,Rhs>::ret cjRhs(rhs);
|
||||
|
||||
|
||||
int size = lhs.cols();
|
||||
for (int pi=0; pi<size; pi+=PanelWidth)
|
||||
{
|
||||
@ -113,52 +113,6 @@ struct ei_product_triangular_vector_selector<Lhs,Rhs,Result,Mode,ConjLhs,ConjRhs
|
||||
}
|
||||
};
|
||||
|
||||
// template<typename Lhs,typename Rhs>
|
||||
// struct ei_triangular_vector_product_returntype
|
||||
// : public ReturnByValue<ei_triangular_vector_product_returntype<Lhs,Rhs>,
|
||||
// Matrix<typename ei_traits<Rhs>::Scalar,
|
||||
// Rhs::RowsAtCompileTime,Rhs::ColsAtCompileTime> >
|
||||
// {
|
||||
// typedef typename Lhs::Scalar Scalar;
|
||||
// typedef typename ei_cleantype<typename Rhs::Nested>::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<typename Dest> void evalTo(Dest& dst) const
|
||||
// {
|
||||
// typedef typename Lhs::MatrixType MatrixType;
|
||||
//
|
||||
// typedef ei_blas_traits<MatrixType> LhsBlasTraits;
|
||||
// typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
|
||||
// typedef typename ei_cleantype<ActualLhsType>::type _ActualLhsType;
|
||||
// const ActualLhsType actualLhs = LhsBlasTraits::extract(m_lhs._expression());
|
||||
//
|
||||
// typedef ei_blas_traits<Rhs> RhsBlasTraits;
|
||||
// typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
|
||||
// typedef typename ei_cleantype<ActualRhsType>::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<Lhs>::Mode,
|
||||
// LhsBlasTraits::NeedToConjugate,
|
||||
// RhsBlasTraits::NeedToConjugate,
|
||||
// ei_traits<Lhs>::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<Mode,true,Lhs,false,Rhs,true>
|
||||
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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user