26 #ifndef EIGEN_EIGENBASE_H
27 #define EIGEN_EIGENBASE_H
45 typedef typename internal::traits<Derived>::StorageKind
StorageKind;
46 typedef typename internal::traits<Derived>::Index
Index;
49 Derived&
derived() {
return *
static_cast<Derived*
>(
this); }
51 const Derived&
derived()
const {
return *
static_cast<const Derived*
>(
this); }
54 {
return *
static_cast<Derived*
>(
const_cast<EigenBase*
>(
this)); }
56 {
return *
static_cast<const Derived*
>(
this); }
67 template<
typename Dest>
inline void evalTo(Dest& dst)
const
71 template<
typename Dest>
inline void addTo(Dest& dst)
const
75 typename Dest::PlainObject res(
rows(),
cols());
81 template<
typename Dest>
inline void subTo(Dest& dst)
const
85 typename Dest::PlainObject res(
rows(),
cols());
120 template<
typename Derived>
121 template<
typename OtherDerived>
124 other.
derived().evalTo(derived());
128 template<
typename Derived>
129 template<
typename OtherDerived>
132 other.
derived().addTo(derived());
136 template<
typename Derived>
137 template<
typename OtherDerived>
140 other.
derived().subTo(derived());
148 template<
typename Derived>
149 template<
typename OtherDerived>
153 other.
derived().applyThisOnTheRight(derived());
158 template<
typename Derived>
159 template<
typename OtherDerived>
162 other.
derived().applyThisOnTheRight(derived());
166 template<
typename Derived>
167 template<
typename OtherDerived>
170 other.
derived().applyThisOnTheLeft(derived());
175 #endif // EIGEN_EIGENBASE_H