Base class for permutations. More...
#include <PermutationMatrix.h>
Public Types | |
enum | { Flags = Traits::Flags, RowsAtCompileTime = Traits::RowsAtCompileTime, ColsAtCompileTime = Traits::ColsAtCompileTime, MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime, MaxColsAtCompileTime = Traits::MaxColsAtCompileTime } |
typedef Matrix< StorageIndex, RowsAtCompileTime, ColsAtCompileTime, 0, MaxRowsAtCompileTime, MaxColsAtCompileTime > | DenseMatrixType |
typedef Traits::IndicesType | IndicesType |
typedef Inverse< Derived > | InverseReturnType |
typedef PlainPermutationType | PlainObject |
typedef PermutationMatrix< IndicesType::SizeAtCompileTime, IndicesType::MaxSizeAtCompileTime, StorageIndex > | PlainPermutationType |
typedef void | Scalar |
typedef Traits::StorageIndex | StorageIndex |
Public Types inherited from Eigen::EigenBase< Derived > | |
typedef Eigen::Index | Index |
The interface type of indices. More... | |
typedef internal::traits< Derived >::StorageKind | StorageKind |
Public Member Functions | |
Derived & | applyTranspositionOnTheLeft (Index i, Index j) |
Derived & | applyTranspositionOnTheRight (Index i, Index j) |
EIGEN_DEVICE_FUNC Index | cols () const |
EIGEN_DEVICE_FUNC Derived & | derived () |
const EIGEN_DEVICE_FUNC Derived & | derived () const |
Index | determinant () const |
template<typename DenseDerived > | |
void | evalTo (MatrixBase< DenseDerived > &other) const |
IndicesType & | indices () |
const IndicesType & | indices () const |
InverseReturnType | inverse () const |
template<typename Other > | |
PlainPermutationType | operator* (const InverseImpl< Other, PermutationStorage > &other) const |
template<typename Other > | |
PlainPermutationType | operator* (const 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) |
EIGEN_DEVICE_FUNC Index | rows () const |
void | setIdentity () |
void | setIdentity (Index newSize) |
EIGEN_DEVICE_FUNC Index | size () const |
DenseMatrixType | toDenseMatrix () const |
InverseReturnType | transpose () const |
Public Member Functions inherited from Eigen::EigenBase< Derived > | |
template<typename Dest > | |
EIGEN_DEVICE_FUNC void | addTo (Dest &dst) const |
template<typename Dest > | |
EIGEN_DEVICE_FUNC void | applyThisOnTheLeft (Dest &dst) const |
template<typename Dest > | |
EIGEN_DEVICE_FUNC void | applyThisOnTheRight (Dest &dst) const |
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index | cols () const EIGEN_NOEXCEPT |
EIGEN_DEVICE_FUNC Derived & | const_cast_derived () const |
const EIGEN_DEVICE_FUNC Derived & | const_derived () const |
EIGEN_DEVICE_FUNC Derived & | derived () |
const EIGEN_DEVICE_FUNC Derived & | derived () const |
template<typename Dest > | |
EIGEN_DEVICE_FUNC void | evalTo (Dest &dst) const |
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index | rows () const EIGEN_NOEXCEPT |
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index | size () const EIGEN_NOEXCEPT |
template<typename Dest > | |
EIGEN_DEVICE_FUNC void | subTo (Dest &dst) 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 InverseImpl< Other, PermutationStorage > &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 46 of file PermutationMatrix.h.
|
private |
Definition at line 49 of file PermutationMatrix.h.
typedef Matrix<StorageIndex,RowsAtCompileTime,ColsAtCompileTime,0,MaxRowsAtCompileTime,MaxColsAtCompileTime> Eigen::PermutationBase< Derived >::DenseMatrixType |
Definition at line 63 of file PermutationMatrix.h.
typedef Traits::IndicesType Eigen::PermutationBase< Derived >::IndicesType |
Definition at line 53 of file PermutationMatrix.h.
typedef Inverse<Derived> Eigen::PermutationBase< Derived >::InverseReturnType |
Definition at line 68 of file PermutationMatrix.h.
typedef PlainPermutationType Eigen::PermutationBase< Derived >::PlainObject |
Definition at line 66 of file PermutationMatrix.h.
typedef PermutationMatrix<IndicesType::SizeAtCompileTime,IndicesType::MaxSizeAtCompileTime,StorageIndex> Eigen::PermutationBase< Derived >::PlainPermutationType |
Definition at line 65 of file PermutationMatrix.h.
typedef void Eigen::PermutationBase< Derived >::Scalar |
Definition at line 69 of file PermutationMatrix.h.
typedef Traits::StorageIndex Eigen::PermutationBase< Derived >::StorageIndex |
Definition at line 61 of file PermutationMatrix.h.
|
private |
Definition at line 48 of file PermutationMatrix.h.
anonymous enum |
Enumerator | |
---|---|
Flags | |
RowsAtCompileTime | |
ColsAtCompileTime | |
MaxRowsAtCompileTime | |
MaxColsAtCompileTime |
Definition at line 54 of file PermutationMatrix.h.
|
inline |
Multiplies *this by the transposition on the left.
Definition at line 155 of file PermutationMatrix.h.
|
inline |
Multiplies *this by the transposition on the right.
This is a fast operation, it only consists in swapping two indices.
Definition at line 174 of file PermutationMatrix.h.
|
inlineprotected |
Definition at line 205 of file PermutationMatrix.h.
|
inlineprotected |
Definition at line 200 of file PermutationMatrix.h.
|
inline |
Definition at line 94 of file PermutationMatrix.h.
|
inline |
Definition at line 46 of file EigenBase.h.
|
inline |
Definition at line 49 of file EigenBase.h.
|
inline |
This function is O(n
) procedure allocating a buffer of n
booleans.
Definition at line 242 of file PermutationMatrix.h.
|
inline |
Definition at line 101 of file PermutationMatrix.h.
|
inline |
Definition at line 121 of file PermutationMatrix.h.
|
inline |
const version of indices().
Definition at line 119 of file PermutationMatrix.h.
|
inline |
Definition at line 185 of file PermutationMatrix.h.
|
inline |
Definition at line 227 of file PermutationMatrix.h.
|
inline |
Definition at line 219 of file PermutationMatrix.h.
|
inline |
Copies the other permutation into *this
Definition at line 74 of file PermutationMatrix.h.
|
inline |
Assignment from the Transpositions tr
Definition at line 82 of file PermutationMatrix.h.
|
inline |
Resizes to given size.
Definition at line 125 of file PermutationMatrix.h.
|
inline |
Definition at line 91 of file PermutationMatrix.h.
|
inline |
Sets *this to be the identity permutation matrix
Definition at line 131 of file PermutationMatrix.h.
|
inline |
Sets *this to be the identity permutation matrix of given size.
Definition at line 140 of file PermutationMatrix.h.
|
inline |
Definition at line 97 of file PermutationMatrix.h.
|
inline |
|
inline |
Definition at line 191 of file PermutationMatrix.h.
|
friend |
Definition at line 235 of file PermutationMatrix.h.