@@ -24,7 +24,6 @@ function OptimizationBase.instantiate_function(
24
24
g = false , h = false , hv = false , fg = false , fgh = false ,
25
25
cons_j = false , cons_vjp = false , cons_jvp = false , cons_h = false ,
26
26
lag_h = false )
27
-
28
27
adtype, soadtype = OptimizationBase. generate_adtype (adtype)
29
28
30
29
if g == true && f. grad === nothing
@@ -83,12 +82,14 @@ function OptimizationBase.instantiate_function(
83
82
84
83
if fgh == true && f. fgh === nothing
85
84
function fgh! (G, H, θ)
86
- (y, _, _) = value_derivative_and_second_derivative! (f. f, G, H, prep_hess, soadtype, θ, Constant (p))
85
+ (y, _, _) = value_derivative_and_second_derivative! (
86
+ f. f, G, H, prep_hess, soadtype, θ, Constant (p))
87
87
return y
88
88
end
89
89
if p != = SciMLBase. NullParameters () && p != = nothing
90
90
function fgh! (G, H, θ, p)
91
- (y, _, _) = value_derivative_and_second_derivative! (f. f, G, H, prep_hess, soadtype, θ, Constant (p))
91
+ (y, _, _) = value_derivative_and_second_derivative! (
92
+ f. f, G, H, prep_hess, soadtype, θ, Constant (p))
92
93
return y
93
94
end
94
95
end
@@ -180,7 +181,8 @@ function OptimizationBase.instantiate_function(
180
181
conshess_sparsity = f. cons_hess_prototype
181
182
conshess_colors = f. cons_hess_colorvec
182
183
if cons != = nothing && cons_h == true && f. cons_h === nothing
183
- prep_cons_hess = [prepare_hessian (cons_oop, soadtype, x, Constant (i)) for i in 1 : num_cons]
184
+ prep_cons_hess = [prepare_hessian (cons_oop, soadtype, x, Constant (i))
185
+ for i in 1 : num_cons]
184
186
185
187
function cons_h! (H, θ)
186
188
for i in 1 : num_cons
@@ -197,20 +199,23 @@ function OptimizationBase.instantiate_function(
197
199
198
200
if f. lag_h === nothing && cons != = nothing && lag_h == true
199
201
lag_extras = prepare_hessian (
200
- lagrangian, soadtype, x, Constant (one (eltype (x))), Constant (ones (eltype (x), num_cons)), Constant (p))
202
+ lagrangian, soadtype, x, Constant (one (eltype (x))),
203
+ Constant (ones (eltype (x), num_cons)), Constant (p))
201
204
lag_hess_prototype = zeros (Bool, num_cons, length (x))
202
205
203
206
function lag_h! (H:: AbstractMatrix , θ, σ, λ)
204
207
if σ == zero (eltype (θ))
205
208
cons_h! (H, θ)
206
209
H *= λ
207
210
else
208
- hessian! (lagrangian, H, lag_extras, soadtype, θ, Constant (σ), Constant (λ), Constant (p))
211
+ hessian! (lagrangian, H, lag_extras, soadtype, θ,
212
+ Constant (σ), Constant (λ), Constant (p))
209
213
end
210
214
end
211
215
212
216
function lag_h! (h:: AbstractVector , θ, σ, λ)
213
- H = hessian (lagrangian, lag_extras, soadtype, θ, Constant (σ), Constant (λ), Constant (p))
217
+ H = hessian (
218
+ lagrangian, lag_extras, soadtype, θ, Constant (σ), Constant (λ), Constant (p))
214
219
k = 0
215
220
for i in 1 : length (θ)
216
221
for j in 1 : i
@@ -226,12 +231,14 @@ function OptimizationBase.instantiate_function(
226
231
cons_h (H, θ)
227
232
H *= λ
228
233
else
229
- hessian! (lagrangian, H, lag_extras, soadtype, θ, Constant (σ), Constant (λ), Constant (p))
234
+ hessian! (lagrangian, H, lag_extras, soadtype, θ,
235
+ Constant (σ), Constant (λ), Constant (p))
230
236
end
231
237
end
232
238
233
239
function lag_h! (h:: AbstractVector , θ, σ, λ, p)
234
- H = hessian (lagrangian, lag_extras, soadtype, θ, Constant (σ), Constant (λ), Constant (p))
240
+ H = hessian (lagrangian, lag_extras, soadtype, θ,
241
+ Constant (σ), Constant (λ), Constant (p))
235
242
k = 0
236
243
for i in 1 : length (θ)
237
244
for j in 1 : i
@@ -303,12 +310,14 @@ function OptimizationBase.instantiate_function(
303
310
extras_grad = prepare_gradient (_f, adtype. dense_ad, x, Constant (p))
304
311
end
305
312
function fg! (res, θ)
306
- (y, _) = value_and_gradient! (_f, res, extras_grad, adtype. dense_ad, θ, Constant (p))
313
+ (y, _) = value_and_gradient! (
314
+ _f, res, extras_grad, adtype. dense_ad, θ, Constant (p))
307
315
return y
308
316
end
309
317
if p != = SciMLBase. NullParameters () && p != = nothing
310
318
function fg! (res, θ, p)
311
- (y, _) = value_and_gradient! (_f, res, extras_grad, adtype. dense_ad, θ, Constant (p))
319
+ (y, _) = value_and_gradient! (
320
+ _f, res, extras_grad, adtype. dense_ad, θ, Constant (p))
312
321
return y
313
322
end
314
323
end
@@ -341,13 +350,15 @@ function OptimizationBase.instantiate_function(
341
350
342
351
if fgh == true && f. fgh === nothing
343
352
function fgh! (G, H, θ)
344
- (y, _, _) = value_derivative_and_second_derivative! (_f, G, H, θ, prep_hess, soadtype, Constant (p))
353
+ (y, _, _) = value_derivative_and_second_derivative! (
354
+ _f, G, H, θ, prep_hess, soadtype, Constant (p))
345
355
return y
346
356
end
347
357
348
358
if p != = SciMLBase. NullParameters () && p != = nothing
349
359
function fgh! (G, H, θ, p)
350
- (y, _, _) = value_derivative_and_second_derivative! (_f, G, H, θ, prep_hess, soadtype, Constant (p))
360
+ (y, _, _) = value_derivative_and_second_derivative! (
361
+ _f, G, H, θ, prep_hess, soadtype, Constant (p))
351
362
return y
352
363
end
353
364
end
@@ -419,7 +430,8 @@ function OptimizationBase.instantiate_function(
419
430
extras_pullback = prepare_pullback (
420
431
cons_oop, adtype. dense_ad, x, (ones (eltype (x), num_cons),), Constant (p))
421
432
function cons_vjp! (J, θ, v)
422
- pullback! (cons_oop, (J,), extras_pullback, adtype. dense_ad, θ, (v,), Constant (p))
433
+ pullback! (
434
+ cons_oop, (J,), extras_pullback, adtype. dense_ad, θ, (v,), Constant (p))
423
435
end
424
436
elseif cons_vjp == true
425
437
cons_vjp! = (J, θ, v) -> f. cons_vjp (J, θ, v, p)
@@ -431,7 +443,8 @@ function OptimizationBase.instantiate_function(
431
443
extras_pushforward = prepare_pushforward (
432
444
cons_oop, adtype. dense_ad, x, (ones (eltype (x), length (x)),), Constant (p))
433
445
function cons_jvp! (J, θ, v)
434
- pushforward! (cons_oop, (J,), extras_pushforward, adtype. dense_ad, θ, (v,), Constant (p))
446
+ pushforward! (
447
+ cons_oop, (J,), extras_pushforward, adtype. dense_ad, θ, (v,), Constant (p))
435
448
end
436
449
elseif cons_jvp == true
437
450
cons_jvp! = (J, θ, v) -> f. cons_jvp (J, θ, v, p)
@@ -442,7 +455,8 @@ function OptimizationBase.instantiate_function(
442
455
conshess_sparsity = f. cons_hess_prototype
443
456
conshess_colors = f. cons_hess_colorvec
444
457
if cons != = nothing && f. cons_h === nothing && cons_h == true
445
- prep_cons_hess = [prepare_hessian (cons_oop, soadtype, x, Constant (i)) for i in 1 : num_cons]
458
+ prep_cons_hess = [prepare_hessian (cons_oop, soadtype, x, Constant (i))
459
+ for i in 1 : num_cons]
446
460
colores = getfield .(prep_cons_hess, :coloring_result )
447
461
conshess_sparsity = getfield .(colores, :S )
448
462
conshess_colors = getfield .(colores, :color )
@@ -461,7 +475,8 @@ function OptimizationBase.instantiate_function(
461
475
lag_hess_colors = f. lag_hess_colorvec
462
476
if cons != = nothing && f. lag_h === nothing && lag_h == true
463
477
lag_extras = prepare_hessian (
464
- lagrangian, soadtype, x, Constant (one (eltype (x))), Constant (ones (eltype (x), num_cons)), Constant (p))
478
+ lagrangian, soadtype, x, Constant (one (eltype (x))),
479
+ Constant (ones (eltype (x), num_cons)), Constant (p))
465
480
lag_hess_prototype = lag_extras. coloring_result. S
466
481
lag_hess_colors = lag_extras. coloring_result. color
467
482
@@ -470,12 +485,14 @@ function OptimizationBase.instantiate_function(
470
485
cons_h (H, θ)
471
486
H *= λ
472
487
else
473
- hessian! (lagrangian, H, lag_extras, soadtype, θ, Constant (σ), Constant (λ), Constant (p))
488
+ hessian! (lagrangian, H, lag_extras, soadtype, θ,
489
+ Constant (σ), Constant (λ), Constant (p))
474
490
end
475
491
end
476
492
477
493
function lag_h! (h, θ, σ, λ)
478
- H = hessian (lagrangian, lag_extras, soadtype, θ, Constant (σ), Constant (λ), Constant (p))
494
+ H = hessian (
495
+ lagrangian, lag_extras, soadtype, θ, Constant (σ), Constant (λ), Constant (p))
479
496
k = 0
480
497
rows, cols, _ = findnz (H)
481
498
for (i, j) in zip (rows, cols)
@@ -492,12 +509,14 @@ function OptimizationBase.instantiate_function(
492
509
cons_h! (H, θ)
493
510
H *= λ
494
511
else
495
- hessian! (lagrangian, H, lag_extras, soadtype, θ, Constant (σ), Constant (λ), Constant (p))
512
+ hessian! (lagrangian, H, lag_extras, soadtype, θ,
513
+ Constant (σ), Constant (λ), Constant (p))
496
514
end
497
515
end
498
516
499
517
function lag_h! (h:: AbstractVector , θ, σ, λ, p)
500
- H = hessian (lagrangian, lag_extras, soadtype, θ, Constant (σ), Constant (λ), Constant (p))
518
+ H = hessian (lagrangian, lag_extras, soadtype, θ,
519
+ Constant (σ), Constant (λ), Constant (p))
501
520
k = 0
502
521
for i in 1 : length (θ)
503
522
for j in 1 : i
0 commit comments