Skip to content

Commit 7708e6f

Browse files
committed
Concretely typed fields in MOIOptimizationProblem
Without this, each call to `getindex` in `eval_hessian_lagrangian` is type-unstable and allocates a lot
1 parent c62a2d7 commit 7708e6f

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

lib/OptimizationMOI/src/OptimizationMOI.jl

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@ module OptimizationMOI
33
using MathOptInterface, Optimization, Optimization.SciMLBase, SparseArrays
44
const MOI = MathOptInterface
55

6-
struct MOIOptimizationProblem{T, F <: OptimizationFunction, uType, P} <:
6+
const DenseOrSparse{T} = Union{Matrix{T}, SparseMatrixCSC{T}}
7+
8+
struct MOIOptimizationProblem{T, F <: OptimizationFunction, uType, P,
9+
JT <: DenseOrSparse{T}, HT <: DenseOrSparse{T},
10+
CHT <: DenseOrSparse{T}} <:
711
MOI.AbstractNLPEvaluator
812
f::F
913
u0::uType
1014
p::P
11-
J::Union{Matrix{T}, SparseMatrixCSC{T}}
12-
H::Union{Matrix{T}, SparseMatrixCSC{T}}
13-
cons_H::Vector{<:Union{Matrix{T}, SparseMatrixCSC{T}}}
15+
J::JT
16+
H::HT
17+
cons_H::Vector{CHT}
1418
lcons::Vector{T}
1519
ucons::Vector{T}
1620
end

0 commit comments

Comments
 (0)