Open dweindl opened 4 years ago
We used to have an FD implementation with automatic step-size detection in PESTO. maybe it would be good to have something like that as a little python file/package also within AMICI? This way, pyPESTO could use it right away, because this would also be helpful there... Alternatively: Would it make sense writing a C++ code for that? Maybe this could save some cpu time... Ideally by exploiting openMP... I would also be happy trying to code something for this in Rust. However, I doubt it's advisable to mingle the AMICI source code with another compiled language... :thinking:
FD with automatic step-size should definitely be implemented, not sure whether it makes more sense in AMICI or pyPESTO (where the final objective function is defined) :thinking:
Depends on the definition of "final"... Would argue for AMICI:
For me also fine to have that as a (tiny) separate package. Might be useful elsewhere. Good if it's usable in pyPESTO without having to install AMICI. And I'd strongly argue for not creating circular dependencies between AMICI and pyPESTO, so rather not putting it into pyPESTO.
Regarding C++ vs Python: I'd guess that the benefit of using C++ there is not big enough to justify two implementations, once in C++ for AMICI stuff and once for in Python for functions beyond single AMICI simulations.
https://github.com/wesselb/fdm might help with this
Motivated by https://github.com/AMICI-dev/AMICI/issues/1230
Should be done for both forward and adjoint sensitivities (#18).