A [`lmfit.Parameters`][1] object built from `scipy_data_fitting.Fit.fitting_parameters`,
        see `scipy_data_fitting.Fit.parameters`.

        Each parameters is assigned a key of the form `p_00000`, `p_00001`, `p_00002`, etc.
        Thus, `sorted(self.lmfit_parameters)` will give the keys in the same
        order defined by `scipy_data_fitting.Fit.fitting_parameters`.

        Parameter values are scaled by `prefix` before assignment.

        The values of `min` and `max`, if specified in the `limft` key,
        will be scaled by `prefix` before being used to add the parameter.

        [1]: http://lmfit.github.io/lmfit-py/parameters.html#the-parameters-class

def lmfit_parameters(self):
        """
        A [`lmfit.Parameters`][1] object built from `scipy_data_fitting.Fit.fitting_parameters`,
        see `scipy_data_fitting.Fit.parameters`.

        Each parameters is assigned a key of the form `p_00000`, `p_00001`, `p_00002`, etc.
        Thus, `sorted(self.lmfit_parameters)` will give the keys in the same
        order defined by `scipy_data_fitting.Fit.fitting_parameters`.

        Parameter values are scaled by `prefix` before assignment.

        The values of `min` and `max`, if specified in the `limft` key,
        will be scaled by `prefix` before being used to add the parameter.

        [1]: http://lmfit.github.io/lmfit-py/parameters.html#the-parameters-class
        """
        p0 = []
        for param in self.fitting_parameters:
            opts = param['lmfit'].copy() if 'lmfit' in param else {}
            if 'min' in opts: opts['min'] = prefix_factor(param) * opts['min']
            if 'max' in opts: opts['max'] = prefix_factor(param) * opts['max']
            p0.append((prefix_factor(param) * param['guess'], opts))

        params = lmfit.Parameters()
        for p in zip(itertools.count(), p0):
            params.add('p_' + "%05d" % p[0], value=p[1][0], **p[1][1])

        return params