Main Page | Modules | Namespace List | Class Hierarchy | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages

RationalSolver< Ring, Field, RandomPrime, WiedemannTraits > Class Template Reference

#include <rational-solver.h>


Detailed Description

template<class Ring, class Field, class RandomPrime>
class LinBox::RationalSolver< Ring, Field, RandomPrime, WiedemannTraits >

partial specialization of p-adic based solver with Wiedemann algorithm

See the following reference for details on this algorithm:


Public Types

typedef Ring RingType
typedef Ring::Element Integer
typedef Field::Element Element
typedef RandomPrime::Prime_Type Prime
typedef std::vector< ElementFPolynomial

Public Member Functions

 RationalSolver (const Ring &r=Ring(), const RandomPrime &rp=RandomPrime(DEFAULT_PRIMESIZE), const WiedemannTraits &traits=WiedemannTraits())
 RationalSolver (const Prime &p, const Ring &r=Ring(), const RandomPrime &rp=RandomPrime(DEFAULT_PRIMESIZE), const WiedemannTraits &traits=WiedemannTraits())
template<class IMatrix, class Vector1, class Vector2> SolverReturnStatus solve (Vector1 &num, Integer &den, const IMatrix &A, const Vector2 &b, const bool, int maxPrimes=DEFAULT_MAXPRIMES) const
template<class IMatrix, class Vector1, class Vector2> SolverReturnStatus solveNonsingular (Vector1 &num, Integer &den, const IMatrix &A, const Vector2 &b, int maxPrimes=DEFAULT_MAXPRIMES) const
template<class IMatrix, class Vector1, class Vector2> SolverReturnStatus solveSingular (Vector1 &num, Integer &den, const IMatrix &A, const Vector2 &b, int maxPrimes=DEFAULT_MAXPRIMES) const
template<class IMatrix, class FMatrix, class IVector> void sparseprecondition (const Field &, const IMatrix *, Compose< LambdaSparseMatrix< Ring >, Compose< IMatrix, LambdaSparseMatrix< Ring > > > *&, const FMatrix *, Compose< LambdaSparseMatrix< Field >, Compose< FMatrix, LambdaSparseMatrix< Field > > > *&, const IVector &, IVector &, LambdaSparseMatrix< Ring > *&, LambdaSparseMatrix< Ring > *&, LambdaSparseMatrix< Field > *&, LambdaSparseMatrix< Field > *&) const

Protected Attributes

Ring _R
RandomPrime _genprime
Prime _prime
WiedemannTraits _traits


Member Typedef Documentation

typedef Ring RingType
 

typedef Ring::Element Integer
 

typedef Field::Element Element
 

typedef RandomPrime::Prime_Type Prime
 

typedef std::vector<Element> FPolynomial
 


Member Function Documentation

RationalSolver const Ring &  r = Ring(),
const RandomPrime rp = RandomPrime(DEFAULT_PRIMESIZE),
const WiedemannTraits traits = WiedemannTraits()
[inline]
 

Constructor

Parameters:
r,a Ring, set by default
rp,a RandomPrime generator, set by default

RationalSolver const Prime p,
const Ring &  r = Ring(),
const RandomPrime rp = RandomPrime(DEFAULT_PRIMESIZE),
const WiedemannTraits traits = WiedemannTraits()
[inline]
 

Constructor with a prime

Parameters:
p,a Prime
r,a Ring, set by default
rp,a RandomPrime generator, set by default

SolverReturnStatus solve Vector1 &  num,
Integer den,
const IMatrix &  A,
const Vector2 &  b,
const  bool,
int  maxPrimes = DEFAULT_MAXPRIMES
const
 

SolverReturnStatus solveNonsingular Vector1 &  num,
Integer den,
const IMatrix &  A,
const Vector2 &  b,
int  maxPrimes = DEFAULT_MAXPRIMES
const
 

SolverReturnStatus solveSingular Vector1 &  num,
Integer den,
const IMatrix &  A,
const Vector2 &  b,
int  maxPrimes = DEFAULT_MAXPRIMES
const
 

void sparseprecondition const Field ,
const IMatrix *  ,
Compose< LambdaSparseMatrix< Ring >, Compose< IMatrix, LambdaSparseMatrix< Ring > > > *&  ,
const FMatrix *  ,
Compose< LambdaSparseMatrix< Field >, Compose< FMatrix, LambdaSparseMatrix< Field > > > *&  ,
const IVector &  ,
IVector &  ,
LambdaSparseMatrix< Ring > *&  ,
LambdaSparseMatrix< Ring > *&  ,
LambdaSparseMatrix< Field > *&  ,
LambdaSparseMatrix< Field > *& 
const
 


Field Documentation

Ring _R [protected]
 

RandomPrime _genprime [protected]
 

Prime _prime [mutable, protected]
 

WiedemannTraits _traits [protected]
 


Generated on Fri Jul 8 10:29:46 2005 for linbox by doxygen 1.3.7