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
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 
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)