Skip to content

Commit bd12f35

Browse files
committed
🤖 Format .jl files
1 parent ca059cc commit bd12f35

File tree

7 files changed

+375
-361
lines changed

7 files changed

+375
-361
lines changed

src/moi_nlp_model.jl

Lines changed: 62 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,18 @@ function nlp_model(moimodel::MOI.ModelLike; hessian::Bool = true, name::String =
7474
hess_available = hessian && oracles.hessian_oracles_supported,
7575
)
7676

77-
return MathOptNLPModel(meta, nlp_data.evaluator, lincon, quadcon, nlcon, oracles, λ, hv, obj, counters),
77+
return MathOptNLPModel(
78+
meta,
79+
nlp_data.evaluator,
80+
lincon,
81+
quadcon,
82+
nlcon,
83+
oracles,
84+
λ,
85+
hv,
86+
obj,
87+
counters,
88+
),
7889
index_map
7990
end
8091

@@ -133,7 +144,7 @@ function NLPModels.cons_nln!(nlp::MathOptNLPModel, x::AbstractVector, c::Abstrac
133144
end
134145
if nlp.oracles.ncon > 0
135146
for (f, s) in nlp.oracles.oracles
136-
for i in 1:s.set.input_dimension
147+
for i = 1:s.set.input_dimension
137148
s.x[i] = x[f.variables[i].value]
138149
end
139150
index_oracle = (offset + 1):(offset + s.set.output_dimension)
@@ -157,7 +168,8 @@ function NLPModels.cons!(nlp::MathOptNLPModel, x::AbstractVector, c::AbstractVec
157168
offset += nlp.quadcon.nquad
158169
for i = 1:(nlp.quadcon.nquad)
159170
qcon = nlp.quadcon.constraints[i]
160-
c[nlp.meta.nlin + i] = 0.5 * coo_sym_dot(qcon.A.rows, qcon.A.cols, qcon.A.vals, x, x) + dot(qcon.b, x)
171+
c[nlp.meta.nlin + i] =
172+
0.5 * coo_sym_dot(qcon.A.rows, qcon.A.cols, qcon.A.vals, x, x) + dot(qcon.b, x)
161173
end
162174
end
163175
if nlp.nlcon.nnln > 0
@@ -167,7 +179,7 @@ function NLPModels.cons!(nlp::MathOptNLPModel, x::AbstractVector, c::AbstractVec
167179
end
168180
if nlp.oracles.ncon > 0
169181
for (f, s) in nlp.oracles.oracles
170-
for i in 1:s.set.input_dimension
182+
for i = 1:s.set.input_dimension
171183
s.x[i] = x[f.variables[i].value]
172184
end
173185
index_oracle = (offset + 1):(offset + s.set.output_dimension)
@@ -209,7 +221,7 @@ function NLPModels.jac_nln_structure!(
209221
end
210222
@assert offset == nlp.quadcon.nnzj
211223
if nlp.nlcon.nnln > 0
212-
# non-oracle nonlinear constraints
224+
# non-oracle nonlinear constraints
213225
ind_nnln = (offset + 1):(offset + nlp.nlcon.nnzj)
214226
view(rows, ind_nnln) .= nlp.quadcon.nquad .+ nlp.nlcon.jac_rows
215227
view(cols, ind_nnln) .= nlp.nlcon.jac_cols
@@ -320,7 +332,7 @@ function NLPModels.jac_nln_coord!(nlp::MathOptNLPModel, x::AbstractVector, vals:
320332
end
321333
if nlp.oracles.ncon > 0
322334
for (f, s) in nlp.oracles.oracles
323-
for i in 1:s.set.input_dimension
335+
for i = 1:s.set.input_dimension
324336
s.x[i] = x[f.variables[i].value]
325337
end
326338
nnzj_oracle = length(s.set.jacobian_structure)
@@ -371,7 +383,7 @@ function NLPModels.jac_coord!(nlp::MathOptNLPModel, x::AbstractVector, vals::Abs
371383
end
372384
if nlp.oracles.ncon > 0
373385
for (f, s) in nlp.oracles.oracles
374-
for i in 1:s.set.input_dimension
386+
for i = 1:s.set.input_dimension
375387
s.x[i] = x[f.variables[i].value]
376388
end
377389
nnzj_oracle = length(s.set.jacobian_structure)
@@ -421,12 +433,14 @@ function NLPModels.jprod_nln!(
421433
MOI.eval_constraint_jacobian_product(nlp.eval, view(Jv, ind_nnln), x, v)
422434
end
423435
if nlp.oracles.ncon > 0
424-
for i in (nlp.quadcon.nquad + nlp.nlcon.nnln + 1):(nlp.quadcon.nquad + nlp.nlcon.nnln + nlp.oracles.ncon)
436+
for i =
437+
(nlp.quadcon.nquad + nlp.nlcon.nnln + 1):(nlp.quadcon.nquad + nlp.nlcon.nnln + nlp.oracles.ncon)
438+
425439
Jv[i] = 0
426440
end
427441
row_offset = nlp.quadcon.nquad + nlp.nlcon.nnln
428442
for (f, s) in nlp.oracles.oracles
429-
for i in 1:s.set.input_dimension
443+
for i = 1:s.set.input_dimension
430444
s.x[i] = x[f.variables[i].value]
431445
end
432446
s.set.eval_jacobian(s.nzJ, s.x)
@@ -472,16 +486,17 @@ function NLPModels.jprod!(
472486
end
473487
end
474488
if nlp.nlcon.nnln > 0
475-
ind_nnln = (nlp.meta.nlin + nlp.quadcon.nquad + 1):(nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln)
489+
ind_nnln =
490+
(nlp.meta.nlin + nlp.quadcon.nquad + 1):(nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln)
476491
MOI.eval_constraint_jacobian_product(nlp.eval, view(Jv, ind_nnln), x, v)
477492
end
478493
if nlp.oracles.ncon > 0
479-
for i in (nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln + 1):(nlp.meta.ncon)
494+
for i = (nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln + 1):(nlp.meta.ncon)
480495
Jv[i] = 0
481496
end
482497
row_offset = nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln
483498
for (f, s) in nlp.oracles.oracles
484-
for i in 1:s.set.input_dimension
499+
for i = 1:s.set.input_dimension
485500
s.x[i] = x[f.variables[i].value]
486501
end
487502
s.set.eval_jacobian(s.nzJ, s.x)
@@ -539,7 +554,7 @@ function NLPModels.jtprod_nln!(
539554
if nlp.oracles.ncon > 0
540555
row_offset = nlp.quadcon.nquad + nlp.nlcon.nnln
541556
for (f, s) in nlp.oracles.oracles
542-
for i in 1:s.set.input_dimension
557+
for i = 1:s.set.input_dimension
543558
s.x[i] = x[f.variables[i].value]
544559
end
545560
s.set.eval_jacobian(s.nzJ, s.x)
@@ -564,7 +579,8 @@ function NLPModels.jtprod!(
564579
)
565580
increment!(nlp, :neval_jtprod)
566581
if nlp.nlcon.nnln > 0
567-
ind_nnln = (nlp.meta.nlin + nlp.quadcon.nquad + 1):(nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln)
582+
ind_nnln =
583+
(nlp.meta.nlin + nlp.quadcon.nquad + 1):(nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln)
568584
MOI.eval_constraint_jacobian_transpose_product(nlp.eval, Jtv, x, view(v, ind_nnln))
569585
end
570586
(nlp.nlcon.nnln == 0) && (Jtv .= 0.0)
@@ -590,7 +606,7 @@ function NLPModels.jtprod!(
590606
if nlp.oracles.ncon > 0
591607
row_offset = nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln
592608
for (f, s) in nlp.oracles.oracles
593-
for i in 1:s.set.input_dimension
609+
for i = 1:s.set.input_dimension
594610
s.x[i] = x[f.variables[i].value]
595611
end
596612
s.set.eval_jacobian(s.nzJ, s.x)
@@ -612,7 +628,8 @@ function NLPModels.hess_structure!(
612628
rows::AbstractVector{<:Integer},
613629
cols::AbstractVector{<:Integer},
614630
)
615-
nlp.meta.hess_available || error("The function hess_structure! is not supported by this MathOptNLPModel.")
631+
nlp.meta.hess_available ||
632+
error("The function hess_structure! is not supported by this MathOptNLPModel.")
616633
if nlp.obj.type == "QUADRATIC"
617634
view(rows, 1:(nlp.obj.nnzh)) .= nlp.obj.hessian.rows
618635
view(cols, 1:(nlp.obj.nnzh)) .= nlp.obj.hessian.cols
@@ -650,7 +667,8 @@ function NLPModels.hess_coord!(
650667
vals::AbstractVector;
651668
obj_weight::Float64 = 1.0,
652669
)
653-
nlp.meta.hess_available || error("The function hess_coord! is not supported by this MathOptNLPModel.")
670+
nlp.meta.hess_available ||
671+
error("The function hess_coord! is not supported by this MathOptNLPModel.")
654672
increment!(nlp, :neval_hess)
655673

656674
# 1. Quadratic objective block (if any)
@@ -661,16 +679,12 @@ function NLPModels.hess_coord!(
661679
# 2. Nonlinear block (objective + JuMP @NLconstraint)
662680
if (nlp.obj.type == "NONLINEAR") || (nlp.nlcon.nnln > 0)
663681
# Multipliers for the JuMP nonlinear constraints (not the oracles)
664-
ind_nnln = (nlp.meta.nlin + nlp.quadcon.nquad + 1):(nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln)
682+
ind_nnln =
683+
(nlp.meta.nlin + nlp.quadcon.nquad + 1):(nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln)
665684
λ_nnln = view(y, ind_nnln)
666-
ind_nnzh = (nlp.obj.nnzh + nlp.quadcon.nnzh + 1):(nlp.obj.nnzh + nlp.quadcon.nnzh + nlp.nlcon.nnzh)
667-
MOI.eval_hessian_lagrangian(
668-
nlp.eval,
669-
view(vals, ind_nnzh),
670-
x,
671-
obj_weight,
672-
λ_nnln,
673-
)
685+
ind_nnzh =
686+
(nlp.obj.nnzh + nlp.quadcon.nnzh + 1):(nlp.obj.nnzh + nlp.quadcon.nnzh + nlp.nlcon.nnzh)
687+
MOI.eval_hessian_lagrangian(nlp.eval, view(vals, ind_nnzh), x, obj_weight, λ_nnln)
674688
end
675689

676690
# 3. Quadratic constraint Hessian blocks
@@ -691,7 +705,7 @@ function NLPModels.hess_coord!(
691705

692706
for (f, s) in nlp.oracles.oracles
693707
# build local x for this oracle
694-
for i in 1:s.set.input_dimension
708+
for i = 1:s.set.input_dimension
695709
s.x[i] = x[f.variables[i].value]
696710
end
697711

@@ -719,7 +733,8 @@ function NLPModels.hess_coord!(
719733
vals::AbstractVector;
720734
obj_weight::Float64 = 1.0,
721735
)
722-
nlp.meta.hess_available || error("The function hess_coord! is not supported by this MathOptNLPModel.")
736+
nlp.meta.hess_available ||
737+
error("The function hess_coord! is not supported by this MathOptNLPModel.")
723738
increment!(nlp, :neval_hess)
724739
if nlp.obj.type == "LINEAR"
725740
vals .= 0.0
@@ -731,7 +746,8 @@ function NLPModels.hess_coord!(
731746
if nlp.obj.type == "NONLINEAR"
732747
view(vals, 1:(nlp.obj.nnzh + nlp.quadcon.nnzh)) .= 0.0
733748
view(vals, (nlp.obj.nnzh + nlp.quadcon.nnzh + nlp.nlcon.nnzh + 1):(nlp.meta.nnzh)) .= 0.0
734-
ind_nnln = (nlp.obj.nnzh + nlp.quadcon.nnzh + 1):(nlp.obj.nnzh + nlp.quadcon.nnzh + nlp.nlcon.nnzh)
749+
ind_nnln =
750+
(nlp.obj.nnzh + nlp.quadcon.nnzh + 1):(nlp.obj.nnzh + nlp.quadcon.nnzh + nlp.nlcon.nnzh)
735751
MOI.eval_hessian_lagrangian(nlp.eval, view(vals, ind_nnln), x, obj_weight, nlp.λ)
736752
end
737753
return vals
@@ -743,7 +759,8 @@ function NLPModels.jth_hess_coord!(
743759
j::Integer,
744760
vals::AbstractVector,
745761
)
746-
nlp.meta.hess_available || error("The function jth_hess_coord! is not supported by this MathOptNLPModel.")
762+
nlp.meta.hess_available ||
763+
error("The function jth_hess_coord! is not supported by this MathOptNLPModel.")
747764
increment!(nlp, :neval_jhess)
748765
@rangecheck 1 nlp.meta.ncon j
749766
vals .= 0.0
@@ -764,13 +781,7 @@ function NLPModels.jth_hess_coord!(
764781
if nlp.meta.nlin + nlp.quadcon.nquad + 1 j nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln
765782
nlp.λ[j - nlp.meta.nlin - nlp.quadcon.nquad] = 1.0
766783
index_nnzh = (nlp.obj.nnzh + nlp.quadcon.nnzh + 1):(nlp.meta.nnzh)
767-
MOI.eval_hessian_lagrangian(
768-
nlp.eval,
769-
view(vals, index_nnzh),
770-
x,
771-
0.0,
772-
nlp.λ,
773-
)
784+
MOI.eval_hessian_lagrangian(nlp.eval, view(vals, index_nnzh), x, 0.0, nlp.λ)
774785
nlp.λ[j - nlp.meta.nlin - nlp.quadcon.nquad] = 0.0
775786
end
776787

@@ -786,18 +797,14 @@ function NLPModels.jth_hess_coord!(
786797
if offset_λ + 1 j offset_λ + s.set.output_dimension
787798
find_oracle = true
788799
# build local x
789-
for i in 1:s.set.input_dimension
800+
for i = 1:s.set.input_dimension
790801
s.x[i] = x[f.variables[i].value]
791802
end
792803
# We could preallocate the vector in the structure nlp
793804
λ_oracle = zeros(Float64, s.set.output_dimension)
794805
λ_oracle[j - offset_λ] = 1.0
795806
index_nnzh = (offset_nnzh + 1):(offset_nnzh + nnzh_oracle)
796-
s.set.eval_hessian_lagrangian(
797-
view(vals, index_nnzh),
798-
s.x,
799-
λ_oracle,
800-
)
807+
s.set.eval_hessian_lagrangian(view(vals, index_nnzh), s.x, λ_oracle)
801808
else
802809
offset_λ += ncon_oracle
803810
offset_nnzh += nnzh_oracle
@@ -822,7 +829,8 @@ function NLPModels.hprod!(
822829
hv .= 0.0
823830
end
824831
if (nlp.obj.type == "NONLINEAR") || (nlp.nlcon.nnln > 0)
825-
ind_nnln = (nlp.meta.nlin + nlp.quadcon.nquad + 1):(nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln)
832+
ind_nnln =
833+
(nlp.meta.nlin + nlp.quadcon.nquad + 1):(nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln)
826834
λ = view(y, ind_nnln)
827835
MOI.eval_hessian_lagrangian_product(nlp.eval, hv, x, v, obj_weight, λ)
828836
end
@@ -848,7 +856,7 @@ function NLPModels.hprod!(
848856
(nlp.obj.type == "LINEAR") && (nlp.meta.nnln == nlp.oracles.ncon) && (hv .= 0.0)
849857
offset_y = nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln
850858
for (f, s) in nlp.oracles.oracles
851-
for i in 1:s.set.input_dimension
859+
for i = 1:s.set.input_dimension
852860
s.x[i] = x[f.variables[i].value]
853861
end
854862
ind_y = (offset_y + 1):(offset_y + s.set.output_dimension)
@@ -906,14 +914,17 @@ function NLPModels.jth_hprod!(
906914
j::Integer,
907915
hv::AbstractVector,
908916
)
909-
nlp.meta.hprod_available || error("The function jth_hprod! is not supported by this MathOptNLPModel.")
917+
nlp.meta.hprod_available ||
918+
error("The function jth_hprod! is not supported by this MathOptNLPModel.")
910919
increment!(nlp, :neval_jhprod)
911920
@rangecheck 1 nlp.meta.ncon j
912921
hv .= 0.0
913922
if nlp.meta.nlin + 1 j nlp.meta.nlin + nlp.quadcon.nquad
914923
qcon = nlp.quadcon.constraints[j - nlp.meta.nlin]
915924
coo_sym_add_mul!(qcon.A.rows, qcon.A.cols, qcon.A.vals, v, hv, 1.0)
916-
elseif nlp.meta.nlin + nlp.quadcon.nquad + 1 j nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln
925+
elseif nlp.meta.nlin + nlp.quadcon.nquad + 1
926+
j
927+
nlp.meta.nlin + nlp.quadcon.nquad + nlp.nlcon.nnln
917928
nlp.λ[j - nlp.meta.nlin - nlp.quadcon.nquad] = 1.0
918929
MOI.eval_hessian_lagrangian_product(nlp.eval, hv, x, v, 0.0, nlp.λ)
919930
nlp.λ[j - nlp.meta.nlin - nlp.quadcon.nquad] = 0.0
@@ -925,17 +936,13 @@ function NLPModels.jth_hprod!(
925936
if offset_λ + 1 j offset_λ + s.set.output_dimension
926937
find_oracle = true
927938
# build local x
928-
for i in 1:s.set.input_dimension
939+
for i = 1:s.set.input_dimension
929940
s.x[i] = x[f.variables[i].value]
930941
end
931942
# We could preallocate the vector in the structure nlp
932943
λ_oracle = zeros(Float64, s.set.output_dimension)
933944
λ_oracle[j - offset_λ] = 1.0
934-
s.set.eval_hessian_lagrangian(
935-
s.nzH,
936-
s.x,
937-
λ_oracle,
938-
)
945+
s.set.eval_hessian_lagrangian(s.nzH, s.x, λ_oracle)
939946
k = 0
940947
for (r, c) in s.set.hessian_lagrangian_structure
941948
k += 1
@@ -962,7 +969,8 @@ function NLPModels.ghjvprod!(
962969
v::AbstractVector,
963970
ghv::AbstractVector,
964971
)
965-
nlp.meta.hprod_available || error("The function ghjvprod! is not supported by this MathOptNLPModel.")
972+
nlp.meta.hprod_available ||
973+
error("The function ghjvprod! is not supported by this MathOptNLPModel.")
966974
increment!(nlp, :neval_hprod)
967975
ghv .= 0.0
968976
for i = (nlp.meta.nlin + 1):(nlp.meta.nlin + nlp.quadcon.nquad)

0 commit comments

Comments
 (0)