![]() |
Eigen
3.2.10
|
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 


![\[ P_\sigma(e_i) = e_{\sigma(i)}. \]](form_22.png)
This convention ensures that for any two permutations 
![\[ P_{\sigma\circ\tau} = P_\sigma P_\tau. \]](form_24.png)
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.
Inheritance diagram for PermutationBase< Derived >:Public Member Functions | |
| Derived & | applyTranspositionOnTheLeft (Index i, Index j) |
| Derived & | applyTranspositionOnTheRight (Index i, Index j) |
| Index | cols () const |
| Derived & | derived () |
| const Derived & | derived () const |
| Index | determinant () const |
| IndicesType & | indices () |
| const IndicesType & | indices () const |
| 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) |
| void | resize (Index newSize) |
| Index | rows () const |
| void | setIdentity () |
| void | setIdentity (Index newSize) |
| Index | size () const |
| DenseMatrixType | toDenseMatrix () const |
| Transpose< PermutationBase > | transpose () const |
|
inline |
Multiplies *this by the transposition 
|
inline |
Multiplies *this by the transposition 
This is a fast operation, it only consists in swapping two indices.
Referenced by PermutationBase< PermutationMatrix >::operator=().
|
inline |
|
inlineinherited |
Referenced by IterativeSolverBase< BiCGSTAB >::analyzePattern(), MatrixBase< Derived >::applyOnTheLeft(), MatrixBase< Derived >::applyOnTheRight(), PermutationBase< PermutationMatrix >::applyTranspositionOnTheLeft(), PermutationBase< PermutationMatrix >::applyTranspositionOnTheRight(), SparseMatrixBase< SparseDenseOuterProduct >::bottomLeftCorner(), SparseMatrixBase< SparseDenseOuterProduct >::bottomRows(), cols(), SparseMatrixBase< SparseDenseOuterProduct >::cols(), IterativeSolverBase< BiCGSTAB >::compute(), SparseMatrixBase< SparseDenseOuterProduct >::eval(), IterativeSolverBase< BiCGSTAB >::factorize(), PermutationBase< PermutationMatrix >::indices(), PermutationBase< PermutationMatrix >::indices(), SparseMatrixBase< Derived >::innerVector(), SparseMatrixBase< Derived >::innerVector(), SparseMatrixBase< Derived >::innerVectors(), SparseMatrixBase< Derived >::innerVectors(), PermutationBase< PermutationMatrix >::inverse(), IterativeSolverBase< BiCGSTAB >::IterativeSolverBase(), SparseMatrixBase< SparseDenseOuterProduct >::nonZeros(), PermutationBase< PermutationMatrix >::operator*(), RotationBase< AngleAxis< _Scalar >, 3 >::operator*(), RotationBase< AngleAxis< _Scalar >, 3 >::operator*, SparseMatrixBase< Derived >::operator*(), SparseMatrixBase< SparseDenseOuterProduct >::operator*(), SparseMatrixBase< SparseDenseOuterProduct >::operator*(), SparseSelfAdjointView< MatrixType, UpLo >::operator*, SparseSelfAdjointView< MatrixType, UpLo >::operator*(), Transform< Scalar, Dim, Mode, Options >::operator*, Transform< Scalar, Dim, Mode, Options >::operator*(), Translation< _Scalar, _Dim >::operator*(), Translation< Scalar, Dim >::operator*, MatrixBase< Derived >::operator*=(), DenseBase< Derived >::operator=(), PermutationBase< PermutationMatrix >::operator=(), PermutationBase< PermutationMatrix >::operator=(), PlainObjectBase< Array >::operator=(), Transform< Scalar, Dim, Mode, Options >::operator=(), PlainObjectBase< Array >::PlainObjectBase(), PlainObjectBase< Array >::resizeLike(), rows(), SparseMatrixBase< SparseDenseOuterProduct >::rows(), CholmodBase< _MatrixType, _UpLo, CholmodSimplicialLLT >::solve(), IterativeSolverBase< BiCGSTAB >::solve(), SimplicialCholeskyBase< SimplicialLLT >::solve(), SparseLU< _MatrixType, Derived >::solve(), SuperLUBase< _MatrixType, SuperLU >::solve(), UmfPackLU< _MatrixType >::solve(), SparseMatrix< Scalar, RowMajor >::SparseMatrix(), SparseMatrix< Scalar, RowMajor >::SparseMatrix(), PermutationBase< PermutationMatrix >::toDenseMatrix(), SparseMatrixBase< SparseDenseOuterProduct >::topLeftCorner(), SparseMatrixBase< SparseDenseOuterProduct >::topLeftCorner(), Transform< Scalar, Dim, Mode, Options >::Transform(), PermutationBase< PermutationMatrix >::transpose(), and SparseMatrixBase< SparseDenseOuterProduct >::twistedBy().
|
inlineinherited |
|
inline |
This function is O(n) procedure allocating a buffer of n booleans.
|
inline |
|
inline |
const version of indices().
Referenced by PermutationBase< PermutationMatrix >::applyTranspositionOnTheLeft(), PermutationBase< PermutationMatrix >::applyTranspositionOnTheRight(), PermutationBase< PermutationMatrix >::cols(), PermutationBase< PermutationMatrix >::determinant(), PermutationBase< PermutationMatrix >::operator=(), PermutationMatrix< RowsAtCompileTime, MaxRowsAtCompileTime >::operator=(), PermutationBase< PermutationMatrix >::resize(), PermutationBase< PermutationMatrix >::rows(), PermutationBase< PermutationMatrix >::setIdentity(), and PermutationBase< PermutationMatrix >::size().
|
inline |
|
inline |
|
inline |
|
inline |
Copies the other permutation into *this
|
inline |
Assignment from the Transpositions tr
|
inline |
Resizes to given size.
Referenced by PermutationBase< PermutationMatrix >::setIdentity().
|
inline |
|
inline |
Sets *this to be the identity permutation matrix
Referenced by PermutationBase< PermutationMatrix >::operator=(), and PermutationBase< PermutationMatrix >::setIdentity().
|
inline |
Sets *this to be the identity permutation matrix of given size.
|
inline |
Referenced by PermutationBase< PermutationMatrix >::applyTranspositionOnTheLeft(), PermutationBase< PermutationMatrix >::applyTranspositionOnTheRight(), PermutationBase< PermutationMatrix >::cols(), PermutationBase< PermutationMatrix >::determinant(), PermutationBase< PermutationMatrix >::operator=(), PermutationBase< PermutationMatrix >::rows(), PermutationBase< PermutationMatrix >::setIdentity(), and PermutationBase< PermutationMatrix >::size().
|
inline |
|
inline |