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

Desired features #27

Open
12 of 26 tasks
pnkraemer opened this issue Feb 2, 2022 · 0 comments
Open
12 of 26 tasks

Desired features #27

pnkraemer opened this issue Feb 2, 2022 · 0 comments

Comments

@pnkraemer
Copy link
Owner

pnkraemer commented Feb 2, 2022

All of the following should be possible with pnfindiff at some point of the future, ideally, documented in example notebooks.

Basic scalar derivatives:

Evaluate the numerical derivative f'(x_0) of a function f: R -> R at point x_0

  • Central, forward, backward schemes
  • Variable derivative order
  • Variable method order
  • Numerical noise
  • Custom grid
  • Batching over x_0
  • Batching over x_0 with a non-uniform grid
  • Batching over f
  • Polynomial vs exponentiated quadratic kernel

Basic multivariate derivatives

Evaluate the numerical derivative (D f) (x_0) of a function f: R^n -> R^m at point x_0

  • Partial derivatives via schemes
  • Gradients via a tensor-product approach and using all of the above
  • Jacobians and Hessians via a tensor-product approach and using all of the above
  • Gradients, via an n-dimensional prior
  • (Mixed) partial derivatives for n-dimensional priors
  • Jacobians (forward and reverse mode?), Hessians, (JVPs?) via a n-dimensional prior

Advanced features

  • Uncertainty calibration
  • Control over stencils -> which point is on boundary, etc. (https://github.com/maroba/findiff)
  • Computation of (L f)(Xn) with FD. This is not the same as batched evaluation, because for instance, boundary nodes may use forward schemes, and central nodes use central schemes. (https://numpy.org/doc/stable/reference/generated/numpy.gradient.html)
  • Support for symbolic computation
  • Support for sparse matrices
  • A bunch of kernels: matern, (inverse) multiquadrics, thin-plate splines
  • Boundary conditions?
  • Advanced differential operators: Divergence, Laplacian, curl
  • Polar coordinates
  • complex differentials? integer-valued derivatives? (e.g. grad(f, allow_int=True, holomorphic=True))
  • Unsymmetric and symmetric collocation (with examples and docs)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant