While implementing methods for \
and ldiv!
for diagonal GPUArrays
, (see this PR in case you’re interested) I noticed that the two and three-argument versions of `ldiv! don’t have the same behavior for singular diagonal arguments, i.e.:
using LinearAlgebra
n = 4
d = rand(n)
d[1] = 0
D = Diagonal(d)
B = rand(n, n)
Y = zeros(n, n)
ldiv!(D, B)
# 4×4 Matrix{Float64}:
# Inf Inf Inf Inf
# 0.682851 1.40532 1.44143 0.516185
# 0.836786 0.11104 0.849226 0.896431
# 8.443 11.7222 18.7991 15.7463
ldiv!(Y, D, B) # ERROR: SingularException(1)
Is this intentional?