linbox
1
|
#include <la-block-lanczos.h>
Public Member Functions | |
LABlockLanczosSolver (const Field &F, const BlockLanczosTraits &traits) | |
LABlockLanczosSolver (const Field &F, const BlockLanczosTraits &traits, typename Field::RandIter r) | |
~LABlockLanczosSolver () | |
template<class Blackbox , class Vector > | |
bool | solve (const Blackbox &A, Vector &x, const Vector &b) |
template<class Blackbox , class Matrix1 > | |
unsigned int | sampleNullspace (const Blackbox &A, Matrix1 &x) |
template<class Blackbox > | |
unsigned int | rank (const Blackbox &A) |
Biorthogonalising block Lanczos iteration
This is a biorthogonalising variant of Montgomery's block Lanczos iteration. The goal is to avoid having to symmetrise the input matrix by constructing two sequences of block vectors that have mutual orthogonality properties. This algorithm was proposed by Bradford Hovinen.
LABlockLanczosSolver | ( | const Field & | F, |
const BlockLanczosTraits & | traits | ||
) | [inline] |
Constructor
F | Field over which to operate |
traits | SolverTraits} structure describing user options for the solver |
LABlockLanczosSolver | ( | const Field & | F, |
const BlockLanczosTraits & | traits, | ||
typename Field::RandIter | r | ||
) | [inline] |
Constructor with a random iterator
F | Field over which to operate |
traits | SolverTraits} structure describing user options for the solver |
r | Random iterator to use for randomization |
~LABlockLanczosSolver | ( | ) |
Destructor
bool solve | ( | const Blackbox & | A, |
Vector & | x, | ||
const Vector & | b | ||
) |
Solve the linear system Ax = b.
If the system is nonsingular, this method computes the unique solution to the system Ax = b. If the system is singular, it computes a random solution.
A | Black box for the matrix A |
x | Vector in which to store solution |
b | Right-hand side of system |
unsigned int sampleNullspace | ( | const Blackbox & | A, |
Matrix1 & | x | ||
) |
Sample uniformly from the (right) nullspace of A
A | Black box for the matrix A |
x | Matrix into whose columns to store nullspace elements |
unsigned int rank | ( | const Blackbox & | A | ) |
Estimate the rank of A
A | Black box for the matrix A |