google-summer-of-code
google-summer-of-code copied to clipboard
[Idea]: Functions for numerical integration and differentiation
Idea
The goal of this idea is to add functions for numerical integration or differentiation to stdlib as building blocks for downstream algorithms. The functions could be ported from permissively licensed open-source libraries in other languages such as C or Fortran or alternatively be implemented from scratch by consulting the literature and reference implementations from various languages.
Some work along these lines has been started in the scijs ecosystem, which can be used for initial inspiration (e.g., https://github.com/scijs/ode45-cash-karp), and more generally in SciPy (e.g., https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.ode.html).
Expected Outcomes
stdlib will have a range of robust functions for performing numerical integration or differentiation
Involved Software
No other software is necessary.
Prerequisite Knowledge
JavaScript, Node.js.
Difficulty
Intermediate.
Project Length
350 hours.
Potential Mentors
@kgryte @Planeshifter @rreusser @Pranavchiku @czgdp1807
After writing a lot of, honestly, pretty bad code in this domain, my general feeling is that the most difficult aspect of this task may just be the public-facing API design. There are lots of interesting extensions like poincaré maps (storing a sample every time the state passes through some hyperplane), for example, or stopping criteria which aren't difficult to design, but writing a coherent API for various methods and their extensions does require some careful thought.
@rreusser Agreed. Were a GSoC contributor interested in this idea, we'd need to spend some time up front sketching out the API design and probably doing a few POC packages.