code: def _find_max_lag(x, rho_limit=0.05, maxmaxlag=20000, verbose=0):
      
  
      # Fetch autocovariance matrix
      acv = autocov(x)
      # Calculate rho
      rho = acv[0, 1] / acv[0, 0]
  
      lam = -1. / np.log(abs(rho))
  
      # Initial guess at 1.5 times lambda (i.e. 3 times mean life)
      maxlag = int(np.floor(3. * lam)) + 1
  
      # Jump forward 1% of lambda to look for rholimit threshold
      jump = int(np.ceil(0.01 * lam)) + 1
  
      T = len(x)
  
      while ((abs(rho) > rho_limit) & (maxlag < min(T / 2, maxmaxlag))):
  
          acv = autocov(x, maxlag)
          rho = acv[0, 1] / acv[0, 0]
          maxlag += jump
  
      # Add 30% for good measure
      maxlag = int(np.floor(1.3 * maxlag))
  
      if maxlag >= min(T / 2, maxmaxlag):
          maxlag = min(min(T / 2, maxlag), maxmaxlag)
          "maxlag fixed to %d" % maxlag
          return maxlag
  
      if maxlag <= 1:
          print_("maxlag = %d, fixing value to 10" % maxlag)
          return 10
  
      if verbose:
          print_("maxlag = %d" % maxlag)
      return maxlag
docs: Automatically find an appropriate maximum lag to calculate IAT