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
74 return int(Derived::ColsAtCompileTime) == 1 ? 0
75 : int(Derived::RowsAtCompileTime) == 1 ? inner
97 && col >= 0 && col < cols());
98 return derived().coeff(row, col);
103 return coeff(rowIndexByOuterInner(outer, inner),
104 colIndexByOuterInner(outer, inner));
114 && col >= 0 && col < cols());
115 return derived().coeff(row, col);
137 return derived().coeff(index);
152 #ifndef EIGEN2_SUPPORT 154 THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD)
157 return derived().coeff(index);
174 return derived().coeff(index);
180 x()
const {
return (*
this)[0]; }
185 y()
const {
return (*
this)[1]; }
190 z()
const {
return (*
this)[2]; }
195 w()
const {
return (*
this)[3]; }
207 template<
int LoadMode>
211 && col >= 0 && col < cols());
212 return derived().template packet<LoadMode>(
row,
col);
217 template<
int LoadMode>
220 return packet<LoadMode>(rowIndexByOuterInner(outer, inner),
221 colIndexByOuterInner(outer, inner));
234 template<
int LoadMode>
238 return derived().template packet<LoadMode>(index);
248 void coeffRefByOuterInner();
250 void writePacketByOuterInner();
252 void copyCoeffByOuterInner();
254 void copyPacketByOuterInner();
273 template<
typename Derived>
291 using Base::rowIndexByOuterInner;
292 using Base::colIndexByOuterInner;
293 using Base::operator[];
294 using Base::operator();
317 && col >= 0 && col < cols());
318 return derived().coeffRef(row, col);
324 return coeffRef(rowIndexByOuterInner(outer, inner),
325 colIndexByOuterInner(outer, inner));
337 && col >= 0 && col < cols());
338 return derived().coeffRef(row, col);
361 return derived().coeffRef(index);
374 #ifndef EIGEN2_SUPPORT 376 THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD)
379 return derived().coeffRef(index);
395 return derived().coeffRef(index);
401 x() {
return (*
this)[0]; }
406 y() {
return (*
this)[1]; }
411 z() {
return (*
this)[2]; }
416 w() {
return (*
this)[3]; }
428 template<
int StoreMode>
433 && col >= 0 && col < cols());
434 derived().template writePacket<StoreMode>(
row,
col,val);
439 template<
int StoreMode>
443 writePacket<StoreMode>(rowIndexByOuterInner(outer, inner),
444 colIndexByOuterInner(outer, inner),
457 template<
int StoreMode>
462 derived().template writePacket<StoreMode>(index,val);
465 #ifndef EIGEN_PARSED_BY_DOXYGEN 475 template<
typename OtherDerived>
479 && col >= 0 && col < cols());
480 derived().coeffRef(row, col) = other.derived().coeff(row, col);
491 template<
typename OtherDerived>
495 derived().coeffRef(index) = other.derived().coeff(index);
499 template<
typename OtherDerived>
502 const Index row = rowIndexByOuterInner(outer,inner);
503 const Index col = colIndexByOuterInner(outer,inner);
505 derived().copyCoeff(row, col, other);
516 template<
typename OtherDerived,
int StoreMode,
int LoadMode>
520 && col >= 0 && col < cols());
521 derived().template writePacket<StoreMode>(
row,
col,
522 other.derived().template packet<LoadMode>(
row,
col));
533 template<
typename OtherDerived,
int StoreMode,
int LoadMode>
537 derived().template writePacket<StoreMode>(index,
538 other.derived().template packet<LoadMode>(index));
542 template<
typename OtherDerived,
int StoreMode,
int LoadMode>
545 const Index row = rowIndexByOuterInner(outer,inner);
546 const Index col = colIndexByOuterInner(outer,inner);
548 derived().template copyPacket< OtherDerived, StoreMode, LoadMode>(
row,
col, other);
565 template<
typename Derived>
586 return derived().innerStride();
596 return derived().outerStride();
602 return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
611 return Derived::IsRowMajor ? outerStride() : innerStride();
620 return Derived::IsRowMajor ? innerStride() : outerStride();
635 template<
typename Derived>
657 return derived().innerStride();
667 return derived().outerStride();
673 return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
682 return Derived::IsRowMajor ? outerStride() : innerStride();
691 return Derived::IsRowMajor ? innerStride() : outerStride();
697 template<
typename Derived,
bool JustReturnZero>
700 static inline typename Derived::Index
run(
const Derived&)
704 template<
typename Derived>
707 static inline typename Derived::Index
run(
const Derived& m)
718 template<
typename Derived>
726 template<typename Derived, bool HasDirectAccess = has_direct_access<Derived>::ret>
732 template<
typename Derived>
738 template<typename Derived, bool HasDirectAccess = has_direct_access<Derived>::ret>
744 template<
typename Derived>
754 #endif // EIGEN_DENSECOEFFSBASE_H EIGEN_STRONG_INLINE CoeffReturnType y() const
EIGEN_STRONG_INLINE Scalar & operator[](Index index)
EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
EIGEN_STRONG_INLINE Scalar & operator()(Index index)
#define EIGEN_STRONG_INLINE
USING_NAMESPACE_ACADO typedef TaylorVariable< Interval > T
EIGEN_STRONG_INLINE CoeffReturnType coeffByOuterInner(Index outer, Index inner) const
EIGEN_STRONG_INLINE Scalar & w()
EIGEN_STRONG_INLINE Scalar & z()
EIGEN_STRONG_INLINE CoeffReturnType operator[](Index index) const
EigenBase< Derived > Base
const unsigned int DirectAccessBit
EIGEN_STRONG_INLINE CoeffReturnType z() const
EIGEN_STRONG_INLINE PacketReturnType packet(Index row, Index col) const
EIGEN_STRONG_INLINE void copyPacket(Index index, const DenseBase< OtherDerived > &other)
const unsigned int LvalueBit
internal::traits< Derived >::Index Index
NumTraits< Scalar >::Real RealScalar
NumTraits< Scalar >::Real RealScalar
EIGEN_STRONG_INLINE CoeffReturnType operator()(Index row, Index col) const
iterative scaling algorithm to equilibrate rows and column norms in matrices
internal::packet_traits< Scalar >::type PacketScalar
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
#define eigen_internal_assert(x)
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
internal::traits< Derived >::StorageKind StorageKind
EIGEN_STRONG_INLINE void copyPacket(Index row, Index col, const DenseBase< OtherDerived > &other)
const unsigned int RowMajorBit
Base class for all dense matrices, vectors, and arrays.
NumTraits< Scalar >::Real RealScalar
EIGEN_STRONG_INLINE Scalar & y()
EIGEN_STRONG_INLINE Scalar & operator()(Index row, Index col)
DenseCoeffsBase< Derived, ReadOnlyAccessors > Base
EIGEN_STRONG_INLINE CoeffReturnType w() const
EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
EIGEN_STRONG_INLINE Index rowIndexByOuterInner(Index outer, Index inner) const
internal::traits< Derived >::Index Index
const unsigned int AlignedBit
internal::traits< Derived >::Index Index
Index outerStride() const
conditional< is_arithmetic< T >::value, T, typename add_const_on_value_type< T >::type >::type type
EIGEN_STRONG_INLINE void copyCoeff(Index index, const DenseBase< OtherDerived > &other)
EIGEN_STRONG_INLINE PacketReturnType packetByOuterInner(Index outer, Index inner) const
internal::add_const_on_value_type_if_arithmetic< typename internal::packet_traits< Scalar >::type >::type PacketReturnType
EIGEN_STRONG_INLINE Scalar & x()
internal::traits< Derived >::Scalar Scalar
Index outerStride() const
EIGEN_STRONG_INLINE PacketReturnType packet(Index index) const
EIGEN_STRONG_INLINE CoeffReturnType x() const
internal::packet_traits< Scalar >::type PacketScalar
static Derived::Index run(const Derived &m)
EIGEN_STRONG_INLINE Index colIndexByOuterInner(Index outer, Index inner) const
internal::traits< Derived >::Scalar Scalar
DenseCoeffsBase< Derived, WriteAccessors > Base
static Derived::Index run(const Derived &)
Index innerStride() const
EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
internal::traits< Derived >::Scalar Scalar
EIGEN_STRONG_INLINE Scalar & coeffRefByOuterInner(Index outer, Index inner)
Base class providing read-only coefficient access to matrices and arrays.
Index innerStride() const
DenseCoeffsBase< Derived, ReadOnlyAccessors > Base
EIGEN_STRONG_INLINE void copyCoeff(Index row, Index col, const DenseBase< OtherDerived > &other)
internal::traits< Derived >::StorageKind StorageKind
internal::traits< Derived >::Index Index
Base class providing read/write coefficient access to matrices and arrays.
EIGEN_STRONG_INLINE void copyPacketByOuterInner(Index outer, Index inner, const DenseBase< OtherDerived > &other)
static Derived::Index first_aligned(const Derived &m)
EIGEN_STRONG_INLINE CoeffReturnType operator()(Index index) const
internal::traits< Derived >::Scalar Scalar
EIGEN_STRONG_INLINE void copyCoeffByOuterInner(Index outer, Index inner, const DenseBase< OtherDerived > &other)