-
Notifications
You must be signed in to change notification settings - Fork 25
Closed
Labels
Description
This example currently fails:
julia> import ForwardDiff, Tapir
julia> using DifferentiationInterface
julia> b = SecondOrder(AutoForwardDiff(), AutoTapir());
julia> hessian(sum, b, [1.0, 2.0])
[ Info: Compiling rule for Tuple{typeof(sum), Vector{ForwardDiff.Dual{ForwardDiff.Tag{DifferentiationInterface.var"#inner_gradient_closure#27"{typeof(sum), SecondOrder{AutoForwardDiff{nothing, Nothing}, AutoTapir}}, Float64}, Float64, 1}}} in safe mode. Disable for best performance.
ERROR: MethodError: Cannot `convert` an object of type ForwardDiff.Dual{ForwardDiff.Tag{DifferentiationInterface.var"#inner_gradient_closure#27"{typeof(sum), SecondOrder{AutoForwardDiff{nothing, Nothing}, AutoTapir}}, Float64}, Float64, 1} to an object of type Tapir.Tangent{@NamedTuple{value::Float64, partials::Tapir.Tangent{@NamedTuple{values::Tuple{Float64}}}}}
Closest candidates are:
convert(::Type{T}, ::T) where T
@ Base Base.jl:84
(::Type{Tapir.Tangent{Tfields}} where Tfields<:NamedTuple)(::Any)
@ Tapir ~/.julia/packages/Tapir/O4V78/src/tangents.jl:53
It's a pity since Tapir would provide a great tool for computing second-order derivatives in conjunction with ForwarDiff. Could this be improved?
Package environment:
(@v1.10) pkg> st Tapir DifferentiationInterface ForwardDiff
Status `~/.julia/environments/v1.10/Project.toml`
[a0c0ee7d] DifferentiationInterface v0.4.0
[f6369f11] ForwardDiff v0.10.36
[07d77754] Tapir v0.2.12