FitBenchmarking 1.2.0__tar.gz → 1.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/PKG-INFO +19 -16
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/README.md +8 -8
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cli/checkpoint_handler.py +75 -41
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cli/main.py +133 -88
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/base_controller.py +45 -25
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/bumps_controller.py +4 -6
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/ceres_controller.py +2 -1
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/dfo_controller.py +2 -1
- fitbenchmarking-1.4.0/fitbenchmarking/controllers/galahad_controller.py +254 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/gofit_controller.py +3 -2
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/gradient_free_controller.py +4 -3
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/gsl_controller.py +2 -6
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/levmar_controller.py +2 -1
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/lmfit_controller.py +5 -12
- fitbenchmarking-1.4.0/fitbenchmarking/controllers/mantid_controller.py +444 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/matlab_curve_controller.py +2 -1
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/matlab_opt_controller.py +2 -1
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/minuit_controller.py +2 -1
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/nlopt_controller.py +5 -12
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/paramonte_controller.py +3 -1
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/ralfit_controller.py +4 -2
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/scipy_controller.py +7 -4
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/scipy_go_controller.py +2 -2
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/scipy_ls_controller.py +3 -2
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/theseus_controller.py +9 -5
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/core/fitting_benchmarking.py +125 -63
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/core/results_output.py +77 -38
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/base_cost_func.py +8 -3
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/nlls_base_cost_func.py +2 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/base_parser.py +3 -1
- fitbenchmarking-1.4.0/fitbenchmarking/parsing/fitbenchmark_parser.py +606 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/fitting_problem.py +31 -25
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/horace_parser.py +170 -14
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/ivp_parser.py +1 -1
- fitbenchmarking-1.4.0/fitbenchmarking/parsing/mantid_parser.py +136 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/mantiddev_parser.py +28 -49
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/nist_data_functions.py +1 -1
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/parser_factory.py +10 -4
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/sasview_parser.py +2 -0
- fitbenchmarking-1.4.0/fitbenchmarking/parsing/sscanss_parser.py +144 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/base_table.py +129 -18
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/compare_table.py +7 -5
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/energy_usage_table.py +0 -2
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/fitting_report.py +14 -13
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/local_min_table.py +3 -1
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/performance_profiler.py +8 -4
- fitbenchmarking-1.4.0/fitbenchmarking/results_processing/plots.py +1023 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/problem_summary_page.py +107 -47
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/runtime_table.py +23 -1
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/tables.py +16 -22
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/css/custom_style.css +11 -0
- fitbenchmarking-1.4.0/fitbenchmarking/templates/fitting_report_template.html +175 -0
- fitbenchmarking-1.4.0/fitbenchmarking/templates/js/plotly.js +3882 -0
- fitbenchmarking-1.4.0/fitbenchmarking/templates/js/table.js +546 -0
- fitbenchmarking-1.4.0/fitbenchmarking/templates/problem_summary_page_template.html +276 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/table_template.html +15 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/checkpoint.py +9 -5
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/fitbm_result.py +138 -34
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/options.py +26 -3
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/pyproject.toml +21 -7
- fitbenchmarking-1.2.0/fitbenchmarking/controllers/mantid_controller.py +0 -374
- fitbenchmarking-1.2.0/fitbenchmarking/parsing/fitbenchmark_parser.py +0 -632
- fitbenchmarking-1.2.0/fitbenchmarking/parsing/mantid_parser.py +0 -22
- fitbenchmarking-1.2.0/fitbenchmarking/results_processing/plots.py +0 -373
- fitbenchmarking-1.2.0/fitbenchmarking/templates/fitting_report_template.html +0 -158
- fitbenchmarking-1.2.0/fitbenchmarking/templates/js/plotly.js +0 -8
- fitbenchmarking-1.2.0/fitbenchmarking/templates/js/table.js +0 -142
- fitbenchmarking-1.2.0/fitbenchmarking/templates/problem_summary_page_template.html +0 -220
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/.gitignore +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/LICENSE.txt +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/__init__.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/__main__.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/ENSO.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Gauss3.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Hahn1.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Kirby2.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Lanczos1.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Lanczos2.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/META.txt +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/MGH17.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Misra1c.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Misra1d.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/ENSO.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/ENSO.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Gauss3.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Gauss3.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Hahn1.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Hahn1.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Kirby2.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Kirby2.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Lanczos1.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Lanczos1.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Lanczos2.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Lanczos2.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/MGH17.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/MGH17.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Misra1c.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Misra1c.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Misra1d.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Misra1d.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Bennett5.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/BoxBOD.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Eckerle4.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/META.txt +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/MGH09.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/MGH10.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Rat42.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Rat43.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Thurber.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Bennett5.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Bennett5.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/BoxBOD.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/BoxBOD.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Eckerle4.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Eckerle4.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/MGH09.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/MGH09.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/MGH10.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/MGH10.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Rat42.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Rat42.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Rat43.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Rat43.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Thurber.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Thurber.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Chwirut1.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Chwirut2.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/DanWood.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Gauss1.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Gauss2.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Lanczos3.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/META.txt +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Misra1a.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Misra1b.dat +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Chwirut1.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Chwirut1.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Chwirut2.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Chwirut2.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/DanWood.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/DanWood.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Gauss1.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Gauss1.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Gauss2.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Gauss2.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Lanczos3.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Lanczos3.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Misra1a.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Misra1a.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Misra1b.hes +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Misra1b.jac +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cli/__init__.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cli/exception_handler.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/__init__.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/controller_factory.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/horace_controller.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/matlab_controller.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/matlab_curve_controller/eval_r.m +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/matlab_mixin.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/matlab_stats_controller.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/scipy_leastsq_controller.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/core/__init__.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/__init__.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/cost_func_factory.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/hellinger_nlls_cost_func.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/loglike_nlls_cost_func.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/nlls_cost_func.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/poisson_cost_func.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/weighted_nlls_cost_func.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Bold.eot +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-BoldItalic.eot +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Italic.eot +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Light.eot +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-LightItalic.eot +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Medium.eot +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-MediumItalic.eot +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Regular.eot +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Bold.ttf +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-BoldItalic.ttf +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Italic.ttf +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Light.ttf +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-LightItalic.ttf +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Medium.ttf +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-MediumItalic.ttf +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Regular.ttf +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Bold.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-BoldItalic.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Italic.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Light.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-LightItalic.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Medium.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-MediumItalic.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Regular.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Bold.woff2 +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-BoldItalic.woff2 +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Italic.woff2 +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Light.woff2 +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-LightItalic.woff2 +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Medium.woff2 +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-MediumItalic.woff2 +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Regular.woff2 +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.eot +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.svg +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.ttf +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.woff2 +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/__init__.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/analytic_hessian.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/base_hessian.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/best_available_hessian.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/hessian_factory.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/numdifftools_hessian.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/scipy_hessian.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/__init__.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/analytic_jacobian.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/base_jacobian.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/best_available_jacobian.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/default_jacobian.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/jacobian_factory.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/numdifftools_jacobian.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/scipy_jacobian.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/scripts/NIST-Jacobians.nb +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/__init__.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/bal_parser.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/hogben_parser.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/nist_parser.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/__init__.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/acc_table.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/css/dropdown_style.css +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/css/main_style.css +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/css/math_style.css +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/css/table_style.css +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/images/accuracy.png +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/images/compare.png +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/images/energy.png +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/images/fitbenchmarking_logo.png +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/images/local_min.png +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/images/runtime.png +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/index_page.html +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/dropdown.js +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/tex-mml-chtml.js +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/problem_index_page.html +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/style_sheet.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/__init__.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/create_dirs.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/debug.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/exceptions.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/log.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/matlab_engine.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/misc.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/output_grabber.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/timer.py +0 -0
- {fitbenchmarking-1.2.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/write_files.py +0 -0
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: FitBenchmarking
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4.0
|
|
4
4
|
Summary: FitBenchmarking: A tool for comparing fitting software
|
|
5
5
|
Project-URL: Homepage, https://fitbenchmarking.github.io
|
|
6
6
|
Project-URL: Documentation, https://fitbenchmarking.readthedocs.io/en/stable
|
|
7
7
|
Project-URL: Repository, https://github.com/fitbenchmarking/fitbenchmarking
|
|
8
8
|
Project-URL: Release Notes, https://github.com/fitbenchmarking/fitbenchmarking/releases
|
|
9
9
|
Project-URL: Issues, https://github.com/fitbenchmarking/fitbenchmarking/issues
|
|
10
|
-
Author:
|
|
10
|
+
Author: FitBenchmarking Team
|
|
11
|
+
License-File: LICENSE.txt
|
|
11
12
|
Keywords: benchmark,comparison,fitting,least squares,optimisation
|
|
12
13
|
Classifier: License :: OSI Approved :: BSD License
|
|
13
14
|
Classifier: Operating System :: OS Independent
|
|
14
15
|
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Requires-Python: >=3.
|
|
16
|
+
Requires-Python: >=3.10.1
|
|
16
17
|
Requires-Dist: codecarbon<2.7,>=2.5.1
|
|
17
18
|
Requires-Dist: configparser
|
|
18
19
|
Requires-Dist: dash
|
|
@@ -22,11 +23,11 @@ Requires-Dist: lxml
|
|
|
22
23
|
Requires-Dist: matplotlib>=2.0
|
|
23
24
|
Requires-Dist: numpy
|
|
24
25
|
Requires-Dist: pandas>=1.3
|
|
25
|
-
Requires-Dist: plotly>=
|
|
26
|
-
Requires-Dist: scipy
|
|
26
|
+
Requires-Dist: plotly>=6.6.0
|
|
27
|
+
Requires-Dist: scipy<1.16.0,>=0.18
|
|
27
28
|
Requires-Dist: tqdm>=4.60
|
|
28
29
|
Provides-Extra: bumps
|
|
29
|
-
Requires-Dist: bumps
|
|
30
|
+
Requires-Dist: bumps<1.0.0; extra == 'bumps'
|
|
30
31
|
Provides-Extra: dev
|
|
31
32
|
Requires-Dist: coverage[toml]>=6.3; extra == 'dev'
|
|
32
33
|
Requires-Dist: coveralls; extra == 'dev'
|
|
@@ -39,10 +40,12 @@ Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
|
39
40
|
Requires-Dist: ruff; extra == 'dev'
|
|
40
41
|
Provides-Extra: dfo
|
|
41
42
|
Requires-Dist: dfo-ls; extra == 'dfo'
|
|
43
|
+
Provides-Extra: galahad
|
|
44
|
+
Requires-Dist: galahad-optrove; extra == 'galahad'
|
|
42
45
|
Provides-Extra: gofit
|
|
43
46
|
Requires-Dist: gofit; extra == 'gofit'
|
|
44
47
|
Provides-Extra: gradient-free
|
|
45
|
-
Requires-Dist: gradient-free-optimizers; extra == 'gradient-free'
|
|
48
|
+
Requires-Dist: gradient-free-optimizers[sklearn]; extra == 'gradient-free'
|
|
46
49
|
Provides-Extra: hogben
|
|
47
50
|
Requires-Dist: hogben; extra == 'hogben'
|
|
48
51
|
Provides-Extra: levmar
|
|
@@ -68,22 +71,22 @@ Requires-Dist: sasmodels; extra == 'sas'
|
|
|
68
71
|
Requires-Dist: tinycc; (platform_system == 'Windows') and extra == 'sas'
|
|
69
72
|
Description-Content-Type: text/markdown
|
|
70
73
|
|
|
71
|
-
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/release.yml?query=branch%3Av1.
|
|
72
|
-
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/main.yml?query=branch%3Av1.
|
|
74
|
+
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/release.yml?query=branch%3Av1.4.0)
|
|
75
|
+
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/main.yml?query=branch%3Av1.4.0)
|
|
73
76
|
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/install.yml)
|
|
74
|
-
[](https://fitbenchmarking.readthedocs.io/en/v1.4.0)
|
|
75
78
|
[](https://coveralls.io/github/fitbenchmarking/fitbenchmarking)
|
|
76
79
|
[](https://slack.com/)
|
|
77
|
-
[](https://zenodo.org/records/15546207)
|
|
78
81
|
[](https://doi.org/10.21105/joss.03127)
|
|
79
82
|
# FitBenchmarking
|
|
80
83
|
|
|
81
84
|
FitBenchmarking is an open source tool for comparing different minimizers/fitting frameworks. FitBenchmarking is cross platform and we support Windows, Linux and Mac OS. For questions, feature requests or any other inquiries, please open an issue on GitHub.
|
|
82
85
|
|
|
83
|
-
- **Installation Instructions:** https://fitbenchmarking.readthedocs.io/en/v1.
|
|
84
|
-
- **User Documentation & Example Usage:** https://fitbenchmarking.readthedocs.io/en/v1.
|
|
85
|
-
- **Community Guidelines:** https://fitbenchmarking.readthedocs.io/en/v1.
|
|
86
|
-
- **Automated Tests:** Run via GitHub Actions, https://github.com/fitbenchmarking/fitbenchmarking/actions, and tests are documented at https://fitbenchmarking.readthedocs.io/en/v1.
|
|
86
|
+
- **Installation Instructions:** https://fitbenchmarking.readthedocs.io/en/v1.4.0/users/install_instructions/index.html
|
|
87
|
+
- **User Documentation & Example Usage:** https://fitbenchmarking.readthedocs.io/en/v1.4.0/users/index.html
|
|
88
|
+
- **Community Guidelines:** https://fitbenchmarking.readthedocs.io/en/v1.4.0/contributors/guidelines.html
|
|
89
|
+
- **Automated Tests:** Run via GitHub Actions, https://github.com/fitbenchmarking/fitbenchmarking/actions, and tests are documented at https://fitbenchmarking.readthedocs.io/en/v1.4.0/users/tests.html
|
|
87
90
|
|
|
88
91
|
The package is the result of a collaboration between STFC’s Scientific Computing Department and ISIS Neutron and Muon Facility and the Diamond Light Source. We also would like to acknowledge support from:
|
|
89
92
|
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/release.yml?query=branch%3Av1.
|
|
2
|
-
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/main.yml?query=branch%3Av1.
|
|
1
|
+
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/release.yml?query=branch%3Av1.4.0)
|
|
2
|
+
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/main.yml?query=branch%3Av1.4.0)
|
|
3
3
|
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/install.yml)
|
|
4
|
-
[](https://fitbenchmarking.readthedocs.io/en/v1.4.0)
|
|
5
5
|
[](https://coveralls.io/github/fitbenchmarking/fitbenchmarking)
|
|
6
6
|
[](https://slack.com/)
|
|
7
|
-
[](https://zenodo.org/records/15546207)
|
|
8
8
|
[](https://doi.org/10.21105/joss.03127)
|
|
9
9
|
# FitBenchmarking
|
|
10
10
|
|
|
11
11
|
FitBenchmarking is an open source tool for comparing different minimizers/fitting frameworks. FitBenchmarking is cross platform and we support Windows, Linux and Mac OS. For questions, feature requests or any other inquiries, please open an issue on GitHub.
|
|
12
12
|
|
|
13
|
-
- **Installation Instructions:** https://fitbenchmarking.readthedocs.io/en/v1.
|
|
14
|
-
- **User Documentation & Example Usage:** https://fitbenchmarking.readthedocs.io/en/v1.
|
|
15
|
-
- **Community Guidelines:** https://fitbenchmarking.readthedocs.io/en/v1.
|
|
16
|
-
- **Automated Tests:** Run via GitHub Actions, https://github.com/fitbenchmarking/fitbenchmarking/actions, and tests are documented at https://fitbenchmarking.readthedocs.io/en/v1.
|
|
13
|
+
- **Installation Instructions:** https://fitbenchmarking.readthedocs.io/en/v1.4.0/users/install_instructions/index.html
|
|
14
|
+
- **User Documentation & Example Usage:** https://fitbenchmarking.readthedocs.io/en/v1.4.0/users/index.html
|
|
15
|
+
- **Community Guidelines:** https://fitbenchmarking.readthedocs.io/en/v1.4.0/contributors/guidelines.html
|
|
16
|
+
- **Automated Tests:** Run via GitHub Actions, https://github.com/fitbenchmarking/fitbenchmarking/actions, and tests are documented at https://fitbenchmarking.readthedocs.io/en/v1.4.0/users/tests.html
|
|
17
17
|
|
|
18
18
|
The package is the result of a collaboration between STFC’s Scientific Computing Department and ISIS Neutron and Muon Facility and the Diamond Light Source. We also would like to acknowledge support from:
|
|
19
19
|
|
|
@@ -11,6 +11,7 @@ import os
|
|
|
11
11
|
import sys
|
|
12
12
|
import textwrap
|
|
13
13
|
from argparse import ArgumentParser, RawDescriptionHelpFormatter
|
|
14
|
+
from collections import defaultdict
|
|
14
15
|
|
|
15
16
|
from fitbenchmarking.cli.exception_handler import exception_handler
|
|
16
17
|
from fitbenchmarking.core.results_output import (
|
|
@@ -142,7 +143,7 @@ def generate_report(options_file="", additional_options=None, debug=False):
|
|
|
142
143
|
:type options_file: str, optional
|
|
143
144
|
:param additional_options: Extra options for the reporting.
|
|
144
145
|
Available keys are:
|
|
145
|
-
|
|
146
|
+
filename (str): The checkpoint file to use.
|
|
146
147
|
:type additional_options: dict, optional
|
|
147
148
|
"""
|
|
148
149
|
if additional_options is None:
|
|
@@ -155,6 +156,20 @@ def generate_report(options_file="", additional_options=None, debug=False):
|
|
|
155
156
|
checkpoint = Checkpoint(options=options)
|
|
156
157
|
results, unselected_minimizers, failed_problems, config = checkpoint.load()
|
|
157
158
|
|
|
159
|
+
# Update options.software and options.minimizers
|
|
160
|
+
# so that they hold the correct values rather than
|
|
161
|
+
# the default. This update is necessary for processing
|
|
162
|
+
# the multstart plots.
|
|
163
|
+
set_minimizers = defaultdict(set)
|
|
164
|
+
for results_list in results.values():
|
|
165
|
+
for r in results_list:
|
|
166
|
+
set_minimizers[r.software].add(r.minimizer)
|
|
167
|
+
minimizers = defaultdict(
|
|
168
|
+
list, {k: list(v) for k, v in set_minimizers.items()}
|
|
169
|
+
)
|
|
170
|
+
options.software = list(minimizers.keys())
|
|
171
|
+
options.minimizers = minimizers
|
|
172
|
+
|
|
158
173
|
all_dirs = []
|
|
159
174
|
pp_dfs_all_prob_sets = {}
|
|
160
175
|
for label in results:
|
|
@@ -185,46 +200,65 @@ def merge_data_sets(
|
|
|
185
200
|
):
|
|
186
201
|
"""
|
|
187
202
|
Combine multiple checkpoint files into one following these rules:
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
203
|
+
|
|
204
|
+
1) The output will be the same as combining them one at a time in
|
|
205
|
+
sequence. i.e. A + B + C = (A + B) + C
|
|
206
|
+
|
|
207
|
+
**Note:** The rules from here on will only reference A and B as
|
|
208
|
+
the relation is recursive.
|
|
209
|
+
|
|
210
|
+
2) Datasets
|
|
211
|
+
|
|
212
|
+
2a) Datasets in A and B are identical if they agree on the label
|
|
213
|
+
|
|
214
|
+
2b) If A and B contain identical datasets, the problems and results
|
|
215
|
+
are combined as below.
|
|
216
|
+
|
|
217
|
+
**Note:** The remainder of these rules assume that A and B are
|
|
218
|
+
identical datasets as the alternative is trivial.
|
|
219
|
+
|
|
220
|
+
3) Problems
|
|
221
|
+
|
|
222
|
+
3a) If problems in A and B agree on name, ini_params, ini_y, x, y,
|
|
223
|
+
and e then these problems are considered identical.
|
|
224
|
+
|
|
225
|
+
3b)If A and B share identical problems, the details not specified in
|
|
226
|
+
3a are taken from A.
|
|
227
|
+
|
|
228
|
+
3c) If problems in A and B are not identical but share a name, the
|
|
229
|
+
name of the project in B should be updated to "<problem_name>*".
|
|
230
|
+
|
|
231
|
+
4) Results
|
|
232
|
+
|
|
233
|
+
4a) If results in A and B have identical problems and agree on name,
|
|
234
|
+
software_tag, minimizer_tag, jacobian_tag, hessian_tag, and
|
|
235
|
+
costfun_tag they are considered identical.
|
|
236
|
+
|
|
237
|
+
4b) If A an B share identical results, the details not specified in 4a
|
|
238
|
+
are taken from A if strategy is 'first', or B if strategy is 'last'.
|
|
239
|
+
|
|
240
|
+
5) As tables are grids of results, combining arbitrary results can lead to
|
|
241
|
+
un-table-able checkpoint files.
|
|
242
|
+
|
|
243
|
+
This occurs when the problems in A and B are not all identical and the
|
|
244
|
+
set of combinations of software_tag, minimizer_tag, jacobian_tag,
|
|
245
|
+
hessian_tag, and costfun_tag for which there are results in each of A
|
|
246
|
+
and B are not identical.
|
|
247
|
+
|
|
248
|
+
**E.g.** B has a problem not in A and uses a minimizer for which there
|
|
249
|
+
are no results in A.
|
|
250
|
+
|
|
251
|
+
5a) If the resulting checkpoint file would have the above issue,
|
|
252
|
+
the checkpoints are incompatible.
|
|
253
|
+
|
|
254
|
+
5b) Incompatible checkpoint files can be combined but should raise
|
|
255
|
+
warnings and mark the dataset in the checkpoint file.
|
|
256
|
+
|
|
257
|
+
**Note:** Some datasets may be incompatible where others can be
|
|
258
|
+
successfully combined.
|
|
259
|
+
|
|
260
|
+
6) Unselected minimizers and failed problems will be discarded when
|
|
261
|
+
combining.
|
|
228
262
|
|
|
229
263
|
:param files: The files to combine.
|
|
230
264
|
:type files: list[str]
|
|
@@ -122,8 +122,7 @@ of the Fitbenchmarking docs. """
|
|
|
122
122
|
type=str,
|
|
123
123
|
default=[],
|
|
124
124
|
help=(
|
|
125
|
-
"Select what type of algorithm is used within a specific "
|
|
126
|
-
"software."
|
|
125
|
+
"Select what type of algorithm is used within a specific software."
|
|
127
126
|
),
|
|
128
127
|
)
|
|
129
128
|
parser.add_argument(
|
|
@@ -179,8 +178,16 @@ of the Fitbenchmarking docs. """
|
|
|
179
178
|
help="Set the port for Dash.",
|
|
180
179
|
)
|
|
181
180
|
|
|
182
|
-
|
|
183
|
-
|
|
181
|
+
parser.add_argument(
|
|
182
|
+
"--ip_address",
|
|
183
|
+
metavar="IP_ADDRESS",
|
|
184
|
+
type=str,
|
|
185
|
+
default="",
|
|
186
|
+
help="Set the ip address for Dash.",
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
make_plots_group = parser.add_mutually_exclusive_group()
|
|
190
|
+
make_plots_group.add_argument(
|
|
184
191
|
"--make_plots",
|
|
185
192
|
action="store_true",
|
|
186
193
|
help=(
|
|
@@ -188,7 +195,7 @@ of the Fitbenchmarking docs. """
|
|
|
188
195
|
"during runtime."
|
|
189
196
|
),
|
|
190
197
|
)
|
|
191
|
-
|
|
198
|
+
make_plots_group.add_argument(
|
|
192
199
|
"--dont_make_plots",
|
|
193
200
|
action="store_true",
|
|
194
201
|
help=(
|
|
@@ -197,8 +204,8 @@ of the Fitbenchmarking docs. """
|
|
|
197
204
|
),
|
|
198
205
|
)
|
|
199
206
|
|
|
200
|
-
|
|
201
|
-
|
|
207
|
+
results_browser_group = parser.add_mutually_exclusive_group()
|
|
208
|
+
results_browser_group.add_argument(
|
|
202
209
|
"--results_browser",
|
|
203
210
|
action="store_true",
|
|
204
211
|
help=(
|
|
@@ -207,7 +214,7 @@ of the Fitbenchmarking docs. """
|
|
|
207
214
|
"of a fit benchmark."
|
|
208
215
|
),
|
|
209
216
|
)
|
|
210
|
-
|
|
217
|
+
results_browser_group.add_argument(
|
|
211
218
|
"--no_results_browser",
|
|
212
219
|
action="store_true",
|
|
213
220
|
help=(
|
|
@@ -217,8 +224,8 @@ of the Fitbenchmarking docs. """
|
|
|
217
224
|
),
|
|
218
225
|
)
|
|
219
226
|
|
|
220
|
-
|
|
221
|
-
|
|
227
|
+
pbar_group = parser.add_mutually_exclusive_group()
|
|
228
|
+
pbar_group.add_argument(
|
|
222
229
|
"--pbar",
|
|
223
230
|
action="store_true",
|
|
224
231
|
help=(
|
|
@@ -226,7 +233,7 @@ of the Fitbenchmarking docs. """
|
|
|
226
233
|
"see the progress bar during runtime."
|
|
227
234
|
),
|
|
228
235
|
)
|
|
229
|
-
|
|
236
|
+
pbar_group.add_argument(
|
|
230
237
|
"--no_pbar",
|
|
231
238
|
action="store_true",
|
|
232
239
|
help=(
|
|
@@ -269,8 +276,8 @@ of the Fitbenchmarking docs. """
|
|
|
269
276
|
help="Specify the file path to write the logs to.",
|
|
270
277
|
)
|
|
271
278
|
|
|
272
|
-
|
|
273
|
-
|
|
279
|
+
append_log_group = parser.add_mutually_exclusive_group()
|
|
280
|
+
append_log_group.add_argument(
|
|
274
281
|
"--append_log",
|
|
275
282
|
action="store_true",
|
|
276
283
|
help=(
|
|
@@ -280,7 +287,7 @@ of the Fitbenchmarking docs. """
|
|
|
280
287
|
"subsequent run."
|
|
281
288
|
),
|
|
282
289
|
)
|
|
283
|
-
|
|
290
|
+
append_log_group.add_argument(
|
|
284
291
|
"--overwrite_log",
|
|
285
292
|
action="store_true",
|
|
286
293
|
help=(
|
|
@@ -297,7 +304,8 @@ of the Fitbenchmarking docs. """
|
|
|
297
304
|
default="",
|
|
298
305
|
help=(
|
|
299
306
|
"Specify the minimum level of logging to display "
|
|
300
|
-
"on console during runtime."
|
|
307
|
+
"on console during runtime. Can be any of: "
|
|
308
|
+
"NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAL ."
|
|
301
309
|
),
|
|
302
310
|
)
|
|
303
311
|
parser.add_argument(
|
|
@@ -305,7 +313,10 @@ of the Fitbenchmarking docs. """
|
|
|
305
313
|
"--external_output",
|
|
306
314
|
metavar="EXTERNAL_OUTPUT",
|
|
307
315
|
default="",
|
|
308
|
-
help=
|
|
316
|
+
help=(
|
|
317
|
+
"Select the amount of information displayed from third-parties. "
|
|
318
|
+
"Can be any of: display, log_only, debug."
|
|
319
|
+
),
|
|
309
320
|
)
|
|
310
321
|
|
|
311
322
|
parser.add_argument(
|
|
@@ -313,13 +324,13 @@ of the Fitbenchmarking docs. """
|
|
|
313
324
|
default=False,
|
|
314
325
|
action="store_true",
|
|
315
326
|
help=(
|
|
316
|
-
"Load results from the checkpoint and generate"
|
|
327
|
+
"Load results from the checkpoint and generate "
|
|
317
328
|
"reports. Will not run any new tests."
|
|
318
329
|
),
|
|
319
330
|
)
|
|
320
331
|
|
|
321
|
-
|
|
322
|
-
|
|
332
|
+
run_dash_group = parser.add_mutually_exclusive_group()
|
|
333
|
+
run_dash_group.add_argument(
|
|
323
334
|
"--run_dash",
|
|
324
335
|
action="store_true",
|
|
325
336
|
help=(
|
|
@@ -327,7 +338,7 @@ of the Fitbenchmarking docs. """
|
|
|
327
338
|
"interactive plots."
|
|
328
339
|
),
|
|
329
340
|
)
|
|
330
|
-
|
|
341
|
+
run_dash_group.add_argument(
|
|
331
342
|
"--dont_run_dash",
|
|
332
343
|
action="store_true",
|
|
333
344
|
help=(
|
|
@@ -335,6 +346,23 @@ of the Fitbenchmarking docs. """
|
|
|
335
346
|
"run dash for interactive plots."
|
|
336
347
|
),
|
|
337
348
|
)
|
|
349
|
+
|
|
350
|
+
jacobian_check_group = parser.add_mutually_exclusive_group()
|
|
351
|
+
jacobian_check_group.add_argument(
|
|
352
|
+
"--check_jacobian",
|
|
353
|
+
action="store_true",
|
|
354
|
+
help=(
|
|
355
|
+
"Use this option to check the jacobian against "
|
|
356
|
+
"a finite difference approximation."
|
|
357
|
+
),
|
|
358
|
+
)
|
|
359
|
+
jacobian_check_group.add_argument(
|
|
360
|
+
"--dont_check_jacobian",
|
|
361
|
+
action="store_true",
|
|
362
|
+
help=(
|
|
363
|
+
"Use this option if you have decided not to check the jacobian."
|
|
364
|
+
),
|
|
365
|
+
)
|
|
338
366
|
return parser
|
|
339
367
|
|
|
340
368
|
|
|
@@ -347,7 +375,7 @@ def run(problem_sets, additional_options=None, options_file="", debug=False):
|
|
|
347
375
|
:param problem_sets: The paths to directories containing problem_sets.
|
|
348
376
|
:type problem_sets: list of str
|
|
349
377
|
:param additional_options: A dictionary of options input by the
|
|
350
|
-
|
|
378
|
+
user into the command line.
|
|
351
379
|
:type additional_options: dict
|
|
352
380
|
:param options_file: The path to an options file, defaults to ''.
|
|
353
381
|
:type options_file: str, optional
|
|
@@ -383,76 +411,85 @@ def run(problem_sets, additional_options=None, options_file="", debug=False):
|
|
|
383
411
|
pp_dfs_all_prob_sets = {}
|
|
384
412
|
cp = Checkpoint(options=options)
|
|
385
413
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
)
|
|
410
|
-
results, failed_problems, unselected_minimizers = fit.benchmark()
|
|
411
|
-
|
|
412
|
-
# If a result has error flag 4 then the result contains dummy values,
|
|
413
|
-
# if this is the case for all results then output should not be
|
|
414
|
-
# produced as results tables won't show meaningful values.
|
|
415
|
-
all_dummy_results_flag = True
|
|
416
|
-
for result in results:
|
|
417
|
-
if result.error_flag != 4:
|
|
418
|
-
all_dummy_results_flag = False
|
|
419
|
-
break
|
|
420
|
-
|
|
421
|
-
# If the results are an empty list then this means that all minimizers
|
|
422
|
-
# raise an exception and the tables will produce errors if they run
|
|
423
|
-
# for that problem set.
|
|
424
|
-
if not results or all_dummy_results_flag:
|
|
425
|
-
message = (
|
|
426
|
-
"\nWARNING: \nThe user chosen options and/or problem "
|
|
427
|
-
" setup resulted in all minimizers and/or parsers "
|
|
428
|
-
"raising an exception. Because of this, results for "
|
|
429
|
-
f"the {label} problem set will not be displayed. "
|
|
430
|
-
"Please see the logs for more detail on why this is "
|
|
431
|
-
"the case."
|
|
414
|
+
try:
|
|
415
|
+
for sub_dir in problem_sets:
|
|
416
|
+
# Create full path for the directory that holds a group of
|
|
417
|
+
# problem definition files
|
|
418
|
+
data_dir = os.path.join(current_path, sub_dir)
|
|
419
|
+
|
|
420
|
+
test_data = glob.glob(data_dir + "/*.*")
|
|
421
|
+
|
|
422
|
+
if not test_data:
|
|
423
|
+
LOGGER.warning("Problem set %s not found", data_dir)
|
|
424
|
+
continue
|
|
425
|
+
|
|
426
|
+
# generate group label/name used for problem set
|
|
427
|
+
try:
|
|
428
|
+
with open(
|
|
429
|
+
os.path.join(data_dir, "META.txt"), encoding="utf-8"
|
|
430
|
+
) as f:
|
|
431
|
+
label = f.readline().strip("\n")
|
|
432
|
+
except OSError:
|
|
433
|
+
label = sub_dir.replace("/", "_")
|
|
434
|
+
|
|
435
|
+
LOGGER.info(
|
|
436
|
+
"Running the benchmarking on the %s problem set", label
|
|
432
437
|
)
|
|
433
|
-
|
|
434
|
-
else:
|
|
435
|
-
LOGGER.info("Producing output for the %s problem set", label)
|
|
436
|
-
# Display the runtime and accuracy results in a table
|
|
437
|
-
group_results_dir, pp_dfs = save_results(
|
|
438
|
-
group_name=label,
|
|
439
|
-
results=results,
|
|
438
|
+
fit = Fit(
|
|
440
439
|
options=options,
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
440
|
+
data_dir=data_dir,
|
|
441
|
+
label=label,
|
|
442
|
+
checkpointer=cp,
|
|
444
443
|
)
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
444
|
+
results, failed_problems, unselected_minimizers = fit.benchmark()
|
|
445
|
+
|
|
446
|
+
# If a result has error flag 4 then the result contains dummy
|
|
447
|
+
# values, if this is the case for all results then output should
|
|
448
|
+
# not be produced as results tables won't show meaningful values.
|
|
449
|
+
all_dummy_results_flag = True
|
|
450
|
+
for result in results:
|
|
451
|
+
if result.error_flag != 4:
|
|
452
|
+
all_dummy_results_flag = False
|
|
453
|
+
break
|
|
454
|
+
|
|
455
|
+
# If the results are an empty list then this means that all
|
|
456
|
+
# minimizers raise an exception and the tables will produce
|
|
457
|
+
# errors if they run for that problem set.
|
|
458
|
+
if not results or all_dummy_results_flag:
|
|
459
|
+
message = (
|
|
460
|
+
"\nWARNING: \nThe user chosen options and/or problem "
|
|
461
|
+
" setup resulted in all minimizers and/or parsers "
|
|
462
|
+
"raising an exception. Because of this, results for "
|
|
463
|
+
f"the {label} problem set will not be displayed. "
|
|
464
|
+
"Please see the logs for more detail on why this is "
|
|
465
|
+
"the case."
|
|
466
|
+
)
|
|
467
|
+
LOGGER.warning(message)
|
|
468
|
+
else:
|
|
469
|
+
LOGGER.info("Producing output for the %s problem set", label)
|
|
470
|
+
# Display the runtime and accuracy results in a table
|
|
471
|
+
group_results_dir, pp_dfs = save_results(
|
|
472
|
+
group_name=label,
|
|
473
|
+
results=results,
|
|
474
|
+
options=options,
|
|
475
|
+
failed_problems=failed_problems,
|
|
476
|
+
unselected_minimizers=unselected_minimizers,
|
|
477
|
+
config=cp.config,
|
|
478
|
+
)
|
|
479
|
+
|
|
480
|
+
pp_dfs_all_prob_sets[label] = pp_dfs
|
|
481
|
+
|
|
482
|
+
LOGGER.info(
|
|
483
|
+
"Completed benchmarking for %s problem set", sub_dir
|
|
484
|
+
)
|
|
485
|
+
group_results_dir = os.path.relpath(
|
|
486
|
+
path=group_results_dir, start=options.results_dir
|
|
487
|
+
)
|
|
488
|
+
result_dir.append(group_results_dir)
|
|
489
|
+
group_labels.append(label)
|
|
490
|
+
|
|
491
|
+
finally:
|
|
492
|
+
cp.finalise()
|
|
456
493
|
|
|
457
494
|
# Check result_dir is non empty before producing output
|
|
458
495
|
if not result_dir:
|
|
@@ -516,6 +553,7 @@ def main():
|
|
|
516
553
|
"run_name": args.run_name,
|
|
517
554
|
"runtime_metric": args.runtime_metric,
|
|
518
555
|
"port": args.port,
|
|
556
|
+
"ip_address": args.ip_address,
|
|
519
557
|
}
|
|
520
558
|
|
|
521
559
|
# Check if make_plots in options.py should be overridden, and if so,
|
|
@@ -539,6 +577,13 @@ def main():
|
|
|
539
577
|
elif args.dont_run_dash:
|
|
540
578
|
options_dictionary["run_dash"] = False
|
|
541
579
|
|
|
580
|
+
# Check if check_jacobian in options.py should be overridden, and if so,
|
|
581
|
+
# add to options_dictionary
|
|
582
|
+
if args.check_jacobian:
|
|
583
|
+
options_dictionary["check_jacobian"] = True
|
|
584
|
+
elif args.dont_check_jacobian:
|
|
585
|
+
options_dictionary["check_jacobian"] = False
|
|
586
|
+
|
|
542
587
|
# Check if benchmark in options.py should be overridden, and if so,
|
|
543
588
|
# add to options_dictionary
|
|
544
589
|
if args.pbar:
|