コード例 #1
0
ファイル: zmod_poly-profile.c プロジェクト: hperl/flint
void profDriver_zmod_poly_factor(char* params)
{
   unsigned long n, n_max, j, old_bits;
   double n_ratio;
   sscanf(params, "%ld %lf", &n_max, &n_ratio);
   unsigned long last_n = 0;
   
   prof2d_set_sampler(sample_zmod_poly_factor);
   
   int max_iter = (int) ceil(log((double) n_max) / log(n_ratio));
      
   for (unsigned long i = 0; i < max_iter; i++)
   {
      n = (unsigned long) floor(pow(n_ratio, i));
      if (n != last_n)
      {
         last_n = n;
         for (ulong bits = 1, j = 0; bits < FLINT_BITS; j++)
         {      
				 prof2d_sample(n, bits, NULL);
				 old_bits = bits;
				 while (old_bits == bits) {bits = (ulong) floor(pow(n_ratio, j)); j++;}
				 j--;
         }
      }
   }
}
コード例 #2
0
ファイル: zmod_poly-profile.c プロジェクト: hperl/flint
void profDriver_zmod_poly_sqr_classical(char* params)
{
   unsigned long n, n_min, n_max;
   double n_ratio;
   sscanf(params, "%ld %ld %lf", &n_min, &n_max, &n_ratio);
   unsigned long last_n = 0;
   
   prof2d_set_sampler(sample_zmod_poly_sqr_classical);
   
   int max_iter = (int) ceil(log((double) n_max) / log(n_ratio));
   int min_iter = (int) ceil(log((double) n_min) / log(n_ratio));
      
   for (unsigned long i = min_iter; i < max_iter; i++)
   {
      n = (unsigned long) floor(pow(n_ratio, i));
      if (n != last_n)
      {
         last_n = n;
         for (unsigned long bits = 2; bits < 64; bits++)
         {
             unsigned long log_length = 0;
             while ((1L<<log_length)<n) log_length++;
             if (2*bits + log_length <= 2*FLINT_BITS)
                prof2d_sample(n, bits, NULL);
         }
      }
   }
}
コード例 #3
0
ファイル: zmod_poly-profile.c プロジェクト: hperl/flint
void profDriver_zmod_poly_divrem_newton_single(char* params)
{
   unsigned long n, bits;
   sscanf(params, "%ld %ld", &bits, &n);
   prof2d_set_sampler(sample_zmod_poly_divrem_newton);
   
   prof2d_sample(n, bits, NULL);
}
コード例 #4
0
ファイル: zmod_poly-profile.c プロジェクト: hperl/flint
void profDriver_zmod_poly_gcd_hgcd_single(char* params)
{
   unsigned long bits, n;
   sscanf(params, "%ld %ld", &n, &bits);
   
   prof2d_set_sampler(sample_zmod_poly_gcd_hgcd);
   
   prof2d_sample(n, bits, NULL);
}
コード例 #5
0
ファイル: NTL-profile.c プロジェクト: curtisbright/flint1.6
void profDriver_NTL_poly_div2(char* params)
{
   unsigned long max_bits;
   double ratio;
    
   sscanf(params, "%ld %lf", &max_bits, &ratio);
 
   test_support_init();
   prof2d_set_sampler(sample_NTL_poly_div2);
   run_triangle(max_bits, ratio);
   test_support_cleanup();
}
コード例 #6
0
ファイル: F_mpz_poly-profile.c プロジェクト: wbhart/flint1
void profDriver_F_mpz_poly_mul(char* params)
{
   ulong max_length;
   double ratio;

   sscanf(params, "%ld %lf", &max_length, &ratio);

   test_support_init();
   prof2d_set_sampler(sample_F_mpz_poly_mul);
   run_triangle(max_length, ratio);
   test_support_cleanup();
}