/// @param y factor numbers <= y FactorTable(int64_t y) { if (y > max()) throw primecount_error("y must be <= FactorTable::max()."); y = std::max<int64_t>(8, y); T T_MAX = std::numeric_limits<T>::max(); init_factors(y, T_MAX); }
/* setup. Note: 'int param' must be another argument if modulii other than 2^61-1 will be used */ extern void init_rel_prime(REL_PRIME_TABLE * data, BigNum * maxval) { /* modified by cmdavis */ BigNum limit, num, denom; struct BIGNUM_ARRAY_TYPE the_primes; /* initialize 'data.power' */ (*data).power = POWER_N; /* initialize 'data.valid' */ (*data).valid = new BigNum[1]; (*data).valid = maxval; /* initialize 'data.prim' */ (*data).prim = new BigNum[1]; *((*data).prim) = Set_ui(PRIM); /* initialize 'data.magic' (density of relative primes) */ (*data).magic = new BigRat[1]; num = MAGIC_NUM; denom = MAGIC_DEN; (*((*data).magic)).br_set_num(num); (*((*data).magic)).br_set_den(denom); /* initialize 'data.the_primes[]' */ (*data).the_primes = init_factors(); /* initialize 'data.kill_us[]' */ (*data).kill_us.size = (*data).the_primes.size - MOST; if ((*data).kill_us.size < 0) (*data).kill_us.size = 0; (*data).kill_us.list = (*data).the_primes.list; /* initialize 'data.denom[]' */ the_primes = minus(&((*data).the_primes.list[(*data).kill_us.size]), (*data).the_primes.size - (*data).kill_us.size); /* define maximum value for which setup is valid */ limit = guess_mu_inverse(maxval, (*data).magic); limit = limit * 2; (*data).denom = find_denom(the_primes.list, the_primes.size, &limit); limit.b_clear(); num.b_clear(); denom.b_clear(); free_bn_array(&the_primes); }
static void __init init_clk_top_div(struct clk_onecell_data *clk_data) { init_factors(top_divs, ARRAY_SIZE(top_divs), clk_data); }
static void __init init_clk_root_alias(struct clk_onecell_data *clk_data) { init_factors(root_clk_alias, ARRAY_SIZE(root_clk_alias), clk_data); }