Is it possible to rdiv! by an SVD factorization? As in
using LinearAlgebra
A = ones(3)
B = randn(3, 3)
Blu = lu!(copy(B))
rdiv!(A', Blu) # works
Bsvd = svd!(copy(B))
rdiv!(A', Bsvd) # fails, no such method
In other words, I am asking if there is a technical reason preventing this, or it simply wasn’t added (yet, as of 1.13.3).
So basically you want: X \leftarrow X F^{+}, where F = U \Sigma V^\*. Then you can make use of:
\left( X F^{+} \right)^{\top} = \left( F^{+} \right)^{\top} X^{\top} = \left( F^{\top} \right)^{+} X^{\top}
So this should work:
LinearAlgebra.rdiv!(X::AbstractMatrix, F::SVD) = (ldiv!(F', X'); X)
With your example I get
julia> rdiv!(A', Bsvd)
1×3 adjoint(::Vector{Float64}) with eltype Float64:
1.2252 -2.33595 0.699014
p.s. this works because ldiv!(F::SVD, B::AbstractVecOrMat) does exist: