aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/CommaInitializer.h
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-04-03 16:54:19 +0000
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-04-03 16:54:19 +0000
commit249dc4f482f0427af3cb1e53b7a2ff4bbe6b54cf (patch)
treedd0fb314154a6ea9da51acc8c252f7772f0ed368 /Eigen/src/Core/CommaInitializer.h
parentb8900d0b80734c6cca25595e8613d47f1d48909f (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.h7
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();