Michael Abbott

Results 1315 comments of Michael Abbott

Might be worth trying to be systematic about these... at least to track progress. Not sure what to make of the `frule` ambiguities, but for `rrule` there appear to be...

I don't think there's an official support, or not yet. Making a crude attempt by fixing whatever gives an error: ```julia julia> using ForwardDiff: ForwardDiff, Dual, value, partials julia> ForwardDiff.can_dual(::Type{ComplexF64})...

Not on your list, but: Is it possible/legal to have a nonzero gradient for keys of a dictionary at all? Re projection, for `::Pairs...` maybe this can't get too long....

Sorry I missed this. I agree this behaviour is a potential surprise. It is intentional, though, in that Tullio always wants to write one set of nested loops, and doesn't...

I suppose here it could sort this out, but in general when it sees `begin ... end` it concludes that you wanted an expression too complicated for the (very simple)...

Your complaint is this: ``` julia> using ForwardDiff: Dual julia> rem(Dual(0.001, 2), 3) Dual{Nothing}(0.001,2.0) julia> rem(Dual(0.0, 2), 3) Dual{Nothing}(0.0,NaN) julia> rem(Dual(3.0, 2), 3) Dual{Nothing}(0.0,NaN) ``` which is defined here: https://github.com/JuliaDiff/DiffRules.jl/blob/42b11d0d07dbb9b1f552398bdf5a79e4f403edcf/src/rules.jl#L99...

One way to make this fully automatic would be to move the most basic definitions of `Dual`, `Partials` etc. from here to ChainRulesCore. Then `@scalar_rule f ...` could automatically add...

Yes this is intentional. Every index is a new local variable, and is unaffected by whether one of the same name exists outside -- as it would be if you...

Good point. But the error here is generated when expanding the macro. The expression it tries to expand is this: ``` ┌ Info: =====LV===== LoopVectorization actor │ verbosetidy(lex) = │...

However, in this case I think the expression should be equivalent to this: ```julia @tullio w[i,j] = v[i,clamp(h + j - $u - 1)] * A.data[h,j] ``` `clamp` and `mod`...