#include <iostream>
#include <givaro/givgfq.h>
#include <givaro/givpoly1.h>
int main(
int argc,
char ** argv) {
{
Poly1Dom< GFqDom<int>, Dense > DP13( Z13,
Indeter(
"X") );
Poly1Dom< GFqDom<int>, Dense>
::Element P, Q, R, monomial;
GFqDom<int>::Element tmp;
DP13.assign( P, Z13.
init(tmp,5) );
DP13.write( std::cout << "P: " , P )<< std::endl;
DP13.init( monomial,
Degree(1), 33UL) ;
DP13.write( std::cout << "m: " , monomial )<< std::endl;
DP13.addin( P, monomial );
DP13.write( std::cout << "P: " , P )<< std::endl;
DP13.init( monomial,
Degree(2), 12UL) ;
DP13.write( std::cout << "m: " , monomial )<< std::endl;
DP13.addin( P, monomial );
DP13.write( std::cout << "P: " , P )<< std::endl;
DP13.init( Q,
Degree(0), 6UL );
DP13.write( std::cout << "Q: " , Q )<< std::endl;
DP13.init( monomial,
Degree(4), 3UL);
DP13.write( std::cout << "m: " , monomial )<< std::endl;
DP13.addin( Q, monomial) ;
DP13.write( std::cout << "Q: " , Q )<< std::endl;
DP13.init( monomial,
Degree(1), 75UL);
DP13.write( std::cout << "m: " , monomial )<< std::endl;
DP13.addin( Q, monomial) ;
DP13.write( std::cout << "Q: " , Q )<< std::endl;
DP13.init( monomial,
Degree(3), 45UL);
DP13.write( std::cout << "m: " , monomial )<< std::endl;
DP13.subin( Q, monomial) ;
DP13.write( std::cout << "Q: " , Q )<< std::endl;
DP13.mul ( R, P, Q);
DP13.write( DP13.write(
std::cout << "(" , P ) << ") * (", Q) << ")";
DP13.write(std::cout << " = " , R) << std::endl;
DP13.gcd ( R, P, Q);
DP13.write( DP13.write( DP13.write(
std::cout << "gcd(", P ) << ",", Q) << ") = ", R) << std::endl;
DP13.lcm ( R, P, Q);
DP13.write( DP13.write( DP13.write(
std::cout << "lcm(", P ) << ",", Q) << ") = ", R) << std::endl;
DP13.lcm ( R, Q, P);
DP13.write( DP13.write( DP13.write(
std::cout << "lcm(", Q ) << ",", P) << ") = ", R) << std::endl;
}
return 0;
}