code: def pi_fixed(prec, verbose=False, verbose_base=None):
      """
      Compute floor(pi * 2**prec) as a big integer.
  
      This is done using Chudnovsky's series (see comments in
      libelefun.py for details).
      """
      # The Chudnovsky series gives 14.18 digits per term
      N = int(prec / 3.3219280948 / 14.181647462 + 2)
      if verbose:
          print("binary splitting with N =", N)
      g, p, q = bs_chudnovsky(0, N, 0, verbose)
      sqrtC = isqrt_fast(CHUD_C << (2 * prec))
      v = p * CHUD_C * sqrtC // ((q + CHUD_A * p) * CHUD_D)
      return v
  
imports: import math
  from bisect import bisect
  from .backend import xrange
  from .backend import MPZ, MPZ_ZERO, MPZ_ONE, MPZ_TWO, MPZ_FIVE, BACKEND
  from .libmpf import round_floor, round_ceiling, round_down, round_up, round_nearest, round_fast, ComplexResult, bitcount, bctable, lshift, rshift, giant_steps, sqrt_fixed, from_int, to_int, from_man_exp, to_fixed, to_float, from_float, from_rational, normalize, fzero, fone, fnone, fhalf, finf, fninf, fnan, mpf_cmp, mpf_sign, mpf_abs, mpf_pos, mpf_neg, mpf_add, mpf_sub, mpf_mul, mpf_div, mpf_shift, mpf_rdiv_int, mpf_pow_int, mpf_sqrt, reciprocal_rnd, negative_rnd, mpf_perturb, isqrt_fast
  from .libintmath import ifib
label_desc: Use image node_id 9 for calling a global function with example usage: pi_fixed(prec, verbose, verbose_base) and returns: v