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--; } } } }
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); } } } }
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); }
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); }
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(); }
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(); }