ChainRulesTestUtils.jl icon indicating copy to clipboard operation
ChainRulesTestUtils.jl copied to clipboard

Support MutableTangent automatically

Open oxinabox opened this issue 2 years ago • 0 comments

This is a follow up to https://github.com/JuliaDiff/ChainRulesCore.jl/issues/105#issuecomment-1655958008

Right now, using https://github.com/JuliaDiff/ChainRulesCore.jl/pull/626 if you want to test something that MutableTangent that does work e.g.: test_frule(setfield!, MDemo(3.5)⊢MutableTangent{MDemo}(x=2.0), :x, 5.0)

But if you just do: test_frule(setfield!, MDemo(3.5), :x, 5.0) you get an error because the default type we use for structural tangents is the immutable Tangent

We could use the StructuralTangent constructor to automatically chose MutableTangent for mutable primals. we would want to do that forwardward mode, at least. Not sure if we should also do that in reverse

oxinabox avatar Sep 18 '23 05:09 oxinabox