25 #ifndef EIGEN_ARRAYBASE_H
26 #define EIGEN_ARRAYBASE_H
58 #ifndef EIGEN_PARSED_BY_DOXYGEN
62 typedef ArrayBase Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl;
64 using internal::special_scalar_op_base<Derived,typename internal::traits<Derived>::Scalar,
67 typedef typename internal::traits<Derived>::StorageKind
StorageKind;
68 typedef typename internal::traits<Derived>::Index
Index;
69 typedef typename internal::traits<Derived>::Scalar
Scalar;
70 typedef typename internal::packet_traits<Scalar>::type
PacketScalar;
85 using Base::const_cast_derived;
91 using Base::lazyAssign;
92 using Base::operator=;
93 using Base::operator+=;
94 using Base::operator-=;
95 using Base::operator*=;
96 using Base::operator/=;
100 #endif // not EIGEN_PARSED_BY_DOXYGEN
102 #ifndef EIGEN_PARSED_BY_DOXYGEN
109 internal::traits<Derived>::RowsAtCompileTime,
110 internal::traits<Derived>::ColsAtCompileTime,
112 internal::traits<Derived>::MaxRowsAtCompileTime,
113 internal::traits<Derived>::MaxColsAtCompileTime
119 #endif // not EIGEN_PARSED_BY_DOXYGEN
121 #define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::ArrayBase
122 # include "../plugins/CommonCwiseUnaryOps.h"
123 # include "../plugins/MatrixCwiseUnaryOps.h"
124 # include "../plugins/ArrayCwiseUnaryOps.h"
125 # include "../plugins/CommonCwiseBinaryOps.h"
126 # include "../plugins/MatrixCwiseBinaryOps.h"
127 # include "../plugins/ArrayCwiseBinaryOps.h"
128 # ifdef EIGEN_ARRAYBASE_PLUGIN
129 # include EIGEN_ARRAYBASE_PLUGIN
131 #undef EIGEN_CURRENT_STORAGE_BASE_CLASS
138 return internal::assign_selector<Derived,Derived>::run(derived(), other.derived());
142 {
return *
this = derived() + scalar; }
144 {
return *
this = derived() - scalar; }
146 template<
typename OtherDerived>
148 template<
typename OtherDerived>
151 template<
typename OtherDerived>
154 template<
typename OtherDerived>
179 {
EIGEN_STATIC_ASSERT(std::ptrdiff_t(
sizeof(
typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES);
return *
this;}
182 {
EIGEN_STATIC_ASSERT(std::ptrdiff_t(
sizeof(
typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES);
return *
this;}
189 template<
typename Derived>
190 template<
typename OtherDerived>
195 tmp = other.derived();
203 template<
typename Derived>
204 template<
typename OtherDerived>
209 tmp = other.derived();
217 template<
typename Derived>
218 template<
typename OtherDerived>
223 tmp = other.derived();
231 template<
typename Derived>
232 template<
typename OtherDerived>
237 tmp = other.derived();
243 #endif // EIGEN_ARRAYBASE_H