Percival.jl
Percival.jl copied to clipboard
non-informative error message for invalid constraints
using ADNLPModels, Percival
nlp = ADNLPModel(
x -> sum(abs2, x), # objective
[2.0, 2.0], # x0
x -> [sum(x) - 1], # constraint
[-Inf], # lvar
[Inf], # uvar
)
output = percival(nlp, verbose = 1)
results in
ERROR: DimensionError: Input lvar should have length 3 not 2
Stacktrace:
[1] macro expansion
@ ~/.julia/packages/NLPModels/XBcWL/src/nlp/utils.jl:37 [inlined]
[2] NLPModels.NLPModelMeta{Float64, Vector{Float64}}(nvar::Int64; x0::Vector{Float64}, lvar::Vector{Float64}, uvar::Vector{Float64}, nlvb::Int64, nlvo::Int64, nlvc::Int64, ncon::Int64, y0::Vector{Float64}, lcon::Vector{Float64}, ucon::Vector{Float64}, nnzo::Int64, nnzj::Int64, lin_nnzj::Int64, nln_nnzj::Int64, nnzh::Int64, lin::Vector{Int64}, minimize::Bool, islp::Bool, name::String)
@ NLPModels ~/.julia/packages/NLPModels/XBcWL/src/nlp/meta.jl:143
[3] #NLPModelMeta#63
@ ~/.julia/packages/NLPModels/XBcWL/src/nlp/meta.jl:216 [inlined]
[4] slack_meta(meta::NLPModels.NLPModelMeta{Float64, Vector{Float64}}; name::String)
@ NLPModelsModifiers ~/.julia/packages/NLPModelsModifiers/QR0za/src/slack-model.jl:134
[5] #SlackModel#27
@ ~/.julia/packages/NLPModelsModifiers/QR0za/src/slack-model.jl:159 [inlined]
[6] NLPModelsModifiers.SlackModel(model::ADNLPModel{Float64, Vector{Float64}, Vector{Int64}})
@ NLPModelsModifiers ~/.julia/packages/NLPModelsModifiers/QR0za/src/slack-model.jl:154
[7] percival(::Val{:ineq}, nlp::ADNLPModel{Float64, Vector{Float64}, Vector{Int64}}; x::Vector{Float64}, kwargs::Base.Pairs{Symbol, Int64, Tuple{Symbol}, NamedTuple{(:verbose,), Tuple{Int64}}})
@ Percival ~/.julia/packages/Percival/mlZ4N/src/method.jl:57
[8] percival(nlp::ADNLPModel{Float64, Vector{Float64}, Vector{Int64}}; kwargs::Base.Pairs{Symbol, Int64, Tuple{Symbol}, NamedTuple{(:verbose,), Tuple{Int64}}})
@ Percival ~/.julia/packages/Percival/mlZ4N/src/method.jl:14
[9] top-level scope
@ REPL[6]:1
This is of course user error (meaningless constraints), lcon = ucon = [0.0] works. But the error message is misleading.
version information
julia> VERSION
v"1.8.5"
(jl_0RwdKo) pkg> st
Status `/tmp/jl_0RwdKo/Project.toml`
[54578032] ADNLPModels v0.6.1
[01435c0c] Percival v0.6.5