In-place svd?

If you still have this problem, you may want to check out KWLinalg
This is a package, in which (among other things) functors are provided that already include the necessary workspace and output matrices. Say you have a matrix

A = rand(ComplexF64, 5, 4)

Then you can define the functor

f = svd_functor_divconquer(5, 4, ComplexF64)

After that, you can call

U, S, Vt = f(A)

with no further allocations (unless you are in the main-scope). See the example in the README of KWLinalg for a benchmark-test.

4 Likes