-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Description
julia> x = rand(BigFloat,4,4)
4×4 Array{BigFloat,2}:
0.632329 0.143291 0.140398 0.932326
0.682252 0.833668 0.170542 0.776611
0.213518 0.324609 0.610383 0.130877
0.277469 0.558703 0.215871 0.299646
julia> eigmin(Hermitian(x + x'))
ERROR: MethodError: no method matching eigvals!(::Hermitian{BigFloat,Array{BigFloat,2}}, ::UnitRange{Int64})
Closest candidates are:
eigvals!(::SymTridiagonal{#s664,V} where V<:AbstractArray{#s664,1} where #s664<:Union{Float32, Float64}, ::UnitRange) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/tridiag.jl:248
eigvals!(::Union{Hermitian{#s664,#s663}, Hermitian{Complex{#s664},#s663}, Symmetric{#s664,#s663}} where #s663<:(Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Union{Tuple{Vararg{Real,N} where N}, Tuple{AbstractUnitRange,Vararg{Any,N} where N}} where A<:DenseArray where N where T, DenseArray}, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{Base.ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Union{Tuple{Vararg{Real,N} where N}, Tuple{AbstractUnitRange,Vararg{Any,N} where N}} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Union{Tuple{Vararg{Real,N} where N}, Tuple{AbstractUnitRange,Vararg{Any,N} where N}} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Union{Tuple{Vararg{Real,N} where N}, Tuple{AbstractUnitRange,Vararg{Any,N} where N}} where A<:DenseArray where N where T, DenseArray} where N where T, Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{Base.ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Union{Tuple{Vararg{Real,N} where N}, Tuple{AbstractUnitRange,Vararg{Any,N} where N}} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Union{Tuple{Vararg{Real,N} where N}, Tuple{AbstractUnitRange,Vararg{Any,N} where N}} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s664<:Union{Float32, Float64}, ::UnitRange) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/symmetric.jl:732
eigvals!(::Hermitian; tol, debug) at /home/eric/.julia/packages/GenericLinearAlgebra/sJLhE/src/eigenSelfAdjoint.jl:566
Stacktrace:
[1] eigvals(::Hermitian{BigFloat,Array{BigFloat,2}}, ::UnitRange{Int64}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/symmetric.jl:763
[2] eigmin(::Hermitian{BigFloat,Array{BigFloat,2}}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/symmetric.jl:806
[3] top-level scope at REPL[108]:1
[4] eval(::Module, ::Any) at ./boot.jl:331
[5] eval_user_input(::Any, ::REPL.REPLBackend) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/REPL/src/REPL.jl:86
[6] run_backend(::REPL.REPLBackend) at /home/eric/.julia/packages/Revise/XFtoQ/src/Revise.jl:1162
[7] top-level scope at none:0
[8] eval(::Module, ::Any) at ./boot.jl:331
[9] eval_user_input(::Any, ::REPL.REPLBackend) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/REPL/src/REPL.jl:86
[10] run_backend(::REPL.REPLBackend) at /home/eric/.julia/packages/Revise/XFtoQ/src/Revise.jl:1162
[11] top-level scope at none:0
Some piracy fixes it in the BigFloat case:
LinearAlgebra.eigmin(A::LinearAlgebra.RealHermSymComplexHerm{BigFloat,<:StridedMatrix}) = minimum(eigvals(A))
But maybe a generic solution is desired?
Metadata
Metadata
Assignees
Labels
No labels