linbox

VectorFraction<Domain> is a vector of rational elements with common reduced denominator. More...
#include <vectorfraction.h>
Public Member Functions  
VectorFraction (const Domain &D, FVector &frac)  
constructor from vector of rational numbers reduces individual pairs inplace first unless alreadyReduced=true  
VectorFraction (const Domain &D, size_t n)  
allocating constructor, returns [0, 0, ... More...  
VectorFraction (const VectorFraction< Domain > &VF)  
copy constructor  
void  copy (const VectorFraction< Domain > &VF) 
copy without construction  
void  clearAndResize (size_t size) 
clear and resize without construction  
bool  combineSolution (const VectorFraction< Domain > &other) 
Replaces *this with a linear combination of *this and other such that the result has denominator == gcd(this>denom, other.denom) see Mulders+Storjohann : 'Certified Dense Linear System Solving' Lemma 2.1 return value of true means that there was some improvement (ie denom was reduced)  
bool  boundedCombineSolution (const VectorFraction< Domain > &other, const Element &denBound, Element &g) 
Adds inplace to *this a multiple of other such that the result has gcd(denominator, denBound) == gcd(this>denom, other.denom, denBound) see Mulders+Storjohann : 'Certified Dense Linear System Solving' Lemma 6.1 return value of true means that there was some improvement (ie gcd(denom, denBound) was reduced) g is gcd(denom, denBound), and is updated by this function when there is improvement.  
bool  combineCertificate (const VectorFraction< Domain > &other, Element &n1, Element &d1, const Element &n2, const Element d2) 
Adds inplace to *this a multiple of other to create an improved certificate ("z") n1/d1 = *this . More...  
VectorFraction< Domain > &  axpyin (Element &a, const VectorFraction< Domain > &x) 
this += a * x. More...  
std::ostream &  write (std::ostream &os) const 
write to a stream  
FVector &  toFVector (FVector &result) const 
convert to 'answer' type of lifting container  
VectorFraction< Domain > &  simplify () 
reduces to simplest form, returns (*this)  
VectorFraction<Domain> is a vector of rational elements with common reduced denominator.
Here Domain is a ring supporting the gcd, eg NTL_ZZ or Givaro::ZRing<Integer> For compatability with the return type of rationalSolver, it allows conversion from/to std::vector<std::pair<Domain::Element> >. All functions will return the fraction in reduced form, calling reduce() if necessary.

inline 
allocating constructor, returns [0, 0, ...
0]/1

inline 
Adds inplace to *this a multiple of other to create an improved certificate ("z") n1/d1 = *this .
b, n2/d2 = other . b in reduced form n1/d1 are updated so that new denominator is lcm(d1, d2); see Mulders+Storjohann : 'Certified Dense Linear System Solving' Lemma 6.2 return value of true means that there was some improvement (ie d1 was increased)

inline 
this += a * x.
performs a rational axpy with an integer multiplier returns (*this)