#include "Matrix.h" #include "QGroup.h" #include "Math/bigint.h" #include #include void QGroup::assign(int mm,int seed) { m=mm; #define numsmallprimes 46 int small_primes[numsmallprimes]= { 2, 3, 5, 7,11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173, 179,181,191,193,197,199}; /* Create list of prime basic generators */ vector pr(m); int npr=0; for (int i=0; i(npr)); int i,j,te,ord,e; /* Basic relations...*/ for (i=0; i=0; i--) { int ei=nn%d[i]; nn=(nn-ei)/d[i]; elem=(elem*powerMod(g[i],ei,m))%m; } elems[n]=elem; return elem; }