mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-14 04:35:57 +08:00
Make sure we evaluate into temporaries matching evaluator storage order requirements
This commit is contained in:
parent
3eba5e1101
commit
62f332fc04
@ -695,9 +695,8 @@ void call_assignment(const Dst& dst, const Src& src)
|
|||||||
template<typename Dst, typename Src, typename Func>
|
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)
|
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
|
#ifdef EIGEN_TEST_EVALUATORS
|
||||||
typename Src::PlainObject tmp(src);
|
typename plain_matrix_type<Src>::type tmp(src);
|
||||||
#else
|
#else
|
||||||
typename Src::PlainObject tmp(src.rows(), src.cols());
|
typename Src::PlainObject tmp(src.rows(), src.cols());
|
||||||
call_assignment_no_alias(tmp, src, internal::assign_op<typename Dst::Scalar>());
|
call_assignment_no_alias(tmp, src, internal::assign_op<typename Dst::Scalar>());
|
||||||
|
@ -102,10 +102,9 @@ template<typename Derived> class SparseMatrixBase : public EigenBase<Derived>
|
|||||||
Transpose<const Derived>
|
Transpose<const Derived>
|
||||||
>::type AdjointReturnType;
|
>::type AdjointReturnType;
|
||||||
|
|
||||||
|
// FIXME storage order do not match evaluator storage order
|
||||||
typedef SparseMatrix<Scalar, Flags&RowMajorBit ? RowMajor : ColMajor, Index> PlainObject;
|
typedef SparseMatrix<Scalar, Flags&RowMajorBit ? RowMajor : ColMajor, Index> PlainObject;
|
||||||
|
|
||||||
|
|
||||||
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
||||||
/** This is the "real scalar" type; if the \a Scalar type is already real numbers
|
/** 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
|
* (e.g. int, float or double) then \a RealScalar is just the same as \a Scalar. If
|
||||||
|
Loading…
x
Reference in New Issue
Block a user