Skip to content

ForwardDiff.jl Error #19

@ioannisPApapadopoulos

Description

@ioannisPApapadopoulos

Sadly I am getting the following error. I believe your PR (@dlfivefifty) dealing with this was merged, so I am not enirely sure what's going on.

ERROR: type ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2} not supported
Stacktrace:
  [1] error(s::String)
    @ Base .\error.jl:33
  [2] _fftfloat(#unused#::Type{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}})
    @ AbstractFFTs C:\Users\john.papad\.julia\packages\AbstractFFTs\Ih3rT\src\definitions.jl:22
  [3] _fftfloat(x::ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2})
    @ AbstractFFTs C:\Users\john.papad\.julia\packages\AbstractFFTs\Ih3rT\src\definitions.jl:23
  [4] fftfloat(x::ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2})    @ AbstractFFTs C:\Users\john.papad\.julia\packages\AbstractFFTs\Ih3rT\src\definitions.jl:18
  [5] complexfloat(x::Vector{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}})
    @ AbstractFFTs C:\Users\john.papad\.julia\packages\AbstractFFTs\Ih3rT\src\definitions.jl:31
  [6] ifft(x::Vector{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 
2}}, region::UnitRange{Int64}) (repeats 2 times)
    @ AbstractFFTs C:\Users\john.papad\.julia\packages\AbstractFFTs\Ih3rT\src\definitions.jl:198
  [7] *(P::FastTransforms.ChebyshevTransformPlan{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, 1, Nothing, false, 1, UnitRange{Int64}}, x::Vector{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}})
    @ FastTransforms C:\Users\john.papad\.julia\packages\FastTransforms\pmRGH\src\chebyshevtransform.jl:625
  [8] \(a::ContinuumArrays.TransformFactorization{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, FastTransforms.ChebyshevGrid{1, ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}}, FastTransforms.ChebyshevTransformPlan{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, 1, Nothing, false, 1, UnitRange{Int64}}, Nothing}, b::QuasiArrays.BroadcastQuasiVector{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, EquilibriumMeasures.DFunction, Tuple{QuasiArrays.SubQuasiArray{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, 1, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}}}, Tuple{ContinuumArrays.AffineMap{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}}}, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}}}}}, false}}})
    @ ContinuumArrays C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:199
  [9] transform_ldiv
    @ C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:260 [inlined]
 [10] transform_ldiv
    @ C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:261 [inlined]
 [11] transform_ldiv_if_columns
    @ C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:269 [inlined]
 [12] transform_ldiv_if_columns
    @ C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:270 [inlined]
 [13] copy
    @ C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:271 [inlined]
 [14] materialize
    @ C:\Users\john.papad\.julia\packages\ArrayLayouts\CV0IA\src\ldiv.jl:22 [inlined]
 [15] ldiv
    @ C:\Users\john.papad\.julia\packages\ArrayLayouts\CV0IA\src\ldiv.jl:86 [inlined]
 [16] \
    @ C:\Users\john.papad\.julia\packages\QuasiArrays\NvVKZ\src\matmul.jl:34 [inlined]
 [17] adaptivetransform_ldiv(A::ClassicalOrthogonalPolynomials.ChebyshevT{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}}, f::QuasiArrays.BroadcastQuasiVector{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, EquilibriumMeasures.DFunction, Tuple{QuasiArrays.SubQuasiArray{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, 1, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}}}, Tuple{ContinuumArrays.AffineMap{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}}}, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}}}}}, false}}})
    @ ClassicalOrthogonalPolynomials C:\Users\john.papad\.julia\dev\ClassicalOrthogonalPolynomials\src\adaptivetransform.jl:28
 [18] transform_ldiv
    @ C:\Users\john.papad\.julia\dev\ClassicalOrthogonalPolynomials\src\adaptivetransform.jl:1 [inlined]
 [19] transform_ldiv
    @ C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:261 [inlined]
 [20] transform_ldiv_if_columns
    @ C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:269 [inlined]
 [21] transform_ldiv_if_columns
    @ C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:270 [inlined]
 [22] copy
    @ C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:271 [inlined]
 [23] materialize(M::ArrayLayouts.Ldiv{ClassicalOrthogonalPolynomials.OPLayout, LazyArrays.BroadcastLayout{EquilibriumMeasures.DFunction}, ClassicalOrthogonalPolynomials.ChebyshevT{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}}, QuasiArrays.BroadcastQuasiVector{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, EquilibriumMeasures.DFunction, Tuple{QuasiArrays.SubQuasiArray{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, 1, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}}}, Tuple{ContinuumArrays.AffineMap{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}}}, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}}}}}, false}}}})
    @ ArrayLayouts C:\Users\john.papad\.julia\packages\ArrayLayouts\CV0IA\src\ldiv.jl:22
 [24] ldiv
    @ C:\Users\john.papad\.julia\packages\ArrayLayouts\CV0IA\src\ldiv.jl:86 [inlined]
 [25] \
    @ C:\Users\john.papad\.julia\packages\QuasiArrays\NvVKZ\src\matmul.jl:34 [inlined]
 [26] transform_ldiv_if_columns(P::ArrayLayouts.Ldiv{ContinuumArrays.MappedBasisLayout, LazyArrays.BroadcastLayout{EquilibriumMeasures.DFunction}, QuasiArrays.SubQuasiArray{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, 2, ClassicalOrthogonalPolynomials.ChebyshevT{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}}, Tuple{ContinuumArrays.AffineMap{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}}}, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, DomainSets.ChebyshevInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}}}}, Base.Slice{InfiniteArrays.OneToInf{Int64}}}, false}, QuasiArrays.BroadcastQuasiVector{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, EquilibriumMeasures.DFunction, Tuple{QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}}}}}}, #unused#::Base.OneTo{Int64})
    @ ContinuumArrays C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:90
 [27] transform_ldiv_if_columns
    @ C:\Users\john.papad\.julia\dev\ClassicalOrthogonalPolynomials\src\ClassicalOrthogonalPolynomials.jl:102 [inlined]
 [28] transform_ldiv_if_columns
    @ C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:270 [inlined]
 [29] copy
    @ C:\Users\john.papad\.julia\packages\ContinuumArrays\PJVaN\src\bases\bases.jl:271 [inlined]
 [30] materialize(M::ArrayLayouts.Ldiv{ClassicalOrthogonalPolynomials.MappedOPLayout, LazyArrays.BroadcastLayout{EquilibriumMeasures.DFunction}, QuasiArrays.SubQuasiArray{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, 2, ClassicalOrthogonalPolynomials.ChebyshevT{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}}, Tuple{ContinuumArrays.AffineMap{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}}}, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, DomainSets.ChebyshevInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}}}}, 
Base.Slice{InfiniteArrays.OneToInf{Int64}}}, false}, QuasiArrays.BroadcastQuasiVector{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, EquilibriumMeasures.DFunction, Tuple{QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}}}}}})
    @ ArrayLayouts C:\Users\john.papad\.julia\packages\ArrayLayouts\CV0IA\src\ldiv.jl:22
 [31] ldiv
    @ C:\Users\john.papad\.julia\packages\ArrayLayouts\CV0IA\src\ldiv.jl:86 [inlined]
 [32] \(A::QuasiArrays.SubQuasiArray{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, 2, ClassicalOrthogonalPolynomials.ChebyshevT{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}}, Tuple{ContinuumArrays.AffineMap{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}}}, QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, DomainSets.ChebyshevInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}}}}, Base.Slice{InfiniteArrays.OneToInf{Int64}}}, false}, B::QuasiArrays.BroadcastQuasiVector{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, EquilibriumMeasures.DFunction, Tuple{QuasiArrays.Inclusion{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Float64, 2}, IntervalSets.ClosedInterval{ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}}}}})        
    @ QuasiArrays C:\Users\john.papad\.julia\packages\QuasiArrays\NvVKZ\src\matmul.jl:34
 [33] _equilibriummeasure(V::Function, ab::SVector{2, ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}})
    @ EquilibriumMeasures C:\Users\john.papad\.julia\dev\EquilibriumMeasures\src\EquilibriumMeasures.jl:27
 [34] (::EquilibriumMeasures.EquilibriumMeasureMoment)(a::SVector{2, ForwardDiff.Dual{ForwardDiff.Tag{EquilibriumMeasures.EquilibriumMeasureMoment, Int64}, Int64, 2}})
    @ EquilibriumMeasures C:\Users\john.papad\.julia\dev\EquilibriumMeasures\src\EquilibriumMeasures.jl:78
 [35] static_dual_eval
    @ C:\Users\john.papad\.julia\packages\ForwardDiff\DHWMq\src\apiutils.jl:32 [inlined]
 [36] vector_mode_jacobian
    @ C:\Users\john.papad\.julia\packages\ForwardDiff\DHWMq\src\jacobian.jl:185 [inlined]
 [37] jacobian(f::EquilibriumMeasures.EquilibriumMeasureMoment, x::SVector{2, Int64})
    @ ForwardDiff C:\Users\john.papad\.julia\packages\ForwardDiff\DHWMq\src\jacobian.jl:85
 [38] deflate_equilibriummeasure(μ::EquilibriumMeasures.EquilibriumMeasureMoment, a::SVector{2, Int64}, maxiterations::Int64, knownsolutions::Vector{Any}, power::Int64, shift::Float64, dampening::Float64, returnendpoint::Bool)        
    @ EquilibriumMeasures C:\Users\john.papad\.julia\dev\EquilibriumMeasures\src\EquilibriumMeasures.jl:87
 [39] #equilibriummeasure#1
    @ C:\Users\john.papad\.julia\dev\EquilibriumMeasures\src\EquilibriumMeasures.jl:82 [inlined]
 [40] top-level scope
    @ c:\Users\john.papad\.julia\dev\EquilibriumMeasures\examples\non-unique-equilibrium-measure.jl:15

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions