mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Make assignment from general EigenBase object call evaluator, and support dense X= sparse
This commit is contained in:
@@ -121,7 +121,11 @@ template<typename Derived>
|
||||
template<typename OtherDerived>
|
||||
Derived& DenseBase<Derived>::operator=(const EigenBase<OtherDerived> &other)
|
||||
{
|
||||
#ifndef EIGEN_TEST_EVALUATORS
|
||||
other.derived().evalTo(derived());
|
||||
#else
|
||||
call_assignment(derived(), other.derived());
|
||||
#endif
|
||||
return derived();
|
||||
}
|
||||
|
||||
@@ -129,7 +133,11 @@ template<typename Derived>
|
||||
template<typename OtherDerived>
|
||||
Derived& DenseBase<Derived>::operator+=(const EigenBase<OtherDerived> &other)
|
||||
{
|
||||
#ifndef EIGEN_TEST_EVALUATORS
|
||||
other.derived().addTo(derived());
|
||||
#else
|
||||
call_assignment(derived(), other.derived(), internal::add_assign_op<Scalar>());
|
||||
#endif
|
||||
return derived();
|
||||
}
|
||||
|
||||
@@ -137,7 +145,11 @@ template<typename Derived>
|
||||
template<typename OtherDerived>
|
||||
Derived& DenseBase<Derived>::operator-=(const EigenBase<OtherDerived> &other)
|
||||
{
|
||||
#ifndef EIGEN_TEST_EVALUATORS
|
||||
other.derived().subTo(derived());
|
||||
#else
|
||||
call_assignment(derived(), other.derived(), internal::sub_assign_op<Scalar>());
|
||||
#endif
|
||||
return derived();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user