NO DOC
#include <iostream>
#include <stdlib.h>
#include <givaro/gfq.h>
#include <givaro/givpoly1factor.h>
#include <givaro/givtimer.h>
int main(int argc, char** argv)
{
typedef GFqDom<int64_t>::Residu_t UT;
UT MOD;
if (argc > 1)
MOD = (UT)atoi(argv[1]);
else
std::cin >> MOD;
uint64_t expo = 1;
if (argc > 2) expo = (uint64_t)atoi(argv[2]);
GFqDom<int64_t> F(MOD, expo);
Poly1FactorDom<GFqDom<int64_t>, Dense> FD(F,Indeter("X"));
Poly1FactorDom<GFqDom<int64_t>, Dense>::Element P, IXE;
FD.init(IXE,Degree(1),F.one);
FD.read( std::cin, P );
Timer tim; tim.clear(); tim.start();
bool f = FD.is_prim_root(IXE, P );
tim.stop();
F.write( FD.write( std::cout, P ) << " is " << (f?"":"not ") << "primitive in " ) << std::endl;
std::cerr << tim << std::endl;
return 0;
}
Namespace in which the whole Givaro library resides.
Definition: all_field.C:23