I wanted to try some additional precision in julia and I found the DoubleFloats package.
I ran the small example but received an error when using the eigen
function
#using LinearAlgebra #did not change the result
using DoubleFloats
P = rand(Double64,10,10)
B = P + P'
svd(B) #works!
eigen(B) #does not work!
The error message that I received was
julia> DoubleFloats.eigen(B)
ERROR: MethodError: no method matching eigen!(::Matrix{Double64}; permute=true, scale=true, sortby=LinearAlgebra.eigsortby)
Closest candidates are:
eigen!(::StridedMatrix{T}; permute, scale, sortby) where T<:Union{Float32, Float64} at /Applications/Julia-1.7.app/Contents/Resources/julia/share/julia/stdlib/v1.7/LinearAlgebra/src/eigen.jl:148
eigen!(::StridedMatrix{T}; permute, scale, sortby) where T<:Union{ComplexF32, ComplexF64} at /Applications/Julia-1.7.app/Contents/Resources/julia/share/julia/stdlib/v1.7/LinearAlgebra/src/eigen.jl:171
eigen!(::StridedMatrix{T}, ::StridedMatrix{T}; sortby) where T<:Union{Float32, Float64} at /Applications/Julia-1.7.app/Contents/Resources/julia/share/julia/stdlib/v1.7/LinearAlgebra/src/eigen.jl:427 got unsupported keyword arguments "permute", "scale"
...
Stacktrace:
[1] eigen(A::Matrix{Double64}; permute::Bool, scale::Bool, sortby::typeof(LinearAlgebra.eigsortby))
@ LinearAlgebra /Applications/Julia-1.7.app/Contents/Resources/julia/share/julia/stdlib/v1.7/LinearAlgebra/src/eigen.jl:237
[2] eigen(A::Matrix{Double64})
@ LinearAlgebra /Applications/Julia-1.7.app/Contents/Resources/julia/share/julia/stdlib/v1.7/LinearAlgebra/src/eigen.jl:235
[3] top-level scope
@ REPL[5]:1