# include <sstream>
# include <iomanip>
int main(
int argc,
char** argv)
{
Poly_t f = Poly_t( 1,0,0) + Poly_t( -1,1,1) + Poly_t(1,1,2);
std::cout << "f : " << f << std::endl;
Poly_t g;
Poly_t h;
mul(h.rep(),f.rep(),f.rep());
std::cout << "f^2 : ";
print(std::cout, h.rep());
std::cout << std::endl;
int nbvars = h.nbvar();
std::cout << "dg: " << dg << std::endl;
std::cout << "#vars: " << nbvars << std::endl;
Poly_t k = Poly_t( "x^2+0.00000001*x+100.000000001" );
std::ostringstream os; os <<std::fixed<< std::setprecision(16)<< k;
std::cout << "k : " << os.str() << std::endl;
std::cout << "\nk : " << Poly_t(os.str().data()) << std::endl;
for ( Poly_t::iterator it = g.begin(); it != g.end(); ++it) {
it->set_coeff( 1);
seq << *it;
}
Polynomial
P(
"x^2*y+y^2-1"), Q(
"x-1");
std::cout<<
P<<
" "<<Q<<std::endl;
std::cout<<
"P/Q: "<<
P/Q<<std::endl;
std::cout<<
"P%Q: "<<
P%Q<<std::endl;
std::cout<<
"(P*P)/P: "<<(
P*
P)/
P<<std::endl;
std::cout << "g: " << g << std::endl;
std::cout << "h: " << h << std::endl;
h=0; std::cout << "h: " << h << std::endl;
nbvars = h.nbvar() ;
std::cout << "dg: " << dg << std::endl;
std::cout << "#vars: " << nbvars << std::endl;
double dg_fact = factorial<double>(dg);
for (unsigned i = 0; i < seq.size(); ++i) {
for (unsigned j = 0; j < seq.size(); ++j) {
Monomial_t tmon = seq[i] * seq[j];
for ( Poly_t::iterator it = h.begin(); it != h.end(); ++it) {
if( IsComparable( *it, tmon) ) {
if( tmon.size() > 0) {
for (int k = 1; k <= nbvars; ++k) {
int t = ((unsigned) k < tmon.size()? tmon[k] : 0);
c = c / factorial<double>(t);
}
c = c / factorial<double>( dg -
degree( tmon));
std::cout << "t: " << tmon << " "
<< c << " "
<< it->coeff() << " "
<< ( it->coeff() /
c) <<
" "
<< std::endl;
}
}
}
}
}
return 0;
}