code: def _gaussian_kernel1d(sigma, order, radius):
      """
      Computes a 1D Gaussian convolution kernel.
      """
      if order < 0:
          raise ValueError("order must be non-negative")
      p = numpy.polynomial.Polynomial([0, 0, -0.5 / (sigma * sigma)])
      x = numpy.arange(-radius, radius + 1)
      phi_x = numpy.exp(p(x), dtype=numpy.double)
      phi_x /= phi_x.sum()
      if order > 0:
          q = numpy.polynomial.Polynomial([1])
          p_deriv = p.deriv()
          for _ in range(order):
              # f(x) = q(x) * phi(x) = q(x) * exp(p(x))
              # f'(x) = (q'(x) + q(x) * p'(x)) * phi(x)
              q = q.deriv() + q * p_deriv
          phi_x *= q(x)
      return phi_x
  
imports: from __future__ import division, print_function, absolute_import
  import warnings
  import numbers
  import numpy
  import operator
  from .None import _ni_support
  from .None import _nd_image
  from .None import _ni_docstrings
label_desc: Use image node_id 4 for calling a global function with example usage: _gaussian_kernel1d(sigma, order, radius) and returns: phi_x