Michael Abbott
Michael Abbott
I have added a few more methods in https://github.com/mcabbott/AxisKeys.jl/commit/7919f127dba3397bb238a78c5cb5a0b187df5ff7 , so the examples on this page should (I think) now work. We are up to 180 methods now for `*`....
The above formula is wrong. Correct versions are here: https://github.com/mcabbott/OddArrays.jl/blob/6c3ef3ab5ebf05c8aa6aa030590456200715be0f/src/OddArrays.jl#L814-L838 And the motivation is things like this: ```julia julia> gradient(x -> (2 .* x)[1], 0:0.2:1) # natural ([2.0, 0.0, 0.0,...
xref this thread, btw: https://discourse.julialang.org/t/improving-an-algorithm-that-compute-gps-distances/38213/38
Everything about sparse array projection is very crude, and could use attention from anyone who's using it. It was roughly the minimal code to establish the idea (before 1.0) that...
Shouldn't this return a tuple, like gradient, to allow for multiple arguments? ```julia julia> Diffractor.gradient(atan)(1/2) (0.8,) julia> Diffractor.gradient(atan)(1, 2) (0.4, -0.2) julia> Diffractor.jacobian(x -> x[1:2])([3,4,5]) 2×3 Matrix{Int64}: 1 0 0...
So you want a function that's a lot like `dx = zero(x)`, but tries to guarantee that `[dx1, dx2, dx3]` will be of uniform type, when some are zero and...
> being that strict There's no maths in this, but accidental Float32 -> Float64 is such an easy performance bug to introduce, and we can kill it globally at last....
Thanks for making a start. My essay on this is https://github.com/JuliaDiff/ChainRules.jl/pull/337#issuecomment-832080195, and I'd appreciate your comments on what, if any, of that you disagree with. I wonder, on first skim,...
I mean "usual function evaluation", which is also usually the forward pass. The sparse matrix types you describe all know about `*`, they are specifically designed to work with that...
Sounds good. Unlike `rename`, there's no confusion which way the arrow goes, so `rekey(ka; dim1=kv1)` would also be OK.