Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

DiophantineSolver Class Template Reference

#include <diophantine-solver.h>

List of all members.


Detailed Description

template<class QSolver>
class LinBox::DiophantineSolver< QSolver >

DiophantineSolver<QSolver> creates a diophantine solver using a QSolver to generate rational solutions.

Methods solve, randomSolve just expose functions from underlying rational solver. Method diophantineSolve creates a solution with minimal denominator, and can also create a certificate of minimality (described in 'Certified Dense Linear System Solving' by Mulders+Storjohann) which will be left in the public field lastCertificate.


Public Member Functions

template<class IMatrix, class Vector1, class Vector2> SolverReturnStatus solve (Vector1 &x, Integer &den, const IMatrix &A, const Vector2 &b, const int maxPrimes=DEFAULT_MAXPRIMES, const SolverLevel level=SL_DEFAULT)
template<class IMatrix, class Vector1, class Vector2> SolverReturnStatus randomSolve (Vector1 &x, Integer &den, const IMatrix &A, const Vector2 &b, const int maxPrimes=DEFAULT_MAXPRIMES, const SolverLevel level=SL_DEFAULT)
template<class IMatrix, class Vector1, class Vector2> SolverReturnStatus diophantineSolve (Vector1 &x, Integer &den, const IMatrix &A, const Vector2 &b, const int maxPrimes=DEFAULT_MAXPRIMES, const SolverLevel level=SL_DEFAULT)


Member Function Documentation

SolverReturnStatus solve Vector1 &  x,
Integer &  den,
const IMatrix &  A,
const Vector2 &  b,
const int  maxPrimes = DEFAULT_MAXPRIMES,
const SolverLevel  level = SL_DEFAULT
 

Solve a linear system Ax=b over quotient field of a ring

Parameters:
A,Matrix of linear system
x,Vector in which to store solution
b,Right-hand side of system
maxPrimes,maximum number of moduli to try
level,level of certification to be used
Returns:
status of solution. if (return != SS_FAILED), and (level >= SL_LASVEGAS), solution is guaranteed correct. SS_FAILED - all primes used were bad SS_OK - solution found. SS_INCONSISTENT - system appreared inconsistent. certificate is in lastCertificate if (level >= SL_CERTIFIED)

SolverReturnStatus randomSolve Vector1 &  x,
Integer &  den,
const IMatrix &  A,
const Vector2 &  b,
const int  maxPrimes = DEFAULT_MAXPRIMES,
const SolverLevel  level = SL_DEFAULT
 

Find a random solution of the general linear system Ax=b over quotient field of a ring.

Parameters:
A,Matrix of linear system
x,Vector in which to store solution
b,Right-hand side of system
maxPrimes,maximum number of moduli to try
level,level of certification to be used
Returns:
status of solution. if (return != SS_FAILED), and (level >= SL_LASVEGAS), solution is guaranteed correct. SS_FAILED - all primes used were bad SS_OK - solution found. SS_INCONSISTENT - system appreared inconsistent. certificate is in lastCertificate if (level >= SL_CERTIFIED)

SolverReturnStatus diophantineSolve Vector1 &  x,
Integer &  den,
const IMatrix &  A,
const Vector2 &  b,
const int  maxPrimes = DEFAULT_MAXPRIMES,
const SolverLevel  level = SL_DEFAULT
 

Find a solution of the linear system Ax=b whose denominator (when written as an integer vector over a single denom) is minimal.

Parameters:
A,Matrix of linear system
x,Vector in which to store solution
b,Right-hand side of system
maxPrimes,maximum number of moduli to try
level,level of certification to be used
Returns:
status of solution. if (return != SS_FAILED) and (level >= SL_LASVEGAS), solution is guaranteed correct if (return == SS_OK) and (level >= SL_LASVEGAS), solution is guaranteed minimal. SS_FAILED - all primes used were bad SS_OK - solution found. certificate of minimality is in lastCertificate if (level >= SL_CERTIFIED) SS_INCONSISTENT - system appreared inconsistent. certificate of inconsistency is in lastCertificate if (level >= SL_CERTIFIED)

status of solution - OK, FAILED, SINGULAR, INCONSISTENT, BAD_PRECONDITIONER


The documentation for this class was generated from the following file:
Generated on Thu Feb 8 22:32:56 2007 for linbox by doxygen 1.3.4