linbox
|
Lapack-style permutation. More...
#include <permutation-matrix.h>
Public Member Functions | |
BlasPermutation< _UnsignedInt > & | operator= (const BlasPermutation< _UnsignedInt > &P) |
copy operator (with copy) | |
_UnsignedInt | getSize () const |
Returns the size of the permuation. More... | |
_UnsignedInt | getOrder () const |
Returns the order of the permuation. | |
std::vector< _UnsignedInt > | getStorage () const |
returns a copy of the raw storage. | |
MatrixPermutation< _UnsignedInt > & | Convert (MatrixPermutation< _UnsignedInt > &P) |
Converts a BlasPermutation to a MatrixPermutation . More... | |
_UnsignedInt | operator[] (const _UnsignedInt i) const |
More... | |
const _UnsignedInt * | getPointer () const |
col i and col j are swapped More... | |
void | Compress () |
compresses BlasPermutation to a smaller r_ . | |
std::ostream & | write (std::ostream &o, bool Lapack=true) const |
writes on output stream o | |
Friends | |
template<class _Uint > | |
std::ostream & | operator<< (std::ostream &o, BlasPerm &P) |
writes P on output stream o | |
Lapack-style permutation.
A Lapack permutation is represented with a vector such that . Converting it to a classic representation of a permutation corresponds to taking an identity permutation and then successively permuting . Example : if P=[1,4,4]
and V=[1,2,3,4,5]
, then P.V=[1,4,2,3,5]
.
_Uint getSize | ( | ) | const |
Returns the size of the permuation.
If given, we return n
as we see P
in . We default to the order of the permutation (minimal such n
)
MatrixPermutation< _Uint > & Convert | ( | MatrixPermutation< _Uint > & | P | ) |
Converts a BlasPermutation
to a MatrixPermutation
.
[out] | P | MatrixPermutation to be created. Need not be initialized. |
|
inline |
|
inline |
col i
and col j
are swapped
row i
and row j
are swapped