You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This reinstates slightly altered versions of the methods that were
removed in JuliaLang/julia#52389. Sort of fixes#1205, although this doesn't recover the full performance. However, this
version is more general, and works with the example presented in
JuliaLang/julia#52389. There's still a
performance regression, but the full performance may only be obtained
for mutable matrices, and we may not assume mutability in general.
Performance:
v1.10:
```julia
julia> n = 100
100
julia> A = adjoint(sparse(Float64, I, n, n));
julia> B = Diagonal(ones(n));
julia> @Btime $A * $B;
837.119 ns (5 allocations: 2.59 KiB)
```
This PR
```julia
julia> @Btime $A * $B;
1.106 μs (15 allocations: 5.56 KiB)
```
We need double the allocations here compared to earlier, as we firstly
materialize `D' * A'`, and then we again copy the adjoint of this
result. I wonder if this may be reduced.
---------
Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de>
0 commit comments