code: def boundary_maximum_exponential(graph, xxx_todo_changeme3):
      r
      (gradient_image, sigma, spacing) = xxx_todo_changeme3
      gradient_image = scipy.asarray(gradient_image)
      
      def boundary_term_exponential(intensities):
          """
          Implementation of a exponential boundary term computation over an array.
          """
          # apply exp-(x**2/sigma**2)
          intensities = scipy.power(intensities, 2)
          intensities /= math.pow(sigma, 2)
          intensities *= -1
          intensities = scipy.exp(intensities)
          intensities[intensities <= 0] = sys.float_info.min
          return intensities
      
      __skeleton_maximum(graph, gradient_image, boundary_term_exponential, spacing)
docs: r"""
      Boundary term processing adjacent voxels maximum value using an exponential relationship. 
      
      An implementation of a boundary term, suitable to be used with the
      `~medpy.graphcut.generate.graph_from_voxels` function.
      
      The same as `boundary_difference_exponential`, but working on the gradient image instead
      of the original. See there for details.
      
      Parameters
      ----------
      graph : GCGraph
          The graph to add the weights to.
      gradient_image : ndarray
          The gradient image.
      sigma : float
          The sigma parameter to use in the boundary term.
      spacing : sequence of float or False
          A sequence containing the slice spacing used for weighting the
          computed neighbourhood weight value for different dimensions. If
          `False`, no distance based weighting of the graph edges is performed.
          
      Notes
      -----
      This function requires the gradient image to be passed along. That means that
      `~medpy.graphcut.generate.graph_from_voxels` has to be called with ``boundary_term_args`` set to the
      gradient image.