maxint_t S2_trivial(maxint_t x, int threads) { if (x < 1) return 0; if (print_status()) set_print_variables(true); double alpha = get_alpha(x, 0.0017154, -0.0508992, 0.483613, 0.0672202); int64_t y = (int64_t) (iroot<3>(x) * alpha); int64_t z = (int64_t) (x / y); int64_t c = PhiTiny::get_c(y); if (x <= numeric_limits<int64_t>::max()) return S2_trivial((int64_t) x, y, z, c, threads); else return S2_trivial(x, y, z, c, threads); }
int256_t S2_trivial(int128_t x, int threads) { if (x < 1) return 0; double alpha = get_alpha_deleglise_rivat(x); string limit = get_max_x(alpha); if (x > to_int128(limit)) throw primesum_error("S2_trivial(x): x must be <= " + limit); if (is_print()) set_print_variables(true); int64_t y = (int64_t) (iroot<3>(x) * alpha); int64_t z = (int64_t) (x / y); int64_t c = PhiTiny::get_c(y); if (x <= numeric_limits<int64_t>::max()) return S2_trivial((int64_t) x, y, z, c, threads); else return S2_trivial(x, y, z, c, threads); }