5cb4e47
--- fityk/fit.cpp.orig	2014-03-08 20:42:18.876972123 -0600
5cb4e47
+++ fityk/fit.cpp	2014-03-08 20:43:43.824323999 -0600
5cb4e47
@@ -15,7 +15,6 @@
5cb4e47
 #include "settings.h"
5cb4e47
 #include "var.h"
5cb4e47
 #include "LMfit.h"
5cb4e47
-#include "CMPfit.h"
5cb4e47
 #include "GAfit.h"
5cb4e47
 #include "NMfit.h"
5cb4e47
 #include "NLfit.h"
5cb4e47
@@ -293,38 +292,6 @@
5cb4e47
     }
5cb4e47
 }
5cb4e47
 
5cb4e47
-// similar to compute_derivatives(), but adjusted for MPFIT interface
5cb4e47
-void Fit::compute_derivatives_mp(const vector<realt> &A,
5cb4e47
-                                 const vector<DataAndModel*>& dms,
5cb4e47
-                                 double **derivs, double *deviates)
5cb4e47
-{
5cb4e47
-    ++evaluations_;
5cb4e47
-    F_->mgr.use_external_parameters(A);
5cb4e47
-    int ntot = 0;
5cb4e47
-    v_foreach (DataAndModel*, i, dms) {
5cb4e47
-        ntot += compute_derivatives_mp_for(*i, ntot, derivs, deviates);
5cb4e47
-    }
5cb4e47
-}
5cb4e47
-
5cb4e47
-int Fit::compute_derivatives_mp_for(const DataAndModel* dm, int offset,
5cb4e47
-                                    double **derivs, double *deviates)
5cb4e47
-{
5cb4e47
-    const Data* data = dm->data();
5cb4e47
-    int n = data->get_n();
5cb4e47
-    vector<realt> xx = data->get_xx();
5cb4e47
-    vector<realt> yy(n, 0.);
5cb4e47
-    const int dyn = na_+1;
5cb4e47
-    vector<realt> dy_da(n*dyn, 0.);
5cb4e47
-    dm->model()->compute_model_with_derivs(xx, yy, dy_da);
5cb4e47
-    for (int i = 0; i != n; ++i)
5cb4e47
-        deviates[offset+i] = (data->get_y(i) - yy[i]) / data->get_sigma(i);
5cb4e47
-    for (int j = 0; j != na_; ++j)
5cb4e47
-        if (derivs[j] != NULL)
5cb4e47
-            for (int i = 0; i != n; ++i)
5cb4e47
-                derivs[j][offset+i] = -dy_da[i*dyn+j] / data->get_sigma(i);
5cb4e47
-    return n;
5cb4e47
-}
5cb4e47
-
5cb4e47
 // similar to compute_derivatives(), but adjusted for NLopt interface
5cb4e47
 realt Fit::compute_derivatives_nl(const vector<realt> &A,
5cb4e47
                                   const vector<DataAndModel*>& dms,
5cb4e47
@@ -682,7 +649,6 @@
5cb4e47
 {
5cb4e47
     // these methods correspond to fit_method_enum[]
5cb4e47
     methods_.push_back(new LMfit(F_, fit_method_enum[0]));
5cb4e47
-    methods_.push_back(new MPfit(F_, fit_method_enum[1]));
5cb4e47
     methods_.push_back(new NMfit(F_, fit_method_enum[2]));
5cb4e47
     methods_.push_back(new GAfit(F_, fit_method_enum[3]));
5cb4e47
 #if HAVE_LIBNLOPT
5cb4e47
@@ -701,7 +667,6 @@
5cb4e47
 const char* FitMethodsContainer::full_method_names[][2] =
5cb4e47
 {
5cb4e47
     { "Levenberg-Marquardt",     "gradient based method" },
5cb4e47
-    { "MPFIT (another Lev-Mar)", "alternative Lev-Mar implementation" },
5cb4e47
     { "Nelder-Mead Simplex",     "slow but simple and reliable method" },
5cb4e47
     { "Genetic Algorithm",       "not really maintained" },
5cb4e47
 #if HAVE_LIBNLOPT