Public Types | Public Member Functions | Protected Attributes

PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > Class Template Reference

Permutation matrix. More...

#include <PermutationMatrix.h>

Inheritance diagram for PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >:
PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > > EigenBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > >

List of all members.

Public Types

typedef Traits::IndicesType IndicesType

Public Member Functions

 PermutationMatrix ()
 PermutationMatrix (int size)
template<typename OtherDerived >
 PermutationMatrix (const PermutationBase< OtherDerived > &other)
 PermutationMatrix (const PermutationMatrix &other)
template<typename Other >
 PermutationMatrix (const MatrixBase< Other > &indices)
template<typename Other >
 PermutationMatrix (const TranspositionsBase< Other > &tr)
template<typename Other >
PermutationMatrixoperator= (const PermutationBase< Other > &other)
template<typename Other >
PermutationMatrixoperator= (const TranspositionsBase< Other > &tr)
PermutationMatrixoperator= (const PermutationMatrix &other)
const IndicesTypeindices () const
IndicesTypeindices ()
template<typename Other >
 PermutationMatrix (const Transpose< PermutationBase< Other > > &other)
template<typename Lhs , typename Rhs >
 PermutationMatrix (internal::PermPermProduct_t, const Lhs &lhs, const Rhs &rhs)

Protected Attributes

IndicesType m_indices

Detailed Description

template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
class PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >

Permutation matrix.

Parameters:
SizeAtCompileTime the number of rows/cols, or Dynamic
MaxSizeAtCompileTime the maximum number of rows/cols, or Dynamic. This optional parameter defaults to SizeAtCompileTime. Most of the time, you should not have to specify it.
IndexType the interger type of the indices

This class represents a permutation matrix, internally stored as a vector of integers.

See also:
class PermutationBase, class PermutationWrapper, class DiagonalMatrix

Member Typedef Documentation

template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
typedef Traits::IndicesType PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::IndicesType

Constructor & Destructor Documentation

template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::PermutationMatrix (  )  [inline]
template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::PermutationMatrix ( int  size  )  [inline]

Constructs an uninitialized permutation matrix of given size.

template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
template<typename OtherDerived >
PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::PermutationMatrix ( const PermutationBase< OtherDerived > &  other  )  [inline]

Copy constructor.

template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::PermutationMatrix ( const PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > &  other  )  [inline]

Standard copy constructor. Defined only to prevent a default copy constructor from hiding the other templated constructor

template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
template<typename Other >
PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::PermutationMatrix ( const MatrixBase< Other > &  indices  )  [inline, explicit]

Generic constructor from expression of the indices. The indices array has the meaning that the permutations sends each integer i to indices[i].

Warning:
It is your responsibility to check that the indices array that you passes actually describes a permutation, i.e., each value between 0 and n-1 occurs exactly once, where n is the array's size.
template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
template<typename Other >
PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::PermutationMatrix ( const TranspositionsBase< Other > &  tr  )  [inline, explicit]

Convert the Transpositions tr to a permutation matrix

template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
template<typename Other >
PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::PermutationMatrix ( const Transpose< PermutationBase< Other > > &  other  )  [inline]
template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
template<typename Lhs , typename Rhs >
PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::PermutationMatrix ( internal::PermPermProduct_t  ,
const Lhs &  lhs,
const Rhs &  rhs 
) [inline]

Member Function Documentation

template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
const IndicesType& PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::indices (  )  const [inline]
template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
IndicesType& PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::indices (  )  [inline]
Returns:
a reference to the stored array representing the permutation.

Reimplemented from PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > >.

template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
template<typename Other >
PermutationMatrix& PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::operator= ( const TranspositionsBase< Other > &  tr  )  [inline]

Assignment from the Transpositions tr

template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
PermutationMatrix& PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::operator= ( const PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > &  other  )  [inline]

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

template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
template<typename Other >
PermutationMatrix& PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::operator= ( const PermutationBase< Other > &  other  )  [inline]

Copies the other permutation into *this


Member Data Documentation

template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
IndicesType PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >::m_indices [protected]

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