n3fit merge-ready PR
Created by: scarlehoff
As requested during today's meeting. This PR supersedes #461 containing all the new code from n3fit in the form of 3 very elegant commits.
Note: the documentation won't compile automatically (because obv this is not merged with doc_folders) but it should work by just adding the following line to the makefile
sphinx-apidoc -o ./source/modules/n3fit ../../n3fit/n3fit
(writing it here mainly for my own convenience)
The how to for n3fit can still be read in the text of PR #461.
If this PR works there will be a conda package in the server called n3pdf
. If it doesn't work... then I'll be sad because the PR won't be so elegant anymore!
In the next PRs...
There are several things that are added in this PR because they work but I don't think they are production-ready, this corresponds to Statistics.py and the hyperopt routines.
So after this one is merged there will be two more PR:
Statistics
For a lack of a better name. This will break what is now in the Statistics module into several different files. Probably something along the lines of: stopping, animations, positivity checks.
Hyperopt
The hyperoptimization capabilities work perfectly fine, but the analysis routines are a bit of a mess since they were written as part of the analysis and were constantly changing. Now that we have a final version a lot of refactoring is needed to have them in some nice form.
Tests
Some nice 1/2-minutes long regression test would be nice to know when things change (although not sure we would want to take a difference in a fit regression tests as a failure)