diff options
author | Benoit Jacob <jacob.benoit.1@gmail.com> | 2008-04-03 16:54:19 +0000 |
---|---|---|
committer | Benoit Jacob <jacob.benoit.1@gmail.com> | 2008-04-03 16:54:19 +0000 |
commit | 249dc4f482f0427af3cb1e53b7a2ff4bbe6b54cf (patch) | |
tree | dd0fb314154a6ea9da51acc8c252f7772f0ed368 /Eigen/src/Core/CommaInitializer.h | |
parent | b8900d0b80734c6cca25595e8613d47f1d48909f (diff) |
current state of the mess. One line fails in the tests, and
useless copies are made when evaluating nested expressions.
Changes:
- kill LazyBit, introduce EvalBeforeNestingBit and EvalBeforeAssigningBit
- product and random don't evaluate immediately anymore
- eval() always evaluates
- change the value of Dynamic to some large positive value,
in preparation of future simplifications
Diffstat (limited to 'Eigen/src/Core/CommaInitializer.h')
-rw-r--r-- | Eigen/src/Core/CommaInitializer.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Eigen/src/Core/CommaInitializer.h b/Eigen/src/Core/CommaInitializer.h index d7a5fcb47..21551ccf2 100644 --- a/Eigen/src/Core/CommaInitializer.h +++ b/Eigen/src/Core/CommaInitializer.h @@ -76,9 +76,10 @@ struct MatrixBase<Derived>::CommaInitializer ei_assert(m_col<m_matrix.cols() && "Too many coefficients passed to MatrixBase::operator<<"); ei_assert(m_currentBlockRows==other.rows()); - if (OtherDerived::RowsAtCompileTime>0 && OtherDerived::ColsAtCompileTime>0) - m_matrix.block< (OtherDerived::RowsAtCompileTime>0?OtherDerived::RowsAtCompileTime:1) , - (OtherDerived::ColsAtCompileTime>0?OtherDerived::ColsAtCompileTime:1) >(m_row, m_col) = other; + if (OtherDerived::SizeAtCompileTime != Dynamic) + m_matrix.block<OtherDerived::RowsAtCompileTime != Dynamic ? OtherDerived::RowsAtCompileTime : 1, + OtherDerived::ColsAtCompileTime != Dynamic ? OtherDerived::ColsAtCompileTime : 1> + (m_row, m_col) = other; else m_matrix.block(m_row, m_col, other.rows(), other.cols()) = other; m_col += other.cols(); |