JuliaMath / JuliaMath/FastChebInterp.jl

chainrules for chebpoly constructors

Open
#10 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Julia
Stars
83
Forks
7
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.