16 template<
typename _Scalar,
int _Rows,
int _Cols,
int _Options,
int _MaxRows,
int _MaxCols>
17 struct traits<
Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > :
traits<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
44 template<
typename _Scalar,
int _Rows,
int _Cols,
int _Options,
int _MaxRows,
int _MaxCols>
46 :
public PlainObjectBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
53 enum { Options = _Options };
57 template <
typename Derived,
typename OtherDerived,
bool IsVector>
60 using Base::m_storage;
74 template<
typename OtherDerived>
78 return Base::operator=(other);
105 template<
typename OtherDerived>
109 return Base::_set(other);
118 return Base::_set(other);
134 Base::_check_template_params();
138 #ifndef EIGEN_PARSED_BY_DOXYGEN 143 : Base(
internal::constructor_without_unaligned_array_assert())
145 Base::_check_template_params();
150 #if EIGEN_HAS_RVALUE_REFERENCES 153 : Base(std::move(other))
155 Base::_check_template_params();
165 #ifndef EIGEN_PARSED_BY_DOXYGEN 170 Base::_check_template_params();
171 Base::template _init1<T>(
x);
174 template<
typename T0,
typename T1>
178 Base::_check_template_params();
179 this->
template _init2<T0,T1>(val0, val1);
208 Base::_check_template_params();
210 m_storage.data()[0] = val0;
211 m_storage.data()[1] = val1;
212 m_storage.data()[2] = val2;
218 Base::_check_template_params();
220 m_storage.data()[0] = val0;
221 m_storage.data()[1] = val1;
222 m_storage.data()[2] = val2;
223 m_storage.data()[3] = val3;
237 template<
typename OtherDerived>
241 PrivateType>::
type = PrivateType())
242 : Base(other.derived())
248 #ifdef EIGEN_ARRAY_PLUGIN 249 #include EIGEN_ARRAY_PLUGIN 254 template<
typename MatrixType,
typename OtherDerived,
bool SwapPo
inters>
277 #define EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix) \ 279 typedef Array<Type, Size, Size> Array##SizeSuffix##SizeSuffix##TypeSuffix; \ 281 typedef Array<Type, Size, 1> Array##SizeSuffix##TypeSuffix; 283 #define EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, Size) \ 285 typedef Array<Type, Size, Dynamic> Array##Size##X##TypeSuffix; \ 287 typedef Array<Type, Dynamic, Size> Array##X##Size##TypeSuffix; 289 #define EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \ 290 EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 2, 2) \ 291 EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 3, 3) \ 292 EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 4, 4) \ 293 EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \ 294 EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \ 295 EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \ 296 EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 4) 304 #undef EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES 305 #undef EIGEN_MAKE_ARRAY_TYPEDEFS 307 #undef EIGEN_MAKE_ARRAY_TYPEDEFS_LARGE 309 #define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \ 310 using Eigen::Matrix##SizeSuffix##TypeSuffix; \ 311 using Eigen::Vector##SizeSuffix##TypeSuffix; \ 312 using Eigen::RowVector##SizeSuffix##TypeSuffix; 314 #define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(TypeSuffix) \ 315 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \ 316 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \ 317 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \ 318 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \ 320 #define EIGEN_USING_ARRAY_TYPEDEFS \ 321 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(i) \ 322 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(f) \ 323 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(d) \ 324 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cf) \ 325 EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cd) 329 #endif // EIGEN_ARRAY_H
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array(const EigenBase< OtherDerived > &other, typename internal::enable_if< internal::is_convertible< typename OtherDerived::Scalar, Scalar >::value, PrivateType >::type=PrivateType())
internal::traits< Derived >::Scalar Scalar
#define EIGEN_STRONG_INLINE
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array(const Scalar &val0, const Scalar &val1, const Scalar &val2)
ArrayBase< Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > > XprBase
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array & operator=(const Scalar &value)
Namespace containing all symbols from the Eigen library.
#define EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(Type, TypeSuffix)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array & operator=(const EigenBase< OtherDerived > &other)
Base class for all dense matrices, vectors, and arrays.
Base::PlainObject PlainObject
#define EIGEN_NOEXCEPT_IF(x)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array(const Array &other)
EIGEN_DEVICE_FUNC Index outerStride() const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array(const T &x)
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
EIGEN_DEVICE_FUNC Array(internal::constructor_without_unaligned_array_assert)
Base class for all 1D and 2D array, and related expressions.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array(const Scalar &val0, const Scalar &val1, const Scalar &val2, const Scalar &val3)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array(const T0 &val0, const T1 &val1)
const mpreal dim(const mpreal &a, const mpreal &b, mp_rnd_t r=mpreal::get_default_rnd())
General-purpose arrays with easy API for coefficient-wise operations.
#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array & operator=(const DenseBase< OtherDerived > &other)
#define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array & operator=(const Array &other)
Pose2 T1(M_PI/4.0, Point2(sqrt(0.5), sqrt(0.5)))
EIGEN_DEVICE_FUNC Index innerStride() const
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
PlainObjectBase< Array > Base
#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Array()