Simon Byrne

Results 458 comments of Simon Byrne

Why would that be better?

Ah, ok. I was considering this in the case of matrix-free operators, but yes if you're doing array operations you would probably want something more array-aware.

apparently it is fixed on 0.7 (thanks @YingboMa), so must be some sort of lowering bug

To simplify the stack trace, the top-level traceback is ``` [1] convert(::Type{ForwardDiff.Dual{ForwardDiff.Tag{AAA,Float64},ForwardDiff.Dual{BBB,Float64,1},1}}, ::ForwardDiff.Dual{BBB,ForwardDiff.Dual{ForwardDiff.Tag{AAA,Float64},Float64,1},1}) ``` Here the AAA tag is generated by the `gradient`, and BBB is generate by the `hessian`....

also a simple Newton solver would be handy as well

FWIW, I also encountered some weird generated function/inference heisenbugs as part of writing #247, at this part: https://github.com/simonbyrne/ForwardDiff.jl/blob/9684bac1bc21461f6030009a369246b4e7a90d5a/test/HessianTest.jl#L60-L66 It would generate a `Tag` where the function was of type `T`,...

Do you have a reproducible case? Both the above pass on my machine now.

I don't see why it should make much difference to compile times, but I will note that switching away from the hashing did fix the original problem in this issue.

If we could get nicer printing of tags (for which I started writing https://github.com/simonbyrne/ShowTree.jl?), then it might make debugging easier as you know where the Duals originated.

The following works with #948: ``` julia> using HDF5 julia> filename = tempname(); julia> f = h5open(filename, "w"); julia> write_attribute(f, "a", 2) julia> Dict(attrs(f)) Dict{String, Any} with 1 entry: "a"...