Skip to content

Missing frules for copy #729

Open
Open
@fredrikekre

Description

@fredrikekre

Simple example of taking the jacobian of identity, but idently is implemeted as a copy:

julia> import Diffractor

julia> import AbstractDifferentiation as AD

julia> AD.jacobian(Diffractor.DiffractorForwardBackend(), copy, rand(2))
ERROR: Attempted to AD a foreigncall. Missing rule?
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:35
  [2] copy
    @ Diffractor ./array.jl:409 [inlined]
  [3] (::Diffractor.∂☆recurse{})(::ZeroBundle{…}, ::Diffractor.TangentBundle{…})
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/recurse_fwd.jl:0
  [4] (::Diffractor.∂☆internal{1})(::ZeroBundle{1, typeof(copy)}, ::Vararg{Diffractor.AbstractTangentBundle{1}})
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/forward.jl:121
  [5] (::Diffractor.∂☆{1})(::ZeroBundle{1, typeof(copy)}, ::Vararg{Diffractor.AbstractTangentBundle{1}})
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/forward.jl:160
  [6] (::Diffractor.var"#pushforward#359"{typeof(copy), Tuple{Vector{Float64}}})(vs::Tuple{Vector{Float64}})
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/AbstractDifferentiation.jl:13
  [7] (::Diffractor.var"#358#362"{Diffractor.var"#pushforward#359"{typeof(copy), Tuple{Vector{}}}})(cols::Vector{Float64})
    @ Diffractor ~/.julia/packages/AbstractDifferentiation/eEkWP/src/AbstractDifferentiation.jl:526
  [8] mapslices(f::Diffractor.var"#358#362"{Diffractor.var"#pushforward#359"{}}, A::Matrix{Float64}; dims::Int64)
    @ Base ./abstractarray.jl:3179
  [9] jacobian(b::Diffractor.DiffractorForwardBackend, f::Function, args::Vector{Float64})
    @ Diffractor ~/.julia/packages/AbstractDifferentiation/eEkWP/src/AbstractDifferentiation.jl:524

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions