code: def _range_prod(lo, hi):
      """
      Product of a range of numbers.
  
      Returns the product of
      lo * (lo+1) * (lo+2) * ... * (hi-2) * (hi-1) * hi
      = hi! / (lo-1)!
  
      Breaks into smaller products first for speed:
      _range_prod(2, 9) = ((2*3)*(4*5))*((6*7)*(8*9))
      """
      if lo + 1 < hi:
          mid = (hi + lo) // 2
          return _range_prod(lo, mid) * _range_prod(mid + 1, hi)
      if lo == hi:
          return lo
      return lo * hi
  
imports: import operator
  import numpy
  import math
  from numpy import pi, asarray, floor, isscalar, iscomplex, real, imag, sqrt, where, mgrid, sin, place, issubdtype, extract, inexact, nan, zeros, sinc
  from .None import _ufuncs
  from ._ufuncs import mathieu_a, mathieu_b, iv, jv, gamma, psi, hankel1, hankel2, yv, kv, ndtri, poch, binom, hyp0f1
  from .None import specfun
  from .None import orthogonal
  from ._comb import _comb_int
label_desc: Use image node_id 55 for calling a global function with example usage: _range_prod(lo, hi) and returns: unknown, unknown, lo