# ForwardDiff cannot determine ordering of Dual tags

**URL:** <https://discourse.julialang.org/t/forwarddiff-cannot-determine-ordering-of-dual-tags/40345>\
**Category:** New to Julia\
**Tags:** turing, forwarddiff\
**Created:** [May 28, 2020, 3:40pm UTC](https://discourse.julialang.org/t/forwarddiff-cannot-determine-ordering-of-dual-tags/40345 "2020-05-28T15:40:57Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Manoj\_Gopalkrishnan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/manoj_gopalkrishnan/32/14587_2.png) [@Manoj\_Gopalkrishnan](https://discourse.julialang.org/u/Manoj_Gopalkrishnan)\
**Post date:** [May 28, 2020, 3:40pm UTC](https://discourse.julialang.org/t/forwarddiff-cannot-determine-ordering-of-dual-tags/40345/1 "2020-05-28T15:40:57Z")

</div>

Here’s my MWE

```julia
@model function mwe(::Type{T} = Vector{Float64}) where {T}
    lvar ~ Uniform(5.0,15.0)
    u ~ filldist(truncated(Laplace(55.0, lvar), 10, Inf),10) # u is cycle time of x to be reconstructed
    return u
end

mwemodel = mwe()
chainmwe = sample(mwemodel, NUTS(.65),3)

```

The error is:

```julia
Cannot determine ordering of Dual tags ForwardDiff.Tag{Turing.Core.var"#f#7"{DynamicPPL.VarInfo{NamedTuple{(:lvar, :u),Tuple{DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:lvar,Tuple{}},Int64},Array{Uniform{Float64},1},Array{DynamicPPL.VarName{:lvar,Tuple{}},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}},DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:u,Tuple{}},Int64},Array{Product{Continuous,Truncated{Laplace{Float64},Continuous,Float64},FillArrays.Fill{Truncated{Laplace{Float64},Continuous,Float64},1,Tuple{Base.OneTo{Int64}}}},1},Array{DynamicPPL.VarName{:u,Tuple{}},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}}}},Float64},DynamicPPL.Model{var"###evaluator#333",(:T,),Tuple{Type{Array{Float64,1}}},(),DynamicPPL.ModelGen{var"###generator#334",(:T,),(:T,),Tuple{Type{Array{Float64,1}}}}},DynamicPPL.Sampler{NUTS{Turing.Core.ForwardDiffAD{40},(),AdvancedHMC.DiagEuclideanMetric},Turing.Inference.SamplerState{DynamicPPL.VarInfo{NamedTuple{(:lvar, :u),Tuple{DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:lvar,Tuple{}},Int64},Array{Uniform{Float64},1},Array{DynamicPPL.VarName{:lvar,Tuple{}},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}},DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:u,Tuple{}},Int64},Array{Product{Continuous,Truncated{Laplace{Float64},Continuous,Float64},FillArrays.Fill{Truncated{Laplace{Float64},Continuous,Float64},1,Tuple{Base.OneTo{Int64}}}},1},Array{DynamicPPL.VarName{:u,Tuple{}},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}}}},Float64}}}},Float64} and Nothing
... 

```

and goes on for more characters than allowed in the body here. Not able to figure this out! Why isn’t this working?

---

<div class="post-metadata">

**Author:** ![trappmartin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/trappmartin/32/1165_2.png) [@trappmartin](https://discourse.julialang.org/u/trappmartin)\
**Post date:** [May 28, 2020, 3:52pm UTC](https://discourse.julialang.org/t/forwarddiff-cannot-determine-ordering-of-dual-tags/40345/2 "2020-05-28T15:52:06Z")

</div>

Summoning @mohamed82008…

---

<div class="post-metadata">

**Author:** ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)\
**Post date:** [May 28, 2020, 4:17pm UTC](https://discourse.julialang.org/t/forwarddiff-cannot-determine-ordering-of-dual-tags/40345/3 "2020-05-28T16:17:13Z")

</div>

Hmm that’s an interesting one. Seems to be `Laplace`-related, other distributions seem to work. Please open an issue in `Turing`.

---

<div class="post-metadata">

**Author:** ![Manoj\_Gopalkrishnan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/manoj_gopalkrishnan/32/14587_2.png) [@Manoj\_Gopalkrishnan](https://discourse.julialang.org/u/Manoj_Gopalkrishnan)\
**Post date:** [May 29, 2020, 5:30am UTC](https://discourse.julialang.org/t/forwarddiff-cannot-determine-ordering-of-dual-tags/40345/4 "2020-05-29T05:30:40Z")

</div>

I have raised an issue at [ForwardDiff cannot determine ordering of Dual tags for Laplace distributions · Issue #1300 · TuringLang/Turing.jl · GitHub](https://github.com/TuringLang/Turing.jl/issues/1300)
