Medial Code Documentation
|
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 Traits::IndicesType | IndicesType |
typedef Traits::StorageIndex | StorageIndex |
typedef Matrix< StorageIndex, RowsAtCompileTime, ColsAtCompileTime, 0, MaxRowsAtCompileTime, MaxColsAtCompileTime > | DenseMatrixType |
typedef PermutationMatrix< IndicesType::SizeAtCompileTime, IndicesType::MaxSizeAtCompileTime, StorageIndex > | PlainPermutationType |
typedef PlainPermutationType | PlainObject |
typedef Inverse< Derived > | InverseReturnType |
typedef void | Scalar |
![]() | |
typedef Eigen::Index | Index |
The interface type of indices. | |
typedef internal::traits< Derived >::StorageKind | StorageKind |
Public Member Functions | |
template<typename OtherDerived > | |
Derived & | operator= (const PermutationBase< OtherDerived > &other) |
Copies the other permutation into *this. | |
template<typename OtherDerived > | |
Derived & | operator= (const TranspositionsBase< OtherDerived > &tr) |
Assignment from the Transpositions tr. | |
Derived & | operator= (const PermutationBase &other) |
This is a special case of the templated operator=. | |
Index | rows () const |
Index | cols () const |
Index | size () const |
template<typename DenseDerived > | |
void | evalTo (MatrixBase< DenseDerived > &other) const |
DenseMatrixType | toDenseMatrix () const |
const IndicesType & | indices () const |
const version of indices(). | |
IndicesType & | indices () |
void | resize (Index newSize) |
Resizes to given size. | |
void | setIdentity () |
Sets *this to be the identity permutation matrix. | |
void | setIdentity (Index newSize) |
Sets *this to be the identity permutation matrix of given size. | |
Derived & | applyTranspositionOnTheLeft (Index i, Index j) |
Multiplies *this by the transposition ![]() | |
Derived & | applyTranspositionOnTheRight (Index i, Index j) |
Multiplies *this by the transposition ![]() | |
InverseReturnType | inverse () const |
InverseReturnType | transpose () const |
template<typename Other > | |
PlainPermutationType | operator* (const PermutationBase< Other > &other) const |
template<typename Other > | |
PlainPermutationType | operator* (const InverseImpl< Other, PermutationStorage > &other) const |
Index | determinant () const |
EIGEN_DEVICE_FUNC Derived & | derived () |
EIGEN_DEVICE_FUNC const Derived & | derived () const |
![]() | |
EIGEN_DEVICE_FUNC Derived & | derived () |
EIGEN_DEVICE_FUNC const Derived & | derived () const |
EIGEN_DEVICE_FUNC Derived & | const_cast_derived () const |
EIGEN_DEVICE_FUNC const Derived & | const_derived () const |
EIGEN_DEVICE_FUNC Index | rows () const |
EIGEN_DEVICE_FUNC Index | cols () const |
EIGEN_DEVICE_FUNC Index | size () const |
template<typename Dest > | |
EIGEN_DEVICE_FUNC void | evalTo (Dest &dst) const |
template<typename Dest > | |
EIGEN_DEVICE_FUNC void | addTo (Dest &dst) const |
template<typename Dest > | |
EIGEN_DEVICE_FUNC void | subTo (Dest &dst) const |
template<typename Dest > | |
EIGEN_DEVICE_FUNC void | applyThisOnTheRight (Dest &dst) const |
template<typename Dest > | |
EIGEN_DEVICE_FUNC void | applyThisOnTheLeft (Dest &dst) const |
Protected Member Functions | |
template<typename OtherDerived > | |
void | assignTranspose (const PermutationBase< OtherDerived > &other) |
template<typename Lhs , typename Rhs > | |
void | assignProduct (const Lhs &lhs, const Rhs &rhs) |
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
This convention ensures that for any two permutations
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.
|
inline |
Multiplies *this by the transposition
|
inline |
Multiplies *this by the transposition
This is a fast operation, it only consists in swapping two indices.
|
inline |
|
inline |
|
inline |
|
inline |
This function is O(n
) procedure allocating a buffer of n
booleans.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
This is a special case of the templated operator=.
Its purpose is to prevent a default operator= from hiding the templated operator=.
|
inline |
|
inline |
|
inline |
|
inline |
|
friend |