close
Skip to content

gradients of hessians with divisions #285

@simonbyrne

Description

@simonbyrne

I can't figure this one out. When I try in the debugger or with --inline=no, it works correctly!

julia> using ForwardDiff

julia> ForwardDiff.gradient([1.0]) do s
           ForwardDiff.hessian(u -> u[1]/s[1], [1.0])[1]
       end
ERROR: MethodError: Cannot `convert` an object of type ForwardDiff.Dual{ForwardDiff.Tag{##1#3,Float64},Float64,1} to an object of type Float64
This may have arisen from a call to the constructor Float64(...),
since type constructors fall back to convert methods.
Stacktrace:
 [1] convert(::Type{ForwardDiff.Dual{ForwardDiff.Tag{##1#3,Float64},ForwardDiff.Dual{ForwardDiff.Tag{##2#4{Array{ForwardDiff.Dual{ForwardDiff.Tag{##1#3,Float64},Float64,1},1}},Float64},Float64,1},1}}, ::ForwardDiff.Dual{ForwardDiff.Tag{##2#4{Array{ForwardDiff.Dual{ForwardDiff.Tag{##1#3,Float64},Float64,1},1}},Float64},ForwardDiff.Dual{ForwardDiff.Tag{##1#3,Float64},Float64,1},1}) at /Users/simon/.julia/v0.6/ForwardDiff/src/dual.jl:314
 [2] convert(::Type{Tuple{ForwardDiff.Dual{ForwardDiff.Tag{##1#3,Float64},ForwardDiff.Dual{ForwardDiff.Tag{##2#4{Array{ForwardDiff.Dual{ForwardDiff.Tag{##1#3,Float64},Float64,1},1}},Float64},Float64,1},1}}}, ::Tuple{ForwardDiff.Dual{ForwardDiff.Tag{##2#4{Array{ForwardDiff.Dual{ForwardDiff.Tag{##1#3,Float64},Float64,1},1}},Float64},ForwardDiff.Dual{ForwardDiff.Tag{##1#3,Float64},Float64,1},1}}) at ./essentials.jl:135
 [3] / at /Users/simon/.julia/v0.6/ForwardDiff/src/dual.jl:99 [inlined]
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions