11 #ifndef EIGEN_MATRIX_H 12 #define EIGEN_MATRIX_H 17 template<
typename _Scalar,
int _Rows,
int _Cols,
int _Options,
int _MaxRows,
int _MaxCols>
18 struct traits<
Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
26 max_size = is_dynamic_size_storage ?
Dynamic : _MaxRows*_MaxCols,
28 actual_alignment = ((_Options&
DontAlign)==0) ? default_alignment : 0,
39 RowsAtCompileTime = _Rows,
40 ColsAtCompileTime = _Cols,
41 MaxRowsAtCompileTime = _MaxRows,
42 MaxColsAtCompileTime = _MaxCols,
45 InnerStrideAtCompileTime = 1,
46 OuterStrideAtCompileTime = (Options&
RowMajor) ? ColsAtCompileTime : RowsAtCompileTime,
50 Alignment = actual_alignment
177 template<
typename _Scalar,
int _Rows,
int _Cols,
int _Options,
int _MaxRows,
int _MaxCols>
179 :
public PlainObjectBase<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
188 enum { Options = _Options };
195 using Base::coeffRef;
208 return Base::_set(other);
221 template<
typename OtherDerived>
225 return Base::_set(other);
234 template<
typename OtherDerived>
238 return Base::operator=(other);
241 template<
typename OtherDerived>
245 return Base::operator=(func);
261 Base::_check_template_params();
268 :
Base(
internal::constructor_without_unaligned_array_assert())
271 #if EIGEN_HAS_RVALUE_REFERENCES 274 :
Base(std::move(other))
276 Base::_check_template_params();
278 Base::_set_noalias(other);
288 #ifndef EIGEN_PARSED_BY_DOXYGEN 295 Base::_check_template_params();
296 Base::template _init1<T>(x);
299 template<
typename T0,
typename T1>
303 Base::_check_template_params();
304 Base::template _init2<T0,T1>(x,
y);
349 Base::_check_template_params();
351 m_storage.data()[0] = x;
352 m_storage.data()[1] =
y;
353 m_storage.data()[2] = z;
359 Base::_check_template_params();
361 m_storage.data()[0] = x;
362 m_storage.data()[1] =
y;
363 m_storage.data()[2] = z;
364 m_storage.data()[3] = w;
376 template<
typename OtherDerived>
379 :
Base(other.derived())
387 template<
typename OtherDerived>
390 template<
typename OtherDerived>
395 #ifdef EIGEN_MATRIX_PLUGIN 396 #include EIGEN_MATRIX_PLUGIN 400 template <
typename Derived,
typename OtherDerived,
bool IsVector>
403 using Base::m_storage;
426 #define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix) \ 428 typedef Matrix<Type, Size, Size> Matrix##SizeSuffix##TypeSuffix; \ 430 typedef Matrix<Type, Size, 1> Vector##SizeSuffix##TypeSuffix; \ 432 typedef Matrix<Type, 1, Size> RowVector##SizeSuffix##TypeSuffix; 434 #define EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, Size) \ 436 typedef Matrix<Type, Size, Dynamic> Matrix##Size##X##TypeSuffix; \ 438 typedef Matrix<Type, Dynamic, Size> Matrix##X##Size##TypeSuffix; 440 #define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \ 441 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 2, 2) \ 442 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 3, 3) \ 443 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 4, 4) \ 444 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \ 445 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \ 446 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \ 447 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 4) 455 #undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES 456 #undef EIGEN_MAKE_TYPEDEFS 457 #undef EIGEN_MAKE_FIXED_TYPEDEFS 461 #endif // EIGEN_MATRIX_H find_best_packet_helper< Size, typename packet_traits< T >::type >::type type
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix(const T &x)
EIGEN_DEVICE_FUNC Matrix(internal::constructor_without_unaligned_array_assert)
internal::traits< Derived >::Scalar Scalar
#define EIGEN_STRONG_INLINE
Base::PlainObject PlainObject
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix(const Scalar &x, const Scalar &y, const Scalar &z)
Constructs an initialized 3D vector with given coefficients.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix(const Matrix &other)
Copy constructor.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix(const T0 &x, const T1 &y)
const unsigned int DirectAccessBit
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
static constexpr size_t size(Tuple< Args... > &)
Provides access to the number of elements in a tuple as a compile-time constant expression.
const unsigned int RowMajorBit
Base class for all dense matrices, vectors, and arrays.
const unsigned int PacketAccessBit
#define EIGEN_NOEXCEPT_IF(x)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix & operator=(const ReturnByValue< OtherDerived > &func)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix()
Default constructor.
EIGEN_DEVICE_FUNC Index outerStride() const
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Common base class for compact rotation representations.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix(const EigenBase< OtherDerived > &other)
Copy constructor for generic expressions.
const mpreal dim(const mpreal &a, const mpreal &b, mp_rnd_t r=mpreal::get_default_rnd())
find_best_packet< _Scalar, size >::type PacketScalar
#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
#define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix & operator=(const EigenBase< OtherDerived > &other)
Copies the generic expression other into *this.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix & operator=(const DenseBase< OtherDerived > &other)
The matrix class, also used for vectors and row-vectors.
#define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix)
PlainObjectBase< Matrix > Base
Base class typedef.
EIGEN_DEVICE_FUNC Index innerStride() const
const unsigned int LinearAccessBit
Eigen::Index StorageIndex
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Matrix(const Scalar &x, const Scalar &y, const Scalar &z, const Scalar &w)
Constructs an initialized 4D vector with given coefficients.
#define EIGEN_UNALIGNED_VECTORIZE
#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE)