Skip to content

Commit 398c797

Browse files
Use lagh from NLPModels as well to avoid forward mode type issues
1 parent 49c1723 commit 398c797

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

lib/OptimizationNLPModels/src/OptimizationNLPModels.jl

+13-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module OptimizationNLPModels
22

3-
using Reexport
3+
using Reexport, SparseArrays
44
@reexport using NLPModels, Optimization, ADTypes
55

66
"""
@@ -21,9 +21,20 @@ function SciMLBase.OptimizationFunction(nlpmodel::AbstractNLPModel,
2121
cons(res, x, p) = NLPModels.cons!(nlpmodel, x, res)
2222
cons_j(J, x, p) = (J .= NLPModels.jac(nlpmodel, x))
2323
cons_jvp(Jv, v, x, p) = NLPModels.jprod!(nlpmodel, x, v, Jv)
24+
function lag_h(h, θ, σ, λ)
25+
H = NLPModels.hess(nlpmodel, θ, λ; obj_weight = σ)
26+
k = 0
27+
rows, cols, _ = findnz(H)
28+
for (i, j) in zip(rows, cols)
29+
if i <= j
30+
k += 1
31+
h[k] = H[i, j]
32+
end
33+
end
34+
end
2435

2536
return OptimizationFunction(
26-
f, adtype; grad, hess, hv, cons, cons_j, cons_jvp, kwargs...)
37+
f, adtype; grad, hess, hv, cons, cons_j, cons_jvp, lag_h, kwargs...)
2738
end
2839

2940
return OptimizationFunction(f, adtype; grad, hess, hv, kwargs...)

0 commit comments

Comments
 (0)