linbox
Public Member Functions
LABlockLanczosSolver< Field, Matrix > Class Template Reference

Biorthogonalising block Lanczos iteration. More...

#include <la-block-lanczos.h>

Public Member Functions

 LABlockLanczosSolver (const Field &F, const Method::BlockLanczos &traits)
 Constructor. More...
 
 LABlockLanczosSolver (const Field &F, const Method::BlockLanczos &traits, typename Field::RandIter r)
 Constructor with a random iterator. More...
 
 ~LABlockLanczosSolver ()
 Destructor.
 
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...
 
template<class Blackbox >
unsigned int rank (const Blackbox &A)
 Estimate the rank of A. More...
 

Detailed Description

template<class Field, class Matrix = BlasMatrix<Field>>
class LinBox::LABlockLanczosSolver< Field, Matrix >

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.

Constructor & Destructor Documentation

◆ LABlockLanczosSolver() [1/2]

LABlockLanczosSolver ( const Field &  F,
const Method::BlockLanczos &  traits 
)
inline

Constructor.

Parameters
FField over which to operate
traitsSolverTraits structure describing user options for the solver

◆ LABlockLanczosSolver() [2/2]

LABlockLanczosSolver ( const Field &  F,
const Method::BlockLanczos &  traits,
typename Field::RandIter  r 
)
inline

Constructor with a random iterator.

Parameters
FField over which to operate
traitsSolverTraits structure describing user options for the solver
rRandom iterator to use for randomization

Member Function Documentation

◆ solve()

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.

Parameters
ABlack box for the matrix A
xVector in which to store solution
bRight-hand side of system
Returns
True on success; false on failure

◆ sampleNullspace()

unsigned int sampleNullspace ( const Blackbox &  A,
Matrix1 &  x 
)

Sample uniformly from the (right) nullspace of A.

Parameters
ABlack box for the matrix A
xMatrix into whose columns to store nullspace elements
Returns
Number of nullspace vectors found

◆ rank()

unsigned int rank ( const Blackbox &  A)

Estimate the rank of A.

Parameters
ABlack box for the matrix A
Returns
Lower bound on the rank of A

The documentation for this class was generated from the following files: