linbox
1
|
DiophantineSolver<QSolver> creates a diophantine solver using a QSolver to generate rational solutions. More...
#include <diophantine-solver.h>
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) |
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.
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
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 |
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.
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 |
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.
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 |