linbox
|
Block Lanczos iteration. More...
#include <mg-block-lanczos.h>
Public Member Functions | |
MGBlockLanczosSolver (const Field &F, const Method::BlockLanczos &traits) | |
Constructor. More... | |
MGBlockLanczosSolver (const Field &F, const Method::BlockLanczos &traits, typename Field::RandIter r) | |
Constructor with a random iterator. More... | |
template<class Blackbox , class Vector > | |
bool | solve (const Blackbox &A, Vector &x, const Vector &b) |
Solve the linear system Ax = b. More... | |
template<class Blackbox , class Matrix1 > | |
unsigned int | sampleNullspace (const Blackbox &A, Matrix1 &x) |
Sample uniformly from the (right) nullspace of A. More... | |
Block Lanczos iteration.
This is a blocked version of the iteration given in LanczosSolver. The essential difference is that, rather than applying the black box $A$ to a single vector
Currently, only dense vectors are supported for this iteration, and it is unlikely any other vector archetypes will be supported in the future.
|
inline |
Constructor.
F | Field over which to operate |
traits | SolverTraits structure describing user options for the solver |
|
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 |
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.
If the matrix A is nonsymmetric, this method preconditions the matrix A with the preconditioner D_1 A^T D_2 A D_1, where D_1 and D_2 are random nonsingular diagonal matrices. If the matrix A is symmetric, this method preconditions the system with A D, where D is a random diagonal matrix.
A | Black box for the matrix A |
x | Vector in which to store solution |
b | Right-hand side of system |
|
inline |
Sample uniformly from the (right) nullspace of A.
A | Black box for the matrix A |
x | Matrix into whose columns to store nullspace elements |