FitBenchmarking 1.4.0__tar.gz → 1.5.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.4.0 → fitbenchmarking-1.5.0}/PKG-INFO +9 -9
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/README.md +7 -7
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/base_controller.py +9 -15
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/core/fitting_benchmarking.py +12 -3
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/core/results_output.py +2 -3
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/base_table.py +123 -30
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/compare_table.py +2 -1
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/energy_usage_table.py +5 -1
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/plots.py +36 -4
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/tables.py +3 -15
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/problem_index_page.html +1 -2
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/table_template.html +1 -2
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/checkpoint.py +2 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/fitbm_result.py +10 -1
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/misc.py +13 -2
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/pyproject.toml +1 -1
- fitbenchmarking-1.4.0/fitbenchmarking/templates/js/plotly.js +0 -3882
- fitbenchmarking-1.4.0/fitbenchmarking/templates/js/tex-mml-chtml.js +0 -1
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/.gitignore +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/LICENSE.txt +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/__init__.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/__main__.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/ENSO.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Gauss3.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Hahn1.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Kirby2.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Lanczos1.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Lanczos2.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/META.txt +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/MGH17.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Misra1c.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Misra1d.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/ENSO.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/ENSO.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Gauss3.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Gauss3.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Hahn1.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Hahn1.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Kirby2.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Kirby2.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Lanczos1.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Lanczos1.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Lanczos2.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Lanczos2.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/MGH17.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/MGH17.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Misra1c.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Misra1c.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Misra1d.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Misra1d.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Bennett5.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/BoxBOD.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Eckerle4.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/META.txt +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/MGH09.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/MGH10.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Rat42.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Rat43.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Thurber.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Bennett5.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Bennett5.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/BoxBOD.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/BoxBOD.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Eckerle4.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Eckerle4.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/MGH09.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/MGH09.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/MGH10.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/MGH10.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Rat42.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Rat42.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Rat43.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Rat43.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Thurber.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Thurber.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Chwirut1.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Chwirut2.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/DanWood.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Gauss1.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Gauss2.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Lanczos3.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/META.txt +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Misra1a.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Misra1b.dat +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Chwirut1.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Chwirut1.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Chwirut2.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Chwirut2.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/DanWood.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/DanWood.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Gauss1.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Gauss1.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Gauss2.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Gauss2.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Lanczos3.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Lanczos3.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Misra1a.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Misra1a.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Misra1b.hes +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Misra1b.jac +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cli/__init__.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cli/checkpoint_handler.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cli/exception_handler.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cli/main.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/__init__.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/bumps_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/ceres_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/controller_factory.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/dfo_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/galahad_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/gofit_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/gradient_free_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/gsl_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/horace_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/levmar_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/lmfit_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/mantid_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/matlab_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/matlab_curve_controller/eval_r.m +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/matlab_curve_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/matlab_mixin.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/matlab_opt_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/matlab_stats_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/minuit_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/nlopt_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/paramonte_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/ralfit_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/scipy_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/scipy_go_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/scipy_leastsq_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/scipy_ls_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/theseus_controller.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/core/__init__.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cost_func/__init__.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cost_func/base_cost_func.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cost_func/cost_func_factory.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cost_func/hellinger_nlls_cost_func.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cost_func/loglike_nlls_cost_func.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cost_func/nlls_base_cost_func.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cost_func/nlls_cost_func.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cost_func/poisson_cost_func.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/cost_func/weighted_nlls_cost_func.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Bold.eot +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-BoldItalic.eot +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Italic.eot +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Light.eot +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-LightItalic.eot +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Medium.eot +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-MediumItalic.eot +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Regular.eot +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Bold.ttf +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-BoldItalic.ttf +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Italic.ttf +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Light.ttf +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-LightItalic.ttf +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Medium.ttf +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-MediumItalic.ttf +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Regular.ttf +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Bold.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-BoldItalic.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Italic.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Light.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-LightItalic.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Medium.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-MediumItalic.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Regular.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Bold.woff2 +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-BoldItalic.woff2 +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Italic.woff2 +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Light.woff2 +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-LightItalic.woff2 +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Medium.woff2 +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-MediumItalic.woff2 +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Regular.woff2 +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.eot +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.svg +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.ttf +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.woff2 +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/hessian/__init__.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/hessian/analytic_hessian.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/hessian/base_hessian.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/hessian/best_available_hessian.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/hessian/hessian_factory.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/hessian/numdifftools_hessian.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/hessian/scipy_hessian.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/jacobian/__init__.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/jacobian/analytic_jacobian.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/jacobian/base_jacobian.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/jacobian/best_available_jacobian.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/jacobian/default_jacobian.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/jacobian/jacobian_factory.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/jacobian/numdifftools_jacobian.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/jacobian/scipy_jacobian.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/jacobian/scripts/NIST-Jacobians.nb +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/__init__.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/bal_parser.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/base_parser.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/fitbenchmark_parser.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/fitting_problem.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/hogben_parser.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/horace_parser.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/ivp_parser.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/mantid_parser.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/mantiddev_parser.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/nist_data_functions.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/nist_parser.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/parser_factory.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/sasview_parser.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/parsing/sscanss_parser.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/__init__.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/acc_table.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/fitting_report.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/local_min_table.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/performance_profiler.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/problem_summary_page.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/runtime_table.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/css/custom_style.css +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/css/dropdown_style.css +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/css/main_style.css +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/css/math_style.css +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/css/table_style.css +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/fitting_report_template.html +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/images/accuracy.png +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/images/compare.png +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/images/energy.png +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/images/fitbenchmarking_logo.png +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/images/local_min.png +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/images/runtime.png +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/index_page.html +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/js/dropdown.js +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/js/table.js +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/problem_summary_page_template.html +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/style_sheet.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/__init__.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/create_dirs.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/debug.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/exceptions.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/log.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/matlab_engine.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/options.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/output_grabber.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/timer.py +0 -0
- {fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/utils/write_files.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: FitBenchmarking
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.5.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
|
|
@@ -14,7 +14,7 @@ Classifier: License :: OSI Approved :: BSD License
|
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
16
|
Requires-Python: >=3.10.1
|
|
17
|
-
Requires-Dist: codecarbon
|
|
17
|
+
Requires-Dist: codecarbon>=3.2.6
|
|
18
18
|
Requires-Dist: configparser
|
|
19
19
|
Requires-Dist: dash
|
|
20
20
|
Requires-Dist: docutils
|
|
@@ -71,10 +71,10 @@ Requires-Dist: sasmodels; extra == 'sas'
|
|
|
71
71
|
Requires-Dist: tinycc; (platform_system == 'Windows') and extra == 'sas'
|
|
72
72
|
Description-Content-Type: text/markdown
|
|
73
73
|
|
|
74
|
-
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/release.yml?query=branch%3Av1.
|
|
75
|
-
[](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.5.0)
|
|
75
|
+
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/main.yml?query=branch%3Av1.5.0)
|
|
76
76
|
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/install.yml)
|
|
77
|
-
[](https://fitbenchmarking.readthedocs.io/en/v1.5.0)
|
|
78
78
|
[](https://coveralls.io/github/fitbenchmarking/fitbenchmarking)
|
|
79
79
|
[](https://slack.com/)
|
|
80
80
|
[](https://zenodo.org/records/15546207)
|
|
@@ -83,10 +83,10 @@ Description-Content-Type: text/markdown
|
|
|
83
83
|
|
|
84
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.
|
|
85
85
|
|
|
86
|
-
- **Installation Instructions:** https://fitbenchmarking.readthedocs.io/en/v1.
|
|
87
|
-
- **User Documentation & Example Usage:** https://fitbenchmarking.readthedocs.io/en/v1.
|
|
88
|
-
- **Community Guidelines:** https://fitbenchmarking.readthedocs.io/en/v1.
|
|
89
|
-
- **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.5.0/users/install_instructions/index.html
|
|
87
|
+
- **User Documentation & Example Usage:** https://fitbenchmarking.readthedocs.io/en/v1.5.0/users/index.html
|
|
88
|
+
- **Community Guidelines:** https://fitbenchmarking.readthedocs.io/en/v1.5.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.5.0/users/tests.html
|
|
90
90
|
|
|
91
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:
|
|
92
92
|
|
|
@@ -1,7 +1,7 @@
|
|
|
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.5.0)
|
|
2
|
+
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/main.yml?query=branch%3Av1.5.0)
|
|
3
3
|
[](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/install.yml)
|
|
4
|
-
[](https://fitbenchmarking.readthedocs.io/en/v1.5.0)
|
|
5
5
|
[](https://coveralls.io/github/fitbenchmarking/fitbenchmarking)
|
|
6
6
|
[](https://slack.com/)
|
|
7
7
|
[](https://zenodo.org/records/15546207)
|
|
@@ -10,10 +10,10 @@
|
|
|
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.5.0/users/install_instructions/index.html
|
|
14
|
+
- **User Documentation & Example Usage:** https://fitbenchmarking.readthedocs.io/en/v1.5.0/users/index.html
|
|
15
|
+
- **Community Guidelines:** https://fitbenchmarking.readthedocs.io/en/v1.5.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.5.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
|
|
{fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/controllers/base_controller.py
RENAMED
|
@@ -17,6 +17,7 @@ from fitbenchmarking.utils.exceptions import (
|
|
|
17
17
|
MissingBoundsError,
|
|
18
18
|
UnknownMinimizerError,
|
|
19
19
|
)
|
|
20
|
+
from fitbenchmarking.utils.misc import ERROR_FLAG_MAPPINGS
|
|
20
21
|
|
|
21
22
|
if TYPE_CHECKING:
|
|
22
23
|
from fitbenchmarking.cost_func.base_cost_func import CostFunc
|
|
@@ -32,8 +33,6 @@ class Controller:
|
|
|
32
33
|
|
|
33
34
|
__metaclass__ = ABCMeta
|
|
34
35
|
|
|
35
|
-
VALID_FLAGS = [0, 1, 2, 3, 4, 5, 6, 7, 8]
|
|
36
|
-
|
|
37
36
|
#: Within the controller class, you must
|
|
38
37
|
#: initialize a dictionary, ``algorithm_check``,
|
|
39
38
|
#: such that the **keys** are given by:
|
|
@@ -195,28 +194,23 @@ class Controller:
|
|
|
195
194
|
|
|
196
195
|
@property
|
|
197
196
|
def flag(self):
|
|
198
|
-
"""
|
|
199
|
-
| 0: `Successfully converged`
|
|
200
|
-
| 1: `Software reported maximum number of iterations exceeded`
|
|
201
|
-
| 2: `Software run but didn't converge to solution`
|
|
202
|
-
| 3: `Software raised an exception`
|
|
203
|
-
| 4: `Solver doesn't support bounded problems`
|
|
204
|
-
| 5: `Solution doesn't respect parameter bounds`
|
|
205
|
-
| 6: `Solver has exceeded maximum allowed runtime`
|
|
206
|
-
| 7: `Validation of the provided options failed`
|
|
207
|
-
| 8: `Confidence in fit could not be calculated`
|
|
208
|
-
"""
|
|
209
197
|
return self._flag
|
|
210
198
|
|
|
211
199
|
@flag.setter
|
|
212
200
|
def flag(self, value):
|
|
213
|
-
if value not in
|
|
201
|
+
if value not in ERROR_FLAG_MAPPINGS:
|
|
214
202
|
raise ControllerAttributeError(
|
|
215
203
|
"controller.flag must be one of "
|
|
216
|
-
f"{list(
|
|
204
|
+
f"{list(ERROR_FLAG_MAPPINGS.keys())}. Got: {value}."
|
|
217
205
|
)
|
|
218
206
|
self._flag = int(value)
|
|
219
207
|
|
|
208
|
+
_flag_docstring = "\n" + "\n".join(
|
|
209
|
+
f"""\t :{key}: {value}""" for key, value in ERROR_FLAG_MAPPINGS.items()
|
|
210
|
+
)
|
|
211
|
+
flag.__doc__ = f"""Valid flags:
|
|
212
|
+
{_flag_docstring}"""
|
|
213
|
+
|
|
220
214
|
@property
|
|
221
215
|
def software(self):
|
|
222
216
|
"""
|
{fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/core/fitting_benchmarking.py
RENAMED
|
@@ -5,6 +5,7 @@ fitting software.
|
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
7
|
import os
|
|
8
|
+
import platform
|
|
8
9
|
import timeit
|
|
9
10
|
|
|
10
11
|
import numpy as np
|
|
@@ -71,6 +72,12 @@ class Fit:
|
|
|
71
72
|
self._emissions_tracker = None
|
|
72
73
|
self._logger_prefix = " "
|
|
73
74
|
if "energy_usage" in options.table_type:
|
|
75
|
+
if platform.system() == "Darwin":
|
|
76
|
+
LOGGER.info(
|
|
77
|
+
"Please be aware that you may be prompted by "
|
|
78
|
+
"CodeCarbon to provide a password to give sudo rights "
|
|
79
|
+
"so that the powermetrics tool can be used."
|
|
80
|
+
)
|
|
74
81
|
self._emissions_tracker = EmissionsTracker(
|
|
75
82
|
measure_power_secs=1,
|
|
76
83
|
tracking_mode="process",
|
|
@@ -151,8 +158,8 @@ class Fit:
|
|
|
151
158
|
results = self._loop_over_starting_values(problem)
|
|
152
159
|
self._results.extend(results)
|
|
153
160
|
|
|
154
|
-
|
|
155
|
-
|
|
161
|
+
if self._emissions_tracker:
|
|
162
|
+
_ = self._emissions_tracker.stop()
|
|
156
163
|
|
|
157
164
|
self._checkpointer.finalise_group(
|
|
158
165
|
self._label, self._failed_problems, self._unselected_minimizers
|
|
@@ -548,6 +555,7 @@ class Fit:
|
|
|
548
555
|
num_runs = self._options.num_runs
|
|
549
556
|
energy = np.nan
|
|
550
557
|
tracker = self._emissions_tracker
|
|
558
|
+
tracker_stopped = False
|
|
551
559
|
|
|
552
560
|
try:
|
|
553
561
|
with self._grabbed_output:
|
|
@@ -559,6 +567,7 @@ class Fit:
|
|
|
559
567
|
num_runs, 1
|
|
560
568
|
)
|
|
561
569
|
energy = tracker.stop_task().energy_consumed / num_runs
|
|
570
|
+
tracker_stopped = True
|
|
562
571
|
else:
|
|
563
572
|
runtimes = timeit.Timer(stmt=controller.execute).repeat(
|
|
564
573
|
num_runs, 1
|
|
@@ -630,7 +639,7 @@ class Fit:
|
|
|
630
639
|
controller.timer.reset()
|
|
631
640
|
|
|
632
641
|
# ensure emissions tracker has been stopped if energy not set
|
|
633
|
-
if
|
|
642
|
+
if self._emissions_tracker and not tracker_stopped:
|
|
634
643
|
_ = self._emissions_tracker.stop_task()
|
|
635
644
|
|
|
636
645
|
if controller.flag in [3, 6, 7]:
|
|
@@ -30,7 +30,7 @@ from fitbenchmarking.utils import create_dirs
|
|
|
30
30
|
from fitbenchmarking.utils.exceptions import PlottingError
|
|
31
31
|
from fitbenchmarking.utils.fitbm_result import FittingResult
|
|
32
32
|
from fitbenchmarking.utils.log import get_logger
|
|
33
|
-
from fitbenchmarking.utils.misc import get_css
|
|
33
|
+
from fitbenchmarking.utils.misc import get_css
|
|
34
34
|
from fitbenchmarking.utils.options import Options
|
|
35
35
|
from fitbenchmarking.utils.write_files import write_file
|
|
36
36
|
|
|
@@ -494,7 +494,6 @@ def create_problem_level_index(
|
|
|
494
494
|
:params config: Dictionary containing env config
|
|
495
495
|
:type config: dict
|
|
496
496
|
"""
|
|
497
|
-
js = get_js(options, group_dir)
|
|
498
497
|
|
|
499
498
|
root = os.path.dirname(inspect.getfile(fitbenchmarking))
|
|
500
499
|
template_dir = os.path.join(root, "templates")
|
|
@@ -512,7 +511,7 @@ def create_problem_level_index(
|
|
|
512
511
|
template.render(
|
|
513
512
|
css_style_sheet=css["main"],
|
|
514
513
|
custom_style=css["custom"],
|
|
515
|
-
mathjax=
|
|
514
|
+
mathjax="https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js",
|
|
516
515
|
group_name=group_name,
|
|
517
516
|
table_type=names,
|
|
518
517
|
links=links,
|
{fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/base_table.py
RENAMED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Implements the base class for the tables.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
+
import math
|
|
5
6
|
import os
|
|
6
7
|
from abc import ABCMeta, abstractmethod
|
|
7
8
|
|
|
@@ -9,13 +10,13 @@ import docutils.core
|
|
|
9
10
|
import matplotlib as mpl
|
|
10
11
|
|
|
11
12
|
from fitbenchmarking.cost_func.cost_func_factory import create_cost_func
|
|
13
|
+
from fitbenchmarking.utils.fitbm_result import FittingResult
|
|
12
14
|
|
|
13
15
|
mpl.use("Agg")
|
|
14
16
|
import matplotlib.pyplot as plt
|
|
15
17
|
import numpy as np
|
|
16
18
|
import pandas as pd
|
|
17
|
-
|
|
18
|
-
from fitbenchmarking.utils.misc import get_js
|
|
19
|
+
from pandas.io.formats import style
|
|
19
20
|
|
|
20
21
|
FORMAT_DESCRIPTION = {
|
|
21
22
|
"abs": "Absolute values are displayed in the table.",
|
|
@@ -91,8 +92,13 @@ class Table:
|
|
|
91
92
|
:type table_name: str
|
|
92
93
|
"""
|
|
93
94
|
# Flatten to reduce the necessity on having problems as rows.
|
|
95
|
+
|
|
96
|
+
# dict[row/problem, dict[column/minimiser, list[FittingResult]]]
|
|
94
97
|
self.results = results
|
|
98
|
+
|
|
99
|
+
# dict[row/problem, dict[column/minimiser, FittingResult]]
|
|
95
100
|
self.best_results = best_results
|
|
101
|
+
|
|
96
102
|
self.options = options
|
|
97
103
|
self.group_dir = group_dir
|
|
98
104
|
self.pp_locations = pp_locations
|
|
@@ -226,13 +232,25 @@ class Table:
|
|
|
226
232
|
"""
|
|
227
233
|
str_dict = {}
|
|
228
234
|
for k, results in self.sorted_results.items():
|
|
229
|
-
_,
|
|
235
|
+
_, text_colors = self.get_colours_for_row(results)
|
|
230
236
|
str_dict[k] = [
|
|
231
|
-
self.get_str_result(
|
|
232
|
-
for
|
|
237
|
+
self.get_str_result(result, color, html)
|
|
238
|
+
for result, color in zip(results, text_colors)
|
|
233
239
|
]
|
|
234
240
|
return str_dict
|
|
235
241
|
|
|
242
|
+
def get_hover_table(self):
|
|
243
|
+
"""
|
|
244
|
+
Create a dict with the tooltip for each cell from self.sorted_results
|
|
245
|
+
|
|
246
|
+
:return: The dictionary of strings for the table
|
|
247
|
+
:rtype: dict[list[str]]
|
|
248
|
+
"""
|
|
249
|
+
str_dict = {}
|
|
250
|
+
for k, results in self.sorted_results.items():
|
|
251
|
+
str_dict[k] = [self.get_hover_text(result) for result in results]
|
|
252
|
+
return str_dict.values()
|
|
253
|
+
|
|
236
254
|
def get_colour_df(self, like_df=None):
|
|
237
255
|
"""
|
|
238
256
|
Generate a dataframe of colours to add to the html rendering.
|
|
@@ -336,6 +354,35 @@ class Table:
|
|
|
336
354
|
)
|
|
337
355
|
return val_str
|
|
338
356
|
|
|
357
|
+
@staticmethod
|
|
358
|
+
def get_hover_text(result: FittingResult) -> str:
|
|
359
|
+
"""
|
|
360
|
+
Generate the tooltip text for a given fitting result.
|
|
361
|
+
:param result: The result to generate the text for
|
|
362
|
+
:type result: FittingResult
|
|
363
|
+
|
|
364
|
+
:return: The generated tooltip
|
|
365
|
+
:rtype: str
|
|
366
|
+
"""
|
|
367
|
+
|
|
368
|
+
if math.isinf(result.runtime) or math.isinf(result.min_accuracy):
|
|
369
|
+
return f"Error: {result.status}"
|
|
370
|
+
|
|
371
|
+
if result.iteration_count is None or result.iteration_count == 0:
|
|
372
|
+
iterations = "not available"
|
|
373
|
+
else:
|
|
374
|
+
iterations = result.func_evals
|
|
375
|
+
|
|
376
|
+
return (
|
|
377
|
+
f"""Status: {result.status}"""
|
|
378
|
+
f"""\\a Accuracy: {result.accuracy:.4g}"""
|
|
379
|
+
f"""\\a {result.runtime_metric.capitalize()}"""
|
|
380
|
+
f""" runtime: {result.runtime:.4g}"""
|
|
381
|
+
f"""\\a Energy usage: {result.energy:.4g}"""
|
|
382
|
+
f"""\\a Iterations: {iterations}"""
|
|
383
|
+
f"""\\a Function Evaluations: {result.func_evals}"""
|
|
384
|
+
)
|
|
385
|
+
|
|
339
386
|
def get_colours_for_row(self, results):
|
|
340
387
|
"""
|
|
341
388
|
Get the colours as strings for the given results in the table.
|
|
@@ -385,31 +432,48 @@ class Table:
|
|
|
385
432
|
:rtype: pandas.DataFrame
|
|
386
433
|
"""
|
|
387
434
|
str_results = self.get_str_dict(html)
|
|
388
|
-
|
|
435
|
+
rows, columns = self.format_results_indicies(str_results)
|
|
436
|
+
|
|
437
|
+
results_only = np.array(list(str_results.values()))
|
|
438
|
+
|
|
439
|
+
table = pd.DataFrame(results_only, index=rows, columns=columns)
|
|
440
|
+
|
|
441
|
+
return table
|
|
442
|
+
|
|
443
|
+
def format_results_indicies(self, results: dict[str, list[str]]):
|
|
444
|
+
"""
|
|
445
|
+
Format rows and columns for the results dable
|
|
446
|
+
|
|
447
|
+
:param results: The results to format the indices for
|
|
448
|
+
:type dict: dict[row/problem, list[result string]]]
|
|
449
|
+
"""
|
|
450
|
+
problems = list(results.keys())
|
|
451
|
+
|
|
452
|
+
problem_index_with_sizes = pd.MultiIndex.from_tuples(
|
|
453
|
+
zip(problems, self.problem_sizes)
|
|
454
|
+
)
|
|
455
|
+
|
|
389
456
|
minimizers_list = []
|
|
457
|
+
# Check all rows incase first row has missing information
|
|
390
458
|
for row in self.sorted_results.values():
|
|
391
|
-
for i,
|
|
392
|
-
formatted = (
|
|
459
|
+
for i, result in enumerate(row):
|
|
460
|
+
formatted = (
|
|
461
|
+
result.software,
|
|
462
|
+
result.modified_minimizer_name(False),
|
|
463
|
+
)
|
|
464
|
+
|
|
465
|
+
# add the minimiser the first time it is seen
|
|
393
466
|
if len(minimizers_list) == i:
|
|
394
467
|
minimizers_list.append(formatted)
|
|
468
|
+
# if a longer minimiser name is seen under the same software,
|
|
469
|
+
# update the tuple to use that minimiser instead
|
|
470
|
+
# this ensures column width is wide enough for all minimisers
|
|
395
471
|
elif len(minimizers_list[i][1]) < len(formatted[1]):
|
|
396
472
|
minimizers_list[i] = formatted
|
|
397
473
|
|
|
398
474
|
multi_columns = pd.MultiIndex.from_tuples(minimizers_list)
|
|
399
475
|
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
multi_index = pd.MultiIndex.from_tuples(
|
|
403
|
-
zip(single_index, self.problem_sizes)
|
|
404
|
-
)
|
|
405
|
-
|
|
406
|
-
results_only = np.array(list(str_results.values()))
|
|
407
|
-
|
|
408
|
-
table = pd.DataFrame(
|
|
409
|
-
results_only, index=multi_index, columns=multi_columns
|
|
410
|
-
)
|
|
411
|
-
|
|
412
|
-
return table
|
|
476
|
+
return problem_index_with_sizes, multi_columns
|
|
413
477
|
|
|
414
478
|
def to_html(self):
|
|
415
479
|
"""
|
|
@@ -489,15 +553,21 @@ class Table:
|
|
|
489
553
|
multi_index = pd.MultiIndex.from_tuples(double_index)
|
|
490
554
|
table.index = multi_index
|
|
491
555
|
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
556
|
+
style = self.style_df_for_html(multi_index, columns, table.style)
|
|
557
|
+
|
|
558
|
+
return style.to_html(table_uuid="table")
|
|
559
|
+
|
|
560
|
+
def style_df_for_html(
|
|
561
|
+
self, index, columns, styler: style.Styler
|
|
562
|
+
) -> style.Styler:
|
|
563
|
+
column_dividers = [styler.columns[0]]
|
|
564
|
+
for column in styler.columns[1:]:
|
|
495
565
|
if column[0] != column_dividers[-1][0]:
|
|
496
566
|
column_dividers.append(column)
|
|
497
567
|
column_dividers = column_dividers[1:]
|
|
498
568
|
|
|
499
569
|
# Set the cell colours and increase bars between cost functions
|
|
500
|
-
|
|
570
|
+
styler = styler.apply(
|
|
501
571
|
lambda df: self.get_colour_df(like_df=df), axis=None
|
|
502
572
|
).set_table_styles(
|
|
503
573
|
table_styles={
|
|
@@ -515,7 +585,26 @@ class Table:
|
|
|
515
585
|
}
|
|
516
586
|
)
|
|
517
587
|
|
|
518
|
-
|
|
588
|
+
hover_table = pd.DataFrame(
|
|
589
|
+
list(self.get_hover_table()),
|
|
590
|
+
index=index,
|
|
591
|
+
columns=columns,
|
|
592
|
+
)
|
|
593
|
+
|
|
594
|
+
styler = styler.set_tooltips(
|
|
595
|
+
ttips=hover_table,
|
|
596
|
+
props="white-space: pre;"
|
|
597
|
+
"visibility: hidden;"
|
|
598
|
+
"position: absolute; z-index: 1;"
|
|
599
|
+
"border: 1px solid #8c8b8b;"
|
|
600
|
+
"background-color: white;"
|
|
601
|
+
"color: black; font-size: 0.8em;"
|
|
602
|
+
"transform: translate(2em, -0.6em); padding: 0.6em;"
|
|
603
|
+
"border-radius: 0em;"
|
|
604
|
+
"pointer-events: none;",
|
|
605
|
+
)
|
|
606
|
+
|
|
607
|
+
return styler
|
|
519
608
|
|
|
520
609
|
def to_csv_file(self):
|
|
521
610
|
"""
|
|
@@ -552,8 +641,9 @@ class Table:
|
|
|
552
641
|
" a problem ``rel = abs / 1e-10``."
|
|
553
642
|
)
|
|
554
643
|
descrip = descrip.replace(":ref:", "")
|
|
555
|
-
|
|
556
|
-
|
|
644
|
+
docsettings = {
|
|
645
|
+
"math_output": "MathJax https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js"
|
|
646
|
+
}
|
|
557
647
|
description_page = docutils.core.publish_parts(
|
|
558
648
|
descrip, writer_name="html", settings_overrides=docsettings
|
|
559
649
|
)
|
|
@@ -832,7 +922,7 @@ class Table:
|
|
|
832
922
|
"runtime_dropdown", "Select Runtime Metric", items
|
|
833
923
|
)
|
|
834
924
|
|
|
835
|
-
def get_runtime_value_str(self, result):
|
|
925
|
+
def get_runtime_value_str(self, result: FittingResult) -> str:
|
|
836
926
|
"""
|
|
837
927
|
Generates the value str for the compare and runtime tables.
|
|
838
928
|
|
|
@@ -843,6 +933,7 @@ class Table:
|
|
|
843
933
|
metrics.
|
|
844
934
|
:rtype: str
|
|
845
935
|
"""
|
|
936
|
+
error = result.error_flag if result.error_flag != 0 else ""
|
|
846
937
|
val_str = ""
|
|
847
938
|
for rt in self.runtime_choices:
|
|
848
939
|
formated_runtime = f"{getattr(result, rt + '_runtime'):.4g}"
|
|
@@ -851,7 +942,9 @@ class Table:
|
|
|
851
942
|
val_str += (
|
|
852
943
|
f"<span class='runtime' id='{rt}' "
|
|
853
944
|
f"style='display:{display_style}'>"
|
|
854
|
-
f"{formated_runtime} ({formatted_norm_runtime})
|
|
945
|
+
f"{formated_runtime} ({formatted_norm_runtime})"
|
|
946
|
+
f"<sup>{error}</sup>"
|
|
947
|
+
f"</span>"
|
|
855
948
|
)
|
|
856
949
|
return val_str
|
|
857
950
|
|
{fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/compare_table.py
RENAMED
|
@@ -3,6 +3,7 @@ compare table
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
from fitbenchmarking.results_processing.base_table import Table
|
|
6
|
+
from fitbenchmarking.utils.fitbm_result import FittingResult
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class CompareTable(Table):
|
|
@@ -150,7 +151,7 @@ class CompareTable(Table):
|
|
|
150
151
|
foreground_text = zip(acc_text, runtime_text)
|
|
151
152
|
return background_col, foreground_text
|
|
152
153
|
|
|
153
|
-
def get_hyperlink(self, result, val_str, text_col):
|
|
154
|
+
def get_hyperlink(self, result: FittingResult, val_str, text_col):
|
|
154
155
|
"""
|
|
155
156
|
Generates the hyperlink for a given result
|
|
156
157
|
|
|
@@ -15,7 +15,11 @@ class EnergyUsageTable(Table):
|
|
|
15
15
|
|
|
16
16
|
For more information on how energy usage is measured,
|
|
17
17
|
see the Methodology section of the `codecarbon docs
|
|
18
|
-
<https://
|
|
18
|
+
<https://docs.codecarbon.io/latest/explanation/methodology/>`_.
|
|
19
|
+
|
|
20
|
+
Please be aware that if you are running on a Mac, then you may
|
|
21
|
+
be prompted to provide a password to give sudo rights (so that
|
|
22
|
+
the powermetrics tool can be used).
|
|
19
23
|
|
|
20
24
|
"""
|
|
21
25
|
|
|
@@ -13,7 +13,6 @@ import plotly.graph_objects as go
|
|
|
13
13
|
from plotly.subplots import make_subplots
|
|
14
14
|
|
|
15
15
|
from fitbenchmarking.utils.exceptions import PlottingError
|
|
16
|
-
from fitbenchmarking.utils.misc import get_js
|
|
17
16
|
|
|
18
17
|
|
|
19
18
|
class Plot:
|
|
@@ -87,9 +86,8 @@ class Plot:
|
|
|
87
86
|
:param options: The options for the run
|
|
88
87
|
:type options: utils.options.Options
|
|
89
88
|
"""
|
|
90
|
-
plotly_path = get_js(options, figures_dir).get("plotly")
|
|
91
89
|
html_file_name = Path(figures_dir) / htmlfile
|
|
92
|
-
fig.write_html(html_file_name, include_plotlyjs=
|
|
90
|
+
fig.write_html(html_file_name, include_plotlyjs="cdn")
|
|
93
91
|
|
|
94
92
|
@staticmethod
|
|
95
93
|
def best_filename(result) -> str:
|
|
@@ -192,7 +190,7 @@ class Plot:
|
|
|
192
190
|
title=self.result.name, legend=self._legend_style
|
|
193
191
|
)
|
|
194
192
|
self._update_to_logscale_if_needed(fig, self.result)
|
|
195
|
-
|
|
193
|
+
self._add_menu_buttons(fig)
|
|
196
194
|
htmlfile = (
|
|
197
195
|
f"{minimizer}_fit_for_{self.result.costfun_tag}"
|
|
198
196
|
f"_{self.result.sanitised_name}.html"
|
|
@@ -985,6 +983,40 @@ class Plot:
|
|
|
985
983
|
fig.update_yaxes(type="log")
|
|
986
984
|
return fig
|
|
987
985
|
|
|
986
|
+
@staticmethod
|
|
987
|
+
def _add_menu_buttons(fig) -> go.Figure:
|
|
988
|
+
"""
|
|
989
|
+
Adds an interactible button to the plot, to toggle error bars
|
|
990
|
+
|
|
991
|
+
:param fig: The plotly figure to update the axis for
|
|
992
|
+
:type fig: plotly.graph_objects.Figure
|
|
993
|
+
|
|
994
|
+
:return: Updated plot
|
|
995
|
+
:rtype: plotly.graph_objects.Figure
|
|
996
|
+
"""
|
|
997
|
+
fig.update_layout(
|
|
998
|
+
updatemenus=[
|
|
999
|
+
{
|
|
1000
|
+
"type": "buttons",
|
|
1001
|
+
"direction": "down",
|
|
1002
|
+
"showactive": False,
|
|
1003
|
+
"x": 1.25,
|
|
1004
|
+
"y": 1.15,
|
|
1005
|
+
"xanchor": "right",
|
|
1006
|
+
"yanchor": "top",
|
|
1007
|
+
"buttons": [
|
|
1008
|
+
{
|
|
1009
|
+
"label": "Toggle error bars",
|
|
1010
|
+
"method": "restyle",
|
|
1011
|
+
"args": [{"error_y.visible": [True]}, [0]],
|
|
1012
|
+
"args2": [{"error_y.visible": [False]}, [0]],
|
|
1013
|
+
}
|
|
1014
|
+
],
|
|
1015
|
+
}
|
|
1016
|
+
]
|
|
1017
|
+
)
|
|
1018
|
+
return fig
|
|
1019
|
+
|
|
988
1020
|
@staticmethod
|
|
989
1021
|
def _sample_colours(points: np.ndarray) -> list[str]:
|
|
990
1022
|
"""
|
{fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/results_processing/tables.py
RENAMED
|
@@ -15,22 +15,10 @@ from fitbenchmarking.utils.exceptions import (
|
|
|
15
15
|
UnknownTableError,
|
|
16
16
|
)
|
|
17
17
|
from fitbenchmarking.utils.log import get_logger
|
|
18
|
-
from fitbenchmarking.utils.misc import get_css, get_js
|
|
18
|
+
from fitbenchmarking.utils.misc import ERROR_FLAG_MAPPINGS, get_css, get_js
|
|
19
19
|
|
|
20
20
|
LOGGER = get_logger()
|
|
21
21
|
|
|
22
|
-
ERROR_OPTIONS = {
|
|
23
|
-
0: "Successfully converged",
|
|
24
|
-
1: "Software reported maximum number of iterations exceeded",
|
|
25
|
-
2: "Software run but didn't converge to solution",
|
|
26
|
-
3: "Software raised an exception",
|
|
27
|
-
4: "Solver doesn't support bounded problems",
|
|
28
|
-
5: "Solution doesn't respect parameter bounds",
|
|
29
|
-
6: "Solver has exceeded maximum allowed runtime",
|
|
30
|
-
7: "Validation of the provided options failed",
|
|
31
|
-
8: "Confidence in fit could not be calculated",
|
|
32
|
-
}
|
|
33
|
-
|
|
34
22
|
SORTED_TABLE_NAMES = ["compare", "acc", "runtime", "local_min", "energy_usage"]
|
|
35
23
|
|
|
36
24
|
|
|
@@ -133,7 +121,7 @@ def create_results_tables(
|
|
|
133
121
|
dropdown_style=css["dropdown"],
|
|
134
122
|
table_style=css["table"],
|
|
135
123
|
dropdown_js=js["dropdown"],
|
|
136
|
-
mathjax=
|
|
124
|
+
mathjax="https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js",
|
|
137
125
|
table_js=js["table"],
|
|
138
126
|
table=html["table"],
|
|
139
127
|
problem_dropdown=html["problem_dropdown"],
|
|
@@ -157,7 +145,7 @@ def create_results_tables(
|
|
|
157
145
|
),
|
|
158
146
|
cbar=cbar,
|
|
159
147
|
run_name=run_name,
|
|
160
|
-
error_message=
|
|
148
|
+
error_message=ERROR_FLAG_MAPPINGS,
|
|
161
149
|
failed_problems=failed_problems,
|
|
162
150
|
unselected_minimzers=unselected_minimzers,
|
|
163
151
|
algorithm_type=options.algorithm_type,
|
{fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/problem_index_page.html
RENAMED
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
5
5
|
<link rel="stylesheet" type="text/css" href="{{ css_style_sheet }}" />
|
|
6
6
|
<link rel="stylesheet" type="text/css" href="{{ custom_style }}" />
|
|
7
|
-
<script src="https://
|
|
8
|
-
<script id="MathJax-script" async src="{{ mathjax }}"></script>
|
|
7
|
+
<script src="https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js" defer></script>
|
|
9
8
|
|
|
10
9
|
<head>
|
|
11
10
|
<title>{{ run_name }}{{ group_name }} results</title>
|
{fitbenchmarking-1.4.0 → fitbenchmarking-1.5.0}/fitbenchmarking/templates/table_template.html
RENAMED
|
@@ -6,10 +6,9 @@
|
|
|
6
6
|
<link rel="stylesheet" type="text/css" href="{{ custom_style }}" />
|
|
7
7
|
<link rel="stylesheet" type="text/css" href="{{ dropdown_style }}" />
|
|
8
8
|
<link rel="stylesheet" type="text/css" href="{{ table_style }}" />
|
|
9
|
-
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
|
10
9
|
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
|
|
11
10
|
<script type="text/javascript" src="{{ dropdown_js }}"></script>
|
|
12
|
-
<script
|
|
11
|
+
<script src="https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js" defer></script>
|
|
13
12
|
<script type="text/javascript" src="{{ table_js }}"></script>
|
|
14
13
|
<script>
|
|
15
14
|
// When the table page loads, read the selected runtime metric
|
|
@@ -124,6 +124,7 @@ class Checkpoint:
|
|
|
124
124
|
"J": _compress(result.jac_x),
|
|
125
125
|
"fin_y": _compress(result.fin_y),
|
|
126
126
|
"tags": result.algorithm_type,
|
|
127
|
+
"status": result.status,
|
|
127
128
|
}
|
|
128
129
|
|
|
129
130
|
with open(self.results_file, "a", encoding="utf-8") as f:
|
|
@@ -348,6 +349,7 @@ class Checkpoint:
|
|
|
348
349
|
new_result.r_x = _decompress(r["r"])
|
|
349
350
|
new_result.jac_x = _decompress(r["J"])
|
|
350
351
|
new_result.algorithm_type = r["tags"]
|
|
352
|
+
new_result.status = r.get("status", "unknown")
|
|
351
353
|
|
|
352
354
|
new_result.name = r["name"]
|
|
353
355
|
p = problems[new_result.name]
|