|
Lines 144-148
Link Here
|
| 144 |
const double * Gradient() const { |
144 |
const double * Gradient() const { |
| 145 |
if (fSolver == 0) return 0; |
145 |
if (fSolver == 0) return 0; |
| 146 |
gsl_multifit_gradient(fSolver->J, fSolver->f,fVec); |
146 |
//gsl_multifit_gradient(fSolver->J, fSolver->f,fVec); |
|
|
147 |
gsl_matrix * J = gsl_matrix_alloc(fSolver->fdf->n, fSolver->fdf->p); |
| 148 |
gsl_multifit_fdfsolver_jac(fSolver, J); |
| 149 |
gsl_multifit_gradient(J, fSolver->f,fVec); |
| 147 |
return fVec->data; |
150 |
return fVec->data; |
| 148 |
} |
151 |
} |
|
Lines 155-159
Link Here
|
| 155 |
fCov = gsl_matrix_alloc( npar, npar ); |
158 |
fCov = gsl_matrix_alloc( npar, npar ); |
| 156 |
static double kEpsrel = 0.0001; |
159 |
static double kEpsrel = 0.0001; |
| 157 |
int ret = gsl_multifit_covar(fSolver->J, kEpsrel, fCov); |
160 |
// int ret = gsl_multifit_covar(fSolver->J, kEpsrel, fCov); |
|
|
161 |
gsl_matrix * J = gsl_matrix_alloc(fSolver->fdf->n, fSolver->fdf->p); |
| 162 |
gsl_multifit_fdfsolver_jac(fSolver, J); |
| 163 |
int ret = gsl_multifit_covar(J, kEpsrel, fCov); |
| 158 |
if (ret != GSL_SUCCESS) return 0; |
164 |
if (ret != GSL_SUCCESS) return 0; |
| 159 |
return fCov->data; |
165 |
return fCov->data; |