int main()

in codelab/pi.cc [130:156]


int main(int argc, char *argv[]) {
  unsigned int prec = 100;

  if (argc != 2) {
    print_usage();
    return 1;
  }
  const std::string_view arg(argv[1]);
  auto [ptr, ec] = std::from_chars(arg.begin(), arg.end(), prec);
  if (ptr != arg.end() && ec != std::errc()) {
    print_usage();
    return 1;
  }
  if (prec < PREC_MIN || PREC_MAX < prec) {
    print_usage();
    return 1;
  }

  const unsigned long prec_bits = prec * std::log2(10.) + PREC_EXTRA_BITS;
  fmt::print(stderr, "Calculating {} digits of pi...\n", prec);
  fmt::print(stderr, "Internal precision = {} bits\n", prec_bits);
  auto pi = chudnovsky_pi(prec, prec_bits);

  // Use MPFR to round to -inf.
  mpfr_printf("%.*RDf\n", (mpfr_prec_t)prec, pi.ptr());
  return 0;
}