Base class for Map and Block expression with direct access. More...
Public Types | |
enum | { IsRowMajor, PacketAccess, RowsAtCompileTime, ColsAtCompileTime, SizeAtCompileTime } |
typedef ei_traits< Derived > ::AlignedDerivedType | AlignedDerivedType |
typedef MatrixBase< Derived > | Base |
typedef Base::PacketScalar | PacketScalar |
typedef ei_traits< Derived > ::Scalar | Scalar |
Public Member Functions | |
const Scalar & | coeff (int row, int col) const |
const Scalar | coeff (int index) const |
Scalar & | coeffRef (int row, int col) |
Scalar & | coeffRef (int index) |
int | cols () const |
const Scalar * | data () const |
AlignedDerivedType | forceAligned () |
MapBase (const Scalar *data) | |
MapBase (const Scalar *data, int size) | |
MapBase (const Scalar *data, int rows, int cols) | |
Derived & | operator*= (const Scalar &other) |
template<typename OtherDerived > | |
Derived & | operator+= (const MatrixBase< OtherDerived > &other) |
template<typename OtherDerived > | |
Derived & | operator-= (const MatrixBase< OtherDerived > &other) |
Derived & | operator/= (const Scalar &other) |
Derived & | operator= (const MapBase &other) |
template<typename OtherDerived > | |
Derived & | operator= (const MatrixBase< OtherDerived > &other) |
template<int LoadMode> | |
PacketScalar | packet (int row, int col) const |
template<int LoadMode> | |
PacketScalar | packet (int index) const |
int | rows () const |
int | stride () const |
template<int StoreMode> | |
void | writePacket (int row, int col, const PacketScalar &x) |
template<int StoreMode> | |
void | writePacket (int index, const PacketScalar &x) |
Protected Attributes | |
const ei_int_if_dynamic < ColsAtCompileTime > | m_cols |
const Scalar *EIGEN_RESTRICT | m_data |
const ei_int_if_dynamic < RowsAtCompileTime > | m_rows |
Base class for Map and Block expression with direct access.
Expression classes inheriting MapBase must define the constant PacketAccess
, and type AlignedDerivedType
in their respective ei_traits<> specialization structure. The value of PacketAccess
can be either:
AlignedDerivedType
should correspond to the equivalent expression type with PacketAccess
being ForceAligned
.const Scalar& coeff | ( | int | row, |
int | col | ||
) | const [inline] |
Short version: don't use this function, use operator()(int,int) const instead.
Long version: this function is similar to operator()(int,int) const , but without the assertion. Use this for limiting the performance cost of debugging code when doing repeated coefficient access. Only use this when it is guaranteed that the parameters row and col are in range.
If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this function equivalent to operator()(int,int) const .
Reimplemented from MatrixBase< Derived >.
const Scalar coeff | ( | int | index | ) | const [inline] |
Short version: don't use this function, use operator[](int) const instead.
Long version: this function is similar to operator[](int) const , but without the assertion. Use this for limiting the performance cost of debugging code when doing repeated coefficient access. Only use this when it is guaranteed that the parameter index is in range.
If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this function equivalent to operator[](int) const .
Reimplemented from MatrixBase< Derived >.
Scalar& coeffRef | ( | int | row, |
int | col | ||
) | [inline] |
Short version: don't use this function, use operator()(int,int) instead.
Long version: this function is similar to operator()(int,int), but without the assertion. Use this for limiting the performance cost of debugging code when doing repeated coefficient access. Only use this when it is guaranteed that the parameters row and col are in range.
If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this function equivalent to operator()(int,int).
Reimplemented from MatrixBase< Derived >.
Scalar& coeffRef | ( | int | index | ) | [inline] |
Short version: don't use this function, use operator[](int) instead.
Long version: this function is similar to operator[](int), but without the assertion. Use this for limiting the performance cost of debugging code when doing repeated coefficient access. Only use this when it is guaranteed that the parameters row and col are in range.
If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this function equivalent to operator[](int).
Reimplemented from MatrixBase< Derived >.
int cols | ( | void | ) | const [inline] |
Reimplemented from MatrixBase< Derived >.
AlignedDerivedType forceAligned | ( | ) | [inline] |
*this
but having the PacketAccess
constant set to ForceAligned
. Must be reimplemented by the derived class. Derived& operator+= | ( | const MatrixBase< OtherDerived > & | other | ) | [inline] |
replaces *this
by *this
+ other.
*this
Reimplemented from MatrixBase< Derived >.
Derived& operator-= | ( | const MatrixBase< OtherDerived > & | other | ) | [inline] |
replaces *this
by *this
- other.
*this
Reimplemented from MatrixBase< Derived >.
Derived& operator= | ( | const MatrixBase< OtherDerived > & | other | ) | [inline] |
PacketScalar packet | ( | int | row, |
int | col | ||
) | const [inline] |
The LoadMode parameter may have the value Aligned or Unaligned. Its effect is to select the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets starting at an address which is a multiple of the packet size.
Reimplemented from MatrixBase< Derived >.
PacketScalar packet | ( | int | index | ) | const [inline] |
The LoadMode parameter may have the value Aligned or Unaligned. Its effect is to select the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets starting at an address which is a multiple of the packet size.
Reimplemented from MatrixBase< Derived >.
int rows | ( | void | ) | const [inline] |
Reimplemented from MatrixBase< Derived >.
int stride | ( | void | ) | const [inline] |
Reimplemented from MatrixBase< Derived >.
Reimplemented in Map< MatrixType, PacketAccess >.