Home | History | Annotate | Download | only in Core

Lines Matching defs:derived

20   * Besides MatrixBase-derived classes, this also includes special matrix classes such as diagonal matrices, etc.
26 template<typename Derived> struct EigenBase
28 // typedef typename internal::plain_matrix_type<Derived>::type PlainObject;
30 typedef typename internal::traits<Derived>::StorageKind StorageKind;
31 typedef typename internal::traits<Derived>::Index Index;
33 /** \returns a reference to the derived object */
34 Derived& derived() { return *static_cast<Derived*>(this); }
35 /** \returns a const reference to the derived object */
36 const Derived& derived() const { return *static_cast<const Derived*>(this); }
38 inline Derived& const_cast_derived() const
39 { return *static_cast<Derived*>(const_cast<EigenBase*>(this)); }
40 inline const Derived& const_derived() const
41 { return *static_cast<const Derived*>(this); }
44 inline Index rows() const { return derived().rows(); }
46 inline Index cols() const { return derived().cols(); }
53 { derived().evalTo(dst); }
59 // derived class can reimplement it in a more optimized way.
69 // derived class can reimplement it in a more optimized way.
79 // derived class can reimplement it in a more optimized way.
80 dst = dst * this->derived();
87 // derived class can reimplement it in a more optimized way.
88 dst = this->derived() * dst;
99 * \details The expression must provide a (templated) evalTo(Derived& dst) const
105 template<typename Derived>
107 Derived& DenseBase<Derived>::operator=(const EigenBase<OtherDerived> &other)
109 other.derived().evalTo(derived());
110 return derived();
113 template<typename Derived>
115 Derived& DenseBase<Derived>::operator+=(const EigenBase<OtherDerived> &other)
117 other.derived().addTo(derived());
118 return derived();
121 template<typename Derived>
123 Derived& DenseBase<Derived>::operator-=(const EigenBase<OtherDerived> &other)
125 other.derived().subTo(derived());
126 return derived();