Public Types | Public Member Functions | Protected Attributes | List of all members
Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess > Class Template Reference

#include <PermutationMatrix.h>

+ Inheritance diagram for Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess >:

Public Types

typedef internal::traits< Map
< PermutationMatrix
< SizeAtCompileTime,
MaxSizeAtCompileTime,
IndexType >, _PacketAccess >
>::Index 
Index
typedef internal::traits< Map
< PermutationMatrix
< SizeAtCompileTime,
MaxSizeAtCompileTime,
IndexType >, _PacketAccess >
>::StorageKind 
StorageKind

Public Member Functions

void addTo (Dest &dst) const
void applyThisOnTheLeft (Dest &dst) const
void applyThisOnTheRight (Dest &dst) const
Map< PermutationMatrix
< SizeAtCompileTime,
MaxSizeAtCompileTime,
IndexType >, _PacketAccess > & 
applyTranspositionOnTheLeft (Index i, Index j)
Map< PermutationMatrix
< SizeAtCompileTime,
MaxSizeAtCompileTime,
IndexType >, _PacketAccess > & 
applyTranspositionOnTheRight (Index i, Index j)
Index cols () const
Map< PermutationMatrix
< SizeAtCompileTime,
MaxSizeAtCompileTime,
IndexType >, _PacketAccess > & 
const_cast_derived () const
const Map< PermutationMatrix
< SizeAtCompileTime,
MaxSizeAtCompileTime,
IndexType >, _PacketAccess > & 
const_derived () const
Map< PermutationMatrix
< SizeAtCompileTime,
MaxSizeAtCompileTime,
IndexType >, _PacketAccess > & 
derived ()
const Map< PermutationMatrix
< SizeAtCompileTime,
MaxSizeAtCompileTime,
IndexType >, _PacketAccess > & 
derived () const
void evalTo (Dest &dst) const
const IndicesType & indices () const
IndicesType & indices ()
Transpose< PermutationBaseinverse () const
 Map (const Index *indices)
 Map (const Index *indices, Index size)
PlainPermutationType operator* (const PermutationBase< Other > &other) const
PlainPermutationType operator* (const Transpose< PermutationBase< Other > > &other) const
template<typename Other >
Mapoperator= (const PermutationBase< Other > &other)
template<typename Other >
Mapoperator= (const TranspositionsBase< Other > &tr)
void resize (Index size)
Index rows () const
void setIdentity ()
void setIdentity (Index size)
Index size () const
void subTo (Dest &dst) const
DenseMatrixType toDenseMatrix () const
Transpose< PermutationBasetranspose () const

Protected Attributes

IndicesType m_indices

Member Typedef Documentation

typedef internal::traits<Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess > >::Index Index
inherited
typedef internal::traits<Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess > >::StorageKind StorageKind
inherited

Constructor & Destructor Documentation

Map ( const Index indices)
inline
Map ( const Index indices,
Index  size 
)
inline

Member Function Documentation

void addTo ( Dest &  dst) const
inlineinherited
void applyThisOnTheLeft ( Dest &  dst) const
inlineinherited
void applyThisOnTheRight ( Dest &  dst) const
inlineinherited
Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess > & applyTranspositionOnTheLeft ( Index  i,
Index  j 
)
inlineinherited

Multiplies *this by the transposition $(ij)$ on the left.

Returns
a reference to *this.
Warning
This is much slower than applyTranspositionOnTheRight(int,int): this has linear complexity and requires a lot of branching.
See Also
applyTranspositionOnTheRight(int,int)
Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess > & applyTranspositionOnTheRight ( Index  i,
Index  j 
)
inlineinherited

Multiplies *this by the transposition $(ij)$ on the right.

Returns
a reference to *this.

This is a fast operation, it only consists in swapping two indices.

See Also
applyTranspositionOnTheLeft(int,int)
Index cols ( void  ) const
inlineinherited
Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess > & const_cast_derived ( ) const
inlineinherited
const Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess > & const_derived ( ) const
inlineinherited
Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess > & derived ( )
inlineinherited
Returns
a reference to the derived object
const Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess > & derived ( ) const
inlineinherited
Returns
a const reference to the derived object
void evalTo ( Dest &  dst) const
inlineinherited
const IndicesType& indices ( ) const
inline
IndicesType& indices ( )
inline
Returns
a reference to the stored array representing the permutation.

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

Transpose<PermutationBase> inverse ( ) const
inlineinherited
Returns
the inverse permutation matrix.
Note
This function returns the result by value. In order to make that efficient, it is implemented as just a return statement using a special constructor, hopefully allowing the compiler to perform a RVO (return value optimization).
PlainPermutationType operator* ( const PermutationBase< Other > &  other) const
inlineinherited
Returns
the product permutation matrix.
Note
This function returns the result by value. In order to make that efficient, it is implemented as just a return statement using a special constructor, hopefully allowing the compiler to perform a RVO (return value optimization).
PlainPermutationType operator* ( const Transpose< PermutationBase< Other > > &  other) const
inlineinherited
Returns
the product of a permutation with another inverse permutation.
Note
This function returns the result by value. In order to make that efficient, it is implemented as just a return statement using a special constructor, hopefully allowing the compiler to perform a RVO (return value optimization).
Map& operator= ( const PermutationBase< Other > &  other)
inline

Copies the other permutation into *this

References EigenBase< Derived >::derived().

Map& operator= ( const TranspositionsBase< Other > &  tr)
inline

Assignment from the Transpositions tr

References TranspositionsBase< Derived >::derived().

void resize ( Index  size)
inlineinherited

Resizes to given size.

Index rows ( void  ) const
inlineinherited
void setIdentity ( )
inlineinherited

Sets *this to be the identity permutation matrix

void setIdentity ( Index  size)
inlineinherited

Sets *this to be the identity permutation matrix of given size.

Index size ( ) const
inlineinherited
Returns
the size of a side of the respective square matrix, i.e., the number of indices

Reimplemented from EigenBase< Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess > >.

void subTo ( Dest &  dst) const
inlineinherited
DenseMatrixType toDenseMatrix ( ) const
inlineinherited
Returns
a Matrix object initialized from this permutation matrix. Notice that it is inefficient to return this Matrix object by value. For efficiency, favor using the Matrix constructor taking EigenBase objects.
Transpose<PermutationBase> transpose ( ) const
inlineinherited
Returns
the tranpose permutation matrix.
Note
This function returns the result by value. In order to make that efficient, it is implemented as just a return statement using a special constructor, hopefully allowing the compiler to perform a RVO (return value optimization).

Member Data Documentation

IndicesType m_indices
protected

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