code: def atanh(x):
      """Evaluates the inverse hyperbolic tangent of an interval"""
      np = import_module("numpy")
      if isinstance(x, (int, float)):
          # Outside the domain
          if abs(x) >= 1:
              return interval(-np.inf, np.inf, is_valid=False)
          else:
              return interval(np.arctanh(x))
      elif isinstance(x, interval):
          # outside the domain
          if x.is_valid is False or x.start >= 1 or x.end <= -1:
              return interval(-np.inf, np.inf, is_valid=False)
          # partly outside the domain
          elif x.start <= -1 or x.end >= 1:
              return interval(-np.inf, np.inf, is_valid=None)
          else:
              start = np.arctanh(x.start)
              end = np.arctanh(x.end)
              return interval(start, end, is_valid=x.is_valid)
      else:
          return NotImplementedError
  
imports: from functools import reduce
  from sympy.plotting.intervalmath import interval
  from sympy.external import import_module
label_desc: Use image node_id 21 for calling a global function with example usage: atanh(x) and returns: interval, interval, NotImplementedError, interval, interval, interval