Open tmigot opened 4 days ago
using LinearAlgebra, ADNLPModels, NLPModels, NLPModelsTest nlp = BROWNDEN() x = nlp.meta.x0 fx, gx, Hx = obj(nlp, x), grad(nlp, x), Symmetric(hess(nlp, x), :L) ADNLPModel( s -> fx + dot(gx, s) + dot(s, Hx * s) / 2, zeros(nlp.meta.nvar), nlp.meta.lvar - x, nlp.meta.uvar - x, )
and the error is
ERROR: MethodError: no method matching !(::SparseConnectivityTracer.HessianTracer{BitSet, Set{Tuple{Int64, Int64}}}) Closest candidates are: !(::Missing) @ Base missing.jl:101 !(::Bool) @ Base bool.jl:35 !(::ComposedFunction{typeof(!)}) @ Base operators.jl:1099 ... Stacktrace: [1] !=(x::SparseConnectivityTracer.HessianTracer{BitSet, Set{…}}, y::SparseConnectivityTracer.HessianTracer{BitSet, Set{…}}) @ Base .\operators.jl:276 [2] _mul!(nzrang::typeof(SparseArrays.nzrangelo), diagop::typeof(identity), odiagop::typeof(transpose), C::Vector{…}, A::SparseArrays.SparseMatrixCSC{…}, B::Vector{…}, α::SparseConnectivityTracer.HessianTracer{…}, β::SparseConnectivityTracer.HessianTracer{…}) @ SparseArrays \AppData\Local\Programs\julia-1.10.2\share\julia\stdlib\v1.10\SparseArrays\src\linalg.jl:881 [3] spdensemul!(C::Vector{…}, tA::Char, tB::Char, A::SparseArrays.SparseMatrixCSC{…}, B::Vector{…}, _add::LinearAlgebra.MulAddMul{…}) @ SparseArrays \AppData\Local\Programs\julia-1.10.2\share\julia\stdlib\v1.10\SparseArrays\src\linalg.jl:50 [4] generic_matvecmul! @ \AppData\Local\Programs\julia-1.10.2\share\julia\stdlib\v1.10\SparseArrays\src\linalg.jl:35 [inlined] [5] mul! @ \AppData\Local\Programs\julia-1.10.2\share\julia\stdlib\v1.10\LinearAlgebra\src\matmul.jl:66 [inlined] [6] mul! @ \AppData\Local\Programs\julia-1.10.2\share\julia\stdlib\v1.10\LinearAlgebra\src\matmul.jl:237 [inlined] [7] *(A::Symmetric{Float64, SparseArrays.SparseMatrixCSC{…}}, x::Vector{SparseConnectivityTracer.HessianTracer{…}}) @ LinearAlgebra \AppData\Local\Programs\julia-1.10.2\share\julia\stdlib\v1.10\LinearAlgebra\src\matmul.jl:57 [8] (::var"#5#6")(s::Vector{SparseConnectivityTracer.HessianTracer{BitSet, Set{Tuple{Int64, Int64}}}}) @ Main .\REPL[19]:2 [9] (::ADNLPModels.var"#lagrangian#55"{…})(x::Vector{…}) @ ADNLPModels \.julia\packages\ADNLPModels\ZWqLN\src\sparsity_pattern.jl:42 [10] trace_function(::Type{…}, f::ADNLPModels.var"#lagrangian#55"{…}, x::Vector{…}) @ SparseConnectivityTracer \.julia\packages\SparseConnectivityTracer\QlV0S\src\pattern.jl:32 [11] hessian_pattern(f::Function, x::Vector{Float64}, ::Type{BitSet}, ::Type{Set{Tuple{Int64, Int64}}}) @ SparseConnectivityTracer \.julia\packages\SparseConnectivityTracer\QlV0S\src\pattern.jl:326 [12] hessian_sparsity @ \.julia\packages\SparseConnectivityTracer\QlV0S\src\adtypes.jl:50 [inlined] [13] compute_hessian_sparsity(f::var"#5#6", nvar::Int64, c!::ADNLPModels.var"#2#3", ncon::Int64; detector::SparseConnectivityTracer.TracerSparsityDetector{…}) @ ADNLPModels \.julia\packages\ADNLPModels\ZWqLN\src\sparsity_pattern.jl:51 [14] ADNLPModels.SparseADHessian(nvar::Int64, f::Function, ncon::Int64, c!::ADNLPModels.var"#2#3"; x0::Vector{…}, coloring::SparseMatrixColorings.GreedyColoringAlgorithm{…}, detector::SparseConnectivityTracer.TracerSparsityDetector{…}, kwargs::@Kwargs{}) @ ADNLPModels \.julia\packages\ADNLPModels\ZWqLN\src\sparse_hessian.jl:28 [15] macro expansion @ \.julia\packages\ADNLPModels\ZWqLN\src\ad.jl:90 [inlined] [16] macro expansion @ .\timing.jl:395 [inlined] [17] ADNLPModels.ADModelBackend(nvar::Int64, f::var"#5#6"; backend::Symbol, matrix_free::Bool, show_time::Bool, gradient_backend::Type, hprod_backend::Type, hessian_backend::Type, kwargs::@Kwargs{…}) @ ADNLPModels \.julia\packages\ADNLPModels\ZWqLN\src\ad.jl:86 [18] ADNLPModel(f::Function, x0::Vector{…}, lvar::Vector{…}, uvar::Vector{…}; name::String, minimize::Bool, kwargs::@Kwargs{}) @ ADNLPModels \.julia\packages\ADNLPModels\ZWqLN\src\nlp.jl:146 [19] ADNLPModel(f::Function, x0::Vector{Float64}, lvar::Vector{Float64}, uvar::Vector{Float64}) @ ADNLPModels \.julia\packages\ADNLPModels\ZWqLN\src\nlp.jl:133
I will add QuadraticModels.jl in the breakage tests of ADNLPModels.jl. Update: We already have it here :thinking:
QuadraticModels.jl
ADNLPModels.jl
and the error is