#include <iostream>
#include <stdlib.h>
#include <givaro/qfield.h>
#include <givaro/givpoly1.h>
#include <givaro/givtimer.h>
#include <givaro/givinit.h>
#include <givaro/givprint.h>
int main(
int argc,
char** argv)
{
Integer f,m,k;
QField<Rational> Q;
Poly1Dom< QField<Rational>, Dense> PolQ(Q);
size_t n = (argc>1?(size_t)atoi(argv[1]):10);
for(size_t i=0;i<n;++i)
D.push_back( (double(random()) / RAND_MAX) );
R.resize( D.size() );
RatPoly::iterator it=R.begin();
DoublePoly::const_iterator dit = D.begin();
for( ; dit != D.end(); ++dit, ++it)
*it =*dit;
std::cout << "Double Poly : " << D << std::endl;
std::cout << "REDUCED Rational " << R << std::endl;
std::cout << "Approximations : ";
RatPoly::const_iterator cit=R.begin();
dit = D.begin();
for( ; dit != D.end(); ++dit, ++cit)
std::cout << std::endl << *cit << " is " << ((double)*cit) << " by " << ( (double)*cit -*dit ) << ' ';
std::cout << std::endl;
it=R.begin();
dit = D.begin();
for( ; dit != D.end(); ++dit, ++it)
*it =*dit;
std::cout << "Double Poly : " << D << std::endl;
std::cout << "Unreduced Rational " << R << std::endl;
std::cout << "Approximations : ";
cit=R.begin();
dit = D.begin();
for( ; dit != D.end(); ++dit, ++cit)
std::cout << std::endl << *cit << " is " << ((double)*cit) << " by " << ( (double)*cit -*dit ) << ' ';
std::cout << std::endl;
return 0;
}
int main(int argc, char **argv)
Definition: benchmark-recint_exp.C:20
static int64_t seed()
Definition: givtimer.C:30
static void SetNoReduce()
Definition: givratcstor.C:34
Field::Element Element
Definition: f4n3.cpp:12
Namespace in which the whole Givaro library resides.
Definition: all_field.C:23
std::vector< double > DoublePoly
Definition: polydouble.C:24
Poly1Dom< QField< Rational >, Dense >::Element RatPoly
Definition: polydouble.C:23