code: def _compute_data_dep_bound_gnmax(sigma, logq, order):
      # Applies Theorem 6 in Appendix without checking that logq satisfies necessary
      # constraints. The pre-conditions must be assured by comparing logq against
      # logq0 by the caller.
      variance = sigma**2
      mu1, mu2 = _compute_mu1_mu2_gnmax(sigma, logq)
      eps1 = mu1 / variance
      eps2 = mu2 / variance
  
      log1q = np.log1p(-math.exp(logq))  # log1q = log(1-q)
      log_a = (order - 1) * (
          log1q - (np.log1p(-math.exp((logq + eps2) * (1 - 1 / mu2))))
      )
      log_b = (order - 1) * (eps1 - logq / (mu1 - 1))
  
      return np.logaddexp(log1q + log_a, logq + log_b) / (order - 1)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  from absl import app
  import numpy
  import scipy
  import sympy
  import core
label_desc: Use image node_id 4 for calling a global function with example usage: _compute_data_dep_bound_gnmax(sigma, logq, order) and returns: unknown