mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Implement temporary-free path for "D.nolias() ?= C + A*B". (I thought it was already implemented)
This commit is contained in:
@@ -54,25 +54,8 @@ template <typename MatrixType> void run_nesting_ops_2(const MatrixType& _m)
|
||||
|
||||
if((MatrixType::SizeAtCompileTime==Dynamic))
|
||||
{
|
||||
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<10>(m1), 0 );
|
||||
if(!NumTraits<Scalar>::IsComplex)
|
||||
{
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<3>(2*m1), 0 );
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<4>(2*m1), 1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<1>(2*m1), 0 );
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<2>(2*m1), 1 );
|
||||
}
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<2>(m1+m1), 0 );
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<3>(m1+m1), 1 );
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<1>(m1*m1.transpose()), 1 );
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<2>(m1*m1.transpose()), 1 );
|
||||
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<1>(m1 + m1*m1), 2 ); // FIXME should already be 1 thanks the already existing rule
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<10>(m1 + m1*m1), 2 );
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<1>(m1 + m1*m1), 1 );
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<10>(m1 + m1*m1), 1 );
|
||||
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<1>(m1.template triangularView<Lower>().solve(m1.col(0))), 1 );
|
||||
VERIFY_EVALUATION_COUNT( use_n_times<10>(m1.template triangularView<Lower>().solve(m1.col(0))), 1 );
|
||||
|
||||
Reference in New Issue
Block a user