10 #ifndef EIGEN_ARRAYBASE_H
11 #define EIGEN_ARRAYBASE_H
17 template<
typename ExpressionType>
class MatrixWrapper;
45 #ifndef EIGEN_PARSED_BY_DOXYGEN
49 typedef ArrayBase Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl;
51 typedef typename internal::traits<Derived>::StorageKind
StorageKind;
52 typedef typename internal::traits<Derived>::Scalar
Scalar;
53 typedef typename internal::packet_traits<Scalar>::type
PacketScalar;
57 using Base::RowsAtCompileTime;
58 using Base::ColsAtCompileTime;
59 using Base::SizeAtCompileTime;
60 using Base::MaxRowsAtCompileTime;
61 using Base::MaxColsAtCompileTime;
62 using Base::MaxSizeAtCompileTime;
63 using Base::IsVectorAtCompileTime;
67 using Base::const_cast_derived;
73 using Base::lazyAssign;
74 using Base::operator-;
75 using Base::operator=;
76 using Base::operator+=;
77 using Base::operator-=;
78 using Base::operator*=;
79 using Base::operator/=;
85 #ifndef EIGEN_PARSED_BY_DOXYGEN
92 #define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::ArrayBase
93 #define EIGEN_DOC_UNARY_ADDONS(X,Y)
94 # include "../plugins/MatrixCwiseUnaryOps.h"
95 # include "../plugins/ArrayCwiseUnaryOps.h"
96 # include "../plugins/CommonCwiseBinaryOps.h"
97 # include "../plugins/MatrixCwiseBinaryOps.h"
98 # include "../plugins/ArrayCwiseBinaryOps.h"
99 # ifdef EIGEN_ARRAYBASE_PLUGIN
100 # include EIGEN_ARRAYBASE_PLUGIN
102 #undef EIGEN_CURRENT_STORAGE_BASE_CLASS
103 #undef EIGEN_DOC_UNARY_ADDONS
126 template<
typename OtherDerived>
129 template<
typename OtherDerived>
133 template<
typename OtherDerived>
137 template<
typename OtherDerived>
168 {
EIGEN_STATIC_ASSERT(std::ptrdiff_t(
sizeof(
typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES);
return *
this;}
171 {
EIGEN_STATIC_ASSERT(std::ptrdiff_t(
sizeof(
typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES);
return *
this;}
178 template<
typename Derived>
179 template<
typename OtherDerived>
183 call_assignment(derived(), other.
derived(), internal::sub_assign_op<Scalar,typename OtherDerived::Scalar>());
191 template<
typename Derived>
192 template<
typename OtherDerived>
196 call_assignment(derived(), other.
derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
204 template<
typename Derived>
205 template<
typename OtherDerived>
209 call_assignment(derived(), other.
derived(), internal::mul_assign_op<Scalar,typename OtherDerived::Scalar>());
217 template<
typename Derived>
218 template<
typename OtherDerived>
222 call_assignment(derived(), other.
derived(), internal::div_assign_op<Scalar,typename OtherDerived::Scalar>());
#define EIGEN_DEFAULT_COPY_CONSTRUCTOR(CLASS)
#define EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR(Derived)
#define EIGEN_DEVICE_FUNC
#define EIGEN_STATIC_ASSERT(X, MSG)
Base class for all 1D and 2D array, and related expressions.
ArrayBase< Derived > & array()
Derived & operator/=(const ArrayBase< OtherDerived > &other)
ArrayBase(const ArrayBase< OtherDerived > &)
Derived & operator+=(const MatrixBase< OtherDerived > &)
Derived & operator-=(const Scalar &scalar)
const ArrayBase< Derived > & array() const
Derived & operator*=(const ArrayBase< OtherDerived > &other)
Derived & operator=(const Scalar &value)
Derived & operator=(const ArrayBase &other)
const MatrixWrapper< const Derived > matrix() const
Derived & operator+=(const ArrayBase< OtherDerived > &other)
Derived & operator-=(const ArrayBase< OtherDerived > &other)
Derived & operator+=(const Scalar &scalar)
Derived & operator-=(const MatrixBase< OtherDerived > &)
MatrixWrapper< Derived > matrix()
Generic expression of a matrix where all coefficients are defined by a functor.
Base class for all dense matrices, vectors, and arrays.
DenseCoeffsBase< Derived, internal::accessors_level< Derived >::value > Base
NumTraits< Scalar >::Real RealScalar
std::conditional_t< internal::is_same< typename internal::traits< Derived >::XprKind, MatrixXpr >::value, PlainMatrix, PlainArray > PlainObject
The plain matrix or array type corresponding to this expression.
internal::traits< Derived >::StorageKind StorageKind
Base::CoeffReturnType CoeffReturnType
internal::traits< Derived >::Scalar Scalar
CoeffReturnType value() const
internal::find_best_packet< Scalar, SizeAtCompileTime >::type PacketScalar
Base class for all dense matrices, vectors, and expressions.
Expression of an array as a mathematical vector or matrix.
void call_assignment(Dst &dst, const Src &src)
Eigen::Index Index
The interface type of indices.
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.