I have lots of matrices with very small positive eigenvalues. In Julia 0.6 I was calling ld, s = logabsdet(m)
, but updating to v0.7, this now gives an error when det(m)==0
. (It’s not physically zero, just numerical precision.)
Is this the desired behaviour? I would have thought that the purpose of logabsdet(m)
was precisely for cases like this.
for i=1:10
v = rand(4)
m = v .* v'
@show det(m) ## zero about one in ten times...
@show logabsdet(m) ## ... then error in v0.7
end
The error is
ERROR: SingularException(20)
Stacktrace:
[1] checknonsingular at /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v0.7/LinearAlgebra/src/factorization.jl:12 [inlined]
[2] #lu!#97(::Bool, ::Function, ::Array{Float64,2}, ::Val{true}) at /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v0.7/LinearAlgebra/src/lu.jl:41