FitBenchmarking 1.3.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.
Files changed (250) hide show
  1. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/PKG-INFO +16 -14
  2. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/README.md +8 -8
  3. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cli/checkpoint_handler.py +15 -0
  4. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cli/main.py +17 -4
  5. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/base_controller.py +2 -2
  6. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/galahad_controller.py +15 -4
  7. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/gradient_free_controller.py +2 -2
  8. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/mantid_controller.py +10 -6
  9. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/theseus_controller.py +9 -5
  10. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/core/fitting_benchmarking.py +6 -5
  11. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/core/results_output.py +21 -14
  12. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/base_cost_func.py +2 -2
  13. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/nlls_base_cost_func.py +2 -0
  14. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/base_parser.py +3 -1
  15. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/fitbenchmark_parser.py +13 -8
  16. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/fitting_problem.py +11 -6
  17. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/horace_parser.py +37 -26
  18. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/mantid_parser.py +1 -2
  19. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/mantiddev_parser.py +4 -2
  20. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/parser_factory.py +10 -4
  21. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/sasview_parser.py +2 -0
  22. fitbenchmarking-1.4.0/fitbenchmarking/parsing/sscanss_parser.py +144 -0
  23. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/plots.py +271 -124
  24. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/problem_summary_page.py +94 -74
  25. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/tables.py +1 -1
  26. fitbenchmarking-1.4.0/fitbenchmarking/templates/js/plotly.js +3882 -0
  27. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/problem_summary_page_template.html +150 -148
  28. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/checkpoint.py +5 -4
  29. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/fitbm_result.py +17 -19
  30. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/options.py +11 -2
  31. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/pyproject.toml +7 -5
  32. fitbenchmarking-1.3.0/fitbenchmarking/templates/js/plotly.js +0 -3879
  33. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/.gitignore +0 -0
  34. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/LICENSE.txt +0 -0
  35. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/__init__.py +0 -0
  36. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/__main__.py +0 -0
  37. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/ENSO.dat +0 -0
  38. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Gauss3.dat +0 -0
  39. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Hahn1.dat +0 -0
  40. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Kirby2.dat +0 -0
  41. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Lanczos1.dat +0 -0
  42. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Lanczos2.dat +0 -0
  43. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/META.txt +0 -0
  44. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/MGH17.dat +0 -0
  45. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Misra1c.dat +0 -0
  46. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/Misra1d.dat +0 -0
  47. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/ENSO.hes +0 -0
  48. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/ENSO.jac +0 -0
  49. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Gauss3.hes +0 -0
  50. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Gauss3.jac +0 -0
  51. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Hahn1.hes +0 -0
  52. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Hahn1.jac +0 -0
  53. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Kirby2.hes +0 -0
  54. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Kirby2.jac +0 -0
  55. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Lanczos1.hes +0 -0
  56. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Lanczos1.jac +0 -0
  57. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Lanczos2.hes +0 -0
  58. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Lanczos2.jac +0 -0
  59. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/MGH17.hes +0 -0
  60. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/MGH17.jac +0 -0
  61. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Misra1c.hes +0 -0
  62. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Misra1c.jac +0 -0
  63. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Misra1d.hes +0 -0
  64. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/average_difficulty/data_files/Misra1d.jac +0 -0
  65. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Bennett5.dat +0 -0
  66. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/BoxBOD.dat +0 -0
  67. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Eckerle4.dat +0 -0
  68. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/META.txt +0 -0
  69. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/MGH09.dat +0 -0
  70. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/MGH10.dat +0 -0
  71. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Rat42.dat +0 -0
  72. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Rat43.dat +0 -0
  73. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/Thurber.dat +0 -0
  74. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Bennett5.hes +0 -0
  75. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Bennett5.jac +0 -0
  76. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/BoxBOD.hes +0 -0
  77. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/BoxBOD.jac +0 -0
  78. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Eckerle4.hes +0 -0
  79. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Eckerle4.jac +0 -0
  80. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/MGH09.hes +0 -0
  81. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/MGH09.jac +0 -0
  82. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/MGH10.hes +0 -0
  83. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/MGH10.jac +0 -0
  84. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Rat42.hes +0 -0
  85. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Rat42.jac +0 -0
  86. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Rat43.hes +0 -0
  87. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Rat43.jac +0 -0
  88. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Thurber.hes +0 -0
  89. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/high_difficulty/data_files/Thurber.jac +0 -0
  90. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Chwirut1.dat +0 -0
  91. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Chwirut2.dat +0 -0
  92. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/DanWood.dat +0 -0
  93. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Gauss1.dat +0 -0
  94. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Gauss2.dat +0 -0
  95. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Lanczos3.dat +0 -0
  96. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/META.txt +0 -0
  97. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Misra1a.dat +0 -0
  98. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/Misra1b.dat +0 -0
  99. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Chwirut1.hes +0 -0
  100. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Chwirut1.jac +0 -0
  101. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Chwirut2.hes +0 -0
  102. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Chwirut2.jac +0 -0
  103. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/DanWood.hes +0 -0
  104. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/DanWood.jac +0 -0
  105. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Gauss1.hes +0 -0
  106. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Gauss1.jac +0 -0
  107. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Gauss2.hes +0 -0
  108. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Gauss2.jac +0 -0
  109. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Lanczos3.hes +0 -0
  110. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Lanczos3.jac +0 -0
  111. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Misra1a.hes +0 -0
  112. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Misra1a.jac +0 -0
  113. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Misra1b.hes +0 -0
  114. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/benchmark_problems/NIST/low_difficulty/data_files/Misra1b.jac +0 -0
  115. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cli/__init__.py +0 -0
  116. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cli/exception_handler.py +0 -0
  117. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/__init__.py +0 -0
  118. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/bumps_controller.py +0 -0
  119. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/ceres_controller.py +0 -0
  120. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/controller_factory.py +0 -0
  121. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/dfo_controller.py +0 -0
  122. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/gofit_controller.py +0 -0
  123. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/gsl_controller.py +0 -0
  124. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/horace_controller.py +0 -0
  125. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/levmar_controller.py +0 -0
  126. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/lmfit_controller.py +0 -0
  127. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/matlab_controller.py +0 -0
  128. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/matlab_curve_controller/eval_r.m +0 -0
  129. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/matlab_curve_controller.py +0 -0
  130. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/matlab_mixin.py +0 -0
  131. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/matlab_opt_controller.py +0 -0
  132. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/matlab_stats_controller.py +0 -0
  133. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/minuit_controller.py +0 -0
  134. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/nlopt_controller.py +0 -0
  135. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/paramonte_controller.py +0 -0
  136. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/ralfit_controller.py +0 -0
  137. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/scipy_controller.py +0 -0
  138. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/scipy_go_controller.py +0 -0
  139. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/scipy_leastsq_controller.py +0 -0
  140. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/controllers/scipy_ls_controller.py +0 -0
  141. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/core/__init__.py +0 -0
  142. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/__init__.py +0 -0
  143. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/cost_func_factory.py +0 -0
  144. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/hellinger_nlls_cost_func.py +0 -0
  145. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/loglike_nlls_cost_func.py +0 -0
  146. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/nlls_cost_func.py +0 -0
  147. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/poisson_cost_func.py +0 -0
  148. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/cost_func/weighted_nlls_cost_func.py +0 -0
  149. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Bold.eot +0 -0
  150. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-BoldItalic.eot +0 -0
  151. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Italic.eot +0 -0
  152. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Light.eot +0 -0
  153. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-LightItalic.eot +0 -0
  154. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Medium.eot +0 -0
  155. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-MediumItalic.eot +0 -0
  156. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/eot/FiraSans-Regular.eot +0 -0
  157. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Bold.ttf +0 -0
  158. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-BoldItalic.ttf +0 -0
  159. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Italic.ttf +0 -0
  160. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Light.ttf +0 -0
  161. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-LightItalic.ttf +0 -0
  162. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Medium.ttf +0 -0
  163. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-MediumItalic.ttf +0 -0
  164. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/ttf/FiraSans-Regular.ttf +0 -0
  165. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Bold.woff +0 -0
  166. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-BoldItalic.woff +0 -0
  167. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Italic.woff +0 -0
  168. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Light.woff +0 -0
  169. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-LightItalic.woff +0 -0
  170. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Medium.woff +0 -0
  171. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-MediumItalic.woff +0 -0
  172. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff/FiraSans-Regular.woff +0 -0
  173. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Bold.woff2 +0 -0
  174. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-BoldItalic.woff2 +0 -0
  175. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Italic.woff2 +0 -0
  176. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Light.woff2 +0 -0
  177. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-LightItalic.woff2 +0 -0
  178. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Medium.woff2 +0 -0
  179. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-MediumItalic.woff2 +0 -0
  180. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FiraSans/woff2/FiraSans-Regular.woff2 +0 -0
  181. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.eot +0 -0
  182. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.svg +0 -0
  183. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.ttf +0 -0
  184. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.woff +0 -0
  185. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/fonts/FontAwesome/fontawesome-webfont.woff2 +0 -0
  186. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/__init__.py +0 -0
  187. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/analytic_hessian.py +0 -0
  188. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/base_hessian.py +0 -0
  189. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/best_available_hessian.py +0 -0
  190. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/hessian_factory.py +0 -0
  191. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/numdifftools_hessian.py +0 -0
  192. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/hessian/scipy_hessian.py +0 -0
  193. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/__init__.py +0 -0
  194. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/analytic_jacobian.py +0 -0
  195. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/base_jacobian.py +0 -0
  196. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/best_available_jacobian.py +0 -0
  197. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/default_jacobian.py +0 -0
  198. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/jacobian_factory.py +0 -0
  199. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/numdifftools_jacobian.py +0 -0
  200. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/scipy_jacobian.py +0 -0
  201. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/jacobian/scripts/NIST-Jacobians.nb +0 -0
  202. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/__init__.py +0 -0
  203. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/bal_parser.py +0 -0
  204. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/hogben_parser.py +0 -0
  205. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/ivp_parser.py +0 -0
  206. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/nist_data_functions.py +0 -0
  207. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/parsing/nist_parser.py +0 -0
  208. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/__init__.py +0 -0
  209. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/acc_table.py +0 -0
  210. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/base_table.py +0 -0
  211. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/compare_table.py +0 -0
  212. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/energy_usage_table.py +0 -0
  213. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/fitting_report.py +0 -0
  214. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/local_min_table.py +0 -0
  215. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/performance_profiler.py +0 -0
  216. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/results_processing/runtime_table.py +0 -0
  217. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/css/custom_style.css +0 -0
  218. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/css/dropdown_style.css +0 -0
  219. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/css/main_style.css +0 -0
  220. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/css/math_style.css +0 -0
  221. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/css/table_style.css +0 -0
  222. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/fitting_report_template.html +0 -0
  223. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/images/accuracy.png +0 -0
  224. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/images/compare.png +0 -0
  225. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/images/energy.png +0 -0
  226. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/images/fitbenchmarking_logo.png +0 -0
  227. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/images/local_min.png +0 -0
  228. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/images/runtime.png +0 -0
  229. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/index_page.html +0 -0
  230. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/dropdown.js +0 -0
  231. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  232. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  233. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  234. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  235. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  236. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/table.js +0 -0
  237. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/js/tex-mml-chtml.js +0 -0
  238. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/problem_index_page.html +0 -0
  239. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/style_sheet.py +0 -0
  240. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/templates/table_template.html +0 -0
  241. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/__init__.py +0 -0
  242. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/create_dirs.py +0 -0
  243. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/debug.py +0 -0
  244. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/exceptions.py +0 -0
  245. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/log.py +0 -0
  246. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/matlab_engine.py +0 -0
  247. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/misc.py +0 -0
  248. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/output_grabber.py +0 -0
  249. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.0}/fitbenchmarking/utils/timer.py +0 -0
  250. {fitbenchmarking-1.3.0 → fitbenchmarking-1.4.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.0
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
@@ -13,7 +13,7 @@ Keywords: benchmark,comparison,fitting,least squares,optimisation
13
13
  Classifier: License :: OSI Approved :: BSD License
14
14
  Classifier: Operating System :: OS Independent
15
15
  Classifier: Programming Language :: Python :: 3
16
- Requires-Python: >=3.9.1
16
+ Requires-Python: >=3.10.1
17
17
  Requires-Dist: codecarbon<2.7,>=2.5.1
18
18
  Requires-Dist: configparser
19
19
  Requires-Dist: dash
@@ -23,11 +23,11 @@ Requires-Dist: lxml
23
23
  Requires-Dist: matplotlib>=2.0
24
24
  Requires-Dist: numpy
25
25
  Requires-Dist: pandas>=1.3
26
- Requires-Dist: plotly>=5.0.0
27
- Requires-Dist: scipy>=0.18
26
+ Requires-Dist: plotly>=6.6.0
27
+ Requires-Dist: scipy<1.16.0,>=0.18
28
28
  Requires-Dist: tqdm>=4.60
29
29
  Provides-Extra: bumps
30
- Requires-Dist: bumps>=0.9.0; extra == 'bumps'
30
+ Requires-Dist: bumps<1.0.0; extra == 'bumps'
31
31
  Provides-Extra: dev
32
32
  Requires-Dist: coverage[toml]>=6.3; extra == 'dev'
33
33
  Requires-Dist: coveralls; extra == 'dev'
@@ -40,10 +40,12 @@ Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
40
40
  Requires-Dist: ruff; extra == 'dev'
41
41
  Provides-Extra: dfo
42
42
  Requires-Dist: dfo-ls; extra == 'dfo'
43
+ Provides-Extra: galahad
44
+ Requires-Dist: galahad-optrove; extra == 'galahad'
43
45
  Provides-Extra: gofit
44
46
  Requires-Dist: gofit; extra == 'gofit'
45
47
  Provides-Extra: gradient-free
46
- Requires-Dist: gradient-free-optimizers; extra == 'gradient-free'
48
+ Requires-Dist: gradient-free-optimizers[sklearn]; extra == 'gradient-free'
47
49
  Provides-Extra: hogben
48
50
  Requires-Dist: hogben; extra == 'hogben'
49
51
  Provides-Extra: levmar
@@ -69,22 +71,22 @@ Requires-Dist: sasmodels; extra == 'sas'
69
71
  Requires-Dist: tinycc; (platform_system == 'Windows') and extra == 'sas'
70
72
  Description-Content-Type: text/markdown
71
73
 
72
- [![Build Status](https://img.shields.io/github/actions/workflow/status/fitbenchmarking/fitbenchmarking/release.yml?style=flat-square)](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/release.yml?query=branch%3Av1.3.0)
73
- [![Tests Status](https://img.shields.io/github/actions/workflow/status/fitbenchmarking/fitbenchmarking/main.yml?label=tests&style=flat-square)](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/main.yml?query=branch%3Av1.3.0)
74
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/fitbenchmarking/fitbenchmarking/release.yml?style=flat-square)](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/release.yml?query=branch%3Av1.4.0)
75
+ [![Tests Status](https://img.shields.io/github/actions/workflow/status/fitbenchmarking/fitbenchmarking/main.yml?label=tests&style=flat-square)](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/main.yml?query=branch%3Av1.4.0)
74
76
  [![Install Status](https://img.shields.io/github/actions/workflow/status/fitbenchmarking/fitbenchmarking/install.yml?label=install&style=flat-square)](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/install.yml)
75
- [![Documentation Status](https://img.shields.io/readthedocs/fitbenchmarking/v1.3.0?style=flat-square)](https://fitbenchmarking.readthedocs.io/en/v1.3.0)
77
+ [![Documentation Status](https://img.shields.io/readthedocs/fitbenchmarking/v1.4.0?style=flat-square)](https://fitbenchmarking.readthedocs.io/en/v1.4.0)
76
78
  [![Coverage Status](https://img.shields.io/coveralls/github/fitbenchmarking/fitbenchmarking.svg?style=flat-square)](https://coveralls.io/github/fitbenchmarking/fitbenchmarking)
77
79
  [![Chat](https://img.shields.io/badge/chat-CompareFitMinimizers-lightgrey.svg?style=flat-square&logo=slack)](https://slack.com/)
78
- [![Zenodo](https://img.shields.io/badge/Zenodo-10.5281/zenodo.14224242-blue.svg?style=flat-square)](https://doi.org/10.5281/zenodo.14224242)
80
+ [![Zenodo](https://img.shields.io/badge/Zenodo-10.5281/zenodo.15546207-blue.svg?style=flat-square)](https://zenodo.org/records/15546207)
79
81
  [![JOSS](https://img.shields.io/badge/JOSS-10.21105/joss.03127-brightgreen.svg?style=flat-square)](https://doi.org/10.21105/joss.03127)
80
82
  # FitBenchmarking
81
83
 
82
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.
83
85
 
84
- - **Installation Instructions:** https://fitbenchmarking.readthedocs.io/en/v1.3.0/users/install_instructions/index.html
85
- - **User Documentation & Example Usage:** https://fitbenchmarking.readthedocs.io/en/v1.3.0/users/index.html
86
- - **Community Guidelines:** https://fitbenchmarking.readthedocs.io/en/v1.3.0/contributors/guidelines.html
87
- - **Automated Tests:** Run via GitHub Actions, https://github.com/fitbenchmarking/fitbenchmarking/actions, and tests are documented at https://fitbenchmarking.readthedocs.io/en/v1.3.0/users/tests.html
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
88
90
 
89
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:
90
92
 
@@ -1,19 +1,19 @@
1
- [![Build Status](https://img.shields.io/github/actions/workflow/status/fitbenchmarking/fitbenchmarking/release.yml?style=flat-square)](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/release.yml?query=branch%3Av1.3.0)
2
- [![Tests Status](https://img.shields.io/github/actions/workflow/status/fitbenchmarking/fitbenchmarking/main.yml?label=tests&style=flat-square)](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/main.yml?query=branch%3Av1.3.0)
1
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/fitbenchmarking/fitbenchmarking/release.yml?style=flat-square)](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/release.yml?query=branch%3Av1.4.0)
2
+ [![Tests Status](https://img.shields.io/github/actions/workflow/status/fitbenchmarking/fitbenchmarking/main.yml?label=tests&style=flat-square)](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/main.yml?query=branch%3Av1.4.0)
3
3
  [![Install Status](https://img.shields.io/github/actions/workflow/status/fitbenchmarking/fitbenchmarking/install.yml?label=install&style=flat-square)](https://github.com/fitbenchmarking/fitbenchmarking/actions/workflows/install.yml)
4
- [![Documentation Status](https://img.shields.io/readthedocs/fitbenchmarking/v1.3.0?style=flat-square)](https://fitbenchmarking.readthedocs.io/en/v1.3.0)
4
+ [![Documentation Status](https://img.shields.io/readthedocs/fitbenchmarking/v1.4.0?style=flat-square)](https://fitbenchmarking.readthedocs.io/en/v1.4.0)
5
5
  [![Coverage Status](https://img.shields.io/coveralls/github/fitbenchmarking/fitbenchmarking.svg?style=flat-square)](https://coveralls.io/github/fitbenchmarking/fitbenchmarking)
6
6
  [![Chat](https://img.shields.io/badge/chat-CompareFitMinimizers-lightgrey.svg?style=flat-square&logo=slack)](https://slack.com/)
7
- [![Zenodo](https://img.shields.io/badge/Zenodo-10.5281/zenodo.14224242-blue.svg?style=flat-square)](https://doi.org/10.5281/zenodo.14224242)
7
+ [![Zenodo](https://img.shields.io/badge/Zenodo-10.5281/zenodo.15546207-blue.svg?style=flat-square)](https://zenodo.org/records/15546207)
8
8
  [![JOSS](https://img.shields.io/badge/JOSS-10.21105/joss.03127-brightgreen.svg?style=flat-square)](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.3.0/users/install_instructions/index.html
14
- - **User Documentation & Example Usage:** https://fitbenchmarking.readthedocs.io/en/v1.3.0/users/index.html
15
- - **Community Guidelines:** https://fitbenchmarking.readthedocs.io/en/v1.3.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.3.0/users/tests.html
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 (
@@ -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:
@@ -178,6 +178,14 @@ of the Fitbenchmarking docs. """
178
178
  help="Set the port for Dash.",
179
179
  )
180
180
 
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
+
181
189
  make_plots_group = parser.add_mutually_exclusive_group()
182
190
  make_plots_group.add_argument(
183
191
  "--make_plots",
@@ -296,7 +304,8 @@ of the Fitbenchmarking docs. """
296
304
  default="",
297
305
  help=(
298
306
  "Specify the minimum level of logging to display "
299
- "on console during runtime."
307
+ "on console during runtime. Can be any of: "
308
+ "NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAL ."
300
309
  ),
301
310
  )
302
311
  parser.add_argument(
@@ -304,7 +313,10 @@ of the Fitbenchmarking docs. """
304
313
  "--external_output",
305
314
  metavar="EXTERNAL_OUTPUT",
306
315
  default="",
307
- help="Select the amount of information displayed from third-parties.",
316
+ help=(
317
+ "Select the amount of information displayed from third-parties. "
318
+ "Can be any of: display, log_only, debug."
319
+ ),
308
320
  )
309
321
 
310
322
  parser.add_argument(
@@ -312,7 +324,7 @@ of the Fitbenchmarking docs. """
312
324
  default=False,
313
325
  action="store_true",
314
326
  help=(
315
- "Load results from the checkpoint and generate"
327
+ "Load results from the checkpoint and generate "
316
328
  "reports. Will not run any new tests."
317
329
  ),
318
330
  )
@@ -340,7 +352,7 @@ of the Fitbenchmarking docs. """
340
352
  "--check_jacobian",
341
353
  action="store_true",
342
354
  help=(
343
- "Use this option to check the jacobian against"
355
+ "Use this option to check the jacobian against "
344
356
  "a finite difference approximation."
345
357
  ),
346
358
  )
@@ -541,6 +553,7 @@ def main():
541
553
  "run_name": args.run_name,
542
554
  "runtime_metric": args.runtime_metric,
543
555
  "port": args.port,
556
+ "ip_address": args.ip_address,
544
557
  }
545
558
 
546
559
  # Check if make_plots in options.py should be overridden, and if so,
@@ -46,7 +46,7 @@ class Controller:
46
46
  #: - ``general`` - minimizers which solve a generic `min f(x)`
47
47
  #: - ``simplex`` - derivative free simplex based algorithms
48
48
  #: e.g. Nelder-Mead
49
- #: - ``trust_region`` - algorithms which emply a trust region approach
49
+ #: - ``trust_region`` - algorithms which employ a trust region approach
50
50
  #: - ``levenberg-marquardt`` - minimizers that use the
51
51
  #: Levenberg-Marquardt algorithm
52
52
  #: - ``gauss_newton`` - minimizers that use the Gauss Newton algorithm
@@ -62,7 +62,7 @@ class Controller:
62
62
  #:
63
63
  #: The ``algorithm_check`` dictionary is used to determine which minimizers
64
64
  #: to run given the ``algorithm_type`` selected in Fitting Options.
65
- #: For guidance on how to catagorise minimizers, see the Optimization
65
+ #: For guidance on how to categorise minimizers, see the Optimization
66
66
  #: Algorithms section of the FitBenchmarking docs.
67
67
  algorithm_check = {
68
68
  "all": [],
@@ -3,7 +3,7 @@ Implements a controller for the GALAHAD fitting software.
3
3
  """
4
4
 
5
5
  from contextlib import suppress
6
- from typing import Any, Callable
6
+ from typing import TYPE_CHECKING, Any
7
7
 
8
8
  import numpy as np
9
9
  from galahad import arc, bgo, dgo, nls, trb, tru
@@ -11,6 +11,9 @@ from galahad import arc, bgo, dgo, nls, trb, tru
11
11
  from fitbenchmarking.controllers.base_controller import Controller
12
12
  from fitbenchmarking.utils.exceptions import IncompatibleMinimizerError
13
13
 
14
+ if TYPE_CHECKING:
15
+ from collections.abc import Callable
16
+
14
17
 
15
18
  class GalahadController(Controller):
16
19
  """
@@ -94,15 +97,23 @@ class GalahadController(Controller):
94
97
  x_u = np.array(x_u)
95
98
 
96
99
  opts = self._module.initialize()
100
+
101
+ if minimizer in ["arc", "nls"]:
102
+ opts["glrt_options"]["impose_descent"] = False
103
+
97
104
  kwargs: dict[str, Any] = {
98
105
  "options": opts,
99
106
  }
100
107
 
101
108
  if minimizer in ["arc", "tru"]:
109
+ if not has_hessian:
110
+ raise IncompatibleMinimizerError(
111
+ "Requires hessian information (for now)"
112
+ )
102
113
  kwargs.update(
103
114
  {
104
115
  "n": self._num_vars,
105
- "H_type": "dense" if has_hessian else "absent",
116
+ "H_type": "dense",
106
117
  "H_ne": 10,
107
118
  "H_row": None,
108
119
  "H_col": None,
@@ -123,7 +134,7 @@ class GalahadController(Controller):
123
134
  }
124
135
  )
125
136
 
126
- elif minimizer in ["nls"]:
137
+ elif minimizer == "nls":
127
138
  if not has_hessian:
128
139
  raise IncompatibleMinimizerError(
129
140
  "Requires hessian information (for now)"
@@ -178,7 +189,7 @@ class GalahadController(Controller):
178
189
  "eval_g": self._jacobian,
179
190
  "eval_h": self._hessian,
180
191
  }
181
- elif self._minimizer in ["nls"]:
192
+ elif self._minimizer == "nls":
182
193
  m = self.data_x.shape[0]
183
194
  kwargs = {
184
195
  "n": self._num_vars,
@@ -125,7 +125,7 @@ class GradientFreeController(Controller):
125
125
  }
126
126
 
127
127
  self.iteration_count = 1000
128
- self.initialize = {"warm_start": param_dict}
128
+ self.initialize = {"warm_start": [param_dict]}
129
129
 
130
130
  def _feval(self, p):
131
131
  """
@@ -152,7 +152,7 @@ class GradientFreeController(Controller):
152
152
 
153
153
  method_to_call = getattr(gfo, self.minimizer)
154
154
 
155
- opt = method_to_call(self.search_space)
155
+ opt = method_to_call(self.search_space, initialize=self.initialize)
156
156
  opt.search(self._feval, n_iter=self.iteration_count, verbosity=False)
157
157
  self.results = opt.best_para
158
158
  self._status = 0 if self.results is not None else 1
@@ -3,7 +3,6 @@ Implements a controller for the Mantid fitting software.
3
3
  """
4
4
 
5
5
  from itertools import repeat
6
- from typing import Union
7
6
 
8
7
  import numpy as np
9
8
  from mantid import simpleapi as msapi
@@ -85,6 +84,7 @@ class MantidController(Controller):
85
84
  ]
86
85
 
87
86
  support_for_bounds = True
87
+ incompatible_problems = ["sscanss"]
88
88
 
89
89
  def __init__(self, cost_func):
90
90
  """
@@ -125,6 +125,8 @@ class MantidController(Controller):
125
125
  )
126
126
 
127
127
  if self.problem.multifit:
128
+ if self.data_x[0].dtype not in [float, int]:
129
+ self.data_x = [np.array(range(len(d))) for d in self.data_x]
128
130
  # len(data_obj) will be equal to dataset count
129
131
  data_obj = [
130
132
  msapi.CreateWorkspace(
@@ -142,6 +144,8 @@ class MantidController(Controller):
142
144
  for i, v in enumerate(data_obj[1:])
143
145
  }
144
146
  else:
147
+ if self.data_x.dtype not in [float, int]:
148
+ self.data_x = np.array(range(len(self.data_x)))
145
149
  data_obj = msapi.CreateWorkspace(
146
150
  DataX=self.data_x, DataY=self.data_y, DataE=self.data_e
147
151
  )
@@ -405,11 +409,11 @@ class MantidController(Controller):
405
409
  # =====================
406
410
  def eval_chisq(
407
411
  self,
408
- params: Union[float, list[float]],
409
- x: Union[np.ndarray, list[np.ndarray], None] = None,
410
- y: Union[np.ndarray, list[np.ndarray], None] = None,
411
- e: Union[np.ndarray, list[np.ndarray], None] = None,
412
- ) -> Union[np.ndarray, list[np.ndarray]]:
412
+ params: float | list[float],
413
+ x: np.ndarray | list[np.ndarray] | None = None,
414
+ y: np.ndarray | list[np.ndarray] | None = None,
415
+ e: np.ndarray | list[np.ndarray] | None = None,
416
+ ) -> np.ndarray | list[np.ndarray]:
413
417
  """
414
418
  Computes the chisq value.
415
419
  If multi-fit inputs will be lists and this will return a list of chi
@@ -2,8 +2,12 @@
2
2
  Implements a controller for the Theseus fitting software.
3
3
  """
4
4
 
5
- from collections.abc import Sequence
6
- from typing import Optional
5
+ from __future__ import annotations
6
+
7
+ from typing import TYPE_CHECKING
8
+
9
+ if TYPE_CHECKING:
10
+ from collections.abc import Sequence
7
11
 
8
12
  import numpy as np
9
13
  import theseus as th
@@ -24,8 +28,8 @@ class TheseusCostFunction(th.CostFunction):
24
28
  var: list[th.Vector],
25
29
  auxvar: Sequence[th.Variable],
26
30
  dim: int,
27
- cost_weight: Optional[th.CostWeight] = None,
28
- name: Optional[str] = None,
31
+ cost_weight: th.CostWeight | None = None,
32
+ name: str | None = None,
29
33
  ):
30
34
  if cost_weight is None:
31
35
  cost_weight = th.ScaleCostWeight(1.0)
@@ -79,7 +83,7 @@ class TheseusCostFunction(th.CostFunction):
79
83
  """
80
84
  return self._dim
81
85
 
82
- def _copy_impl(self, new_name: Optional[str] = None):
86
+ def _copy_impl(self, new_name: str | None = None):
83
87
  return TheseusCostFunction( # type: ignore
84
88
  var=[v.copy() for v in self.var],
85
89
  auxvar=[v.copy() for v in self.auxvar],
@@ -108,13 +108,14 @@ class Fit:
108
108
  try:
109
109
  with self._grabbed_output:
110
110
  parsed = parse_problem_file(p, self._options)
111
- parsed.correct_data()
112
111
  except FitBenchmarkException as e:
113
112
  LOGGER.info("Could not parse problem from: %s", p)
114
113
  LOGGER.warning(e)
115
114
  else:
116
- name_count[parsed.name] = name_count.get(parsed.name, 0) + 1
117
- problems.append((p, parsed))
115
+ for fp in parsed:
116
+ fp.correct_data()
117
+ name_count[fp.name] = name_count.get(fp.name, 0) + 1
118
+ problems.append((p, fp))
118
119
 
119
120
  LOGGER.info("Running problems")
120
121
 
@@ -141,7 +142,7 @@ class Fit:
141
142
 
142
143
  info_str = (
143
144
  f" Running data from: {os.path.basename(fname)}"
144
- f" {i + 1}/{len(problem_group)} "
145
+ f" {i + 1}/{len(problems)} "
145
146
  )
146
147
  LOGGER.info("\n%s", "#" * len(info_str))
147
148
  LOGGER.info(info_str)
@@ -413,7 +414,7 @@ class Fit:
413
414
  LOGGER.info(
414
415
  "%sJacobian: %s",
415
416
  self._logger_prefix * 5,
416
- jacobian.name() if jacobian.name() else "default",
417
+ jacobian.name() or "default",
417
418
  )
418
419
 
419
420
  if (
@@ -9,7 +9,6 @@ import platform
9
9
  import re
10
10
  import webbrowser
11
11
  from shutil import copytree
12
- from typing import Optional, Union
13
12
 
14
13
  import pandas as pd
15
14
  from dash import Dash, dcc, html
@@ -164,7 +163,7 @@ def preprocess_data(results: list[FittingResult]):
164
163
  col_sections = ["costfun"]
165
164
 
166
165
  # Generate the columns, category, and row tags and sort
167
- rows: Union[list[str], set[str]] = set()
166
+ rows: list[str] | set[str] = set()
168
167
  columns = {}
169
168
  for r in results:
170
169
  # Error 4 means none of the jacobians ran so can't infer the
@@ -192,7 +191,7 @@ def preprocess_data(results: list[FittingResult]):
192
191
  }
193
192
 
194
193
  # Build the sorted results dictionary
195
- sorted_results: dict[str, dict[str, list[Optional[FittingResult]]]] = {
194
+ sorted_results: dict[str, dict[str, list[FittingResult | None]]] = {
196
195
  r.strip(":"): {
197
196
  k: [None for _ in category] for k, category in columns.items()
198
197
  }
@@ -363,7 +362,6 @@ def create_plots(options, results, best_results, figures_dir):
363
362
  """
364
363
  for best_dict, prob_result in zip(best_results.values(), results.values()):
365
364
  plot_dict = {}
366
- initial_guess_path = {}
367
365
  data = {}
368
366
 
369
367
  # Create a dataframe for each problem
@@ -439,9 +437,6 @@ def create_plots(options, results, best_results, figures_dir):
439
437
  result.figure_error = str(e)
440
438
  continue
441
439
 
442
- # Create a plot showing the initial guess and get filename
443
- initial_guess_path[cf] = plot.plot_initial_guess(data[cf])
444
-
445
440
  # Get filenames of best plot first
446
441
  # If none of the fits succeeded, params could be None
447
442
  # Otherwise, add the best fit to the plot
@@ -452,7 +447,6 @@ def create_plots(options, results, best_results, figures_dir):
452
447
  best_dict[
453
448
  cf
454
449
  ].figure_error = "Minimizer failed to produce any parameters"
455
- best_dict[cf].start_figure_link = initial_guess_path[cf]
456
450
  plot_dict[cf] = plot
457
451
 
458
452
  plot_paths = plot.plotly_fit(data[cf])
@@ -469,7 +463,6 @@ def create_plots(options, results, best_results, figures_dir):
469
463
  result.figure_error = (
470
464
  "Minimizer failed to produce any parameters"
471
465
  )
472
- result.start_figure_link = initial_guess_path[cf]
473
466
 
474
467
  # For each result, if it succeeded and produced posterior pdf estimates
475
468
  # for each parameter, create histogram plots and add plot links to the
@@ -634,7 +627,7 @@ def open_browser(output_file: str, options, pp_dfs_all_prob_sets) -> None:
634
627
  )
635
628
 
636
629
  if options.run_dash:
637
- run_dash_app(options, pp_dfs_all_prob_sets)
630
+ prepare_dash_app_and_run(options, pp_dfs_all_prob_sets)
638
631
 
639
632
 
640
633
  def update_warning(solvers, max_solvers):
@@ -754,10 +747,10 @@ def display_page(
754
747
  return html.Div(new_layout)
755
748
 
756
749
 
757
- def run_dash_app(options, pp_dfs_all_prob_sets) -> None:
750
+ def prepare_dash_app_and_run(options, pp_dfs_all_prob_sets) -> None:
758
751
  """
759
- Runs the Dash app to produce the interactive performance profile
760
- plots.
752
+ Prepares the Dash app to produce the interactive performance profile
753
+ plots, and calls the function to run it.
761
754
 
762
755
  :param options: The user options for the benchmark.
763
756
  :type options: fitbenchmarking.utils.options.Options
@@ -866,4 +859,18 @@ def run_dash_app(options, pp_dfs_all_prob_sets) -> None:
866
859
  )
867
860
  )
868
861
 
869
- app.run(port=options.port)
862
+ run_dash_app(app=app, host=options.ip_address, port=options.port)
863
+
864
+
865
+ def run_dash_app(app, host, port):
866
+ """
867
+ Runs the Dash app.
868
+
869
+ :param host: The dash app to run
870
+ :type host: dash.dash.Dash
871
+ :param host: The ip address where to run the app.
872
+ :type host: str
873
+ :param port: The port where to run the app.
874
+ :type port: str
875
+ """
876
+ app.run(host=host, port=port)
@@ -3,7 +3,7 @@ Implements the base class for the cost function class.
3
3
  """
4
4
 
5
5
  from abc import ABCMeta, abstractmethod
6
- from typing import TYPE_CHECKING, Optional
6
+ from typing import TYPE_CHECKING
7
7
 
8
8
  from fitbenchmarking.utils.exceptions import IncompatibleMinimizerError
9
9
 
@@ -32,7 +32,7 @@ class CostFunc:
32
32
  self.problem: FittingProblem = problem
33
33
 
34
34
  # The Jacobian object to evaluate
35
- self.jacobian: Optional[Jacobian] = None
35
+ self.jacobian: Jacobian | None = None
36
36
 
37
37
  # The Hessian object to evaluate
38
38
  self.hessian = None
@@ -77,8 +77,10 @@ class BaseNLLSCostFunc(CostFunc):
77
77
  Uses the Jacobian of the model to evaluate the Jacobian of the
78
78
  cost function, :math:`\\nabla_p F(r(x,y,p))`, at the given
79
79
  parameters.
80
+
80
81
  :param params: The parameters at which to calculate Jacobians
81
82
  :type params: list
83
+
82
84
  :return: evaluated Jacobian of the cost function
83
85
  :rtype: 1D numpy array
84
86
  """
@@ -5,6 +5,8 @@ Implements the base Parser as a Context Manager.
5
5
  import contextlib
6
6
  from abc import ABCMeta, abstractmethod
7
7
 
8
+ from fitbenchmarking.parsing.fitting_problem import FittingProblem
9
+
8
10
 
9
11
  class Parser:
10
12
  """
@@ -56,7 +58,7 @@ class Parser:
56
58
  self.file.close()
57
59
 
58
60
  @abstractmethod
59
- def parse(self):
61
+ def parse(self) -> FittingProblem | list[FittingProblem]:
60
62
  """
61
63
  Parse the file into a FittingProblem.
62
64