JuliaMath / JuliaMath/FastChebInterp.jl

chainrules for chebpoly constructors

Offen
#10 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Julia
Sterne
83
Forks
7
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

It would be nice, in principle, to define chainrules for the chebpoly constructors, so that we support computation of sensitivities of e.g. polynomial evaluations to the *data* used to construct the polynomial.

In principle Zygote can do this for us, but it seems to be incredibly slow. (Before we implemented the `rrule` in #9, it was taking over an hour to backpropagate through a `ChebPoly` evaluation.)

There are a couple of pieces to implement here. First, chain rules for `chebinterp` and `chebregression`, which should be very straightforward since they are linear operations. Second, we need to fix the `@notimplemented` in the `rrule` for `ChebPoly` evaluation (#9) to *optionally* compute the tangent for sensitivity to polynomial coefficients and bounds — this will need a "thunk" tangent of some sort in order to defer the computation until/unless it is actually needed, because the coefficient tangent is both large and expensive to compute.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Start with the chain rules for `chebinterp` and `chebregression`, then inspect the `@notimplemented` tangent in the `ChebPoly` evaluation `rrule` from #9. The intended result is sensitivity support for constructor data and optional, deferred tangents for polynomial coefficients and bounds; no tests or file paths are identified in the issue.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
julia
Bereich
performance
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.