28#ifndef _SLINSOLVER_RATIONAL_H_
29#define _SLINSOLVER_RATIONAL_H_
95 virtual int dim()
const = 0;
Sparse Linear Solver virtual base class with Rational precision.
virtual int getFactorCount() const =0
get number of factorizations
virtual void solveLeft(SSVectorRational &x, const SVectorRational &b)=0
solves .
virtual void solveRight4update(SSVectorRational &x, const SVectorRational &b)=0
Solves . Possibly sets up internal data structures suitable for an optimized subsequent change() call...
SLinSolverRational()
default constructor
virtual int dim() const =0
returns dimension of loaded matrix.
virtual const char * getName() const =0
returns the name of the SLinSolverRational.
virtual bool isConsistent() const =0
consistency check.
virtual void solveRight(SSVectorRational &x, const SVectorRational &b)=0
Solves .
virtual void clear()=0
unloads any matrix.
virtual Status change(int idx, const SVectorRational &subst, const SSVectorRational *eta=nullptr)=0
Substitute column idx with subst.
Status
status flags of the SLinSolverRational class.
@ ERROR
An error has occurred.
@ UNLOADED
No matrix has yet been loaded.
@ TIME
The time limit has been hit.
@ SINGULAR
The loaded matrix is singular.
virtual void solve2right4update(SSVectorRational &x, VectorRational &y, const SVectorRational &b, SSVectorRational &d)=0
Solves and .
virtual void solveLeft(VectorRational &x, const VectorRational &b)=0
solves .
virtual ~SLinSolverRational()
destructor
virtual void solveRight(VectorRational &x, const VectorRational &b)=0
Solves .
virtual Rational stability() const =0
returns a stability number (0: singularity, 1: perfect stability).
virtual int memory() const =0
returns current memory consumption.
virtual void solveLeft(SSVectorRational &x, VectorRational &two, const SVectorRational &b, SSVectorRational &rhs2)=0
solves and internally using .
virtual void solve3right4update(SSVectorRational &x, VectorRational &y, VectorRational &z, const SVectorRational &b, SSVectorRational &d, SSVectorRational &e)=0
Solves , and .
virtual Status status() const =0
returns the Status of the SLinSolverRational.
virtual SLinSolverRational * clone() const =0
clone function for polymorphism
virtual std::string statistics() const =0
returns statistical information in form of a string.
virtual Status load(const SVectorRational *vec[], int dim)=0
loads dim column vectors vec into the solver.
virtual void solveLeft(SSVectorRational &x, VectorRational &y, VectorRational &z, const SVectorRational &b, SSVectorRational &d, SSVectorRational &e)=0
solves , and
Everything should be within this namespace.
number< gmp_rational, et_off > Rational
Debugging, floating point type and parameter definitions.
Dense vector for linear algebra.