code: def acot_fixed(a, prec, hyperbolic):
      """
      Compute acot(a) or acoth(a) for an integer a with binary splitting; see
      http://numbers.computation.free.fr/Constants/Algorithms/splitting.html
      """
      N = int(0.35 * prec / math.log(a) + 20)
      p, q, r = bsp_acot(a, 0, N, hyperbolic)
      return ((p + q) << prec) // (q * a)
  
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 4 for calling a global function with example usage: acot_fixed(a, prec, hyperbolic) and returns: unknown