11 #ifndef EIGEN_EIGENBASE_H
12 #define EIGEN_EIGENBASE_H
41 typedef typename internal::traits<Derived>::StorageKind StorageKind;
45 Derived&
derived() {
return *
static_cast<Derived*
>(
this); }
48 const Derived&
derived()
const {
return *
static_cast<const Derived*
>(
this); }
51 inline Derived& const_cast_derived()
const
52 {
return *
static_cast<Derived*
>(
const_cast<EigenBase*
>(
this)); }
54 inline const Derived& const_derived()
const
55 {
return *
static_cast<const Derived*
>(
this); }
69 template<
typename Dest>
71 inline void evalTo(Dest& dst)
const
75 template<
typename Dest>
77 inline void addTo(Dest& dst)
const
81 typename Dest::PlainObject res(
rows(),
cols());
87 template<
typename Dest>
89 inline void subTo(Dest& dst)
const
93 typename Dest::PlainObject res(
rows(),
cols());
99 template<
typename Dest>
100 EIGEN_DEVICE_FUNC
inline void applyThisOnTheRight(Dest& dst)
const
108 template<
typename Dest>
109 EIGEN_DEVICE_FUNC
inline void applyThisOnTheLeft(Dest& dst)
const
130 template<
typename Derived>
131 template<
typename OtherDerived>
135 call_assignment(derived(), other.
derived());
139 template<
typename Derived>
140 template<
typename OtherDerived>
144 call_assignment(derived(), other.
derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
148 template<
typename Derived>
149 template<
typename OtherDerived>
151 Derived& DenseBase<Derived>::operator-=(
const EigenBase<OtherDerived> &other)
153 call_assignment(derived(), other.derived(), internal::sub_assign_op<Scalar,typename OtherDerived::Scalar>());
159 #endif // EIGEN_EIGENBASE_H