Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef EIGEN_LGSM_LIE_MACROS_H
00011 #define EIGEN_LGSM_LIE_MACROS_H
00012
00013 #define LIE_INHERIT_MATRIX_BASE(r, c)\
00014 inline Index rows() const { return r;} \
00015 inline Index cols() const { return c;} \
00016 \
00017 inline Scalar& coeffRef(Index row, Index col) { return this->get().coeffRef(row, col); } \
00018 inline const Scalar& coeff(Index row, Index col) const { return this->get().coeff(row, col); } \
00019 inline Scalar& coeffRef(Index index) { return this->get().coeffRef(index); } \
00020 inline const Scalar& coeff(Index index) const { return this->get().coeff(index); } \
00021 \
00022 template<int LoadMode> inline PacketScalar packet(Index index) const { return derived().get().template packet<LoadMode> (index);} \
00023 template<int LoadMode> inline PacketScalar packet(Index row, Index col) const { return derived().get().template packet<LoadMode> (row, col);} \
00024 template<int LoadMode> inline void writePacket(Index row, Index col, const PacketScalar& x) { derived().get().template writePacket<LoadMode>(row, col, x);} \
00025 template<int LoadMode> inline void writePacket(Index index, const PacketScalar& x) { derived().get().template writePacket<LoadMode>(index, x);} \
00026 \
00027 inline Index innerStride() const { return 1; } \
00028 inline Index outerStride() const { return this->innerSize(); } \
00029 \
00030 EIGEN_STRONG_INLINE const Scalar* data() const { return get().data(); } \
00031 EIGEN_STRONG_INLINE Scalar* data() { return get().data(); } \
00032
00033 #endif