Shapeworks Studio  2.1
Shape analysis software suite
List of all members | Public Types | Public Member Functions | Friends
Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > Class Template Reference

The matrix class, also used for vectors and row-vectors. More...

#include <Matrix.h>

+ Inheritance diagram for Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >:
+ Collaboration diagram for Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >:

Public Types

enum  { Options = _Options }
 
typedef PlainObjectBase< MatrixBase
 Base class typedef. More...
 
typedef Base::PlainObject PlainObject
 
- Public Types inherited from Eigen::PlainObjectBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
enum  
 
enum  
 
typedef internal::dense_xpr_base< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::type Base
 
typedef internal::traits< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::StorageKind StorageKind
 
typedef internal::traits< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::Index Index
 
typedef internal::traits< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::Scalar Scalar
 
typedef internal::packet_traits< Scalar >::type PacketScalar
 
typedef NumTraits< Scalar >::Real RealScalar
 
typedef Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > DenseType
 
typedef Eigen::Map< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >, Unaligned > MapType
 
typedef const Eigen::Map< const Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >, Unaligned > ConstMapType
 
typedef Eigen::Map< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >, Aligned > AlignedMapType
 
typedef const Eigen::Map< const Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >, Aligned > ConstAlignedMapType
 

Public Member Functions

EIGEN_STRONG_INLINE Matrixoperator= (const Matrix &other)
 Assigns matrices to each other. More...
 
template<typename OtherDerived >
EIGEN_STRONG_INLINE Matrixoperator= (const MatrixBase< OtherDerived > &other)
 
template<typename OtherDerived >
EIGEN_STRONG_INLINE Matrixoperator= (const EigenBase< OtherDerived > &other)
 Copies the generic expression other into *this. More...
 
template<typename OtherDerived >
EIGEN_STRONG_INLINE Matrixoperator= (const ReturnByValue< OtherDerived > &func)
 
EIGEN_STRONG_INLINE Matrix ()
 Default constructor. More...
 
 Matrix (internal::constructor_without_unaligned_array_assert)
 
EIGEN_STRONG_INLINE Matrix (Index dim)
 Constructs a vector or row-vector with given dimension. . More...
 
template<typename T0 , typename T1 >
EIGEN_STRONG_INLINE Matrix (const T0 &x, const T1 &y)
 
EIGEN_STRONG_INLINE Matrix (const Scalar &x, const Scalar &y, const Scalar &z)
 Constructs an initialized 3D vector with given coefficients.
 
EIGEN_STRONG_INLINE Matrix (const Scalar &x, const Scalar &y, const Scalar &z, const Scalar &w)
 Constructs an initialized 4D vector with given coefficients.
 
 Matrix (const Scalar *data)
 
template<typename OtherDerived >
EIGEN_STRONG_INLINE Matrix (const MatrixBase< OtherDerived > &other)
 Constructor copying the value of the expression other.
 
EIGEN_STRONG_INLINE Matrix (const Matrix &other)
 Copy constructor.
 
template<typename OtherDerived >
EIGEN_STRONG_INLINE Matrix (const ReturnByValue< OtherDerived > &other)
 Copy constructor with in-place evaluation.
 
template<typename OtherDerived >
EIGEN_STRONG_INLINE Matrix (const EigenBase< OtherDerived > &other)
 Copy constructor for generic expressions. More...
 
template<typename OtherDerived >
void swap (MatrixBase< OtherDerived > const &other)
 
Index innerStride () const
 
Index outerStride () const
 
template<typename OtherDerived >
 Matrix (const RotationBase< OtherDerived, ColsAtCompileTime > &r)
 Constructs a Dim x Dim rotation matrix from the rotation r. More...
 
template<typename OtherDerived >
Matrixoperator= (const RotationBase< OtherDerived, ColsAtCompileTime > &r)
 
template<typename OtherDerived >
Matrix< _Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols > & operator= (const RotationBase< OtherDerived, ColsAtCompileTime > &r)
 Set a Dim x Dim rotation matrix from the rotation r. More...
 
- Public Member Functions inherited from Eigen::PlainObjectBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
Base & base ()
 
const Base & base () const
 
EIGEN_STRONG_INLINE Index rows () const
 
EIGEN_STRONG_INLINE Index cols () const
 
EIGEN_STRONG_INLINE const Scalar & coeff (Index rowId, Index colId) const
 
EIGEN_STRONG_INLINE const Scalar & coeff (Index index) const
 
EIGEN_STRONG_INLINE Scalar & coeffRef (Index rowId, Index colId)
 
EIGEN_STRONG_INLINE Scalar & coeffRef (Index index)
 
EIGEN_STRONG_INLINE const Scalar & coeffRef (Index rowId, Index colId) const
 
EIGEN_STRONG_INLINE const Scalar & coeffRef (Index index) const
 
EIGEN_STRONG_INLINE PacketScalar packet (Index rowId, Index colId) const
 
EIGEN_STRONG_INLINE PacketScalar packet (Index index) const
 
EIGEN_STRONG_INLINE void writePacket (Index rowId, Index colId, const PacketScalar &val)
 
EIGEN_STRONG_INLINE void writePacket (Index index, const PacketScalar &val)
 
EIGEN_STRONG_INLINE const Scalar * data () const
 
EIGEN_STRONG_INLINE Scalar * data ()
 
EIGEN_STRONG_INLINE void resize (Index nbRows, Index nbCols)
 
void resize (Index size)
 
void resize (NoChange_t, Index nbCols)
 
void resize (Index nbRows, NoChange_t)
 
EIGEN_STRONG_INLINE void resizeLike (const EigenBase< OtherDerived > &_other)
 
EIGEN_STRONG_INLINE void conservativeResize (Index nbRows, Index nbCols)
 
EIGEN_STRONG_INLINE void conservativeResize (Index nbRows, NoChange_t)
 
EIGEN_STRONG_INLINE void conservativeResize (NoChange_t, Index nbCols)
 
EIGEN_STRONG_INLINE void conservativeResize (Index size)
 
EIGEN_STRONG_INLINE void conservativeResizeLike (const DenseBase< OtherDerived > &other)
 
EIGEN_STRONG_INLINE Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & operator= (const PlainObjectBase &other)
 
EIGEN_STRONG_INLINE Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & operator= (const ReturnByValue< OtherDerived > &func)
 
EIGEN_STRONG_INLINE Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & operator= (const EigenBase< OtherDerived > &other)
 
EIGEN_STRONG_INLINE Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & lazyAssign (const DenseBase< OtherDerived > &other)
 
 PlainObjectBase (internal::constructor_without_unaligned_array_assert)
 
EIGEN_STRONG_INLINE PlainObjectBase (Index a_size, Index nbRows, Index nbCols)
 
EIGEN_STRONG_INLINE PlainObjectBase (const EigenBase< OtherDerived > &other)
 
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setConstant (Index size, const Scalar &value)
 
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setConstant (Index rows, Index cols, const Scalar &value)
 
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setZero (Index size)
 
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setZero (Index rows, Index cols)
 
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setOnes (Index size)
 
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setOnes (Index rows, Index cols)
 
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setRandom (Index size)
 
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setRandom (Index rows, Index cols)
 

Friends

template<typename Derived , typename OtherDerived , bool IsVector>
struct internal::conservative_resize_like_impl
 

Additional Inherited Members

- Static Public Member Functions inherited from Eigen::PlainObjectBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
static EIGEN_STRONG_INLINE void _check_template_params ()
 
static ConstMapType Map (const Scalar *data)
 
static MapType Map (Scalar *data)
 
static ConstMapType Map (const Scalar *data, Index size)
 
static MapType Map (Scalar *data, Index size)
 
static ConstMapType Map (const Scalar *data, Index rows, Index cols)
 
static MapType Map (Scalar *data, Index rows, Index cols)
 
static StridedConstMapType< Stride< Outer, Inner > >::type Map (const Scalar *data, const Stride< Outer, Inner > &stride)
 
static StridedMapType< Stride< Outer, Inner > >::type Map (Scalar *data, const Stride< Outer, Inner > &stride)
 
static StridedConstMapType< Stride< Outer, Inner > >::type Map (const Scalar *data, Index size, const Stride< Outer, Inner > &stride)
 
static StridedMapType< Stride< Outer, Inner > >::type Map (Scalar *data, Index size, const Stride< Outer, Inner > &stride)
 
static StridedConstMapType< Stride< Outer, Inner > >::type Map (const Scalar *data, Index rows, Index cols, const Stride< Outer, Inner > &stride)
 
static StridedMapType< Stride< Outer, Inner > >::type Map (Scalar *data, Index rows, Index cols, const Stride< Outer, Inner > &stride)
 
static ConstAlignedMapType MapAligned (const Scalar *data)
 
static AlignedMapType MapAligned (Scalar *data)
 
static ConstAlignedMapType MapAligned (const Scalar *data, Index size)
 
static AlignedMapType MapAligned (Scalar *data, Index size)
 
static ConstAlignedMapType MapAligned (const Scalar *data, Index rows, Index cols)
 
static AlignedMapType MapAligned (Scalar *data, Index rows, Index cols)
 
static StridedConstAlignedMapType< Stride< Outer, Inner > >::type MapAligned (const Scalar *data, const Stride< Outer, Inner > &stride)
 
static StridedAlignedMapType< Stride< Outer, Inner > >::type MapAligned (Scalar *data, const Stride< Outer, Inner > &stride)
 
static StridedConstAlignedMapType< Stride< Outer, Inner > >::type MapAligned (const Scalar *data, Index size, const Stride< Outer, Inner > &stride)
 
static StridedAlignedMapType< Stride< Outer, Inner > >::type MapAligned (Scalar *data, Index size, const Stride< Outer, Inner > &stride)
 
static StridedConstAlignedMapType< Stride< Outer, Inner > >::type MapAligned (const Scalar *data, Index rows, Index cols, const Stride< Outer, Inner > &stride)
 
static StridedAlignedMapType< Stride< Outer, Inner > >::type MapAligned (Scalar *data, Index rows, Index cols, const Stride< Outer, Inner > &stride)
 
- Protected Member Functions inherited from Eigen::PlainObjectBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
EIGEN_STRONG_INLINE void _resize_to_match (const EigenBase< OtherDerived > &other)
 
EIGEN_STRONG_INLINE Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & _set (const DenseBase< OtherDerived > &other)
 Copies the value of the expression other into *this with automatic resizing. More...
 
EIGEN_STRONG_INLINE void _set_selector (const OtherDerived &other, const internal::true_type &)
 
EIGEN_STRONG_INLINE void _set_selector (const OtherDerived &other, const internal::false_type &)
 
EIGEN_STRONG_INLINE Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & _set_noalias (const DenseBase< OtherDerived > &other)
 
EIGEN_STRONG_INLINE void _init2 (Index nbRows, Index nbCols, typename internal::enable_if< Base::SizeAtCompileTime!=2, T0 >::type *=0)
 
EIGEN_STRONG_INLINE void _init2 (const Scalar &val0, const Scalar &val1, typename internal::enable_if< Base::SizeAtCompileTime==2, T0 >::type *=0)
 
void _swap (DenseBase< OtherDerived > const &other)
 
- Protected Attributes inherited from Eigen::PlainObjectBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
DenseStorage< Scalar, Base::MaxSizeAtCompileTime, Base::RowsAtCompileTime, Base::ColsAtCompileTime, Options > m_storage
 

Detailed Description

template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
class Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >

The matrix class, also used for vectors and row-vectors.

The Matrix class is the work-horse for all dense (note) matrices and vectors within Eigen. Vectors are matrices with one column, and row-vectors are matrices with one row.

The Matrix class encompasses both fixed-size and dynamic-size objects (note).

The first three template parameters are required:

Template Parameters
_Scalar

Definition at line 127 of file Matrix.h.

Member Typedef Documentation

template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
typedef PlainObjectBase<Matrix> Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Base

Base class typedef.

See also
PlainObjectBase

Definition at line 135 of file Matrix.h.

Constructor & Destructor Documentation

template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
EIGEN_STRONG_INLINE Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Matrix ( )
inline

Default constructor.

For fixed-size matrices, does nothing.

For dynamic-size matrices, creates an empty matrix of size 0. Does not allocate any array. Such a matrix is called a null matrix. This constructor is the unique way to create null matrices: resizing a matrix to 0 is not supported.

See also
resize(Index,Index)

Definition at line 203 of file Matrix.h.

203  : Base()
204  {
205  Base::_check_template_params();
206  EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
207  }
PlainObjectBase< Matrix > Base
Base class typedef.
Definition: Matrix.h:135
template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
EIGEN_STRONG_INLINE Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Matrix ( Index  dim)
inlineexplicit

Constructs a vector or row-vector with given dimension. .

Note that this is only useful for dynamic-size vectors. For fixed-size vectors, it is redundant to pass the dimension here, so it makes more sense to use the default constructor Matrix() instead.

Definition at line 220 of file Matrix.h.

221  : Base(dim, RowsAtCompileTime == 1 ? 1 : dim, ColsAtCompileTime == 1 ? 1 : dim)
222  {
223  Base::_check_template_params();
224  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Matrix)
225  eigen_assert(dim >= 0);
226  eigen_assert(SizeAtCompileTime == Dynamic || SizeAtCompileTime == dim);
227  EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
228  }
EIGEN_STRONG_INLINE Matrix()
Default constructor.
Definition: Matrix.h:203
PlainObjectBase< Matrix > Base
Base class typedef.
Definition: Matrix.h:135
template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
template<typename OtherDerived >
EIGEN_STRONG_INLINE Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Matrix ( const EigenBase< OtherDerived > &  other)
inline

Copy constructor for generic expressions.

See also
MatrixBase::operator=(const EigenBase<OtherDerived>&)

Definition at line 303 of file Matrix.h.

304  : Base(other.derived().rows() * other.derived().cols(), other.derived().rows(), other.derived().cols())
305  {
306  Base::_check_template_params();
307  Base::resize(other.rows(), other.cols());
308  // FIXME/CHECK: isn't *this = other.derived() more efficient. it allows to
309  // go for pure _set() implementations, right?
310  *this = other;
311  }
PlainObjectBase< Matrix > Base
Base class typedef.
Definition: Matrix.h:135
EIGEN_STRONG_INLINE void resize(Index nbRows, Index nbCols)
template<typename _Scalar , int _Rows, int _Cols, int _Storage, int _MaxRows, int _MaxCols>
template<typename OtherDerived >
Eigen::Matrix< _Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols >::Matrix ( const RotationBase< OtherDerived, ColsAtCompileTime > &  r)
explicit

Constructs a Dim x Dim rotation matrix from the rotation r.

Constructs a Dim x Dim rotation matrix from the rotation r

Definition at line 64 of file RotationBase.h.

65 {
66  EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix,int(OtherDerived::Dim),int(OtherDerived::Dim))
67  *this = r.toRotationMatrix();
68 }
EIGEN_STRONG_INLINE Matrix()
Default constructor.
Definition: Matrix.h:203

Member Function Documentation

template<typename _Scalar , int _Rows, int _Cols, int _Storage, int _MaxRows, int _MaxCols>
template<typename OtherDerived >
Matrix< _Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols > & Eigen::Matrix< _Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols >::operator= ( const RotationBase< OtherDerived, ColsAtCompileTime > &  r)

Set a Dim x Dim rotation matrix from the rotation r.

Set a Dim x Dim rotation matrix from the rotation r

Definition at line 78 of file RotationBase.h.

79 {
80  EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix,int(OtherDerived::Dim),int(OtherDerived::Dim))
81  return *this = r.toRotationMatrix();
82 }
EIGEN_STRONG_INLINE Matrix()
Default constructor.
Definition: Matrix.h:203
template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
EIGEN_STRONG_INLINE Matrix& Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::operator= ( const Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &  other)
inline

Assigns matrices to each other.

Note
This is a special case of the templated operator=. Its purpose is to prevent a default operator= from hiding the templated operator=.

Definition at line 154 of file Matrix.h.

155  {
156  return Base::_set(other);
157  }
EIGEN_STRONG_INLINE Derived & _set(const DenseBase< OtherDerived > &other)
Copies the value of the expression other into *this with automatic resizing.
template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
template<typename OtherDerived >
EIGEN_STRONG_INLINE Matrix& Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::operator= ( const EigenBase< OtherDerived > &  other)
inline

Copies the generic expression other into *this.

The expression must provide a (templated) evalTo(Derived& dst) const function which does the actual job. In practice, this allows any user to write its own special matrix without having to modify MatrixBase

Returns
a reference to *this.

Definition at line 182 of file Matrix.h.

183  {
184  return Base::operator=(other);
185  }
EIGEN_STRONG_INLINE Derived & operator=(const PlainObjectBase &other)

The documentation for this class was generated from the following files: