Skip to content

Large matrices cause LAPACK ArgumentError #870

Closed
@r3tex

Description

@r3tex

Here is a small way to reproduce the problem.
When giving an argument close to 10000 it fails.

using LinearAlgebra
mirror!(A) = for i in 1:size(A, 1), j in (i + 1):size(A, 2); A[i, j] = A[j, i] = A[i, j] + A[j, i]; end
function spectralpositions(n)
    g = rand(0:1, n, n)
    mirror!(g)
    ϕ = Matrix(Diagonal(vec(sum(g; dims=1)) - diag(g)))
    λ = Float32[i == j ? ϕ[i, j] : -g[i, j] for i in 1:n, j in 1:n]
    eigvecs(λ, ϕ)
end
julia> spectralpositions(10000)
 ** On entry to SSYGVDNon-unitLeft parameter number 11 had an illegal value
ERROR: ArgumentError: invalid argument JuliaLang/julia#11 to LAPACK call
Stacktrace:
  [1] chkargsok
    @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/lapack.jl:27 [inlined]
  [2] sygvd!(itype::Int64, jobz::Char, uplo::Char, A::Matrix{Float32}, B::Matrix{Float32})
    @ LinearAlgebra.LAPACK /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/lapack.jl:5167
  [3] #eigen!#101
    @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/symmetric.jl:828 [inlined]
  [4] eigen!(A::Matrix{Float32}, B::Matrix{Float32}; sortby::typeof(LinearAlgebra.eigsortby))
    @ LinearAlgebra /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/eigen.jl:428
  [5] eigen!
    @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/eigen.jl:428 [inlined]
  [6] eigen(A::Matrix{Float32}, B::Matrix{Int64}; kws::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ LinearAlgebra /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/eigen.jl:501
  [7] eigen
    @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/eigen.jl:500 [inlined]
  [8] #eigvecs#87
    @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/eigen.jl:607 [inlined]
  [9] eigvecs
    @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/eigen.jl:607 [inlined]
 [10] spectralpositions(n::Int64)
    @ Main ~/KYUBI/examples/example-VRP-1.jl:62
 [11] top-level scope
    @ REPL[39]:1

@ViralBShah @andreasnoack

Metadata

Metadata

Assignees

No one assigned

    Labels

    upstreamThe issue is with an upstream dependency, e.g. LLVM

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions