NO DOC
#include <iostream>
#include <givaro/givgfq.h>
#include <givaro/StaticElement.h>
{
template<>
Field Element::_domain(2);
}
int main(
int argc,
char ** argv) {
unsigned long P = (argc>1 ? (unsigned long)atoi(argv[1]) : 5009UL);
Element::setDomain(
Field(P) );
Element a(2),b(-29.8),c(33),d(
Integer(
"123456789012345678901234567890"));
a = b; std::cerr << a << " = " << b << " mod " << P << ";" << std::endl;
a = b + c; std::cerr << a << " = " << b << " + " << c << " mod " << P << ";" << std::endl;
a = b - c; std::cerr << a << " = " << b << " - " << c << " mod " << P << ";" << std::endl;
a = b * c; std::cerr << a << " = " << b << " * " << c << " mod " << P << ";" << std::endl;
a = b / c; std::cerr << a << " = " << b << " / " << c << " mod " << P << ";" << std::endl;
std::cerr << d << " + " << a << " mod " << P << " = ";
d += a; std::cerr << d << ";" << std::endl;
std::cerr << d << " - " << a << " mod " << P << " = ";
d -= a; std::cerr << d << ";" << std::endl;
std::cerr << d << " * " << a << " mod " << P << " = ";
d *= a; std::cerr << d << ";" << std::endl;
std::cerr << d << " / " << a << " mod " << P << " = ";
d /= a; std::cerr << d << ";" << std::endl;
std::cerr << a <<
" is non zero is " << (a !=
Element(0) ) << std::endl;
a = 0; std::cerr << a <<
" is zero is " << (a ==
Element(0) ) << std::endl;
Field F = Element::getDomain();
F.write( std::cerr << "Test: within ") << std::endl;
return 0;
}