def METHOD_NAME(energy, norm=None, group=None, form='lorentzian',
                   esigma=1.0, eshift=0.0, _larch=None):
    """
    convolve a normalized mu(E) spectra with a Lorentzian or Gaussian peak
    shape, degrading separation of XANES features.
    This is provided as a complement to xas_deconvolve, and to deliberately
    broaden spectra to compare with spectra measured at lower resolution.
    Arguments
    ----------
    energy:   array of x-ray energies (in eV) or XAFS data group
    norm:     array of normalized mu(E)
    group:    output group
    form:     form of deconvolution function. One of
              'lorentzian' or  'gaussian' ['lorentzian']
    esigma    energy sigma (in eV) to pass to gaussian() or lorentzian() [1.0]
    eshift    energy shift (in eV) to apply to result [0]
    Returns
    -------
    None
       The array 'conv' will be written to the output group.
    Notes
    -----
       Follows the First Argument Group convention, using group members named
       'energy' and 'norm'
    """
    energy, mu, group = parse_group_args(energy, members=('energy', 'norm'),
                                         defaults=(norm,), group=group,
                                         fcn_name='xas_convolve')
    eshift = eshift + 0.5 * esigma
    en  = remove_dups(energy)
    en  = en - en[0]
    estep = max(0.001, 0.001*int(min(en[1:]-en[:-1])*1000.0))
    npad = 1 + int(max(estep*2.01, 50*esigma)/estep)
    npts = npad  + int(max(en) / estep)
    x = np.arange(npts)*estep
    y = interp(en, mu, x, kind='cubic')
    kernel = lorentzian
    if form.lower().startswith('g'):
        kernel = gaussian
    k = kernel(x, center=0, sigma=esigma)
    ret = np.convolve(y, k, mode='full')
    out = interp(x-eshift, ret[:len(x)], en, kind='cubic')
    group = set_xafsGroup(group, _larch=_larch)
    group.conv = out / k.sum()