This patch enables the
fit command to use alternative minimization algorithms. The active fitting code can be changed using
set fit backend [internal | cminpack | lmfit | minuit | mpfit | pmfit].
show fit will report the active choice and available backends (depending on the available libraries). Currently 5 alternatives are implemented:
cminpackuses F. Devernay's C/C++ implementation of MINPACK (version 1.3.x),
lmfituses J. Wuttke's variant of MINPACK (version 3.x only!),
mpfituses C. Markwardt's MINPACK code (version 1.2),
minuituses the CERN Minuit2 package,
pmfituses Petr Mikulik's marqfitp.
marqfitp code is included in the patch in a slightly modified form. All other backends require the respective library to be installed. The Minuit code in this patch is not derived from patch 202 in any way.
The patch is meant as a proof-of-principle and support of some of the backends is incomplete. The idea is to compare the performance of gnuplot's fitting code with other (well-known) minimization packages. Some of the backends might eventually be included in gnuplot. The licenses of all of the libraries used seem to be compatible with gnuplot's.