Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Idea]: Functions for numerical integration and differentiation #24

Open
Planeshifter opened this issue Jan 12, 2023 · 2 comments
Open
Labels
difficulty: 2 Suitable for someone with some JavaScript experience. idea Potential GSoC project idea. tech: javascript Involves programming in JavaScript. tech: nodejs Requires developing with Node.js.

Comments

@Planeshifter
Copy link
Member

Planeshifter commented Jan 12, 2023

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

@Planeshifter Planeshifter added difficulty: 2 Suitable for someone with some JavaScript experience. idea Potential GSoC project idea. tech: javascript Involves programming in JavaScript. tech: nodejs Requires developing with Node.js. labels Jan 12, 2023
@stdlib-js stdlib-js locked and limited conversation to collaborators Jan 13, 2023
@rreusser
Copy link
Member

rreusser commented Jan 30, 2024

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.

@kgryte
Copy link
Member

kgryte commented Jan 30, 2024

@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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
difficulty: 2 Suitable for someone with some JavaScript experience. idea Potential GSoC project idea. tech: javascript Involves programming in JavaScript. tech: nodejs Requires developing with Node.js.
Projects
None yet
Development

No branches or pull requests

3 participants