Skip to content

Commit 03ec708

Browse files
committed
Fix
1 parent 96ae9ce commit 03ec708

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

src/Nonlinear/ReverseAD/mathoptinterface_api.jl

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ function MOI.initialize(d::NLPEvaluator, requested_features::Vector{Symbol})
5959
max_chunk = max(max_chunk, size(c.expression.seed_matrix, 2))
6060
push!(main_expressions, c.expression.nodes)
6161
end
62+
max_chunk = min(max_chunk, MAX_CHUNK)
6263
d.subexpression_order, individual_order = _order_subexpressions(
6364
main_expressions,
6465
[expr.nodes for expr in d.data.expressions],
@@ -110,21 +111,22 @@ function MOI.initialize(d::NLPEvaluator, requested_features::Vector{Symbol})
110111
subexpression_edgelist[k] = edgelist
111112
end
112113
end
114+
shared_partials_storage_ϵ = zeros(max_chunk * max_expr_length)
113115
if d.data.objective !== nothing
114116
objective = _FunctionStorage(
115117
_SubexpressionStorage(
116118
something(d.data.objective),
117119
d.data.expressions[k],
118120
d.subexpression_linearity,
119121
moi_index_to_consecutive_index,
120-
zeros(max_chunk * length(d.data.expressions[k].nodes)),
121-
)
122+
shared_partials_storage_ϵ,
123+
d.want_hess,
124+
),
122125
N,
123126
coloring_storage,
124127
d.want_hess,
125128
d.subexpressions,
126129
individual_order[1],
127-
d.subexpression_linearity,
128130
subexpression_edgelist,
129131
subexpression_variables,
130132
)
@@ -135,29 +137,30 @@ function MOI.initialize(d::NLPEvaluator, requested_features::Vector{Symbol})
135137
push!(
136138
d.constraints,
137139
_FunctionStorage(
138-
main_expressions[idx],
139-
constraint.expression.values,
140+
_SubexpressionStorage(
141+
main_expressions[idx],
142+
d.subexpression_linearity,
143+
moi_index_to_consecutive_index,
144+
shared_partials_storage_ϵ,
145+
d.want_hess,
146+
),
140147
N,
141148
coloring_storage,
142149
d.want_hess,
143150
d.subexpressions,
144151
individual_order[idx],
145-
d.subexpression_linearity,
146152
subexpression_edgelist,
147153
subexpression_variables,
148-
moi_index_to_consecutive_index,
149154
),
150155
)
151156
max_expr_length = max(max_expr_length, length(d.constraints[end].nodes))
152157
max_chunk = max(max_chunk, size(d.constraints[end].seed_matrix, 2))
153158
end
154-
max_chunk = min(max_chunk, MAX_CHUNK)
155159
max_expr_with_sub_length = max(max_expr_with_sub_length, max_expr_length)
156160
if d.want_hess || want_hess_storage
157161
d.input_ϵ = zeros(max_chunk * N)
158162
d.output_ϵ = zeros(max_chunk * N)
159163
#
160-
d.partials_storage_ϵ = zeros(max_chunk * max_expr_length)
161164
d.storage_ϵ = zeros(max_chunk * max_expr_with_sub_length)
162165
#
163166
len = max_chunk * length(d.subexpressions)

0 commit comments

Comments
 (0)