code: def lognormal_cdf(x, mu, sigma):
      # wikipedia claims cdf is
      # .5 + .5 erf( log(x) - mu / sqrt(2 sigma^2))
      #
      # the maximum is used to move negative values and 0 up to a point
      # where they do not cause nan or inf, but also don't contribute much
      # to the cdf.
      if len(x) == 0:
          return np.asarray([])
      if x.min() < 0:
          raise ValueError("negative arg to lognormal_cdf", x)
      olderr = np.seterr(divide="ignore")
      try:
          top = np.log(np.maximum(x, EPS)) - mu
          bottom = np.maximum(np.sqrt(2) * sigma, EPS)
          z = top / bottom
          return 0.5 + 0.5 * erf(z)
      finally:
          np.seterr(**olderr)
  
imports: import logging
  import time
  import numpy
  from scipy.special import erf
  from .None import pyll
  from .pyll import scope
  from .pyll.stochastic import implicit_stochastic
  from .base import miscs_to_idxs_vals
  from .base import miscs_update_idxs_vals
  from .None import rand
label_desc: Use image node_id 7 for calling a global function with example usage: lognormal_cdf(x, mu, sigma) and returns: np, unknown