FitBenchmarking 1.2.0__tar.gz → 1.4.0__tar.gz

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