22
33This is a Python translation of the [ modern-Fortran reference implementation] ( https://github.com/libprima/prima/tree/main/fortran )
44for Powell's derivative-free optimization solvers, which is available at ` fortran/ ` under the root directory.
5- It is supposed to be a faithful translation, [ producing bit-for-bit identical results as the Fortran
6- reference implementation] ( https://github.com/scipy/scipy/pull/22350#issue-2795978526 ) .
5+ It is supposed to be a faithful translation, [ producing bit-for-bit identical results] ( https://github.com/scipy/scipy/pull/22350#issue-2795978526 ) .
6+ as the Fortran reference implementation
77If you notice a difference, [ raise an issue] ( https://github.com/libprima/prima/issues/new ) .
88
99Due to [ bug-fixes] ( https://github.com/libprima/prima#bug-fixes ) and [ improvements] ( https://github.com/libprima/prima#improvements ) ,
@@ -13,13 +13,14 @@ even though the algorithms are essentially the same. Therefore, it is important
1313PRIMA rather than the original solvers if you want your results to be reproducible.
1414
1515Compared to Powell's Fortran 77 implementation, the modern-Fortran implementation and hence this Python
16- translation [ produce better results with less function evaluations] ( https://github.com/libprima/prima#improvements )
17- on average, making them preferable for [ applications with expensive function evaluations] ( https://github.com/orgs/libprima/discussions/145 ) .
16+ translation generally [ produce better solutions with less function evaluations] ( https://github.com/libprima/prima#improvements ) ,
17+ making them preferable for [ applications with expensive function evaluations] ( https://github.com/orgs/libprima/discussions/145 ) .
1818However, if function evaluations are not the dominant cost in your application, the Fortran 77
1919implementation are likely to be faster, as it is more efficient in terms of memory usage and flops
2020thanks to the careful and unique (but unmaintained) implementation by Powell.
2121
22- As of April 2025, only the COBYLA solver is available in this Python translation, and SciPy 1.16.0
22+ As of April 2025, only the COBYLA solver is available in this Python translation
23+ (many thanks to [ Nickolai Belakovski] ( http://www.nickolai.me/ ) ), and SciPy 1.16.0
2324integrates it to replace the original Fortran 77 implementation of [ COBYLA underlying the
2425` scipy.optimize.minimize ` function] ( https://docs.scipy.org/doc/scipy/reference/optimize.minimize-cobyla.html ) .
2526The other solvers will be translated from the Fortran reference implementation in the future.
0 commit comments