code: def epanechnikovKernel(x,ref_x,h=1.0):
      '''
      The Epanechnikov kernel.
  
      Parameters
      ----------
      x : np.array
          Values at which to evaluate the kernel
      x_ref : float
          The reference point
      h : float
          Kernel bandwidth
  
      Returns
      -------
      out : np.array
          Kernel values at each value of x
      '''
      u          = (x-ref_x)/h   # Normalize distance by bandwidth
      these      = np.abs(u) <= 1.0 # Kernel = 0 outside [-1,1]
      out        = np.zeros_like(x)   # Initialize kernel output
      out[these] = 0.75*(1.0-u[these]**2.0) # Evaluate kernel
      return ouf epanechnikovKernel(x,ref_x,h=1.0):
      '''
      The Epanechnikov kernel.
  
      Parameters
      ----------
      x : np.array
          Values at which to evaluate the kernel
      x_ref : float
          The reference point
      h : float
          Kernel bandwidth
  
      Returns
      -------
      out : np.array
          Kernel values at each value of x
      '''
      u          = (x-ref_x)/h   # Normalize distance by bandwidth
      these      = np.abs(u) <= 1.0 # Kernel = 0 outside [-1,1]
      out        = np.zeros_like(x)   # Initialize kernel output
      out[these] = 0.75*(1.0-u[these]**2.0) # Evaluate kernel
      return out
docs: The Epanechnikov kernel.
  
      Parameters
      ----------
      x : np.array
          Values at which to evaluate the kernel
      x_ref : float
          The reference point
      h : float
          Kernel bandwidth
  
      Returns
      -------
      out : np.array
          Kernel values at each value of x