-
Notifications
You must be signed in to change notification settings - Fork 25
Open
0 / 10 of 1 issue completedLabels
enhancement (testing)Would improve the testsWould improve the tests
Description
I am opening this issue to track support for higher-order derivatives (second order and more). In principle all 4 combinations (forward and reverse over forward and reverse) should be supported. Currently none seems to be.
Some preliminary questions would be:
- How to represent duals and coduals for higher-order differentiation? I tried to ask Mooncake what the tangent type of a
Dualshould be, but this seems suboptimal:
julia> Mooncake.Dual{Mooncake.Dual(1.0, 2.0),tangent_type(typeof(Mooncake.Dual(1.0, 2.0)))}
Mooncake.Dual{Mooncake.Dual{Float64, Float64}(1.0, 2.0), Tangent{@NamedTuple{primal::Float64, tangent::Float64}}}In principle these nested duals should usually not be interacted with so an ugly representation might be OK.
- How to avoid perturbation confusion? Is this something that compiler-based AD systems need to be careful with as well?
Sub-issues
Metadata
Metadata
Assignees
Labels
enhancement (testing)Would improve the testsWould improve the tests