Base class for permutations. More...
#include <PermutationMatrix.h>
Public Types | |
enum | { Flags = Traits::Flags, CoeffReadCost = Traits::CoeffReadCost, RowsAtCompileTime = Traits::RowsAtCompileTime, ColsAtCompileTime = Traits::ColsAtCompileTime, MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime, MaxColsAtCompileTime = Traits::MaxColsAtCompileTime } |
typedef Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime, 0, MaxRowsAtCompileTime, MaxColsAtCompileTime > | DenseMatrixType |
typedef Traits::Index | Index |
typedef Traits::IndicesType | IndicesType |
typedef PermutationMatrix < IndicesType::SizeAtCompileTime, IndicesType::MaxSizeAtCompileTime, Index > | PlainPermutationType |
typedef Traits::Scalar | Scalar |
Public Member Functions | |
Derived & | applyTranspositionOnTheLeft (Index i, Index j) |
Derived & | applyTranspositionOnTheRight (Index i, Index j) |
Index | cols () const |
template<typename DenseDerived > | |
void | evalTo (MatrixBase< DenseDerived > &other) const |
const IndicesType & | indices () const |
IndicesType & | indices () |
Transpose< PermutationBase > | inverse () const |
template<typename Other > | |
PlainPermutationType | operator* (const PermutationBase< Other > &other) const |
template<typename Other > | |
PlainPermutationType | operator* (const Transpose< PermutationBase< Other > > &other) const |
template<typename OtherDerived > | |
Derived & | operator= (const PermutationBase< OtherDerived > &other) |
template<typename OtherDerived > | |
Derived & | operator= (const TranspositionsBase< OtherDerived > &tr) |
Derived & | operator= (const PermutationBase &other) |
void | resize (Index size) |
Index | rows () const |
void | setIdentity () |
void | setIdentity (Index size) |
Index | size () const |
DenseMatrixType | toDenseMatrix () const |
Transpose< PermutationBase > | transpose () const |
Protected Member Functions | |
template<typename Lhs , typename Rhs > | |
void | assignProduct (const Lhs &lhs, const Rhs &rhs) |
template<typename OtherDerived > | |
void | assignTranspose (const PermutationBase< OtherDerived > &other) |
Private Types | |
typedef EigenBase< Derived > | Base |
typedef internal::traits< Derived > | Traits |
Friends | |
template<typename Other > | |
PlainPermutationType | operator* (const Transpose< PermutationBase< Other > > &other, const PermutationBase &perm) |
Base class for permutations.
Derived | the derived class |
This class is the base class for all expressions representing a permutation matrix, internally stored as a vector of integers. The convention followed here is that if is a permutation, the corresponding permutation matrix is such that if is the canonical basis, we have:
This convention ensures that for any two permutations , we have:
Permutation matrices are square and invertible.
Notice that in addition to the member functions and operators listed here, there also are non-member operator* to multiply any kind of permutation object with any kind of matrix expression (MatrixBase) on either side.
Definition at line 64 of file PermutationMatrix.h.
typedef EigenBase<Derived> PermutationBase< Derived >::Base [private] |
Reimplemented in PermutationWrapper< _IndicesType >, Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess >, PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, PermutationMatrix< Dynamic >, PermutationMatrix< Dynamic, Dynamic >, PermutationMatrix< ColsAtCompileTime, MaxColsAtCompileTime >, and PermutationMatrix< RowsAtCompileTime, MaxRowsAtCompileTime >.
Definition at line 67 of file PermutationMatrix.h.
typedef Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime,0,MaxRowsAtCompileTime,MaxColsAtCompileTime> PermutationBase< Derived >::DenseMatrixType |
Definition at line 83 of file PermutationMatrix.h.
typedef Traits::Index PermutationBase< Derived >::Index |
Reimplemented from EigenBase< Derived >.
Reimplemented in Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess >.
Definition at line 81 of file PermutationMatrix.h.
typedef Traits::IndicesType PermutationBase< Derived >::IndicesType |
Reimplemented in PermutationWrapper< _IndicesType >, Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess >, PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, PermutationMatrix< Dynamic >, PermutationMatrix< Dynamic, Dynamic >, PermutationMatrix< ColsAtCompileTime, MaxColsAtCompileTime >, and PermutationMatrix< RowsAtCompileTime, MaxRowsAtCompileTime >.
Definition at line 71 of file PermutationMatrix.h.
typedef PermutationMatrix<IndicesType::SizeAtCompileTime,IndicesType::MaxSizeAtCompileTime,Index> PermutationBase< Derived >::PlainPermutationType |
Definition at line 85 of file PermutationMatrix.h.
typedef Traits::Scalar PermutationBase< Derived >::Scalar |
Definition at line 80 of file PermutationMatrix.h.
typedef internal::traits<Derived> PermutationBase< Derived >::Traits [private] |
Reimplemented in PermutationWrapper< _IndicesType >, Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess >, PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, PermutationMatrix< Dynamic >, PermutationMatrix< Dynamic, Dynamic >, PermutationMatrix< ColsAtCompileTime, MaxColsAtCompileTime >, and PermutationMatrix< RowsAtCompileTime, MaxRowsAtCompileTime >.
Definition at line 66 of file PermutationMatrix.h.
anonymous enum |
Flags | |
CoeffReadCost | |
RowsAtCompileTime | |
ColsAtCompileTime | |
MaxRowsAtCompileTime | |
MaxColsAtCompileTime |
Definition at line 72 of file PermutationMatrix.h.
Derived& PermutationBase< Derived >::applyTranspositionOnTheLeft | ( | Index | i, |
Index | j | ||
) | [inline] |
Multiplies *this by the transposition on the left.
Definition at line 182 of file PermutationMatrix.h.
Derived& PermutationBase< Derived >::applyTranspositionOnTheRight | ( | Index | i, |
Index | j | ||
) | [inline] |
Multiplies *this by the transposition on the right.
This is a fast operation, it only consists in swapping two indices.
Definition at line 201 of file PermutationMatrix.h.
void PermutationBase< Derived >::assignProduct | ( | const Lhs & | lhs, |
const Rhs & | rhs | ||
) | [inline, protected] |
Definition at line 232 of file PermutationMatrix.h.
void PermutationBase< Derived >::assignTranspose | ( | const PermutationBase< OtherDerived > & | other | ) | [inline, protected] |
Definition at line 227 of file PermutationMatrix.h.
Index PermutationBase< Derived >::cols | ( | void | ) | const [inline] |
Reimplemented from EigenBase< Derived >.
Definition at line 122 of file PermutationMatrix.h.
void PermutationBase< Derived >::evalTo | ( | MatrixBase< DenseDerived > & | other | ) | const [inline] |
Definition at line 129 of file PermutationMatrix.h.
const IndicesType& PermutationBase< Derived >::indices | ( | ) | const [inline] |
const version of indices().
Reimplemented in PermutationWrapper< _IndicesType >, Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess >, PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, PermutationMatrix< Dynamic >, PermutationMatrix< Dynamic, Dynamic >, PermutationMatrix< ColsAtCompileTime, MaxColsAtCompileTime >, and PermutationMatrix< RowsAtCompileTime, MaxRowsAtCompileTime >.
Definition at line 147 of file PermutationMatrix.h.
IndicesType& PermutationBase< Derived >::indices | ( | ) | [inline] |
Reimplemented in Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess >, PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, PermutationMatrix< Dynamic >, PermutationMatrix< Dynamic, Dynamic >, PermutationMatrix< ColsAtCompileTime, MaxColsAtCompileTime >, and PermutationMatrix< RowsAtCompileTime, MaxRowsAtCompileTime >.
Definition at line 149 of file PermutationMatrix.h.
Transpose<PermutationBase> PermutationBase< Derived >::inverse | ( | ) | const [inline] |
PlainPermutationType PermutationBase< Derived >::operator* | ( | const PermutationBase< Other > & | other | ) | const [inline] |
PlainPermutationType PermutationBase< Derived >::operator* | ( | const Transpose< PermutationBase< Other > > & | other | ) | const [inline] |
Definition at line 254 of file PermutationMatrix.h.
Derived& PermutationBase< Derived >::operator= | ( | const PermutationBase< OtherDerived > & | other | ) | [inline] |
Copies the other permutation into *this
Definition at line 91 of file PermutationMatrix.h.
Derived& PermutationBase< Derived >::operator= | ( | const TranspositionsBase< OtherDerived > & | tr | ) | [inline] |
Assignment from the Transpositions tr
Definition at line 99 of file PermutationMatrix.h.
Derived& PermutationBase< Derived >::operator= | ( | const PermutationBase< Derived > & | other | ) | [inline] |
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 111 of file PermutationMatrix.h.
void PermutationBase< Derived >::resize | ( | Index | size | ) | [inline] |
Resizes to given size.
Definition at line 153 of file PermutationMatrix.h.
Index PermutationBase< Derived >::rows | ( | void | ) | const [inline] |
Reimplemented from EigenBase< Derived >.
Definition at line 119 of file PermutationMatrix.h.
void PermutationBase< Derived >::setIdentity | ( | ) | [inline] |
Sets *this to be the identity permutation matrix
Definition at line 159 of file PermutationMatrix.h.
void PermutationBase< Derived >::setIdentity | ( | Index | size | ) | [inline] |
Sets *this to be the identity permutation matrix of given size.
Definition at line 167 of file PermutationMatrix.h.
Index PermutationBase< Derived >::size | ( | ) | const [inline] |
Reimplemented from EigenBase< Derived >.
Definition at line 125 of file PermutationMatrix.h.
DenseMatrixType PermutationBase< Derived >::toDenseMatrix | ( | ) | const [inline] |
Transpose<PermutationBase> PermutationBase< Derived >::transpose | ( | ) | const [inline] |
PlainPermutationType operator* | ( | const Transpose< PermutationBase< Other > > & | other, |
const PermutationBase< Derived > & | perm | ||
) | [friend] |
Definition at line 262 of file PermutationMatrix.h.