text: import numpy as np
  
  try:
      import mpmath  # type: ignore[import]
  except ImportError:
      pass
  
  
  def mpmath_wrightomega(x):
      return mpmath.lambertw(mpmath.exp(x), mpmath.mpf('-0.5'))
  
  
  def wrightomega_series_error(x):
      series = x
      desired = mpmath_wrightomega(x)
      return abs(series - desired) / desired
  
  
  def wrightomega_exp_error(x):
      exponential_approx = mpmath.exp(x)
      desired = mpmath_wrightomega(x)
      return abs(exponential_approx - desired) / desired
  
  
  def main():
      desired_error = 2 * np.finfo(float).eps
      print('Series Error')
      for x in [1e5, 1e10, 1e15, 1e20]:
          with mpmath.workdps(100):
              error = wrightomega_series_error(x)
          print(x, error, error < desired_error)
  
      print('Exp error')
      for x in [-10, -25, -50, -100, -200, -400, -700, -740]:
          with mpmath.workdps(100):
              error = wrightomega_exp_error(x)
          print(x, error, error < desired_error)
  
  
  if __name__ == '__main__':
      main()
  