-
-
Notifications
You must be signed in to change notification settings - Fork 35
Closed
JuliaLang/julia
#46797Description
When I pass matrices of type Diagonal to eigen, I get errors. This should work, right?
Demonstrating the issue
julia> using LinearAlgebra
julia> A = Diagonal([1, 2])
2×2 Diagonal{Int64, Vector{Int64}}:
1 ⋅
⋅ 2
julia> eigen(A, A)
ERROR: MethodError: no method matching eigen!(::Diagonal{Float64, Vector{Float64}}, ::Diagonal{Float64, Vector{Float64}})
Closest candidates are:
eigen!(::Union{Hermitian{T, S}, Hermitian{Complex{T}, S}, Symmetric{T, S}}, ::AbstractMatrix{T}; sortby) where {T<:Number, S<:(StridedMatrix{T} where T)} at C:\Users\Dennis Bal\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\LinearAlgebra\src\symmetriceigen.jl:170
Stacktrace:
[1] eigen(A::Diagonal{Int64, Vector{Int64}}, B::Diagonal{Int64, Vector{Int64}}; kws::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ LinearAlgebra C:\Users\Dennis Bal\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:511
[2] eigen(A::Diagonal{Int64, Vector{Int64}}, B::Diagonal{Int64, Vector{Int64}})
@ LinearAlgebra C:\Users\Dennis Bal\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:509
[3] top-level scope
@ REPL[3]:1
julia> eigen(A|>Matrix, A)
ERROR: MethodError: no method matching eigen!(::Matrix{Float64}, ::Diagonal{Float64, Vector{Float64}})
Closest candidates are:
eigen!(::StridedMatrix{T}; permute, scale, sortby) where T<:Union{Float32, Float64} at C:\Users\Dennis Bal\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:149
eigen!(::StridedMatrix{T}, ::StridedMatrix{T}; sortby) where T<:Union{Float32, Float64} at C:\Users\Dennis Bal\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:436
eigen!(::Union{Hermitian{T, S}, Hermitian{Complex{T}, S}, Symmetric{T, S}}, ::AbstractMatrix{T}; sortby) where {T<:Number, S<:(StridedMatrix{T} where T)} at C:\Users\Dennis Bal\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\LinearAlgebra\src\symmetriceigen.jl:170
Stacktrace:
[1] eigen(A::Matrix{Int64}, B::Diagonal{Int64, Vector{Int64}}; kws::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ LinearAlgebra C:\Users\Dennis Bal\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:511
[2] eigen(A::Matrix{Int64}, B::Diagonal{Int64, Vector{Int64}})
@ LinearAlgebra C:\Users\Dennis Bal\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:509
[3] top-level scope
@ REPL[4]:1
julia> eigen(A, A|>Matrix)
ERROR: MethodError: no method matching eigen!(::Diagonal{Float64, Vector{Float64}}, ::Matrix{Float64})
Closest candidates are:
eigen!(::StridedMatrix{T}, ::StridedMatrix{T}; sortby) where T<:Union{Float32, Float64} at C:\Users\Dennis Bal\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:436
eigen!(::Union{Hermitian{T, S}, Hermitian{Complex{T}, S}, Symmetric{T, S}}, ::AbstractMatrix{T}; sortby) where {T<:Number, S<:(StridedMatrix{T} where T)} at C:\Users\Dennis Bal\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\LinearAlgebra\src\symmetriceigen.jl:170
Stacktrace:
[1] eigen(A::Diagonal{Int64, Vector{Int64}}, B::Matrix{Int64}; kws::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ LinearAlgebra C:\Users\Dennis Bal\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:511
[2] eigen(A::Diagonal{Int64, Vector{Int64}}, B::Matrix{Int64})
@ LinearAlgebra C:\Users\Dennis Bal\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:509
[3] top-level scope
@ REPL[5]:1
julia> eigen(A|>Matrix, A|>Matrix)
GeneralizedEigen{Float64, Float64, Matrix{Float64}, Vector{Float64}}
values:
2-element Vector{Float64}:
0.9999999999999998
1.0
vectors:
2×2 Matrix{Float64}:
0.0 1.0
0.707107 0.0
julia> versioninfo()
Julia Version 1.8.0
Commit 5544a0fab7 (2022-08-17 13:38 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: 8 × Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-13.0.1 (ORCJIT, skylake)
Threads: 8 on 8 virtual cores
Metadata
Metadata
Assignees
Labels
No labels