Go to the documentation of this file.
10 #ifndef EIGEN_DENSECOEFFSBASE_H
11 #define EIGEN_DENSECOEFFSBASE_H
33 template<
typename Derived>
66 return int(Derived::RowsAtCompileTime) == 1 ? 0
67 :
int(Derived::ColsAtCompileTime) == 1 ? inner
75 return int(Derived::ColsAtCompileTime) == 1 ? 0
76 :
int(Derived::RowsAtCompileTime) == 1 ? inner
99 &&
col >= 0 &&
col < cols());
106 return coeff(rowIndexByOuterInner(outer, inner),
107 colIndexByOuterInner(outer, inner));
118 &&
col >= 0 &&
col < cols());
142 THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS)
161 THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD)
188 x()
const {
return (*
this)[0]; }
196 EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=2, OUT_OF_RANGE_ACCESS);
206 EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=3, OUT_OF_RANGE_ACCESS);
216 EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=4, OUT_OF_RANGE_ACCESS);
230 template<
int LoadMode>
240 template<
int LoadMode>
243 return packet<LoadMode>(rowIndexByOuterInner(outer, inner),
244 colIndexByOuterInner(outer, inner));
257 template<
int LoadMode>
261 THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS)
274 void coeffRefByOuterInner();
276 void writePacketByOuterInner();
278 void copyCoeffByOuterInner();
280 void copyPacketByOuterInner();
299 template<
typename Derived>
316 using Base::rowIndexByOuterInner;
317 using Base::colIndexByOuterInner;
318 using Base::operator[];
319 using Base::operator();
343 &&
col >= 0 &&
col < cols());
351 return coeffRef(rowIndexByOuterInner(outer, inner),
352 colIndexByOuterInner(outer, inner));
365 &&
col >= 0 &&
col < cols());
366 return coeffRef(
row,
col);
390 THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS)
407 THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD)
409 return coeffRef(index);
426 return coeffRef(index);
433 x() {
return (*
this)[0]; }
441 EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=2, OUT_OF_RANGE_ACCESS);
451 EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=3, OUT_OF_RANGE_ACCESS);
461 EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=4, OUT_OF_RANGE_ACCESS);
477 template<
typename Derived>
498 return derived().innerStride();
509 return derived().outerStride();
515 return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
525 return Derived::IsRowMajor ? outerStride() : innerStride();
535 return Derived::IsRowMajor ? innerStride() : outerStride();
550 template<
typename Derived>
572 return derived().innerStride();
583 return derived().outerStride();
589 return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
599 return Derived::IsRowMajor ? outerStride() : innerStride();
609 return Derived::IsRowMajor ? innerStride() : outerStride();
615 template<
int Alignment,
typename Derived,
bool JustReturnZero>
622 template<
int Alignment,
typename Derived>
627 return internal::first_aligned<Alignment>(m.data(), m.size());
638 template<
int Alignment,
typename Derived>
645 template<
typename Derived>
659 template<
typename Derived>
671 template<
typename Derived>
681 #endif // EIGEN_DENSECOEFFSBASE_H
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType operator[](Index index) const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType operator()(Index index) const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType w() const
internal::packet_traits< Scalar >::type PacketScalar
Eigen::Index Index
The interface type of indices.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType z() const
NumTraits< Scalar >::Real RealScalar
EIGEN_DEVICE_FUNC ColXpr col(Index i)
This is the const version of col().
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
const unsigned int RowMajorBit
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index colIndexByOuterInner(Index outer, Index inner) const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeffByOuterInner(Index outer, Index inner) const
EIGEN_DEVICE_FUNC Index outerStride() const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRefByOuterInner(Index outer, Index inner)
EIGEN_STRONG_INLINE PacketReturnType packet(Index row, Index col) const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & operator()(Index row, Index col)
Base class providing read-only coefficient access to matrices and arrays.
EIGEN_DEVICE_FUNC Index innerStride() const
#define eigen_internal_assert(x)
const unsigned int DirectAccessBit
EIGEN_STRONG_INLINE PacketReturnType packetByOuterInner(Index outer, Index inner) const
internal::packet_traits< Scalar >::type PacketScalar
conditional< is_arithmetic< T >::value, T, typename add_const_on_value_type< T >::type >::type type
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType y() const
static Index run(const Derived &)
const unsigned int LvalueBit
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rowIndexByOuterInner(Index outer, Index inner) const
internal::traits< Derived >::Scalar Scalar
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType x() const
EIGEN_DEVICE_FUNC Index colStride() const
EIGEN_DEVICE_FUNC RowXpr row(Index i)
This is the const version of row(). */.
#define EIGEN_STRONG_INLINE
static Index first_aligned(const DenseBase< Derived > &m)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & operator()(Index index)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & x()
internal::conditional< bool(internal::traits< Derived >::Flags &LvalueBit), const Scalar &, typename internal::conditional< internal::is_arithmetic< Scalar >::value, Scalar, const Scalar >::type >::type CoeffReturnType
DenseCoeffsBase< Derived, WriteAccessors > Base
NumTraits< Scalar >::Real RealScalar
EIGEN_STRONG_INLINE PacketReturnType packet(Index index) const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & y()
EIGEN_DEVICE_FUNC Index rowStride() const
EIGEN_DEVICE_FUNC Index outerStride() const
DenseCoeffsBase< Derived, ReadOnlyAccessors > Base
internal::traits< Derived >::Scalar Scalar
const unsigned int LinearAccessBit
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
internal::traits< Derived >::Scalar Scalar
NumTraits< Scalar >::Real RealScalar
EigenBase< Derived > Base
Base class for all dense matrices, vectors, and arrays.
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & operator[](Index index)
EIGEN_DEVICE_FUNC Index innerStride() const
EIGEN_DEVICE_FUNC Index colStride() const
internal::traits< Derived >::StorageKind StorageKind
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & z()
static constexpr size_t size(Tuple< Args... > &)
Provides access to the number of elements in a tuple as a compile-time constant expression.
static Index first_default_aligned(const DenseBase< Derived > &m)
internal::traits< Derived >::StorageKind StorageKind
internal::traits< Derived >::Scalar Scalar
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & w()
DenseCoeffsBase< Derived, ReadOnlyAccessors > Base
EIGEN_DEVICE_FUNC Index rowStride() const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType operator()(Index row, Index col) const
internal::add_const_on_value_type_if_arithmetic< typename internal::packet_traits< Scalar >::type >::type PacketReturnType
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Base class providing read/write coefficient access to matrices and arrays.
static Index run(const Derived &m)
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
control_box_rst
Author(s): Christoph Rösmann
autogenerated on Wed Mar 2 2022 00:05:44