code: def _quad(
      func, a, b, args, full_output, epsabs, epsrel, limit, points
  ):
      infbounds = 0
      if b != Inf and a != -Inf:
          pass  # standard integration
      elif b == Inf and a != -Inf:
          infbounds = 1
          bound = a
      elif b == Inf and a == -Inf:
          infbounds = 2
          bound = 0  # ignored
      elif b != Inf and a == -Inf:
          infbounds = -1
          bound = b
      else:
          raise RuntimeError("Infinity comparisons don't work for you.")
  
      if points is None:
          if infbounds == 0:
              return _quadpack._qagse(
                  func, a, b, args, full_output, epsabs, epsrel, limit
              )
          else:
              return _quadpack._qagie(
                  func,
                  bound,
                  infbounds,
                  args,
                  full_output,
                  epsabs,
                  epsrel,
                  limit,
              )
      else:
          if infbounds != 0:
              raise ValueError(
                  "Infinity inputs cannot be used with break points."
              )
          else:
              # Duplicates force function evaluation at sinular points
              the_points = numpy.unique(points)
              the_points = the_points[a < the_points]
              the_points = the_points[the_points < b]
              the_points = numpy.concatenate((the_points, (0.0, 0.0)))
              return _quadpack._qagpe(
                  func,
                  a,
                  b,
                  the_points,
                  args,
                  full_output,
                  epsabs,
                  epsrel,
                  limit,
              )
  
imports: from __future__ import division, print_function, absolute_import
  import sys
  import warnings
  from functools import partial
  from .None import _quadpack
  import numpy
  from numpy import Inf
label_desc: Use image node_id 3 for calling a global function with example usage: _quad(func, a, b, args, full_output, epsabs, epsrel, limit, points) and returns: _quadpack, _quadpack, _quadpack