diff options
author | 2014-07-19 15:19:10 +0200 | |
---|---|---|
committer | 2014-07-19 15:19:10 +0200 | |
commit | 62f332fc041a33a151617d93e60503a8a9bbf043 (patch) | |
tree | af8ae77843d6a41d4ecd9ba88876daec534416c6 | |
parent | 3eba5e1101d8652483e1cf232a06dccf49a8a530 (diff) |
Make sure we evaluate into temporaries matching evaluator storage order requirements
-rw-r--r-- | Eigen/src/Core/AssignEvaluator.h | 3 | ||||
-rw-r--r-- | Eigen/src/SparseCore/SparseMatrixBase.h | 3 |
2 files changed, 2 insertions, 4 deletions
diff --git a/Eigen/src/Core/AssignEvaluator.h b/Eigen/src/Core/AssignEvaluator.h index c45ac96f2..43755c2fd 100644 --- a/Eigen/src/Core/AssignEvaluator.h +++ b/Eigen/src/Core/AssignEvaluator.h @@ -695,9 +695,8 @@ void call_assignment(const Dst& dst, const Src& src) template<typename Dst, typename Src, typename Func> void call_assignment(Dst& dst, const Src& src, const Func& func, typename enable_if<evaluator_traits<Src>::AssumeAliasing==1, void*>::type = 0) { - #ifdef EIGEN_TEST_EVALUATORS - typename Src::PlainObject tmp(src); + typename plain_matrix_type<Src>::type tmp(src); #else typename Src::PlainObject tmp(src.rows(), src.cols()); call_assignment_no_alias(tmp, src, internal::assign_op<typename Dst::Scalar>()); diff --git a/Eigen/src/SparseCore/SparseMatrixBase.h b/Eigen/src/SparseCore/SparseMatrixBase.h index a6452fa4e..361a66067 100644 --- a/Eigen/src/SparseCore/SparseMatrixBase.h +++ b/Eigen/src/SparseCore/SparseMatrixBase.h @@ -102,10 +102,9 @@ template<typename Derived> class SparseMatrixBase : public EigenBase<Derived> Transpose<const Derived> >::type AdjointReturnType; - + // FIXME storage order do not match evaluator storage order typedef SparseMatrix<Scalar, Flags&RowMajorBit ? RowMajor : ColMajor, Index> PlainObject; - #ifndef EIGEN_PARSED_BY_DOXYGEN /** This is the "real scalar" type; if the \a Scalar type is already real numbers * (e.g. int, float or double) then \a RealScalar is just the same as \a Scalar. If |