Example #1
0
void run_triangle(unsigned long max_bits, double ratio)
{
   int max_iter = (int) ceil(log((double) max_bits) / log(ratio));

   unsigned long last_length = 0;
   unsigned long i;
   for (i = 0; i <= max_iter; i++)
   {
      unsigned long length = (unsigned long) floor(powl(ratio, i));
      if (length != last_length)
      {
         last_length = length;

         unsigned long last_bits = 0;
         unsigned long j;
         for (j = 0; j <= max_iter; j++)
         {
            unsigned long bits = (unsigned long) floor(powl(ratio, j));
            if (bits != last_bits)
            {
               last_bits = bits;

               if (bits * length < max_bits)
                  prof2d_sample(length, bits, NULL);
            }
         }
      }
   }
}
Example #2
0
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--;
         }
      }
   }
}
Example #3
0
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);
         }
      }
   }
}
Example #4
0
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);
}
Example #5
0
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);
}
Example #6
0
void run_block(ulong max_length, double ratio)
{
	int max_iter = (int) ceil(log((double) max_length) / log(ratio));
	ulong last_length = 0;
	
	for (ulong i = 0; i <= max_iter; i++)
	{
		ulong length = (ulong) floor(pow(ratio, i));
      if (length != last_length)
      {
         last_length = length;
         ulong m = ceil_log2(length);
	         
         for (ulong bits = 1; bits <= 31; bits++)
	      {
		      if (m + 2*bits <= FLINT_BITS - 2) prof2d_sample(length, bits, NULL);
	      }
		}
	}
}