|
| | Permutation (Storage &indices, const Field &F) |
| | Constructor from a vector of indices.
|
| |
| Self_t & | init (size_t *P, size_t n) |
| |
| | Permutation (size_t *P, size_t n, const Field &F) |
| |
| | Permutation (int n, const Field &F) |
| | n x n permutation matrix, initially the identity.
|
| |
| | Permutation (const Field &F, size_t n=0, size_t m=0) |
| |
| void | identity (int n) |
| |
| void | cyclicShift (size_t n) |
| |
| void | random (unsigned int seed=static_cast< unsigned int >(std::time(nullptr))) |
| |
| | Permutation (const Permutation &Mat) |
| |
| | ~Permutation (void) |
| |
| template<class OutVector, class InVector> |
| OutVector & | apply (OutVector &y, const InVector &x) const |
| | Application of BlackBox permutation matrix.
|
| |
| template<class OutVector, class InVector> |
| OutVector & | applyTranspose (OutVector &y, const InVector &x) const |
| | Application of BlackBox permutation matrix transpose.
|
| |
| Matrix & | applyRight (Matrix &Y, const Matrix &X) const |
| |
| Matrix & | applyLeft (Matrix &Y, const Matrix &X) const |
| |
| BBType | bbTag () const |
| |
| size_t & | rank (size_t &r) const |
| |
| Element & | det (Element &d) const |
| |
| Matrix & | solveRight (Matrix &Y, const Matrix &X) const |
| |
| Matrix & | solveLeft (Matrix &Y, const Matrix &X) const |
| |
| Matrix & | nullspaceRandomRight (Matrix &N) const |
| |
| Matrix & | nullspaceRandomLeft (Matrix &N) const |
| |
| Matrix & | nullspaceBasisRight (Matrix &N) const |
| |
| Matrix & | nullspaceBasisLeft (Matrix &N) const |
| |
| size_t | rowdim (void) const |
| | rowdim
|
| |
| size_t | coldim (void) const |
| | coldim
|
| |
| void | permute (size_t i, size_t j) |
| | this <– transposition(i,j)*this indices (i = 0, j = 1): 0 2 1 * 1 0 2 = 1 2 0 matrices (corresponding): 1 0 0 0 1 0 0 1 0 0 0 1 * 1 0 0 = 0 0 1 0 1 0 0 0 1 1 0 0
|
| |
| size_t | operator[] (size_t i) const |
| |
| const Field & | field () const |
| |
| std::istream & | read (std::istream &os) |
| |
| std::ostream & | write (std::ostream &os) const |
| |
| std::ostream & | write (std::ostream &os, Tag::FileFormat format) const |
| |
| std::istream & | read (std::istream &is, Tag::FileFormat format) |
| |
| Storage & | setStorage (const Storage &s) |
| |
| const Storage & | getStorage () const |
| |
| Storage & | getStorage () |
| |
| void | next () |
| | Generate next permutation in lex order.
|
| |
| virtual Element & | det (Element &d) const=0 |
| |
| virtual Matrix & | solveRight (Matrix &Y, const Matrix &X) const=0 |
| | Y: AY = X, for this A.
|
| |
| virtual Matrix & | solveLeft (Matrix &Y, const Matrix &X) const=0 |
| | Y: YA = X, for this A.
|
| |
| virtual Matrix & | nullspaceRandomRight (Matrix &N) const=0 |
| | N: AN = 0, each col random.
|
| |
| virtual Matrix & | nullspaceRandomLeft (Matrix &N) const=0 |
| | N: NA = 0, each row random.
|
| |
| virtual ResizableMatrix & | nullspaceBasisRight (ResizableMatrix &B) const=0 |
| | B: columns are a right nullspace basis for this A.
|
| |
| virtual ResizableMatrix & | nullspaceBasisLeft (ResizableMatrix &B) const=0 |
| | BA= 0 and xA = 0 => exists y: x = yB and B full rank.
|
| |
| virtual Matrix & | applyLeft (Matrix &Y, const Matrix &X) const =0 |
| |
| virtual Matrix & | applyRight (Matrix &Y, const Matrix &X) const =0 |
| |
| template<typename BB2> |
| void | map (BB2 &A) |
| |
template<class _Field, class _Matrix = DenseMatrix<_Field>>
class LinBox::Permutation< _Field, _Matrix >
- Examples
- examples/power_rank.C, examples/poweroftwo_ranks.C, and examples/smithsparse.C.
template<class _Field, class _Matrix = DenseMatrix<_Field>>
template<class OutVector, class InVector>
| OutVector & apply |
( |
OutVector & | y, |
|
|
const InVector & | x ) const |
|
inline |
Application of BlackBox permutation matrix.
\(y \leftarrow Px\). Requires one vector conforming to the LinBox vector archetype. Required by abstract base class.
- Returns
- reference to vector y containing output.
- Parameters
-
| x | constant reference to vector to contain input |
| y | |
template<class _Field, class _Matrix = DenseMatrix<_Field>>
template<class OutVector, class InVector>
| OutVector & applyTranspose |
( |
OutVector & | y, |
|
|
const InVector & | x ) const |
|
inline |
Application of BlackBox permutation matrix transpose.
y= transpose(P)*x, equivalently y= P^-1*x Requires one vector conforming to the LinBox vector archetype. Required by abstract base class.
- Returns
- reference to vector y containing output.
- Parameters
-
| x | constant reference to vector to contain input |
| y | \(y^T \leftarrow x^T P\). |
Y: AY = X, for this A.
Solve nonsingular or consistent singular system. If it is consistent singular, an arbitrary solution is provided. X and Y must have identical shape.
Note that Y+Z is a random sample of the solution space after {solveRight(Y, X); nullspaceRandomRight(Z);}.
Behaviour is unspecified for inconsistent systems (see solveMP).