Skip to content

Add definite integration to all poly. instances (Issue #111).

Damar Wicaksono requested to merge dev-111 into dev
  • The abstract polynomial class has been updated with the method integrate_over() to carry out definite integration over the domain (canonically, [-1, 1]^M) or optionally, specified bounds (\subseteq [-1, 1]^M).
  • The method works for all the currently supported polynomial bases: Lagrange, Newton, and canonical.
  • The method works (and has been tested) for a polynomial with multiple sets of coefficients (multiple polynomials with living on the same grid).
  • The test suite has been accordingly extended.
  • A couple of usage examples have now been added to the docs as part of the How-To guides.
  • Polynomial utility functions are now included in the docs.

This MR should resolve Issue #111 (closed).

For a series of sanity and performance checks, have a look at the following notebooks in the minterpy-benchmark repository:

In the performance checks, the transformation to the required basis from the Lagrange basis (typically the starting point of creating a polynomial interpolant) is included in the timer. The transformation from Lagrange to canonical basis is apparently the most expensive. Also as a reminder, the canonical basis becomes unstable for high polynomial degree.

I'm assigning this @hernan68 and requesting review from @thekke48 (I'm not sure of your availability so let us know whether you can or cannot; and thanks a lot in any case 😄!).

Merge request reports

Loading