aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/SparseCore/SparseAssign.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2014-07-22 09:32:40 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2014-07-22 09:32:40 +0200
commit2a251ffab0f3abd1fcfe340a4bee61e352d83424 (patch)
treec8b0c8a99abab6aafb82e0cb8620e8a65f4b96d0 /Eigen/src/SparseCore/SparseAssign.h
parent9b729f93a10a43a498f4c10f8d80c31a94ae7a0c (diff)
Implement evaluator for sparse-selfadjoint products
Diffstat (limited to 'Eigen/src/SparseCore/SparseAssign.h')
-rw-r--r--Eigen/src/SparseCore/SparseAssign.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/Eigen/src/SparseCore/SparseAssign.h b/Eigen/src/SparseCore/SparseAssign.h
index 528d63e35..f3da8c6c4 100644
--- a/Eigen/src/SparseCore/SparseAssign.h
+++ b/Eigen/src/SparseCore/SparseAssign.h
@@ -127,6 +127,7 @@ template<typename Derived>
template<typename OtherDerived>
Derived& SparseMatrixBase<Derived>::operator=(const EigenBase<OtherDerived> &other)
{
+ // TODO use the evaluator mechanism
other.derived().evalTo(derived());
return derived();
}
@@ -135,6 +136,7 @@ template<typename Derived>
template<typename OtherDerived>
Derived& SparseMatrixBase<Derived>::operator=(const ReturnByValue<OtherDerived>& other)
{
+ // TODO use the evaluator mechanism
other.evalTo(derived());
return derived();
}
@@ -143,6 +145,7 @@ template<typename Derived>
template<typename OtherDerived>
inline Derived& SparseMatrixBase<Derived>::operator=(const SparseMatrixBase<OtherDerived>& other)
{
+ // FIXME, by default sparse evaluation do not alias, so we should be able to bypass the generic call_assignment
internal::call_assignment/*_no_alias*/(derived(), other.derived());
return derived();
}