NTL_CLIENT

int main()
{
   ZZ_p::init(to_ZZ(17));

   ZZ_pX P;
   BuildIrred(P, 10);

   ZZ_pE::init(P);

   ZZ_pEX f, g, h;

   random(f, 20);
   SetCoeff(f, 20);

   random(h, 20);

   g = MinPolyMod(h, f);

   if (deg(g) < 0) TerminalError("bad ZZ_pEXTest (1)");
   if (CompMod(g, h, f) != 0)
      TerminalError("bad ZZ_pEXTest (2)");


   
   vec_pair_ZZ_pEX_long v;

   long j;
   for (j = 0; j < 5; j++) {
      long n = RandomBnd(40)+10;
      cerr << n << " ";

      random(f, n);
      SetCoeff(f, n);

      v = CanZass(f);

      g = mul(v);
      if (f != g) cerr << "oops1\n";

      long i;
      for (i = 0; i < v.length(); i++)
         if (!DetIrredTest(v[i].a))
            TerminalError("bad ZZ_pEXTest (3)");


   }

   cerr << "\n";

   cerr << "ZZ_pEXTest OK\n";
}
Esempio n. 2
0
int main()
{
    zz_p::init(2);

    long i;

    vec_GF2 v;
    v.SetLength(5);
    v[1] = 1;
    v[0] = v[1];

    if (v[0] != v[1]) TerminalError("BitMatTest not OK!!");

    for (i=0; i < 8; i++) {
        mat_zz_p a, x;
        mat_GF2 A, X, X1;

        long n = RandomBnd(500) + 1;
        long m = RandomBnd(500) + 1;
        cerr << n << " " << m << "\n";

        double t;

        random(a, n, m);

        t = GetTime();
        image(x, a);
        t = GetTime() - t;
        cerr << t << "\n";

        cvt(A, a);

        t = GetTime();
        image(X, A);
        t = GetTime() - t;
        cerr << t << "\n";

        cvt(X1, x);

        if (X1 != X) TerminalError("BitMatTest NOT OK!!");

        cerr << "\n";
    }

    cerr << "BitMatTest OK\n";

}
Esempio n. 3
0
int main()
{
   ZZ p;
   cin >> p;
   ZZ_p::init(p);
   ZZ_pX f;
   cin >> f;

   vec_pair_ZZ_pX_long factors;

   double t = GetTime();
   CanZass(factors, f, 1);
   t = GetTime()-t;
   cerr << "total time: " << t << "\n";

   ZZ_pX ff;

   mul(ff, factors);
   if (f != ff)
      TerminalError("Incorrect factorization!!");

   sort(factors);

   cerr << "factorization pattern:";
   long i;

   for (i = 0; i < factors.length(); i++) {
      cerr << " ";
      long k = factors[i].b;
      if (k > 1)
         cerr << k << "*";
      cerr << deg(factors[i].a);
   }

   cerr << "\n";
 

   cout << factors << "\n";

   return 0;
}
Esempio n. 4
0
int main(int argc, char **argv)
{
   ZZX f1, f;

   if (argc > 1) 
      ZZXFac_MaxPrune = atoi(argv[1]);

   cin >> f;

   vec_pair_ZZX_long factors;
   ZZ c;

   double t;

   t = GetTime();
   factor(c, factors, f, 0);
   t = GetTime()-t;

   cerr << "total time: " << t << "\n";


   mul(f1, factors);
   mul(f1, f1, c);

   if (f != f1)
      TerminalError("FACTORIZATION INCORRECT!!!");



   sort(factors);

   cout << c << "\n";
   cout << factors << "\n";

   return 0;
}
Esempio n. 5
0
WordVector::~WordVector()  
{  
   if (!rep) return;  
   if (rep[-2] & 1) TerminalError("Cannot free this WordVector");
   free(rep-2);
}