|
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. | |
| _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. | |
| void | Transpose () |
| 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 ![$[p_1,p_2,\cdots, p_r]$](form_51.png)


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 
n)
| MatrixPermutation< _Uint > & Convert | ( | MatrixPermutation< _UnsignedInt > & | P | ) |
Converts a BlasPermutation to a MatrixPermutation.
| [out] | P | MatrixPermutation to be created. Need not be initialized. |
| void Transpose | ( | ) |


/*! 

_UnsignedInt & operator[] (const _UnsignedInt &i) ; _UnsignedInt operator[] (const _UnsignedInt i) const ;
/*! col i and col j are swapped / void TransposeCols(_UnsignedInt i, _UnsignedInt j);
/*! row i and row j are swapped / void TransposeRows(_UnsignedInt i, _UnsignedInt j);
const _UnsignedInt* getPointer() const
{
linbox_check(P_.size());
return &P_[0];
}
_UnsignedInt* getPointer()
{
linbox_check(P_.size());
return &P_[0];
}
/* invert