From 362c0d04da91a662c5b5575aed91c8a0a55b3af0 Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU Date: Tue, 5 May 2026 12:00:57 -0400 Subject: [PATCH 1/7] add some problems defined in PureJuMP but not in ADNPProblems and vice versa --- .DS_Store | Bin 0 -> 6148 bytes Project.toml | 4 + src/.DS_Store | Bin 0 -> 10244 bytes src/ADNLPProblems/catmix.jl | 413 +++++++++++++++++++++++++++++++ src/ADNLPProblems/gasoil.jl | 194 +++++++++++++++ src/ADNLPProblems/glider.jl | 361 ++++++++++++++++++++++++++++ src/ADNLPProblems/methanol.jl | 440 ++++++++++++++++++++++++++++++++++ src/ADNLPProblems/minsurf.jl | 91 +++++++ src/ADNLPProblems/pinene.jl | 298 +++++++++++++++++++++++ src/ADNLPProblems/rocket.jl | 101 ++++++++ src/ADNLPProblems/steering.jl | 110 +++++++++ src/ADNLPProblems/torsion.jl | 49 ++++ src/Meta/AMPGO02.jl | 1 + src/Meta/AMPGO03.jl | 1 + src/Meta/AMPGO04.jl | 1 + src/Meta/AMPGO05.jl | 1 + src/Meta/AMPGO06.jl | 1 + src/Meta/AMPGO07.jl | 1 + src/Meta/AMPGO08.jl | 1 + src/Meta/AMPGO09.jl | 1 + src/Meta/AMPGO10.jl | 1 + src/Meta/AMPGO11.jl | 1 + src/Meta/AMPGO12.jl | 1 + src/Meta/AMPGO13.jl | 1 + src/Meta/AMPGO14.jl | 1 + src/Meta/AMPGO15.jl | 1 + src/Meta/AMPGO18.jl | 1 + src/Meta/AMPGO20.jl | 1 + src/Meta/AMPGO21.jl | 1 + src/Meta/AMPGO22.jl | 1 + src/Meta/BOX2.jl | 1 + src/Meta/BOX3.jl | 1 + src/Meta/Dus2_1.jl | 1 + src/Meta/Dus2_3.jl | 1 + src/Meta/Dus2_9.jl | 1 + src/Meta/Duscube.jl | 1 + src/Meta/NZF1.jl | 1 + src/Meta/Shpak1.jl | 3 +- src/Meta/Shpak2.jl | 3 +- src/Meta/Shpak3.jl | 3 +- src/Meta/Shpak4.jl | 3 +- src/Meta/Shpak5.jl | 3 +- src/Meta/Shpak6.jl | 3 +- src/Meta/aircrfta.jl | 1 + src/Meta/allinit.jl | 1 + src/Meta/allinitc.jl | 1 + src/Meta/allinitu.jl | 1 + src/Meta/alsotame.jl | 1 + src/Meta/argauss.jl | 1 + src/Meta/arglina.jl | 1 + src/Meta/arglinb.jl | 1 + src/Meta/arglinc.jl | 1 + src/Meta/argtrig.jl | 1 + src/Meta/arwhead.jl | 1 + src/Meta/auglag.jl | 1 + src/Meta/avion2.jl | 1 + src/Meta/bard.jl | 1 + src/Meta/bdqrtic.jl | 1 + src/Meta/beale.jl | 1 + src/Meta/bearing.jl | 1 + src/Meta/bennett5.jl | 1 + src/Meta/biggs5.jl | 1 + src/Meta/biggs6.jl | 1 + src/Meta/booth.jl | 1 + src/Meta/boundary.jl | 1 + src/Meta/boxbod.jl | 1 + src/Meta/bqp1var.jl | 1 + src/Meta/britgas.jl | 1 + src/Meta/brownal.jl | 1 + src/Meta/brownbs.jl | 1 + src/Meta/brownden.jl | 1 + src/Meta/browngen1.jl | 1 + src/Meta/browngen2.jl | 1 + src/Meta/broyden3d.jl | 1 + src/Meta/broyden7d.jl | 1 + src/Meta/broydn7d.jl | 1 + src/Meta/brybnd.jl | 1 + src/Meta/bt1.jl | 1 + src/Meta/camshape.jl | 1 + src/Meta/catenary.jl | 1 + src/Meta/catmix.jl | 1 + src/Meta/chain.jl | 1 + src/Meta/chainwoo.jl | 1 + src/Meta/channel.jl | 1 + src/Meta/chnrosnb_mod.jl | 1 + src/Meta/chwirut1.jl | 1 + src/Meta/chwirut2.jl | 1 + src/Meta/cliff.jl | 1 + src/Meta/clnlbeam.jl | 1 + src/Meta/clplatea.jl | 1 + src/Meta/clplateb.jl | 1 + src/Meta/clplatec.jl | 1 + src/Meta/controlinvestment.jl | 1 + src/Meta/cosine.jl | 1 + src/Meta/cragglvy.jl | 1 + src/Meta/cragglvy2.jl | 1 + src/Meta/curly.jl | 1 + src/Meta/curly10.jl | 1 + src/Meta/curly20.jl | 1 + src/Meta/curly30.jl | 1 + src/Meta/danwood.jl | 1 + src/Meta/dixmaane.jl | 1 + src/Meta/dixmaanf.jl | 1 + src/Meta/dixmaang.jl | 1 + src/Meta/dixmaanh.jl | 1 + src/Meta/dixmaani.jl | 1 + src/Meta/dixmaanj.jl | 1 + src/Meta/dixmaank.jl | 1 + src/Meta/dixmaanl.jl | 1 + src/Meta/dixmaanm.jl | 1 + src/Meta/dixmaann.jl | 1 + src/Meta/dixmaano.jl | 1 + src/Meta/dixmaanp.jl | 1 + src/Meta/dixon3dq.jl | 1 + src/Meta/dqdrtic.jl | 1 + src/Meta/dqrtic.jl | 1 + src/Meta/eckerle4.jl | 1 + src/Meta/edensch.jl | 1 + src/Meta/eg2.jl | 1 + src/Meta/elec.jl | 1 + src/Meta/engval1.jl | 1 + src/Meta/enso.jl | 1 + src/Meta/errinros_mod.jl | 1 + src/Meta/extrosnb.jl | 1 + src/Meta/fletcbv2.jl | 1 + src/Meta/fletcbv3_mod.jl | 1 + src/Meta/fletchcr.jl | 1 + src/Meta/fminsrf2.jl | 1 + src/Meta/freuroth.jl | 1 + src/Meta/gasoil.jl | 1 + src/Meta/gauss1.jl | 1 + src/Meta/gauss2.jl | 1 + src/Meta/gauss3.jl | 1 + src/Meta/gaussian.jl | 1 + src/Meta/genbroydenb.jl | 1 + src/Meta/genbroydentri.jl | 1 + src/Meta/genhumps.jl | 1 + src/Meta/genrose.jl | 1 + src/Meta/genrose_nash.jl | 1 + src/Meta/glider.jl | 1 + src/Meta/gulf.jl | 1 + src/Meta/hahn1.jl | 1 + src/Meta/helical.jl | 1 + src/Meta/hovercraft1d.jl | 1 + src/Meta/hs1.jl | 1 + src/Meta/hs10.jl | 1 + src/Meta/hs100.jl | 1 + src/Meta/hs101.jl | 1 + src/Meta/hs102.jl | 1 + src/Meta/hs103.jl | 1 + src/Meta/hs104.jl | 1 + src/Meta/hs105.jl | 1 + src/Meta/hs106.jl | 1 + src/Meta/hs107.jl | 1 + src/Meta/hs108.jl | 1 + src/Meta/hs109.jl | 1 + src/Meta/hs11.jl | 1 + src/Meta/hs110.jl | 1 + src/Meta/hs111.jl | 1 + src/Meta/hs112.jl | 1 + src/Meta/hs113.jl | 1 + src/Meta/hs114.jl | 1 + src/Meta/hs116.jl | 1 + src/Meta/hs117.jl | 1 + src/Meta/hs118.jl | 1 + src/Meta/hs119.jl | 1 + src/Meta/hs12.jl | 1 + src/Meta/hs13.jl | 1 + src/Meta/hs14.jl | 1 + src/Meta/hs15.jl | 1 + src/Meta/hs16.jl | 1 + src/Meta/hs17.jl | 1 + src/Meta/hs18.jl | 1 + src/Meta/hs19.jl | 1 + src/Meta/hs2.jl | 1 + src/Meta/hs20.jl | 1 + src/Meta/hs201.jl | 1 + src/Meta/hs21.jl | 1 + src/Meta/hs211.jl | 1 + src/Meta/hs219.jl | 1 + src/Meta/hs22.jl | 1 + src/Meta/hs220.jl | 1 + src/Meta/hs221.jl | 1 + src/Meta/hs222.jl | 1 + src/Meta/hs223.jl | 1 + src/Meta/hs224.jl | 1 + src/Meta/hs225.jl | 1 + src/Meta/hs226.jl | 1 + src/Meta/hs227.jl | 1 + src/Meta/hs228.jl | 1 + src/Meta/hs229.jl | 1 + src/Meta/hs23.jl | 1 + src/Meta/hs230.jl | 1 + src/Meta/hs231.jl | 1 + src/Meta/hs232.jl | 1 + src/Meta/hs233.jl | 1 + src/Meta/hs234.jl | 1 + src/Meta/hs235.jl | 1 + src/Meta/hs236.jl | 1 + src/Meta/hs237.jl | 1 + src/Meta/hs238.jl | 1 + src/Meta/hs239.jl | 1 + src/Meta/hs24.jl | 1 + src/Meta/hs240.jl | 1 + src/Meta/hs241.jl | 1 + src/Meta/hs242.jl | 1 + src/Meta/hs243.jl | 1 + src/Meta/hs244.jl | 1 + src/Meta/hs245.jl | 1 + src/Meta/hs246.jl | 1 + src/Meta/hs248.jl | 1 + src/Meta/hs249.jl | 1 + src/Meta/hs25.jl | 1 + src/Meta/hs250.jl | 1 + src/Meta/hs251.jl | 1 + src/Meta/hs252.jl | 1 + src/Meta/hs253.jl | 1 + src/Meta/hs254.jl | 1 + src/Meta/hs255.jl | 1 + src/Meta/hs256.jl | 1 + src/Meta/hs257.jl | 1 + src/Meta/hs258.jl | 1 + src/Meta/hs259.jl | 1 + src/Meta/hs26.jl | 1 + src/Meta/hs260.jl | 1 + src/Meta/hs261.jl | 1 + src/Meta/hs262.jl | 1 + src/Meta/hs263.jl | 1 + src/Meta/hs264.jl | 1 + src/Meta/hs265.jl | 1 + src/Meta/hs27.jl | 1 + src/Meta/hs28.jl | 1 + src/Meta/hs29.jl | 1 + src/Meta/hs3.jl | 1 + src/Meta/hs30.jl | 1 + src/Meta/hs31.jl | 1 + src/Meta/hs316.jl | 1 + src/Meta/hs317.jl | 1 + src/Meta/hs318.jl | 1 + src/Meta/hs319.jl | 1 + src/Meta/hs32.jl | 1 + src/Meta/hs320.jl | 1 + src/Meta/hs321.jl | 1 + src/Meta/hs322.jl | 1 + src/Meta/hs33.jl | 1 + src/Meta/hs34.jl | 1 + src/Meta/hs35.jl | 1 + src/Meta/hs36.jl | 1 + src/Meta/hs37.jl | 1 + src/Meta/hs378.jl | 1 + src/Meta/hs38.jl | 1 + src/Meta/hs39.jl | 1 + src/Meta/hs4.jl | 1 + src/Meta/hs40.jl | 1 + src/Meta/hs41.jl | 1 + src/Meta/hs42.jl | 1 + src/Meta/hs43.jl | 1 + src/Meta/hs44.jl | 1 + src/Meta/hs45.jl | 1 + src/Meta/hs46.jl | 1 + src/Meta/hs47.jl | 1 + src/Meta/hs48.jl | 1 + src/Meta/hs49.jl | 1 + src/Meta/hs5.jl | 1 + src/Meta/hs50.jl | 1 + src/Meta/hs51.jl | 1 + src/Meta/hs52.jl | 1 + src/Meta/hs53.jl | 1 + src/Meta/hs54.jl | 1 + src/Meta/hs55.jl | 1 + src/Meta/hs56.jl | 1 + src/Meta/hs57.jl | 1 + src/Meta/hs59.jl | 1 + src/Meta/hs6.jl | 1 + src/Meta/hs60.jl | 1 + src/Meta/hs61.jl | 1 + src/Meta/hs62.jl | 1 + src/Meta/hs63.jl | 1 + src/Meta/hs64.jl | 1 + src/Meta/hs65.jl | 1 + src/Meta/hs66.jl | 1 + src/Meta/hs68.jl | 1 + src/Meta/hs69.jl | 1 + src/Meta/hs7.jl | 1 + src/Meta/hs70.jl | 1 + src/Meta/hs71.jl | 1 + src/Meta/hs72.jl | 1 + src/Meta/hs73.jl | 1 + src/Meta/hs74.jl | 1 + src/Meta/hs75.jl | 1 + src/Meta/hs76.jl | 1 + src/Meta/hs77.jl | 1 + src/Meta/hs78.jl | 1 + src/Meta/hs79.jl | 1 + src/Meta/hs8.jl | 1 + src/Meta/hs80.jl | 1 + src/Meta/hs81.jl | 1 + src/Meta/hs83.jl | 1 + src/Meta/hs84.jl | 1 + src/Meta/hs86.jl | 1 + src/Meta/hs87.jl | 1 + src/Meta/hs9.jl | 1 + src/Meta/hs93.jl | 1 + src/Meta/hs95.jl | 1 + src/Meta/hs96.jl | 1 + src/Meta/hs97.jl | 1 + src/Meta/hs98.jl | 1 + src/Meta/hs99.jl | 1 + src/Meta/indef_mod.jl | 1 + src/Meta/integreq.jl | 1 + src/Meta/jennrichsampson.jl | 1 + src/Meta/kirby2.jl | 1 + src/Meta/kowosb.jl | 1 + src/Meta/lanczos1.jl | 1 + src/Meta/lanczos2.jl | 1 + src/Meta/lanczos3.jl | 1 + src/Meta/liarwhd.jl | 1 + src/Meta/lincon.jl | 1 + src/Meta/linsv.jl | 1 + src/Meta/marine.jl | 1 + src/Meta/methanol.jl | 1 + src/Meta/meyer3.jl | 1 + src/Meta/mgh01feas.jl | 1 + src/Meta/mgh09.jl | 1 + src/Meta/mgh10.jl | 1 + src/Meta/mgh17.jl | 1 + src/Meta/minsurf.jl | 1 + src/Meta/misra1a.jl | 1 + src/Meta/misra1b.jl | 1 + src/Meta/misra1c.jl | 1 + src/Meta/misra1d.jl | 1 + src/Meta/morebv.jl | 1 + src/Meta/nasty.jl | 1 + src/Meta/nazareth.jl | 1 + src/Meta/ncb20.jl | 1 + src/Meta/ncb20b.jl | 1 + src/Meta/nelson.jl | 1 + src/Meta/noncvxu2.jl | 1 + src/Meta/noncvxun.jl | 1 + src/Meta/nondia.jl | 1 + src/Meta/nondquar.jl | 1 + src/Meta/osborne1.jl | 2 +- src/Meta/osborne2.jl | 1 + src/Meta/palmer1c.jl | 1 + src/Meta/palmer1d.jl | 1 + src/Meta/palmer2c.jl | 1 + src/Meta/palmer3c.jl | 1 + src/Meta/palmer4c.jl | 1 + src/Meta/palmer5c.jl | 1 + src/Meta/palmer5d.jl | 1 + src/Meta/palmer6c.jl | 1 + src/Meta/palmer7c.jl | 1 + src/Meta/palmer8c.jl | 1 + src/Meta/penalty1.jl | 1 + src/Meta/penalty2.jl | 1 + src/Meta/penalty3.jl | 1 + src/Meta/pinene.jl | 1 + src/Meta/polygon.jl | 1 + src/Meta/polygon1.jl | 1 + src/Meta/polygon2.jl | 1 + src/Meta/polygon3.jl | 1 + src/Meta/powellbs.jl | 1 + src/Meta/powellsg.jl | 1 + src/Meta/power.jl | 1 + src/Meta/quartc.jl | 1 + src/Meta/rat42.jl | 1 + src/Meta/rat43.jl | 1 + src/Meta/robotarm.jl | 1 + src/Meta/rocket.jl | 1 + src/Meta/rosenbrock.jl | 1 + src/Meta/rozman1.jl | 1 + src/Meta/sbrybnd.jl | 1 + src/Meta/schmvett.jl | 1 + src/Meta/scosine.jl | 1 + src/Meta/sinquad.jl | 1 + src/Meta/sparsine.jl | 1 + src/Meta/sparsqur.jl | 1 + src/Meta/spmsrtls.jl | 1 + src/Meta/srosenbr.jl | 1 + src/Meta/steering.jl | 1 + src/Meta/structural.jl | 1 + src/Meta/tetra.jl | 1 + src/Meta/tetra_duct12.jl | 1 + src/Meta/tetra_duct15.jl | 1 + src/Meta/tetra_duct20.jl | 1 + src/Meta/tetra_foam5.jl | 1 + src/Meta/tetra_gear.jl | 1 + src/Meta/tetra_hook.jl | 1 + src/Meta/threepk.jl | 1 + src/Meta/thurber.jl | 1 + src/Meta/toint.jl | 1 + src/Meta/tointgss.jl | 1 + src/Meta/torsion.jl | 1 + src/Meta/tquartic.jl | 1 + src/Meta/triangle.jl | 1 + src/Meta/triangle_deer.jl | 3 +- src/Meta/triangle_pacman.jl | 3 +- src/Meta/triangle_turtle.jl | 3 +- src/Meta/tridia.jl | 1 + src/Meta/trig.jl | 1 + src/Meta/trigb.jl | 1 + src/Meta/vardim.jl | 1 + src/Meta/variational.jl | 1 + src/Meta/vibrbeam.jl | 1 + src/Meta/watson.jl | 1 + src/Meta/woods.jl | 1 + src/Meta/zangwil3.jl | 1 + src/OptimizationProblems.jl | 3 + src/PureJuMP/curly10.jl | 23 ++ src/PureJuMP/curly20.jl | 23 ++ src/PureJuMP/curly30.jl | 23 ++ src/test.jl | 22 ++ test/runtests.jl | 6 +- 413 files changed, 2561 insertions(+), 14 deletions(-) create mode 100644 .DS_Store create mode 100644 src/.DS_Store create mode 100644 src/ADNLPProblems/catmix.jl create mode 100644 src/ADNLPProblems/gasoil.jl create mode 100644 src/ADNLPProblems/glider.jl create mode 100644 src/ADNLPProblems/methanol.jl create mode 100644 src/ADNLPProblems/minsurf.jl create mode 100644 src/ADNLPProblems/pinene.jl create mode 100644 src/ADNLPProblems/rocket.jl create mode 100644 src/ADNLPProblems/steering.jl create mode 100644 src/ADNLPProblems/torsion.jl create mode 100644 src/PureJuMP/curly10.jl create mode 100644 src/PureJuMP/curly20.jl create mode 100644 src/PureJuMP/curly30.jl create mode 100644 src/test.jl diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..edef2223857808bac70919b729a35651c88d95af GIT binary patch literal 6148 zcmeHK%}T>S5Z-O8O({YS3Oz1(Em*5q#Y>3w1&ruHr6#6mFlI}VnnNk%tS{t~_&m<+ zZop#BB6bFLzxmzGevtiPjB$4!?lWdH#w=)v9F-bDcWtO)k`XzMk5G>?(_p7$63S0b*di88GL9 z)m?8IX!XPZF;K$*?hgVQqGPbssJ0I1@cNAL79tAh_?AEv1|5T?Mu>oLT?(j6xp`u6 zT@HR>@*IPuMqSRhni`fWC4G00Z}to(k%?KppZNgQZ3s1^ucV PkS+p>5bB75Utr)1%7aOa literal 0 HcmV?d00001 diff --git a/Project.toml b/Project.toml index f69a86a54..e0267fde7 100644 --- a/Project.toml +++ b/Project.toml @@ -7,6 +7,8 @@ DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" JuMP = "4076af6c-e467-56ae-b986-b466b2749572" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +NLPModels = "a4795742-8479-5a88-8948-cc11e1c8c1a6" +NLPModelsJuMP = "792afdf1-32c1-5681-94e0-d7bf7a5df49e" Requires = "ae029012-a4dd-5104-9daa-d747884805df" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" @@ -15,6 +17,8 @@ SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" DataFrames = "1" JLD2 = "0.5, 0.6" JuMP = "^1.15" +NLPModels = "0.21.12" +NLPModelsJuMP = "0.13.5" Requires = "1" SpecialFunctions = "2" julia = "1.6" diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d81dfff03aa14a43ba89cd538a6d222e0271ecfa GIT binary patch literal 10244 zcmeHNYitx%6u#fIz>FPWsO2e>-MR=37W<%59)jBk?-nZC(rqc$-R{tiOlRuO?3PDr zN{mlTe4F@-`25+Z(TFkl`eouPnubIYiBS{%Wuo#2BkH+xXNhfrUnObC+-B~XbM8Io z?m2V5IeYJxF^0xmriQU7V@#%tQ%$Ar3XPBRYf6&>2_FRMGuB3bS>~`bv!=`r1z`lj z2!s&`BM?R)jKEBY0M%^XBf#GeQMx#d2Xs_W|J6aAzXc##Ok%&$ zJ?#U0ooGPg0UZ_8S0$Tb_kchZ!4?BToyMblI?;GQM+Ft?3__hDSQ)_%1^()!7xkwz z#03reFalu&rbd9nW-e=B&1?^AnXrF1*dTM$!|qVpa?&*Gbb81#U9YE2Fjb>qjc1$2Zi{ecjr1BO{8uFjlo`U+-aS&~}~> zP9brDnz1o7ll+~BBQl8OZS$s0d=DU4a$FkZS*Yr%s?n-*b5wBoq!cel? zb+TTQZ>(3-a;~w@AX{eMXeNtfs+6y`cZi#D_ZwN4Xe?eW{8h&0Esm_HSW{bnSA6Tv zJ^RMzYYR%%GIddB-gM2hWpoUi8E>E~<@OnN#?E$W|xAEoS@?y+_i1xy57a*4VjFQArF=~!m zTe;gENM((^!<3~3`8~4iKW~zAOItIh=Ug7_;DefJ=S>0tJqv*YITn9LRHayawRkqM zLQ48ER>}%&KzZ@g*-Eyaid{Q9L5?;ZpcpYzG z4DaDI-p8l-9ADroe2w$?1;67D{E5GD3I9q=Dv`>hh0-FaLaLE!rM1#FX}i=WbxCQd zUm6e|NCog6oamW!l=y3dFL=F3V^;=WWc!YtyVRB$55Di_ak$-Fws6tn=xwX3>eg>= zxSW(ChYM-@e>nIEn1CA}0e+TD&R&5_HPS&4F^*gfp4uD^WqF*>F27ZcXtM}Jf?c_a z*x3Xi!QNgOiD(kxR)bS}??jL**!_O5f0$FfC<&Vb$*{GntI_df9M8&zu kb^kFSIK`XB!?$q%AMXGCe|z(f%_n`0nesJf2JHX;1F}S!%>V!Z literal 0 HcmV?d00001 diff --git a/src/ADNLPProblems/catmix.jl b/src/ADNLPProblems/catmix.jl new file mode 100644 index 000000000..52fc44f1b --- /dev/null +++ b/src/ADNLPProblems/catmix.jl @@ -0,0 +1,413 @@ +# Catalyst Mixing Problem +# Collocation formulation +# COPS 3.0 - November 2002 +# COPS 3.1 - March 2004 + +export catmix + +function catmix(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + + ne = 2 + nc = 3 + + tf = one(T) + h = tf / n + fact = [factorial(k) for k = 0:nc] + + ρ = T[0.11270166537926, 0.5, 0.88729833462074] + bc = T[1.0, 0.0] + α = zero(T) + + # ------------------------- + # VARIABLE LAYOUT + # ------------------------- + nu = n*nc + nv = n*ne + nw = n*nc*ne + npp = n*nc*ne + nDpp = n*nc*ne + nppf = ne + + nvar = nu + nv + nw + npp + nDpp + nppf + + # views + function split(x) + u = reshape_array(view(x, 1:nu), (n, nc)) + v = reshape_array(view(x, nu+1:nu+nv), (n, ne)) + w = reshape_array(view(x, nu+nv+1:nu+nv+nw), (n, nc, ne)) + pp = reshape_array(view(x, nu+nv+nw+1:nu+nv+nw+npp), (n, nc, ne)) + Dpp = reshape_array(view(x, nu+nv+nw+npp+1:nu+nv+nw+npp+nDpp), (n, nc, ne)) + ppf = view(x, nu+nv+nw+npp+nDpp+1:nvar) + return u, v, w, pp, Dpp, ppf + end + + # ------------------------- + # OBJECTIVE + # ------------------------- + function f(x) + u, v, w, pp, Dpp, ppf = split(x) + + val = -one(T) + sum(ppf) + + for i=1:n-1, j=1:nc + val += α/h * (u[i+1,j] - u[i,j])^2 + end + + return val + end + + # ------------------------- + # NONLINEAR (ONLY dynamics) + # ------------------------- + nnln = 2*n*nc + + function c!(cx, x) + u, _, _, pp, Dpp, _ = split(x) + + idx = 1 + + for i=1:n, j=1:nc + cx[idx] = Dpp[i,j,1] - u[i,j]*(10pp[i,j,2] - pp[i,j,1]) + idx += 1 + end + + for i=1:n, j=1:nc + cx[idx] = Dpp[i,j,2] - u[i,j]*(pp[i,j,1] - 10pp[i,j,2]) + + (1 - u[i,j])*pp[i,j,2] + idx += 1 + end + + return cx + end + + # ------------------------- + # LINEAR CONSTRAINT MATRIX + # ------------------------- + nlin = + n*nc*ne + # pp collocation + n*nc*ne + # Dpp collocation + ne + # ppf + (n-1)*ne + # continuity + ne # boundary + + A = spzeros(T, nlin, nvar) + + row = 1 + + # helper: get flat index via linear indexing + function lin_index(offset, idx) + return offset + idx + end + + off_u = 0 + off_v = nu + off_w = nu + nv + off_pp = nu + nv + nw + off_Dpp = nu + nv + nw + npp + off_ppf = nu + nv + nw + npp + nDpp + + # ------------------------- + # collocation pp + # ------------------------- + for i=1:n, k=1:nc, s=1:ne + A[row, off_pp + ((i-1)*nc + (k-1))*ne + s] = 1 + A[row, off_v + (i-1)*ne + s] = -1 + + for j=1:nc + A[row, off_w + ((i-1)*nc + (j-1))*ne + s] = + -h * ρ[k]^j / fact[j+1] + end + + row += 1 + end + + # ------------------------- + # collocation Dpp + # ------------------------- + for i=1:n, k=1:nc, s=1:ne + A[row, off_Dpp + ((i-1)*nc + (k-1))*ne + s] = 1 + + for j=1:nc + A[row, off_w + ((i-1)*nc + (j-1))*ne + s] = + -ρ[k]^(j-1) / fact[j] + end + + row += 1 + end + + # ------------------------- + # ppf + # ------------------------- + for s=1:ne + A[row, off_ppf + s] = 1 + A[row, off_v + (n-1)*ne + s] = -1 + + for j=1:nc + A[row, off_w + ((n-1)*nc + (j-1))*ne + s] = + -h / fact[j+1] + end + + row += 1 + end + + # ------------------------- + # continuity + # ------------------------- + for i=1:n-1, s=1:ne + A[row, off_v + (i-1)*ne + s] = 1 + A[row, off_v + i*ne + s] = -1 + + for j=1:nc + A[row, off_w + ((i-1)*nc + (j-1))*ne + s] = + h / fact[j+1] + end + + row += 1 + end + + # ------------------------- + # boundary + # ------------------------- + lcon_lin = zeros(T, nlin) + ucon_lin = zeros(T, nlin) + + for s=1:ne + A[row, off_v + s] = 1 + lcon_lin[row] = bc[s] + ucon_lin[row] = bc[s] + row += 1 + end + + # ------------------------- + # FINAL BOUNDS + # ------------------------- + lcon = vcat(lcon_lin, zeros(T, nnln)) + ucon = vcat(ucon_lin, zeros(T, nnln)) + + lvar = fill(-Inf, nvar) + uvar = fill( Inf, nvar) + + for i=1:nu + lvar[i] = 0 + uvar[i] = 1 + end + + # ------------------------- + # INITIAL POINT + # ------------------------- + x0 = zeros(T, nvar) + + return ADNLPModels.ADNLPModel!( + f, x0, + A, + c!, + lcon, ucon, + name = "catmix"; + kwargs... + ) +end + + + + + +# export catmix + +# function catmix(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} +# ne = 2 +# nc = 3 +# tf = T(1) +# h = tf / n +# fact = [factorial(k) for k = 0:nc] + +# rho = T[0.11270166537926, 0.50000000000000, 0.88729833462074] +# bc = T[1.0, 0.0] +# alpha = T(0.0) + +# # --------------------------------------------------------------- +# # Variable layout +# # Block A : u[i,j] i=1:n, j=1:nc → n*nc vars, ∈ [0,1] +# # Block B : v[i,s] i=1:n, s=1:ne → n*ne vars +# # Block C : w[i,j,s] i=1:n, j=1:nc, s=1:ne → n*nc*ne vars +# # Block D : pp[i,j,s] i=1:n, j=1:nc, s=1:ne → n*nc*ne vars +# # Block E : Dpp[i,j,s] i=1:n, j=1:nc, s=1:ne → n*nc*ne vars +# # Block F : ppf[s] s=1:ne → ne vars +# # --------------------------------------------------------------- +# nA = n * nc; nB = n * ne; nC = n * nc * ne +# nD = n * nc * ne; nE = n * nc * ne; nF = ne +# nvar = nA + nB + nC + nD + nE + nF + +# offA = 0; offB = nA; offC = nA + nB +# offD = nA + nB + nC; offE = nA + nB + nC + nD; offF = nA + nB + nC + nD + nE + +# idx_u = (i, j) -> offA + (i-1)*nc + j +# idx_v = (i, s) -> offB + (i-1)*ne + s +# idx_w = (i, j, s) -> offC + ((i-1)*nc + (j-1))*ne + s +# idx_pp = (i, j, s) -> offD + ((i-1)*nc + (j-1))*ne + s +# idx_Dpp = (i, j, s) -> offE + ((i-1)*nc + (j-1))*ne + s +# idx_ppf = s -> offF + s + +# # --------------------------------------------------------------- +# # Objective +# # --------------------------------------------------------------- +# function f(y) +# return -T(1.0) + y[idx_ppf(1)] + y[idx_ppf(2)] + +# alpha / h * sum((y[idx_u(i+1,j)] - y[idx_u(i,j)])^2 for i=1:(n-1), j=1:nc) +# end + +# # --------------------------------------------------------------- +# # NONLINEAR constraints: de1 and de2 (nnln = 6n) +# # +# # Row 1..n*nc : de1[i,j]: Dpp[i,j,1] = u[i,j]*(10*pp[i,j,2] - pp[i,j,1]) +# # Row n*nc+1..end: de2[i,j]: Dpp[i,j,2] = u[i,j]*(pp[i,j,1]-10*pp[i,j,2]) +# # - (1-u[i,j])*pp[i,j,2] +# # --------------------------------------------------------------- +# nnln = 2 * n * nc # 6n + +# function c!(cx, y) +# ptr = 1 +# for i = 1:n, j = 1:nc +# cx[ptr] = y[idx_Dpp(i,j,1)] - y[idx_u(i,j)] * (T(10)*y[idx_pp(i,j,2)] - y[idx_pp(i,j,1)]) +# ptr += 1 +# end +# for i = 1:n, j = 1:nc +# cx[ptr] = y[idx_Dpp(i,j,2)] - +# y[idx_u(i,j)] * (y[idx_pp(i,j,1)] - T(10)*y[idx_pp(i,j,2)]) + +# (T(1) - y[idx_u(i,j)]) * y[idx_pp(i,j,2)] +# ptr += 1 +# end +# return cx +# end + +# # --------------------------------------------------------------- +# # LINEAR constraints (nlin = 14n + 2) +# # +# # Row ordering: +# # 1 .. 6n : collocation pp (n*nc*ne) +# # 6n+1 .. 12n : collocation Dpp (n*nc*ne) +# # 12n+1 .. 12n+2 : ppf (ne) +# # 12n+3 .. 14n : continuity ((n-1)*ne) +# # 14n+1 .. 14n+2 : boundary (ne) +# # --------------------------------------------------------------- +# nlin_pp = n * nc * ne # 6n +# nlin_Dpp = n * nc * ne # 6n +# nlin_ppf = ne # 2 +# nlin_cont = (n-1) * ne # 2(n-1) +# nlin_bc = ne # 2 +# nlin = nlin_pp + nlin_Dpp + nlin_ppf + nlin_cont + nlin_bc # 14n+2 + +# lcon_lin = zeros(T, nlin) +# ucon_lin = zeros(T, nlin) + +# # Boundary rhs: v[1,s] = bc[s] +# bc_off = nlin_pp + nlin_Dpp + nlin_ppf + nlin_cont +# for s = 1:ne +# lcon_lin[bc_off + s] = bc[s] +# ucon_lin[bc_off + s] = bc[s] +# end + +# # --------------------------------------------------------------- +# # Sparse linear matrix entries +# # --------------------------------------------------------------- +# row_I = Int[]; col_J = Int[]; val_V = T[] + +# push_entry! = (r, c, v) -> (push!(row_I, r); push!(col_J, c); push!(val_V, T(v))) + +# # Block 1: collocation pp +# # pp[i,k,s] - v[i,s] - h * sum_j w[i,j,s]*rho[k]^j/fact[j+1] = 0 +# for i = 1:n, k = 1:nc, s = 1:ne +# row = (i-1)*nc*ne + (k-1)*ne + s +# push_entry!(row, idx_pp(i,k,s), 1) +# push_entry!(row, idx_v(i,s), -1) +# for j = 1:nc +# push_entry!(row, idx_w(i,j,s), -h * rho[k]^j / fact[j+1]) +# end +# end + +# # Block 2: collocation Dpp +# # Dpp[i,k,s] - sum_j w[i,j,s]*rho[k]^(j-1)/fact[j] = 0 +# off2 = nlin_pp +# for i = 1:n, k = 1:nc, s = 1:ne +# row = off2 + (i-1)*nc*ne + (k-1)*ne + s +# push_entry!(row, idx_Dpp(i,k,s), 1) +# for j = 1:nc +# push_entry!(row, idx_w(i,j,s), -rho[k]^(j-1) / fact[j]) +# end +# end + +# # Block 3: ppf +# # ppf[s] - v[n,s] - h * sum_j w[n,j,s]/fact[j+1] = 0 +# off3 = nlin_pp + nlin_Dpp +# for s = 1:ne +# row = off3 + s +# push_entry!(row, idx_ppf(s), 1) +# push_entry!(row, idx_v(n, s), -1) +# for j = 1:nc +# push_entry!(row, idx_w(n,j,s), -h / fact[j+1]) +# end +# end + +# # Block 4: continuity +# # v[i,s] + h*sum_j w[i,j,s]/fact[j+1] - v[i+1,s] = 0 for i=1:n-1 +# off4 = nlin_pp + nlin_Dpp + nlin_ppf +# for i = 1:(n-1), s = 1:ne +# row = off4 + (i-1)*ne + s +# push_entry!(row, idx_v(i, s), 1) +# push_entry!(row, idx_v(i+1, s), -1) +# for j = 1:nc +# push_entry!(row, idx_w(i,j,s), h / fact[j+1]) +# end +# end + +# # Block 5: boundary v[1,s] = bc[s] +# off5 = bc_off +# for s = 1:ne +# push_entry!(off5 + s, idx_v(1, s), 1) +# end + +# # --------------------------------------------------------------- +# # Combine lcon/ucon: linear constraints first, then nonlinear +# # --------------------------------------------------------------- +# lcon = vcat(lcon_lin, zeros(T, nnln)) +# ucon = vcat(ucon_lin, zeros(T, nnln)) + +# # --------------------------------------------------------------- +# # Variable bounds +# # --------------------------------------------------------------- +# lvar = T(-Inf) * ones(T, nvar) +# uvar = T( Inf) * ones(T, nvar) + +# for i = 1:n, j = 1:nc +# lvar[idx_u(i,j)] = T(0.0) +# uvar[idx_u(i,j)] = T(1.0) +# end + +# # --------------------------------------------------------------- +# # Initial point +# # --------------------------------------------------------------- +# x0 = zeros(T, nvar) +# for i = 1:n, s = 1:ne +# x0[idx_v(i,s)] = T(mod(s, ne)) +# for j = 1:nc +# x0[idx_pp(i,j,s)] = T(mod(s, ne)) +# end +# end +# for s = 1:ne +# x0[idx_ppf(s)] = T(mod(s, ne)) +# end + +# return ADNLPModels.ADNLPModel!( +# f, +# x0, +# lvar, +# uvar, +# row_I, +# col_J, +# val_V, +# c!, +# lcon, +# ucon, +# name = "catmix"; +# kwargs..., +# ) +# end \ No newline at end of file diff --git a/src/ADNLPProblems/gasoil.jl b/src/ADNLPProblems/gasoil.jl new file mode 100644 index 000000000..83df0dfce --- /dev/null +++ b/src/ADNLPProblems/gasoil.jl @@ -0,0 +1,194 @@ +# Hang Glider Problem +# Trapezoidal formulation +# David Bortz - Summer 1998 +# COPS 2.0 - September 2000 +# COPS 3.0 - November 2002 +# COPS 3.1 - March 2004 + +export gasoil + +function gasoil(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + nc = 4 + ne = 2 + np = 3 + nm = 21 + + rho = T[0.06943184420297, 0.33000947820757, 0.66999052179243, 0.93056815579703] + bc = T[1, 1] + tau = T[0.0,0.025,0.05,0.075,0.10,0.125,0.150,0.175,0.20,0.225, + 0.250,0.30,0.35,0.40,0.45,0.50,0.55,0.65,0.75,0.85,0.95] + + tf = tau[nm] + h = tf / n + t = T[(i-1)*h for i=1:(n+1)] + fact = [factorial(k) for k=0:nc] + + itau = Int[min(n, floor(tau[i]/h)+1) for i=1:nm] + + z = T[ + 1.0000 0; + 0.8105 0.2000; 0.6208 0.2886; 0.5258 0.3010; 0.4345 0.3215; + 0.3903 0.3123; 0.3342 0.2716; 0.3034 0.2551; 0.2735 0.2258; + 0.2405 0.1959; 0.2283 0.1789; 0.2071 0.1457; 0.1669 0.1198; + 0.1530 0.0909; 0.1339 0.0719; 0.1265 0.0561; 0.1200 0.0460; + 0.0990 0.0280; 0.0870 0.0190; 0.0770 0.0140; 0.0690 0.0100; + ] + + # ----------------------------- + # Variable layout + # ----------------------------- + off_theta = 0 + off_v = np + off_w = np + n*ne + off_uc = np + n*ne + n*nc*ne + off_Duc = np + n*ne + 2*n*nc*ne + + nvar = np + n*ne + 3*n*nc*ne + + idx_theta = p -> off_theta + p + idx_v = (i,s) -> off_v + (i-1)*ne + s + idx_w = (i,j,s) -> off_w + ((i-1)*nc+(j-1))*ne + s + idx_uc = (i,j,s) -> off_uc + ((i-1)*nc+(j-1))*ne + s + idx_Duc = (i,j,s) -> off_Duc + ((i-1)*nc+(j-1))*ne + s + + # ----------------------------- + # Objective + # ----------------------------- + function f(y) + return sum( + (y[idx_v(itau[j],s)] + + sum(y[idx_w(itau[j],k,s)] * (tau[j]-t[itau[j]])^k / + (fact[k+1]*h^(k-1)) for k=1:nc) - + z[j,s])^2 + for j=1:nm, s=1:ne + ) + end + + # ----------------------------- + # NONLINEAR constraints (dynamics) + # ----------------------------- + nnln = 2*n*nc + + function c!(cx, y) + idx = 1 + + # Duc[i,j,1] + for i=1:n, j=1:nc + cx[idx] = y[idx_Duc(i,j,1)] + + (y[idx_theta(1)] + y[idx_theta(3)]) * y[idx_uc(i,j,1)]^2 + idx += 1 + end + + # Duc[i,j,2] + for i=1:n, j=1:nc + cx[idx] = y[idx_Duc(i,j,2)] - + y[idx_theta(1)] * y[idx_uc(i,j,1)]^2 + + y[idx_theta(2)] * y[idx_uc(i,j,2)] + idx += 1 + end + + return cx + end + + # ----------------------------- + # LINEAR constraints + # ----------------------------- + nlin_uc = n * nc * ne + nlin_Duc = n * nc * ne + nlin_cont = (n-1) * ne + nlin_bc = ne + + nlin = nlin_uc + nlin_Duc + nlin_cont + nlin_bc + + lcon_lin = zeros(T, nlin) + ucon_lin = zeros(T, nlin) + + row_I = Int[] + col_J = Int[] + val_V = T[] + + push_entry! = (r,c,v) -> (push!(row_I,r); push!(col_J,c); push!(val_V,T(v))) + + # Collocation uc + for i=1:n, j=1:nc, s=1:ne + row = (i-1)*nc*ne + (j-1)*ne + s + push_entry!(row, idx_uc(i,j,s), 1) + push_entry!(row, idx_v(i,s), -1) + for k=1:nc + push_entry!(row, idx_w(i,k,s), -h * rho[j]^k / fact[k+1]) + end + end + + # Collocation Duc + off2 = nlin_uc + for i=1:n, j=1:nc, s=1:ne + row = off2 + (i-1)*nc*ne + (j-1)*ne + s + push_entry!(row, idx_Duc(i,j,s), 1) + for k=1:nc + push_entry!(row, idx_w(i,k,s), -rho[j]^(k-1)/fact[k]) + end + end + + # Continuity + off3 = nlin_uc + nlin_Duc + for i=1:(n-1), s=1:ne + row = off3 + (i-1)*ne + s + push_entry!(row, idx_v(i,s), 1) + push_entry!(row, idx_v(i+1,s), -1) + for j=1:nc + push_entry!(row, idx_w(i,j,s), h/fact[j+1]) + end + end + + # Boundary + off4 = nlin_uc + nlin_Duc + nlin_cont + for s=1:ne + row = off4 + s + push_entry!(row, idx_v(1,s), 1) + lcon_lin[row] = z[1,s] + ucon_lin[row] = z[1,s] + end + + # ----------------------------- + # Merge constraints + # ----------------------------- + lcon = vcat(lcon_lin, zeros(T, nnln)) + ucon = vcat(ucon_lin, zeros(T, nnln)) + + # ----------------------------- + # Bounds + # ----------------------------- + lvar = T(-Inf) * ones(T, nvar) + uvar = T( Inf) * ones(T, nvar) + + for p=1:np + lvar[idx_theta(p)] = T(0.0) + end + + # ----------------------------- + # Initial point + # ----------------------------- + x0 = zeros(T, nvar) + + for i=1:n, s=1:ne + x0[idx_v(i,s)] = z[1,s] + for j=1:nc + x0[idx_uc(i,j,s)] = z[1,s] + end + end + + return ADNLPModels.ADNLPModel!( + f, + x0, + lvar, + uvar, + row_I, + col_J, + val_V, + c!, + lcon, + ucon, + name = "gasoil"; + kwargs..., + ) +end \ No newline at end of file diff --git a/src/ADNLPProblems/glider.jl b/src/ADNLPProblems/glider.jl new file mode 100644 index 000000000..6485307f2 --- /dev/null +++ b/src/ADNLPProblems/glider.jl @@ -0,0 +1,361 @@ +# Catalytic Cracking of Gas Oil Problem +# Collocation formulation +# Michael Merritt - Summer 2000 +# COPS 2.0 - September 2000 +# COPS 3.0 - November 2002 +# COPS 3.1 - March 2004 + +export glider + +function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + + # ----------------------------- + # Parameters + # ----------------------------- + x_0 = T(0.0) + y_0 = T(1000.0) + y_f = T(900.0) + vx_0 = T(13.23) + vx_f = T(13.23) + vy_0 = T(-1.288) + vy_f = T(-1.288) + + u_c = T(2.5) + r_0 = T(100.0) + m = T(100.0) + g = T(9.81) + + c0 = T(0.034) + c1 = T(0.069662) + S = T(14.0) + rho = T(1.13) + + cL_min = T(0.0) + cL_max = T(1.4) + + N = n + + # ----------------------------- + # Variable layout + # ----------------------------- + nvar = 1 + 5*(N+1) + + idx_tf = 1 + + off_x = 1 + off_y = off_x + (N+1) + off_vx = off_y + (N+1) + off_vy = off_vx + (N+1) + off_cL = off_vy + (N+1) + + idx_x(i) = off_x + i + idx_y(i) = off_y + i + idx_vx(i) = off_vx + i + idx_vy(i) = off_vy + i + idx_cL(i) = off_cL + i + + # ----------------------------- + # Objective + # ----------------------------- + f(y) = -y[idx_x(N)] + + # ----------------------------- + # Helpers + # ----------------------------- + r_expr(y,i) = (y[idx_x(i)]/r_0 - T(2.5))^2 + u_expr(y,i) = u_c * (1 - r_expr(y,i)) * exp(-r_expr(y,i)) + w_expr(y,i) = y[idx_vy(i)] - u_expr(y,i) + v_expr(y,i) = sqrt(y[idx_vx(i)]^2 + w_expr(y,i)^2) + + D_expr(y,i) = 0.5*(c0 + c1*y[idx_cL(i)]^2)*rho*S*v_expr(y,i)^2 + L_expr(y,i) = 0.5*y[idx_cL(i)]*rho*S*v_expr(y,i)^2 + + vx_dot(y,i) = begin + vi = v_expr(y,i) + wi = w_expr(y,i) + vxi = y[idx_vx(i)] + (-L_expr(y,i)*(wi/vi) - D_expr(y,i)*(vxi/vi)) / m + end + + vy_dot(y,i) = begin + vi = v_expr(y,i) + wi = w_expr(y,i) + vxi = y[idx_vx(i)] + (L_expr(y,i)*(vxi/vi) - D_expr(y,i)*(wi/vi)) / m - g + end + + # ----------------------------- + # NONLINEAR constraints (dynamics) + # ----------------------------- + nnln = 4*N + + function c!(cx, y) + tf = y[idx_tf] + step = tf / N + + for j = 1:N + cx[4*(j-1)+1] = y[idx_x(j)] - y[idx_x(j-1)] - 0.5*step*(y[idx_vx(j)] + y[idx_vx(j-1)]) + cx[4*(j-1)+2] = y[idx_y(j)] - y[idx_y(j-1)] - 0.5*step*(y[idx_vy(j)] + y[idx_vy(j-1)]) + cx[4*(j-1)+3] = y[idx_vx(j)] - y[idx_vx(j-1)] - 0.5*step*(vx_dot(y,j) + vx_dot(y,j-1)) + cx[4*(j-1)+4] = y[idx_vy(j)] - y[idx_vy(j-1)] - 0.5*step*(vy_dot(y,j) + vy_dot(y,j-1)) + end + + return cx + end + + # ----------------------------- + # LINEAR constraints (boundary) + # ----------------------------- + nlin = 7 + + lcon_lin = zeros(T, nlin) + ucon_lin = zeros(T, nlin) + + row_I = Int[] + col_J = Int[] + val_V = T[] + + push_entry! = (r,c,v) -> (push!(row_I,r); push!(col_J,c); push!(val_V,T(v))) + + # x(0) + push_entry!(1, idx_x(0), 1) + lcon_lin[1] = x_0; ucon_lin[1] = x_0 + + # y(0) + push_entry!(2, idx_y(0), 1) + lcon_lin[2] = y_0; ucon_lin[2] = y_0 + + # y(N) + push_entry!(3, idx_y(N), 1) + lcon_lin[3] = y_f; ucon_lin[3] = y_f + + # vx(0) + push_entry!(4, idx_vx(0), 1) + lcon_lin[4] = vx_0; ucon_lin[4] = vx_0 + + # vx(N) + push_entry!(5, idx_vx(N), 1) + lcon_lin[5] = vx_f; ucon_lin[5] = vx_f + + # vy(0) + push_entry!(6, idx_vy(0), 1) + lcon_lin[6] = vy_0; ucon_lin[6] = vy_0 + + # vy(N) + push_entry!(7, idx_vy(N), 1) + lcon_lin[7] = vy_f; ucon_lin[7] = vy_f + + # ----------------------------- + # Merge constraints + # ----------------------------- + lcon = vcat(lcon_lin, zeros(T, nnln)) + ucon = vcat(ucon_lin, zeros(T, nnln)) + + # ----------------------------- + # Bounds + # ----------------------------- + lvar = T(-Inf) * ones(T, nvar) + uvar = T( Inf) * ones(T, nvar) + + lvar[idx_tf] = 0 + + for i = 0:N + lvar[idx_x(i)] = 0 + lvar[idx_vx(i)] = 0 + lvar[idx_cL(i)] = cL_min + uvar[idx_cL(i)] = cL_max + end + + # ----------------------------- + # Initial point + # ----------------------------- + x0 = zeros(T, nvar) + x0[idx_tf] = 1.0 + + for i = 0:N + α = i / N + x0[idx_x(i)] = x_0 + vx_0 * α + x0[idx_y(i)] = y_0 + α*(y_f - y_0) + x0[idx_vx(i)] = vx_0 + x0[idx_vy(i)] = vy_0 + x0[idx_cL(i)] = 0.5*(cL_min + cL_max) + end + + # ----------------------------- + # Model + # ----------------------------- + return ADNLPModels.ADNLPModel!( + f, + x0, + lvar, + uvar, + row_I, + col_J, + val_V, + c!, + lcon, + ucon, + name = "glider"; + kwargs..., + ) +end + + + + +# # Hang Glider Problem +# # Trapezoidal formulation +# # David Bortz - Summer 1998 +# # COPS 2.0 - September 2000 +# # COPS 3.0 - November 2002 +# # COPS 3.1 - March 2004 + +# export glider + +# function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} +# # Design parameters +# x_0 = T(0.0) +# y_0 = T(1000.0) +# y_f = T(900.0) +# vx_0 = T(13.23) +# vx_f = T(13.23) +# vy_0 = T(-1.288) +# vy_f = T(-1.288) +# u_c = T(2.5) +# r_0 = T(100.0) +# m = T(100.0) +# g = T(9.81) +# c0 = T(0.034) +# c1 = T(0.069662) +# S = T(14.0) +# rho = T(1.13) +# cL_min = T(0.0) +# cL_max = T(1.4) + +# # Variable layout (length = 1 + 5*(n+1)): +# # y[1] = t_f +# # y[2:n+2] = x[0:n] (≥ 0) +# # y[n+3:2n+3] = y_state[0:n] +# # y[2n+4:3n+4] = vx[0:n] (≥ 0) +# # y[3n+5:4n+5] = vy[0:n] +# # y[4n+6:5n+6] = cL[0:n] ∈ [cL_min, cL_max] + +# N = n +# nvar = 1 + 5*(N + 1) + +# # Indices helpers +# idx_tf = 1 +# idx_x = i -> 1 + (i + 1) # x[i], i=0..N +# idx_ys = i -> N + 2 + (i + 1) # y_state[i], i=0..N +# idx_vx = i -> 2*N+3 + (i + 1) # vx[i], i=0..N +# idx_vy = i -> 3*N+4 + (i + 1) # vy[i], i=0..N +# idx_cL = i -> 4*N+5 + (i + 1) # cL[i], i=0..N + +# # Objective: maximize x[N] ↔ minimize -x[N] +# function f(y) +# return -y[idx_x(N)] +# end + +# # Aerodynamic helper expressions +# function r_expr(y, i) +# xi = y[idx_x(i)] +# return (xi / r_0 - T(2.5))^2 +# end +# function u_expr(y, i) +# ri = r_expr(y, i) +# return u_c * (1 - ri) * exp(-ri) +# end +# function w_expr(y, i) +# return y[idx_vy(i)] - u_expr(y, i) +# end +# function v_expr(y, i) +# vxi = y[idx_vx(i)] +# wi = w_expr(y, i) +# return sqrt(vxi^2 + wi^2) +# end +# function D_expr(y, i) +# vi = v_expr(y, i) +# cLi = y[idx_cL(i)] +# return T(0.5) * (c0 + c1 * cLi^2) * rho * S * vi^2 +# end +# function L_expr(y, i) +# vi = v_expr(y, i) +# cLi = y[idx_cL(i)] +# return T(0.5) * cLi * rho * S * vi^2 +# end +# function vx_dot(y, i) +# vi = v_expr(y, i) +# wi = w_expr(y, i) +# vxi = y[idx_vx(i)] +# Di = D_expr(y, i) +# Li = L_expr(y, i) +# return (-Li * (wi / vi) - Di * (vxi / vi)) / m +# end +# function vy_dot(y, i) +# vi = v_expr(y, i) +# wi = w_expr(y, i) +# vxi = y[idx_vx(i)] +# Di = D_expr(y, i) +# Li = L_expr(y, i) +# return (Li * (vxi / vi) - Di * (wi / vi)) / m - g +# end + +# # Constraints: +# # 4*N trapezoidal dynamics (x, y_state, vx, vy) for j=1..N +# # 7 boundary conditions +# # Total: 4N + 7 +# ncon = 4 * N + 7 + +# function c!(cx, y) +# tf = y[idx_tf] +# step = tf / N + +# # Dynamics +# for j = 1:N +# cx[4*(j-1)+1] = y[idx_x(j)] - y[idx_x(j-1)] - T(0.5)*step*(y[idx_vx(j)] + y[idx_vx(j-1)]) +# cx[4*(j-1)+2] = y[idx_ys(j)] - y[idx_ys(j-1)] - T(0.5)*step*(y[idx_vy(j)] + y[idx_vy(j-1)]) +# cx[4*(j-1)+3] = y[idx_vx(j)] - y[idx_vx(j-1)] - T(0.5)*step*(vx_dot(y,j) + vx_dot(y,j-1)) +# cx[4*(j-1)+4] = y[idx_vy(j)] - y[idx_vy(j-1)] - T(0.5)*step*(vy_dot(y,j) + vy_dot(y,j-1)) +# end +# # Boundary conditions +# base = 4*N +# cx[base+1] = y[idx_x(0)] - x_0 +# cx[base+2] = y[idx_ys(0)] - y_0 +# cx[base+3] = y[idx_ys(N)] - y_f +# cx[base+4] = y[idx_vx(0)] - vx_0 +# cx[base+5] = y[idx_vx(N)] - vx_f +# cx[base+6] = y[idx_vy(0)] - vy_0 +# cx[base+7] = y[idx_vy(N)] - vy_f +# return cx +# end + +# # Variable bounds +# lvar = T(-Inf) * ones(T, nvar) +# uvar = T( Inf) * ones(T, nvar) + +# lvar[idx_tf] = T(0.0) # t_f ≥ 0 + +# for i = 0:N +# lvar[idx_x(i)] = T(0.0) # x ≥ 0 +# lvar[idx_vx(i)] = T(0.0) # vx ≥ 0 +# lvar[idx_cL(i)] = cL_min +# uvar[idx_cL(i)] = cL_max +# end + +# # Constraint bounds (all equalities) +# lcon = zeros(T, ncon) +# ucon = zeros(T, ncon) + +# # Initial point +# x0 = zeros(T, nvar) +# x0[idx_tf] = T(1.0) +# for i = 0:N +# x0[idx_x(i)] = x_0 + vx_0 * (i / N) +# x0[idx_ys(i)] = y_0 + (i / N) * (y_f - y_0) +# x0[idx_vx(i)] = vx_0 +# x0[idx_vy(i)] = vy_0 +# x0[idx_cL(i)] = cL_max / T(2.0) +# end + +# return ADNLPModels.ADNLPModel!(f, x0, lvar, uvar, c!, lcon, ucon, name = "glider"; kwargs...) +# end \ No newline at end of file diff --git a/src/ADNLPProblems/methanol.jl b/src/ADNLPProblems/methanol.jl new file mode 100644 index 000000000..0eff55209 --- /dev/null +++ b/src/ADNLPProblems/methanol.jl @@ -0,0 +1,440 @@ +# Methanol-to-Hydrocarbons Problem +# Collocation formulation +# Michael Merritt - Summer 2000 +# COPS 2.0 - September 2000 +# COPS 3.0 - November 2002 +# COPS 3.1 - March 2004 + +export methanol + +function methanol(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + + ne = 3 + np = 5 + nc = 3 + nm = 17 + + rho = T[0.11270166537926, 0.5, 0.88729833462074] + + tau = T[ + 0, + 0.050, 0.065, 0.080, 0.123, 0.233, 0.273, 0.354, 0.397, + 0.418, 0.502, 0.553, 0.681, 0.750, 0.916, 0.937, 1.122, + ] + + tf = tau[nm] + h = tf / n + t = T[(i-1)*h for i=1:(n+1)] + fact = [factorial(k) for k=0:nc] + + itau = Int[min(n, floor(tau[i]/h)+1) for i=1:nm] + + z = T[ + 1.0000 0 0; + 0.7085 0.1621 0.0811; + 0.5971 0.1855 0.0965; + 0.5537 0.1989 0.1198; + 0.3684 0.2845 0.1535; + 0.1712 0.3491 0.2097; + 0.1198 0.3098 0.2628; + 0.0747 0.3576 0.2467; + 0.0529 0.3347 0.2884; + 0.0415 0.3388 0.2757; + 0.0261 0.3557 0.3167; + 0.0208 0.3483 0.2954; + 0.0085 0.3836 0.2950; + 0.0053 0.3611 0.2937; + 0.0019 0.3609 0.2831; + 0.0018 0.3485 0.2846; + 0.0006 0.3698 0.2899; + ] + + bc = T[1.0, 0.0, 0.0] + + # ----------------------------- + # Variable layout + # ----------------------------- + off_theta = 0 + off_v = np + off_w = np + n*ne + off_uc = np + n*ne + n*nc*ne + off_Duc = np + n*ne + 2*n*nc*ne + + nvar = np + n*ne + 3*n*nc*ne + + idx_theta = p -> off_theta + p + idx_v = (i,s) -> off_v + (i-1)*ne + s + idx_w = (i,j,s) -> off_w + ((i-1)*nc+(j-1))*ne + s + idx_uc = (i,j,s) -> off_uc + ((i-1)*nc+(j-1))*ne + s + idx_Duc = (i,j,s) -> off_Duc + ((i-1)*nc+(j-1))*ne + s + + # ----------------------------- + # Objective + # ----------------------------- + function f(y) + return sum( + (y[idx_v(itau[j],s)] + + sum(y[idx_w(itau[j],k,s)] * (tau[j]-t[itau[j]])^k / + (fact[k+1]*h^(k-1)) for k=1:nc) - + z[j,s])^2 + for j=1:nm, s=1:ne + ) + end + + # ----------------------------- + # NONLINEAR constraints (dynamics only) + # ----------------------------- + nnln = 3*n*nc + + function c!(cx, y) + ptr = 1 + + for i=1:n, j=1:nc + th1 = y[idx_theta(1)] + th2 = y[idx_theta(2)] + th3 = y[idx_theta(3)] + th4 = y[idx_theta(4)] + th5 = y[idx_theta(5)] + + uc1 = y[idx_uc(i,j,1)] + uc2 = y[idx_uc(i,j,2)] + + cx[ptr] = y[idx_Duc(i,j,1)] - + (-(T(2)*th2 - (th1*uc2)/((th2+th5)*uc1+uc2) + th3 + th4) * uc1) + ptr += 1 + end + + for i=1:n, j=1:nc + th1 = y[idx_theta(1)] + th2 = y[idx_theta(2)] + th3 = y[idx_theta(3)] + th5 = y[idx_theta(5)] + + uc1 = y[idx_uc(i,j,1)] + uc2 = y[idx_uc(i,j,2)] + + cx[ptr] = y[idx_Duc(i,j,2)] - + (th1*uc1*(th2*uc1 - uc2) / ((th2+th5)*uc1+uc2) + th3*uc1) + ptr += 1 + end + + for i=1:n, j=1:nc + th1 = y[idx_theta(1)] + th2 = y[idx_theta(2)] + th4 = y[idx_theta(4)] + th5 = y[idx_theta(5)] + + uc1 = y[idx_uc(i,j,1)] + uc2 = y[idx_uc(i,j,2)] + + cx[ptr] = y[idx_Duc(i,j,3)] - + (th1*uc1*(uc2 + th5*uc1) / ((th2+th5)*uc1+uc2) + th4*uc1) + ptr += 1 + end + + return cx + end + + # ----------------------------- + # LINEAR constraints + # ----------------------------- + nlin_uc = n*nc*ne + nlin_Duc = n*nc*ne + nlin_bc = ne + nlin_cont = (n-1)*ne + + nlin = nlin_uc + nlin_Duc + nlin_bc + nlin_cont + + lcon_lin = zeros(T, nlin) + ucon_lin = zeros(T, nlin) + + row_I = Int[] + col_J = Int[] + val_V = T[] + + push_entry! = (r,c,v) -> (push!(row_I,r); push!(col_J,c); push!(val_V,T(v))) + + # Collocation uc + for i=1:n, k=1:nc, s=1:ne + row = (i-1)*nc*ne + (k-1)*ne + s + push_entry!(row, idx_uc(i,k,s), 1) + push_entry!(row, idx_v(i,s), -1) + for j=1:nc + push_entry!(row, idx_w(i,j,s), -h*rho[k]^j/fact[j+1]) + end + end + + # Collocation Duc + off2 = nlin_uc + for i=1:n, k=1:nc, s=1:ne + row = off2 + (i-1)*nc*ne + (k-1)*ne + s + push_entry!(row, idx_Duc(i,k,s), 1) + for j=1:nc + push_entry!(row, idx_w(i,j,s), -rho[k]^(j-1)/fact[j]) + end + end + + # Boundary + off3 = nlin_uc + nlin_Duc + for s=1:ne + row = off3 + s + push_entry!(row, idx_v(1,s), 1) + lcon_lin[row] = bc[s] + ucon_lin[row] = bc[s] + end + + # Continuity + off4 = nlin_uc + nlin_Duc + nlin_bc + for i=1:(n-1), s=1:ne + row = off4 + (i-1)*ne + s + push_entry!(row, idx_v(i,s), 1) + push_entry!(row, idx_v(i+1,s), -1) + for j=1:nc + push_entry!(row, idx_w(i,j,s), h/fact[j+1]) + end + end + + # ----------------------------- + # Merge constraints + # ----------------------------- + lcon = vcat(lcon_lin, zeros(T, nnln)) + ucon = vcat(ucon_lin, zeros(T, nnln)) + + # ----------------------------- + # Bounds + # ----------------------------- + lvar = T(-Inf) * ones(T, nvar) + uvar = T( Inf) * ones(T, nvar) + + for p=1:np + lvar[idx_theta(p)] = 0 + end + + # ----------------------------- + # Initial point + # ----------------------------- + x0 = zeros(T, nvar) + + for p=1:np + x0[idx_theta(p)] = 1 + end + + for i=1:n, s=1:ne + x0[idx_v(i,s)] = T(0.001) + for j=1:nc + x0[idx_uc(i,j,s)] = T(0.001) + end + end + + # ----------------------------- + # Model + # ----------------------------- + return ADNLPModels.ADNLPModel!( + f, + x0, + lvar, + uvar, + row_I, + col_J, + val_V, + c!, + lcon, + ucon, + name = "methanol"; + kwargs..., + ) +end + + + + + + + + + +# export methanol + +# function methanol(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} +# ne = 3 +# np = 5 +# nc = 3 +# nm = 17 + +# rho = T[0.11270166537926, 0.5, 0.88729833462074] + +# tau = T[ +# 0, +# 0.050, 0.065, 0.080, 0.123, 0.233, 0.273, 0.354, 0.397, +# 0.418, 0.502, 0.553, 0.681, 0.750, 0.916, 0.937, 1.122, +# ] +# tf = tau[nm] +# h = tf / n +# t = T[(i-1)*h for i=1:(n+1)] +# fact = [factorial(k) for k=0:nc] + +# itau = Int[min(n, floor(tau[i]/h)+1) for i=1:nm] + +# z = T[ +# 1.0000 0 0; +# 0.7085 0.1621 0.0811; +# 0.5971 0.1855 0.0965; +# 0.5537 0.1989 0.1198; +# 0.3684 0.2845 0.1535; +# 0.1712 0.3491 0.2097; +# 0.1198 0.3098 0.2628; +# 0.0747 0.3576 0.2467; +# 0.0529 0.3347 0.2884; +# 0.0415 0.3388 0.2757; +# 0.0261 0.3557 0.3167; +# 0.0208 0.3483 0.2954; +# 0.0085 0.3836 0.2950; +# 0.0053 0.3611 0.2937; +# 0.0019 0.3609 0.2831; +# 0.0018 0.3485 0.2846; +# 0.0006 0.3698 0.2899; +# ] + +# bc = T[1.0, 0.0, 0.0] + +# # Starting values for v +# v0 = T(0.001) * ones(T, n, ne) + +# # Variable layout: +# # theta[1:np] ODE parameters (≥ 0) +# # v[i,s] i=1:n, s=1:ne +# # w[i,j,s] i=1:n, j=1:nc, s=1:ne +# # uc[i,j,s] i=1:n, j=1:nc, s=1:ne +# # Duc[i,j,s] + +# off_theta = 0 +# off_v = np +# off_w = np + n*ne +# off_uc = np + n*ne + n*nc*ne +# off_Duc = np + n*ne + 2*n*nc*ne +# nvar = np + n*ne + 3*n*nc*ne + +# idx_theta = p -> off_theta + p +# idx_v = (i, s) -> off_v + (i-1)*ne + s +# idx_w = (i, j, s) -> off_w + ((i-1)*nc + (j-1))*ne + s +# idx_uc = (i, j, s) -> off_uc + ((i-1)*nc + (j-1))*ne + s +# idx_Duc = (i, j, s) -> off_Duc + ((i-1)*nc + (j-1))*ne + s + +# # Objective: sum of squared errors at measurement points +# function f(y) +# return sum( +# (y[idx_v(itau[j], s)] + +# sum(y[idx_w(itau[j], k, s)] * (tau[j] - t[itau[j]])^k / (fact[k+1] * h^(k-1)) for k=1:nc) - +# z[j, s])^2 +# for j=1:nm, s=1:ne +# ) +# end + +# # ncon: +# # collocation uc: n*nc*ne +# # collocation Duc: n*nc*ne +# # boundary: ne +# # continuity: (n-1)*ne +# # dynamics (3 eqns): 3*n*nc +# ncon = 2*n*nc*ne + ne + (n-1)*ne + 3*n*nc + +# function c!(cx, y) +# ptr = 1 + +# # Collocation uc: uc[i,k,s] = v[i,s] + h * sum_j w[i,j,s] * rho[k]^j / fact[j+1] +# for i=1:n, k=1:nc, s=1:ne +# cx[ptr] = y[idx_uc(i,k,s)] - y[idx_v(i,s)] - +# h * sum(y[idx_w(i,j,s)] * (rho[k]^j / fact[j+1]) for j=1:nc) +# ptr += 1 +# end + +# # Collocation Duc: Duc[i,k,s] = sum_j w[i,j,s] * rho[k]^(j-1) / fact[j] +# for i=1:n, k=1:nc, s=1:ne +# cx[ptr] = y[idx_Duc(i,k,s)] - +# sum(y[idx_w(i,j,s)] * (rho[k]^(j-1) / fact[j]) for j=1:nc) +# ptr += 1 +# end + +# # Boundary: v[1,s] = bc[s] +# for s=1:ne +# cx[ptr] = y[idx_v(1,s)] - bc[s] +# ptr += 1 +# end + +# # Continuity: v[i,s] + h * sum_j w[i,j,s]/fact[j+1] = v[i+1,s] +# for i=1:(n-1), s=1:ne +# cx[ptr] = y[idx_v(i,s)] + sum(y[idx_w(i,j,s)] * h / fact[j+1] for j=1:nc) - y[idx_v(i+1,s)] +# ptr += 1 +# end + +# # Dynamics (collocation equations): + +# # eq1: Duc[i,j,1] = -(2*theta[2] - theta[1]*uc2/((th2+th5)*uc1+uc2) + th3 + th4) * uc1 +# for i=1:n, j=1:nc +# th1 = y[idx_theta(1)] +# th2 = y[idx_theta(2)] +# th3 = y[idx_theta(3)] +# th4 = y[idx_theta(4)] +# th5 = y[idx_theta(5)] +# uc1 = y[idx_uc(i,j,1)] +# uc2 = y[idx_uc(i,j,2)] +# cx[ptr] = y[idx_Duc(i,j,1)] - +# (-(T(2)*th2 - (th1*uc2)/((th2+th5)*uc1+uc2) + th3 + th4) * uc1) +# ptr += 1 +# end + +# # eq2: Duc[i,j,2] = theta[1]*uc1*(theta[2]*uc1 - uc2) / ((th2+th5)*uc1+uc2) + th3*uc1 +# for i=1:n, j=1:nc +# th1 = y[idx_theta(1)] +# th2 = y[idx_theta(2)] +# th3 = y[idx_theta(3)] +# th5 = y[idx_theta(5)] +# uc1 = y[idx_uc(i,j,1)] +# uc2 = y[idx_uc(i,j,2)] +# cx[ptr] = y[idx_Duc(i,j,2)] - +# (th1*uc1*(th2*uc1 - uc2) / ((th2+th5)*uc1+uc2) + th3*uc1) +# ptr += 1 +# end + +# # eq3: Duc[i,j,3] = theta[1]*uc1*(uc2 + th5*uc1) / ((th2+th5)*uc1+uc2) + th4*uc1 +# for i=1:n, j=1:nc +# th1 = y[idx_theta(1)] +# th2 = y[idx_theta(2)] +# th4 = y[idx_theta(4)] +# th5 = y[idx_theta(5)] +# uc1 = y[idx_uc(i,j,1)] +# uc2 = y[idx_uc(i,j,2)] +# cx[ptr] = y[idx_Duc(i,j,3)] - +# (th1*uc1*(uc2 + th5*uc1) / ((th2+th5)*uc1+uc2) + th4*uc1) +# ptr += 1 +# end + +# return cx +# end + +# lcon = zeros(T, ncon) +# ucon = zeros(T, ncon) + +# lvar = T(-Inf) * ones(T, nvar) +# uvar = T( Inf) * ones(T, nvar) + +# # theta >= 0 +# for p=1:np +# lvar[idx_theta(p)] = T(0.0) +# end + +# # Initial point +# x0 = zeros(T, nvar) +# for p=1:np +# x0[idx_theta(p)] = T(1.0) +# end +# for i=1:n, s=1:ne +# x0[idx_v(i,s)] = v0[i,s] +# for j=1:nc +# x0[idx_uc(i,j,s)] = v0[i,s] +# x0[idx_Duc(i,j,s)] = T(0.0) +# end +# end + +# return ADNLPModels.ADNLPModel!(f, x0, lvar, uvar, c!, lcon, ucon, name = "methanol"; kwargs...) +# end \ No newline at end of file diff --git a/src/ADNLPProblems/minsurf.jl b/src/ADNLPProblems/minsurf.jl new file mode 100644 index 000000000..ae915bc49 --- /dev/null +++ b/src/ADNLPProblems/minsurf.jl @@ -0,0 +1,91 @@ +# Minimal surface with obstacle problem + +# Find the surface with minimal area, given boundary conditions, +# and above an obstacle. + +# This is problem 17=the COPS (Version 3) collection of +# E. Dolan and J. More' +# see "Benchmarking Optimization Software with COPS" +# Argonne National Labs Technical Report ANL/MCS-246 (2004) +# classification OBR2-AN-V-V + +export minsurf + +function minsurf(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + nx, ny = Int(round(sqrt(max(1, n - 2)))), Int(round(sqrt(max(1, n - 2)))) + + x_mesh = LinRange(T(0), T(1), nx + 2) + hx = T(1.0) / (nx + 1) + hy = T(1.0) / (ny + 1) + area = T(1 // 2) * hx * hy + + nv = (nx + 2) * (ny + 2) + idx_v = (i, j) -> (nx + 2) * (j - 1) + i + + function f(y) + Ti = eltype(y) + s1 = sum( + Ti(area) * (1 + ((y[idx_v(i+1,j)] - y[idx_v(i,j)]) / hx)^2 + + ((y[idx_v(i,j+1)] - y[idx_v(i,j)]) / hy)^2)^(Ti(1)/Ti(2)) + for i = 1:(nx+1), j = 1:(ny+1) + ) + s2 = sum( + Ti(area) * (1 + ((y[idx_v(i-1,j)] - y[idx_v(i,j)]) / hx)^2 + + ((y[idx_v(i,j-1)] - y[idx_v(i,j)]) / hy)^2)^(Ti(1)/Ti(2)) + for i = 2:(nx+2), j = 2:(ny+2) + ) + return s1 + s2 + end + + lvar = T(-Inf) * ones(T, nv) + uvar = T( Inf) * ones(T, nv) + + # Boundary conditions + for j = 1:(ny+2) + lvar[idx_v(1, j)] = T(0.0) + uvar[idx_v(1, j)] = T(0.0) + lvar[idx_v(nx+2, j)] = T(0.0) + uvar[idx_v(nx+2, j)] = T(0.0) + end + + for i = 1:(nx+2) + val = T(1.0 - (2 * (i-1) * hx - 1)^2) + lvar[idx_v(i, 1)] = val + uvar[idx_v(i, 1)] = val + lvar[idx_v(i, ny+2)] = val + uvar[idx_v(i, ny+2)] = val + end + + # Interior ≥ 0 + for i = 1:(nx+2), j = 1:(ny+2) + if lvar[idx_v(i,j)] == T(-Inf) + lvar[idx_v(i,j)] = T(0.0) + end + end + + # Obstacle ≥ 1 + for i = Int(floor(T(0.25)/hx)):Int(ceil(T(0.75)/hx)) + for j = Int(floor(T(0.25)/hy)):Int(ceil(T(0.75)/hy)) + ii = i + 1 + jj = j + 1 + if 1 <= ii <= nx+2 && 1 <= jj <= ny+2 + lvar[idx_v(ii, jj)] = max(lvar[idx_v(ii, jj)], T(1.0)) + end + end + end + + x0 = zeros(T, nv) + for i = 1:(nx+2), j = 1:(ny+2) + x0[idx_v(i,j)] = max(lvar[idx_v(i,j)], + min(uvar[idx_v(i,j)], T(1 - (2 * x_mesh[i] - 1)^2))) + end + + return ADNLPModels.ADNLPModel( + f, + x0, + lvar, + uvar; + name = "minsurf", + kwargs... + ) +end diff --git a/src/ADNLPProblems/pinene.jl b/src/ADNLPProblems/pinene.jl new file mode 100644 index 000000000..daec118b5 --- /dev/null +++ b/src/ADNLPProblems/pinene.jl @@ -0,0 +1,298 @@ +# This is problem 8 in the COPS (Version 3) collection of +# E. Dolan and J. More +# see "Benchmarking Optimization Software with COPS" +# Argonne National Labs Technical Report ANL/MCS-246 (2004) + +# Isomerization of Alpha-Pinene Problem +# Collocation formulation +# Alexander S. Bondarenko - Summer 1998 +# COPS 2.0 - September 2000 +# COPS 3.0 - November 2002 +# COPS 3.1 - March 2004 + + +export pinene + +function pinene(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + + nc, ne, np, nm = 3, 5, 5, 8 + + rho = T[0.11270166537926, 0.5, 0.88729833462074] + bc = T[100.0, 0.0, 0.0, 0.0, 0.0] + + tau = T[1230.0, 3060.0, 4920.0, 7800.0, + 10680.0, 15030.0, 22620.0, 36420.0] + + tf = tau[nm] + h = tf / n + t = T[(i-1)*h for i=1:(n+1)] + fact = [factorial(k) for k=0:nc] + + itau = Int[min(n, floor(tau[i]/h)+1) for i=1:nm] + + z = T[ + 88.35 7.3 2.3 0.4 1.75; + 76.4 15.6 4.5 0.7 2.8; + 65.1 23.1 5.3 1.1 5.8; + 50.4 32.9 6.0 1.5 9.3; + 37.5 42.7 6.0 1.9 12.0; + 25.9 49.1 5.9 2.2 17.0; + 14.0 57.4 5.1 2.6 21.0; + 4.5 63.1 3.8 2.9 25.7; + ] + + # ---------------- VARIABLES ---------------- + nA = np + nB = n*ne + nC = n*nc*ne + + nvar = nA + nB + 3*nC + + offθ = 0 + offv = nA + offw = nA + nB + offu = nA + nB + nC + offD = nA + nB + 2*nC + + θ = p -> offθ + p + v = (i,s) -> offv + (i-1)*ne + s + w = (i,j,s) -> offw + ((i-1)*nc+(j-1))*ne + s + u = (i,j,s) -> offu + ((i-1)*nc+(j-1))*ne + s + D = (i,j,s) -> offD + ((i-1)*nc+(j-1))*ne + s + + # ---------------- OBJECTIVE ---------------- + f = y -> sum( + (y[v(itau[j],s)] + + sum(y[w(itau[j],k,s)]*(tau[j]-t[itau[j]])^k / + (fact[k+1]*h^(k-1)) for k=1:nc) + - z[j,s])^2 + for j=1:nm, s=1:ne + ) + + # ---------------- NONLINEAR CONSTRAINTS ONLY ---------------- + # IMPORTANT: ONLY dynamics here (no linear constraints mixed) + ncon = 5 * n * nc # EXACT COPS structure + + function c!(cx, y) + idx = 1 + θp = p -> y[θ(p)] + + # eq1 + for i=1:n, j=1:nc + cx[idx] = y[D(i,j,1)] + + (θp(1)+θp(2)) * y[u(i,j,1)] + idx += 1 + end + + # eq2 + for i=1:n, j=1:nc + cx[idx] = y[D(i,j,2)] - + θp(1) * y[u(i,j,1)] + idx += 1 + end + + # eq3 + for i=1:n, j=1:nc + cx[idx] = y[D(i,j,3)] - + θp(2) * y[u(i,j,1)] + + (θp(3)+θp(4)) * y[u(i,j,3)] - + θp(5) * y[u(i,j,5)] + idx += 1 + end + + # eq4 + for i=1:n, j=1:nc + cx[idx] = y[D(i,j,4)] - + θp(3) * y[u(i,j,3)] + idx += 1 + end + + # eq5 + for i=1:n, j=1:nc + cx[idx] = y[D(i,j,5)] - + θp(4) * y[u(i,j,3)] + + θp(5) * y[u(i,j,5)] + idx += 1 + end + + return cx + end + + # ---------------- BOUNDS ---------------- + lvar = fill(T(-Inf), nvar) + uvar = fill(T(Inf), nvar) + + for p=1:np + lvar[θ(p)] = T(0.0) + end + + x0 = zeros(T, nvar) + + for i=1:n, s=1:ne + for j=1:nc + x0[u(i,j,s)] = T(0.0) + end + end + + lcon = zeros(T, ncon) + ucon = zeros(T, ncon) + + return ADNLPModels.ADNLPModel!( + f, x0, lvar, uvar, + c!, lcon, ucon, + name="pinene"; + kwargs... + ) +end + + + + + +# export pinene + +# function pinene(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} +# nc, ne, np, nm = 3, 5, 5, 8 + +# rho = T[0.11270166537926, 0.5, 0.88729833462074] +# bc = T[100.0, 0.0, 0.0, 0.0, 0.0] +# tau = T[1230.0, 3060.0, 4920.0, 7800.0, 10680.0, 15030.0, 22620.0, 36420.0] + +# tf = tau[nm] +# h = tf / n +# t = T[(i-1)*h for i=1:(n+1)] +# fact = [factorial(k) for k=0:nc] + +# itau = Int[min(n, floor(tau[i]/h)+1) for i=1:nm] + +# z = T[ +# 88.35 7.3 2.3 0.4 1.75; +# 76.4 15.6 4.5 0.7 2.8; +# 65.1 23.1 5.3 1.1 5.8; +# 50.4 32.9 6.0 1.5 9.3; +# 37.5 42.7 6.0 1.9 12.0; +# 25.9 49.1 5.9 2.2 17.0; +# 14.0 57.4 5.1 2.6 21.0; +# 4.5 63.1 3.8 2.9 25.7; +# ] + +# # dimensions +# nA = np +# nB = n*ne +# nC = n*nc*ne +# nvar = nA + nB + 3*nC + +# offθ = 0 +# offv = nA +# offw = nA + nB +# offu = nA + nB + nC +# offD = nA + nB + 2*nC + +# θ = p -> offθ + p +# v = (i,s) -> offv + (i-1)*ne + s +# w = (i,j,s) -> offw + ((i-1)*nc+(j-1))*ne + s +# u = (i,j,s) -> offu + ((i-1)*nc+(j-1))*ne + s +# D = (i,j,s) -> offD + ((i-1)*nc+(j-1))*ne + s + +# function f(y) +# sum( +# (y[v(itau[j],s)] + +# sum(y[w(itau[j],k,s)]*(tau[j]-t[itau[j]])^k/(fact[k+1]*h^(k-1)) for k=1:nc) +# - z[j,s])^2 +# for j=1:nm, s=1:ne +# ) +# end + +# # ---------- NONLINEAR ---------- +# nnln = 5*n*nc + +# function c!(cx, y) +# idx = 1 +# th = p -> y[θ(p)] + +# for i=1:n, j=1:nc +# cx[idx] = y[D(i,j,1)] + (th(1)+th(2))*y[u(i,j,1)]; idx+=1 +# end +# for i=1:n, j=1:nc +# cx[idx] = y[D(i,j,2)] - th(1)*y[u(i,j,1)]; idx+=1 +# end +# for i=1:n, j=1:nc +# cx[idx] = y[D(i,j,3)] - th(2)*y[u(i,j,1)] + +# (th(3)+th(4))*y[u(i,j,3)] - th(5)*y[u(i,j,5)]; idx+=1 +# end +# for i=1:n, j=1:nc +# cx[idx] = y[D(i,j,4)] - th(3)*y[u(i,j,3)]; idx+=1 +# end +# for i=1:n, j=1:nc +# cx[idx] = y[D(i,j,5)] - th(4)*y[u(i,j,3)] + th(5)*y[u(i,j,5)]; idx+=1 +# end + +# return cx +# end + +# # ---------- LINEAR ---------- +# nlin = 2*n*nc*ne + ne + (n-1)*ne + +# row = Int[]; col = Int[]; val = T[] +# pushE(r,c,vv) = (push!(row,r); push!(col,c); push!(val,vv)) + +# # collocation uc +# for i=1:n, k=1:nc, s=1:ne +# r = (i-1)*nc*ne + (k-1)*ne + s +# pushE(r, u(i,k,s), 1) +# pushE(r, v(i,s), -1) +# for j=1:nc +# pushE(r, w(i,j,s), -h*rho[k]^j/fact[j+1]) +# end +# end + +# # collocation Duc +# off = n*nc*ne +# for i=1:n, k=1:nc, s=1:ne +# r = off + (i-1)*nc*ne + (k-1)*ne + s +# pushE(r, D(i,k,s), 1) +# for j=1:nc +# pushE(r, w(i,j,s), -rho[k]^(j-1)/fact[j]) +# end +# end + +# # boundary +# off2 = 2*n*nc*ne +# lcon_lin = zeros(T,nlin) +# ucon_lin = zeros(T,nlin) +# for s=1:ne +# lcon_lin[off2+s] = bc[s] +# ucon_lin[off2+s] = bc[s] +# pushE(off2+s, v(1,s), 1) +# end + +# # continuity +# off3 = 2*n*nc*ne + ne +# for i=1:n-1, s=1:ne +# r = off3 + (i-1)*ne + s +# pushE(r, v(i,s), 1) +# pushE(r, v(i+1,s), -1) +# for j=1:nc +# pushE(r, w(i,j,s), h/fact[j+1]) +# end +# end + +# lcon = vcat(lcon_lin, zeros(T,nnln)) +# ucon = vcat(ucon_lin, zeros(T,nnln)) + +# lvar = fill(-Inf,nvar) +# uvar = fill( Inf,nvar) +# for p=1:np +# lvar[θ(p)] = 0 +# end + +# x0 = zeros(T,nvar) + +# return ADNLPModels.ADNLPModel!( +# f,x0,lvar,uvar, +# row,col,val, +# c!,lcon,ucon, +# name="pinene"; +# kwargs... +# ) +# end diff --git a/src/ADNLPProblems/rocket.jl b/src/ADNLPProblems/rocket.jl new file mode 100644 index 000000000..c1ff9fed7 --- /dev/null +++ b/src/ADNLPProblems/rocket.jl @@ -0,0 +1,101 @@ +# Goddard Rocket Problem +# Trapezoidal formulation +# COPS 2.0 - September 2000 +# COPS 3.0 - November 2002 +# COPS 3.1 - March 2004 + +export rocket + +function rocket(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + + h_0 = T(1.0) + v_0 = T(0.0) + m_0 = T(1.0) + g_0 = T(1.0) + T_c = T(3.5) + h_c = T(500.0) + v_c = T(620.0) + m_c = T(0.6) + + c = T(0.5) * sqrt(g_0 * h_0) + m_f = m_c * m_0 + D_c = T(0.5) * v_c * (m_0 / g_0) + T_max = T_c * m_0 * g_0 + + N = n + nvar = 1 + 4 * (N + 1) + + # indices (0..N) + idx_step = 1 + idx_h(i) = 1 + (i + 1) + idx_v(i) = N + 2 + (i + 1) + idx_m(i) = 2*N + 3 + (i + 1) + idx_T(i) = 3*N + 4 + (i + 1) + + # objective + f = y -> -y[idx_h(N)] + + # dynamics only (NO boundary constraints here) + function c!(cx, y) + step = y[idx_step] + + D(i) = D_c * y[idx_v(i)]^2 * exp(-h_c * (y[idx_h(i)] - h_0) / h_0) + g(i) = g_0 * (h_0 / y[idx_h(i)])^2 + + dh(i) = y[idx_v(i)] + dv(i) = (y[idx_T(i)] - D(i) - y[idx_m(i)] * g(i)) / y[idx_m(i)] + dm(i) = -y[idx_T(i)] / c + + for i = 1:N + cx[3*(i-1)+1] = y[idx_h(i)] - y[idx_h(i-1)] - + T(0.5) * step * (dh(i) + dh(i-1)) + + cx[3*(i-1)+2] = y[idx_v(i)] - y[idx_v(i-1)] - + T(0.5) * step * (dv(i) + dv(i-1)) + + cx[3*(i-1)+3] = y[idx_m(i)] - y[idx_m(i-1)] - + T(0.5) * step * (dm(i) + dm(i-1)) + end + + return cx + end + + # ONLY dynamics constraints + ncon = 3 * N + lcon = zeros(T, ncon) + ucon = zeros(T, ncon) + + # variable bounds + lvar = T(-Inf) * ones(T, nvar) + uvar = T( Inf) * ones(T, nvar) + + lvar[idx_step] = T(0.0) + + for i = 0:N + lvar[idx_h(i)] = T(1.0) + lvar[idx_v(i)] = T(0.0) + + lvar[idx_m(i)] = m_f + uvar[idx_m(i)] = m_0 + + lvar[idx_T(i)] = T(0.0) + uvar[idx_T(i)] = T_max + end + + # initial guess + x0 = zeros(T, nvar) + x0[idx_step] = T(1.0 / N) + + for i = 0:N + x0[idx_h(i)] = T(1.0) + x0[idx_v(i)] = T(i / N) * (1 - T(i / N)) + x0[idx_m(i)] = (m_f - m_0) * T(i / N) + m_0 + x0[idx_T(i)] = T_max / T(2.0) + end + + return ADNLPModels.ADNLPModel!( + f, x0, lvar, uvar, c!, lcon, ucon; + name = "rocket", + kwargs... + ) +end diff --git a/src/ADNLPProblems/steering.jl b/src/ADNLPProblems/steering.jl new file mode 100644 index 000000000..c41054a81 --- /dev/null +++ b/src/ADNLPProblems/steering.jl @@ -0,0 +1,110 @@ +# Rocket Steering Problem +# Trapezoidal formulation +# COPS 2.0 - September 2000 +# COPS 3.0 - November 2002 +# COPS 3.1 - March 2004 + +export steering + +function steering(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + + a = T(100.0) + u_min, u_max = -T(pi)/2, T(pi)/2 + + xs = zeros(T, 4) + xf = T[NaN, 5.0, 45.0, 0.0] + + N = n + + nvar = 1 + (N+1) + 4*(N+1) + + idx_tf = 1 + idx_u(i) = 1 + i + idx_x1(i) = N + 2 + (i-1) + idx_x2(i) = N + 2 + (N+1) + (i-1) + idx_x3(i) = N + 2 + 2*(N+1) + (i-1) + idx_x4(i) = N + 2 + 3*(N+1) + (i-1) + + f(y) = y[idx_tf] + + # Seulement les contraintes de dynamique : 4*N + ncon = 4*N + + function c!(cx, y) + tf = y[idx_tf] + h = tf / N + + k = 1 + + # ---------------- dynamics ---------------- + for i = 1:N + u1 = y[idx_u(i)] + u2 = y[idx_u(i+1)] + + x1 = y[idx_x1(i)] + x1p = y[idx_x1(i+1)] + x2 = y[idx_x2(i)] + x2p = y[idx_x2(i+1)] + x3 = y[idx_x3(i)] + x3p = y[idx_x3(i+1)] + x4 = y[idx_x4(i)] + x4p = y[idx_x4(i+1)] + + cx[k] = x1p - x1 - 0.5 * h * (x3 + x3p); k += 1 + cx[k] = x2p - x2 - 0.5 * h * (x4 + x4p); k += 1 + cx[k] = x3p - x3 - 0.5 * h * (a*cos(u1) + a*cos(u2)); k += 1 + cx[k] = x4p - x4 - 0.5 * h * (a*sin(u1) + a*sin(u2)); k += 1 + end + + return nothing + end + + # Bornes des contraintes (toutes des égalités pour la dynamique) + lcon = zeros(T, ncon) + ucon = zeros(T, ncon) + + # Bornes des variables + lvar = fill(-T(Inf), nvar) + uvar = fill( T(Inf), nvar) + + # tf >= 0 + lvar[idx_tf] = T(0.0) + + # Bornes sur le contrôle u + for i = 1:(N+1) + lvar[idx_u(i)] = u_min + uvar[idx_u(i)] = u_max + end + + # Conditions initiales (comme bornes sur les variables) + for j = 1:4 + lvar[idx_x1(1)] = xs[1]; uvar[idx_x1(1)] = xs[1] + lvar[idx_x2(1)] = xs[2]; uvar[idx_x2(1)] = xs[2] + lvar[idx_x3(1)] = xs[3]; uvar[idx_x3(1)] = xs[3] + lvar[idx_x4(1)] = xs[4]; uvar[idx_x4(1)] = xs[4] + end + + # Conditions terminales (comme bornes sur les variables) + lvar[idx_x2(N+1)] = xf[2]; uvar[idx_x2(N+1)] = xf[2] + lvar[idx_x3(N+1)] = xf[3]; uvar[idx_x3(N+1)] = xf[3] + lvar[idx_x4(N+1)] = xf[4]; uvar[idx_x4(N+1)] = xf[4] + # x1(N+1) n'a pas de borne (NaN) + + # Point initial + x0 = zeros(T, nvar) + x0[idx_tf] = T(1.0) + + for i = 1:(N+1) + k = i - 1 + x0[idx_x2(i)] = T(5.0 * k / N) + x0[idx_x3(i)] = T(45.0 * k / N) + end + + # Initialisation des u + for i = 1:(N+1) + x0[idx_u(i)] = T(0.0) + end + + return ADNLPModels.ADNLPModel!(f, x0, lvar, uvar, c!, lcon, ucon, + name = "steering"; kwargs...) +end \ No newline at end of file diff --git a/src/ADNLPProblems/torsion.jl b/src/ADNLPProblems/torsion.jl new file mode 100644 index 000000000..678d8532d --- /dev/null +++ b/src/ADNLPProblems/torsion.jl @@ -0,0 +1,49 @@ +# Torsion problem +# Liz Dolan - Summer 2000 +# Version 2.0 - October 2000 +# COPS 3.1 - March 2004 + +export torsion + +function torsion(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + nx, ny = Int(round(sqrt(max(1, n - 2)))), Int(round(sqrt(max(1, n - 2)))) + c = T(5.0) + hx = T(1.0) / (nx + T(1.0)) + hy = T(1.0) / (ny + T(1.0)) + area = T(0.5) * hx * hy + + # Distance to boundary: D[i,j] for i=0..nx+1, j=0..ny+1 + D = [min(min(i, nx-i+1)*hx, min(j, ny-j+1)*hy) for i = 0:(nx+1), j = 0:(ny+1)] + + # Variables: v[i,j] for i=0..nx+1, j=0..ny+1 → (nx+2)*(ny+2) variables + # Layout: v[i,j] → y[(nx+2)*j + i + 1] (column-major, 0-indexed i,j) + nv = (nx + 2) * (ny + 2) + idx_v = (i, j) -> (nx + 2) * j + i + 1 # i=0..nx+1, j=0..ny+1 + + function f(y) + Ti = eltype(y) + linLower = sum(y[idx_v(i+1,j)] + y[idx_v(i,j)] + y[idx_v(i,j+1)] for i=0:nx, j=0:ny) + linUpper = sum(y[idx_v(i,j)] + y[idx_v(i-1,j)] + y[idx_v(i,j-1)] for i=1:(nx+1), j=1:(ny+1)) + quadLower = sum(((y[idx_v(i+1,j)] - y[idx_v(i,j)])/hx)^2 + ((y[idx_v(i,j+1)] - y[idx_v(i,j)])/hy)^2 for i=0:nx, j=0:ny) + quadUpper = sum(((y[idx_v(i,j)] - y[idx_v(i-1,j)])/hx)^2 + ((y[idx_v(i,j)] - y[idx_v(i,j-1)])/hy)^2 for i=1:(nx+1), j=1:(ny+1)) + return Ti(area) * ((quadLower + quadUpper) / 2 - Ti(c) * (linLower + linUpper) / 3) + end + + # No nonlinear constraints — only box constraints on v + # Use an empty c! (ncon = 0) + + lvar = T(-Inf) * ones(T, nv) + uvar = T( Inf) * ones(T, nv) + for i = 0:(nx+1), j = 0:(ny+1) + d = D[i+1, j+1] + lvar[idx_v(i,j)] = -T(d) + uvar[idx_v(i,j)] = T(d) + end + + x0 = zeros(T, nv) + for i = 0:(nx+1), j = 0:(ny+1) + x0[idx_v(i,j)] = T(D[i+1, j+1]) + end + + return ADNLPModels.ADNLPModel(f, x0, lvar, uvar, name = "torsion"; kwargs...) +end \ No newline at end of file diff --git a/src/Meta/AMPGO02.jl b/src/Meta/AMPGO02.jl index fe7bf3299..d00de5791 100644 --- a/src/Meta/AMPGO02.jl +++ b/src/Meta/AMPGO02.jl @@ -16,6 +16,7 @@ AMPGO02_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO02_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO02_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO03.jl b/src/Meta/AMPGO03.jl index ea791e6ea..0d95a5543 100644 --- a/src/Meta/AMPGO03.jl +++ b/src/Meta/AMPGO03.jl @@ -16,6 +16,7 @@ AMPGO03_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO03_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO03_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO04.jl b/src/Meta/AMPGO04.jl index 545874ba5..568efc286 100644 --- a/src/Meta/AMPGO04.jl +++ b/src/Meta/AMPGO04.jl @@ -16,6 +16,7 @@ AMPGO04_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO04_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO04_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO05.jl b/src/Meta/AMPGO05.jl index c44599344..4b608e6e0 100644 --- a/src/Meta/AMPGO05.jl +++ b/src/Meta/AMPGO05.jl @@ -16,6 +16,7 @@ AMPGO05_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO05_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO05_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO06.jl b/src/Meta/AMPGO06.jl index b19ae7fb2..a9696e4f4 100644 --- a/src/Meta/AMPGO06.jl +++ b/src/Meta/AMPGO06.jl @@ -16,6 +16,7 @@ AMPGO06_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO06_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO06_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO07.jl b/src/Meta/AMPGO07.jl index c30afe99c..ade4a7eda 100644 --- a/src/Meta/AMPGO07.jl +++ b/src/Meta/AMPGO07.jl @@ -16,6 +16,7 @@ AMPGO07_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO07_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO07_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO08.jl b/src/Meta/AMPGO08.jl index b7478bb98..1c9b5ac33 100644 --- a/src/Meta/AMPGO08.jl +++ b/src/Meta/AMPGO08.jl @@ -16,6 +16,7 @@ AMPGO08_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO08_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO08_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO09.jl b/src/Meta/AMPGO09.jl index 800303b3e..c9604148a 100644 --- a/src/Meta/AMPGO09.jl +++ b/src/Meta/AMPGO09.jl @@ -16,6 +16,7 @@ AMPGO09_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO09_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO09_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO10.jl b/src/Meta/AMPGO10.jl index 872c3522b..ea35f5122 100644 --- a/src/Meta/AMPGO10.jl +++ b/src/Meta/AMPGO10.jl @@ -16,6 +16,7 @@ AMPGO10_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO10_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO10_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO11.jl b/src/Meta/AMPGO11.jl index 654b4bc89..738ea9235 100644 --- a/src/Meta/AMPGO11.jl +++ b/src/Meta/AMPGO11.jl @@ -16,6 +16,7 @@ AMPGO11_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO11_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO11_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO12.jl b/src/Meta/AMPGO12.jl index b99e4d7b4..350e65f92 100644 --- a/src/Meta/AMPGO12.jl +++ b/src/Meta/AMPGO12.jl @@ -16,6 +16,7 @@ AMPGO12_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO12_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO12_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO13.jl b/src/Meta/AMPGO13.jl index bd0afe5a0..baa0b133c 100644 --- a/src/Meta/AMPGO13.jl +++ b/src/Meta/AMPGO13.jl @@ -16,6 +16,7 @@ AMPGO13_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO13_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO13_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO14.jl b/src/Meta/AMPGO14.jl index 19963358c..78f6a30d7 100644 --- a/src/Meta/AMPGO14.jl +++ b/src/Meta/AMPGO14.jl @@ -16,6 +16,7 @@ AMPGO14_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO14_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO14_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO15.jl b/src/Meta/AMPGO15.jl index 8373242e4..36aa5574d 100644 --- a/src/Meta/AMPGO15.jl +++ b/src/Meta/AMPGO15.jl @@ -16,6 +16,7 @@ AMPGO15_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO15_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO15_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO18.jl b/src/Meta/AMPGO18.jl index 3091f5f78..887f49c3f 100644 --- a/src/Meta/AMPGO18.jl +++ b/src/Meta/AMPGO18.jl @@ -16,6 +16,7 @@ AMPGO18_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO18_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO18_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO20.jl b/src/Meta/AMPGO20.jl index ac66024f8..0570e49c1 100644 --- a/src/Meta/AMPGO20.jl +++ b/src/Meta/AMPGO20.jl @@ -16,6 +16,7 @@ AMPGO20_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO20_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO20_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO21.jl b/src/Meta/AMPGO21.jl index 5da17cff2..54951bb67 100644 --- a/src/Meta/AMPGO21.jl +++ b/src/Meta/AMPGO21.jl @@ -16,6 +16,7 @@ AMPGO21_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO21_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO21_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/AMPGO22.jl b/src/Meta/AMPGO22.jl index 5838f711b..335548f42 100644 --- a/src/Meta/AMPGO22.jl +++ b/src/Meta/AMPGO22.jl @@ -16,6 +16,7 @@ AMPGO22_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_AMPGO22_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_AMPGO22_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/BOX2.jl b/src/Meta/BOX2.jl index 76008636f..49ae04c9c 100644 --- a/src/Meta/BOX2.jl +++ b/src/Meta/BOX2.jl @@ -16,6 +16,7 @@ BOX2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_BOX2_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_BOX2_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/BOX3.jl b/src/Meta/BOX3.jl index b116b377d..6bbe31c08 100644 --- a/src/Meta/BOX3.jl +++ b/src/Meta/BOX3.jl @@ -16,6 +16,7 @@ BOX3_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_BOX3_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_BOX3_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/Dus2_1.jl b/src/Meta/Dus2_1.jl index 8b33db480..8f8609cf7 100644 --- a/src/Meta/Dus2_1.jl +++ b/src/Meta/Dus2_1.jl @@ -16,6 +16,7 @@ Dus2_1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_Dus2_1_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_Dus2_1_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/Dus2_3.jl b/src/Meta/Dus2_3.jl index ea20c347a..a8ae13cb2 100644 --- a/src/Meta/Dus2_3.jl +++ b/src/Meta/Dus2_3.jl @@ -16,6 +16,7 @@ Dus2_3_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_Dus2_3_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_Dus2_3_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/Dus2_9.jl b/src/Meta/Dus2_9.jl index a76555247..200994ad0 100644 --- a/src/Meta/Dus2_9.jl +++ b/src/Meta/Dus2_9.jl @@ -16,6 +16,7 @@ Dus2_9_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_Dus2_9_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_Dus2_9_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/Duscube.jl b/src/Meta/Duscube.jl index 89868dacd..0de353db8 100644 --- a/src/Meta/Duscube.jl +++ b/src/Meta/Duscube.jl @@ -16,6 +16,7 @@ Duscube_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_Duscube_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_Duscube_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/NZF1.jl b/src/Meta/NZF1.jl index 1d00e1d24..268ba2cf0 100644 --- a/src/Meta/NZF1.jl +++ b/src/Meta/NZF1.jl @@ -16,6 +16,7 @@ NZF1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_NZF1_nvar(; n::Integer = default_nvar, kwargs...) = 13 * max(2, div(n, 13)) get_NZF1_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/Shpak1.jl b/src/Meta/Shpak1.jl index f71bcad61..4d74f0e8a 100644 --- a/src/Meta/Shpak1.jl +++ b/src/Meta/Shpak1.jl @@ -1,4 +1,4 @@ -Shpak1_meta = Dict( +shpak1_meta = Dict( :nvar => 1, :variable_nvar => false, :ncon => 0, @@ -16,6 +16,7 @@ Shpak1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_Shpak1_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_Shpak1_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/Shpak2.jl b/src/Meta/Shpak2.jl index 6ba61ade7..a5d7c6d23 100644 --- a/src/Meta/Shpak2.jl +++ b/src/Meta/Shpak2.jl @@ -1,4 +1,4 @@ -Shpak2_meta = Dict( +shpak2_meta = Dict( :nvar => 1, :variable_nvar => false, :ncon => 0, @@ -16,6 +16,7 @@ Shpak2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_Shpak2_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_Shpak2_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/Shpak3.jl b/src/Meta/Shpak3.jl index 373ec0e7c..88689df96 100644 --- a/src/Meta/Shpak3.jl +++ b/src/Meta/Shpak3.jl @@ -1,4 +1,4 @@ -Shpak3_meta = Dict( +shpak3_meta = Dict( :nvar => 1, :variable_nvar => false, :ncon => 0, @@ -16,6 +16,7 @@ Shpak3_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_Shpak3_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_Shpak3_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/Shpak4.jl b/src/Meta/Shpak4.jl index c676e1807..2d6e1487d 100644 --- a/src/Meta/Shpak4.jl +++ b/src/Meta/Shpak4.jl @@ -1,4 +1,4 @@ -Shpak4_meta = Dict( +shpak4_meta = Dict( :nvar => 1, :variable_nvar => false, :ncon => 0, @@ -16,6 +16,7 @@ Shpak4_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_Shpak4_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_Shpak4_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/Shpak5.jl b/src/Meta/Shpak5.jl index eb108e0e6..ff72019aa 100644 --- a/src/Meta/Shpak5.jl +++ b/src/Meta/Shpak5.jl @@ -1,4 +1,4 @@ -Shpak5_meta = Dict( +shpak5_meta = Dict( :nvar => 1, :variable_nvar => false, :ncon => 0, @@ -16,6 +16,7 @@ Shpak5_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_Shpak5_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_Shpak5_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/Shpak6.jl b/src/Meta/Shpak6.jl index a7ae5b9d9..36423af62 100644 --- a/src/Meta/Shpak6.jl +++ b/src/Meta/Shpak6.jl @@ -1,4 +1,4 @@ -Shpak6_meta = Dict( +shpak6_meta = Dict( :nvar => 1, :variable_nvar => false, :ncon => 0, @@ -16,6 +16,7 @@ Shpak6_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_Shpak6_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_Shpak6_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/aircrfta.jl b/src/Meta/aircrfta.jl index dfd85ac99..4403ba464 100644 --- a/src/Meta/aircrfta.jl +++ b/src/Meta/aircrfta.jl @@ -16,6 +16,7 @@ aircrfta_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_aircrfta_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_aircrfta_ncon(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/allinit.jl b/src/Meta/allinit.jl index 9ded5f27f..2928fbee6 100644 --- a/src/Meta/allinit.jl +++ b/src/Meta/allinit.jl @@ -16,6 +16,7 @@ allinit_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_allinit_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_allinit_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/allinitc.jl b/src/Meta/allinitc.jl index 9681c7968..94f48d531 100644 --- a/src/Meta/allinitc.jl +++ b/src/Meta/allinitc.jl @@ -16,6 +16,7 @@ allinitc_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_allinitc_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_allinitc_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/allinitu.jl b/src/Meta/allinitu.jl index 621fdb717..98d20f67c 100644 --- a/src/Meta/allinitu.jl +++ b/src/Meta/allinitu.jl @@ -16,6 +16,7 @@ allinitu_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_allinitu_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_allinitu_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/alsotame.jl b/src/Meta/alsotame.jl index 891001044..e7aa0c355 100644 --- a/src/Meta/alsotame.jl +++ b/src/Meta/alsotame.jl @@ -16,6 +16,7 @@ alsotame_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_alsotame_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_alsotame_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/argauss.jl b/src/Meta/argauss.jl index 25de6bc00..164483adb 100644 --- a/src/Meta/argauss.jl +++ b/src/Meta/argauss.jl @@ -16,6 +16,7 @@ argauss_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_argauss_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_argauss_ncon(; n::Integer = default_nvar, kwargs...) = 15 diff --git a/src/Meta/arglina.jl b/src/Meta/arglina.jl index 1db5a1516..bd2485421 100644 --- a/src/Meta/arglina.jl +++ b/src/Meta/arglina.jl @@ -16,6 +16,7 @@ arglina_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_arglina_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_arglina_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/arglinb.jl b/src/Meta/arglinb.jl index 4d831a6d2..a996d18e5 100644 --- a/src/Meta/arglinb.jl +++ b/src/Meta/arglinb.jl @@ -16,6 +16,7 @@ arglinb_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_arglinb_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_arglinb_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/arglinc.jl b/src/Meta/arglinc.jl index cdb0588d2..88ca787b7 100644 --- a/src/Meta/arglinc.jl +++ b/src/Meta/arglinc.jl @@ -16,6 +16,7 @@ arglinc_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_arglinc_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_arglinc_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/argtrig.jl b/src/Meta/argtrig.jl index 41341ed79..c8435e2df 100644 --- a/src/Meta/argtrig.jl +++ b/src/Meta/argtrig.jl @@ -16,6 +16,7 @@ argtrig_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_argtrig_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_argtrig_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/arwhead.jl b/src/Meta/arwhead.jl index b2ad95d99..093fd0c3f 100644 --- a/src/Meta/arwhead.jl +++ b/src/Meta/arwhead.jl @@ -16,6 +16,7 @@ arwhead_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_arwhead_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_arwhead_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/auglag.jl b/src/Meta/auglag.jl index 75f7e5bcc..efba7545c 100644 --- a/src/Meta/auglag.jl +++ b/src/Meta/auglag.jl @@ -16,6 +16,7 @@ auglag_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :literature, + :implementation => :both, ) get_auglag_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/avion2.jl b/src/Meta/avion2.jl index a07cfe57a..1e78b23e8 100644 --- a/src/Meta/avion2.jl +++ b/src/Meta/avion2.jl @@ -16,6 +16,7 @@ avion2_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_avion2_nvar(; n::Integer = default_nvar, kwargs...) = 49 get_avion2_ncon(; n::Integer = default_nvar, kwargs...) = 15 diff --git a/src/Meta/bard.jl b/src/Meta/bard.jl index 73fb0bc55..1c841150f 100644 --- a/src/Meta/bard.jl +++ b/src/Meta/bard.jl @@ -16,6 +16,7 @@ bard_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_bard_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_bard_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/bdqrtic.jl b/src/Meta/bdqrtic.jl index 8169dfb18..16aecd6a5 100644 --- a/src/Meta/bdqrtic.jl +++ b/src/Meta/bdqrtic.jl @@ -16,6 +16,7 @@ bdqrtic_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_bdqrtic_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_bdqrtic_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/beale.jl b/src/Meta/beale.jl index 8b45b8143..f14c4c0f6 100644 --- a/src/Meta/beale.jl +++ b/src/Meta/beale.jl @@ -16,6 +16,7 @@ beale_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_beale_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_beale_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/bearing.jl b/src/Meta/bearing.jl index 43933ff83..4212cc2b3 100644 --- a/src/Meta/bearing.jl +++ b/src/Meta/bearing.jl @@ -16,6 +16,7 @@ bearing_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_bearing_nvar(; n::Integer = default_nvar, diff --git a/src/Meta/bennett5.jl b/src/Meta/bennett5.jl index af2ffa2c5..0e2de775a 100644 --- a/src/Meta/bennett5.jl +++ b/src/Meta/bennett5.jl @@ -16,6 +16,7 @@ bennett5_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_bennett5_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_bennett5_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/biggs5.jl b/src/Meta/biggs5.jl index 4a1104a44..c0d0ff597 100644 --- a/src/Meta/biggs5.jl +++ b/src/Meta/biggs5.jl @@ -16,6 +16,7 @@ biggs5_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_biggs5_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_biggs5_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/biggs6.jl b/src/Meta/biggs6.jl index 021abee01..3dd84ec3e 100644 --- a/src/Meta/biggs6.jl +++ b/src/Meta/biggs6.jl @@ -16,6 +16,7 @@ biggs6_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_biggs6_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_biggs6_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/booth.jl b/src/Meta/booth.jl index 0f52ad34f..8c9965adf 100644 --- a/src/Meta/booth.jl +++ b/src/Meta/booth.jl @@ -16,6 +16,7 @@ booth_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_booth_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_booth_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/boundary.jl b/src/Meta/boundary.jl index 8ba342972..0b9b3dffe 100644 --- a/src/Meta/boundary.jl +++ b/src/Meta/boundary.jl @@ -16,6 +16,7 @@ boundary_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :academic, + :implementation => :both, ) get_boundary_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/boxbod.jl b/src/Meta/boxbod.jl index 7c3a66b9a..02052a296 100644 --- a/src/Meta/boxbod.jl +++ b/src/Meta/boxbod.jl @@ -16,6 +16,7 @@ boxbod_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_boxbod_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_boxbod_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/bqp1var.jl b/src/Meta/bqp1var.jl index 7df147378..87f4cf177 100644 --- a/src/Meta/bqp1var.jl +++ b/src/Meta/bqp1var.jl @@ -16,6 +16,7 @@ bqp1var_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_bqp1var_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_bqp1var_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/britgas.jl b/src/Meta/britgas.jl index 3c540e86d..8019389bf 100644 --- a/src/Meta/britgas.jl +++ b/src/Meta/britgas.jl @@ -16,6 +16,7 @@ britgas_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_britgas_nvar(; n::Integer = default_nvar, kwargs...) = 450 get_britgas_ncon(; n::Integer = default_nvar, kwargs...) = 360 diff --git a/src/Meta/brownal.jl b/src/Meta/brownal.jl index 9adb6a958..17044e11c 100644 --- a/src/Meta/brownal.jl +++ b/src/Meta/brownal.jl @@ -16,6 +16,7 @@ brownal_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_brownal_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_brownal_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/brownbs.jl b/src/Meta/brownbs.jl index 0c9f1106a..9731d14e6 100644 --- a/src/Meta/brownbs.jl +++ b/src/Meta/brownbs.jl @@ -16,6 +16,7 @@ brownbs_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_brownbs_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_brownbs_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/brownden.jl b/src/Meta/brownden.jl index a46deac5e..039a6fe7e 100644 --- a/src/Meta/brownden.jl +++ b/src/Meta/brownden.jl @@ -16,6 +16,7 @@ brownden_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_brownden_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_brownden_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/browngen1.jl b/src/Meta/browngen1.jl index 1691c13f4..118f6978a 100644 --- a/src/Meta/browngen1.jl +++ b/src/Meta/browngen1.jl @@ -16,6 +16,7 @@ browngen1_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :literature, + :implementation => :both, ) get_browngen1_nvar(; n::Integer = default_nvar, kwargs...) = max(n, 2) diff --git a/src/Meta/browngen2.jl b/src/Meta/browngen2.jl index 35ba4d17e..246d06c51 100644 --- a/src/Meta/browngen2.jl +++ b/src/Meta/browngen2.jl @@ -16,6 +16,7 @@ browngen2_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :literature, + :implementation => :both, ) get_browngen2_nvar(; n::Integer = default_nvar, kwargs...) = max(2, n) diff --git a/src/Meta/broyden3d.jl b/src/Meta/broyden3d.jl index 8233aac1e..76740dfba 100644 --- a/src/Meta/broyden3d.jl +++ b/src/Meta/broyden3d.jl @@ -16,6 +16,7 @@ broyden3d_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_broyden3d_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_broyden3d_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/broyden7d.jl b/src/Meta/broyden7d.jl index e257af740..4f2e60a3a 100644 --- a/src/Meta/broyden7d.jl +++ b/src/Meta/broyden7d.jl @@ -16,6 +16,7 @@ broyden7d_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :literature, + :implementation => :both, ) get_broyden7d_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/broydn7d.jl b/src/Meta/broydn7d.jl index c9c8be34c..2ff219ed7 100644 --- a/src/Meta/broydn7d.jl +++ b/src/Meta/broydn7d.jl @@ -16,6 +16,7 @@ broydn7d_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_broydn7d_nvar(; n::Integer = default_nvar, kwargs...) = 2 * max(1, div(n, 2)) get_broydn7d_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/brybnd.jl b/src/Meta/brybnd.jl index 3add299af..1b145e72c 100644 --- a/src/Meta/brybnd.jl +++ b/src/Meta/brybnd.jl @@ -16,6 +16,7 @@ brybnd_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_brybnd_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_brybnd_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/bt1.jl b/src/Meta/bt1.jl index da67317e8..024ef4e82 100644 --- a/src/Meta/bt1.jl +++ b/src/Meta/bt1.jl @@ -16,6 +16,7 @@ bt1_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_bt1_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_bt1_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/camshape.jl b/src/Meta/camshape.jl index f7536c19b..945bf0515 100644 --- a/src/Meta/camshape.jl +++ b/src/Meta/camshape.jl @@ -16,6 +16,7 @@ camshape_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_camshape_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_camshape_ncon(; n::Integer = default_nvar, kwargs...) = 2 * n + 3 diff --git a/src/Meta/catenary.jl b/src/Meta/catenary.jl index 09e5c4152..6f8aa9ccd 100644 --- a/src/Meta/catenary.jl +++ b/src/Meta/catenary.jl @@ -16,6 +16,7 @@ catenary_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :academic, + :implementation => :both, ) get_catenary_nvar(; n::Integer = default_nvar, kwargs...) = max(6, 3 * max(1, div(n, 3))) get_catenary_ncon(; n::Integer = default_nvar, kwargs...) = max(2, max(1, div(n, 3))) - 1 diff --git a/src/Meta/catmix.jl b/src/Meta/catmix.jl index 968f4014f..e6c8dd13c 100644 --- a/src/Meta/catmix.jl +++ b/src/Meta/catmix.jl @@ -16,6 +16,7 @@ catmix_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_catmix_nvar(; n::Integer = default_nvar, kwargs...) = 23 * n + 2 get_catmix_ncon(; n::Integer = default_nvar, kwargs...) = 20 * n + 2 diff --git a/src/Meta/chain.jl b/src/Meta/chain.jl index 16e0057da..22a27ee60 100644 --- a/src/Meta/chain.jl +++ b/src/Meta/chain.jl @@ -16,6 +16,7 @@ chain_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_chain_nvar(; n::Integer = default_nvar, kwargs...) = 4 * (max(2, div(n - 4, 4)) + 1) get_chain_ncon(; n::Integer = default_nvar, kwargs...) = 3 * max(2, div(n - 4, 4)) + 5 diff --git a/src/Meta/chainwoo.jl b/src/Meta/chainwoo.jl index 63036f1f1..e533a3d99 100644 --- a/src/Meta/chainwoo.jl +++ b/src/Meta/chainwoo.jl @@ -16,6 +16,7 @@ chainwoo_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_chainwoo_nvar(; n::Integer = default_nvar, kwargs...) = 4 * max(1, div(n, 4)) get_chainwoo_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/channel.jl b/src/Meta/channel.jl index d30eaeaeb..40abcb6ea 100644 --- a/src/Meta/channel.jl +++ b/src/Meta/channel.jl @@ -16,6 +16,7 @@ channel_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_channel_nvar(; n::Integer = default_nvar, kwargs...) = 8 * max(2, div(n, 8)) get_channel_ncon(; n::Integer = default_nvar, kwargs...) = diff --git a/src/Meta/chnrosnb_mod.jl b/src/Meta/chnrosnb_mod.jl index 4ac194a64..059d37cde 100644 --- a/src/Meta/chnrosnb_mod.jl +++ b/src/Meta/chnrosnb_mod.jl @@ -16,6 +16,7 @@ chnrosnb_mod_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_chnrosnb_mod_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_chnrosnb_mod_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/chwirut1.jl b/src/Meta/chwirut1.jl index c755976fd..f7340a531 100644 --- a/src/Meta/chwirut1.jl +++ b/src/Meta/chwirut1.jl @@ -16,6 +16,7 @@ chwirut1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_chwirut1_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_chwirut1_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/chwirut2.jl b/src/Meta/chwirut2.jl index 415fc5000..effbed66b 100644 --- a/src/Meta/chwirut2.jl +++ b/src/Meta/chwirut2.jl @@ -16,6 +16,7 @@ chwirut2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_chwirut2_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_chwirut2_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/cliff.jl b/src/Meta/cliff.jl index f7f0b8049..44f3f35ba 100644 --- a/src/Meta/cliff.jl +++ b/src/Meta/cliff.jl @@ -16,6 +16,7 @@ cliff_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_cliff_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_cliff_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/clnlbeam.jl b/src/Meta/clnlbeam.jl index c2bdfa2a8..302a020d9 100644 --- a/src/Meta/clnlbeam.jl +++ b/src/Meta/clnlbeam.jl @@ -16,6 +16,7 @@ clnlbeam_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_clnlbeam_nvar(; n::Integer = default_nvar, kwargs...) = 3 * div(n - 3, 3) + 3 get_clnlbeam_ncon(; n::Integer = default_nvar, kwargs...) = 2 * div(n - 3, 3) diff --git a/src/Meta/clplatea.jl b/src/Meta/clplatea.jl index 97d5132da..51ccf99df 100644 --- a/src/Meta/clplatea.jl +++ b/src/Meta/clplatea.jl @@ -16,6 +16,7 @@ clplatea_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_clplatea_nvar(; n::Integer = default_nvar, kwargs...) = floor(Int, sqrt(n))^2 get_clplatea_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/clplateb.jl b/src/Meta/clplateb.jl index 2cc543349..1beb34e65 100644 --- a/src/Meta/clplateb.jl +++ b/src/Meta/clplateb.jl @@ -16,6 +16,7 @@ clplateb_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_clplateb_nvar(; n::Integer = default_nvar, kwargs...) = floor(Int, sqrt(n))^2 get_clplateb_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/clplatec.jl b/src/Meta/clplatec.jl index 00162eadc..ce24301fd 100644 --- a/src/Meta/clplatec.jl +++ b/src/Meta/clplatec.jl @@ -16,6 +16,7 @@ clplatec_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_clplatec_nvar(; n::Integer = default_nvar, kwargs...) = floor(Int, sqrt(n))^2 get_clplatec_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/controlinvestment.jl b/src/Meta/controlinvestment.jl index 89008bb84..61bb18fca 100644 --- a/src/Meta/controlinvestment.jl +++ b/src/Meta/controlinvestment.jl @@ -16,6 +16,7 @@ controlinvestment_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_controlinvestment_nvar(; n::Integer = default_nvar, kwargs...) = 2 * div(n, 2) get_controlinvestment_ncon(; n::Integer = default_nvar, kwargs...) = div(n, 2) diff --git a/src/Meta/cosine.jl b/src/Meta/cosine.jl index ca0413927..087c1f463 100644 --- a/src/Meta/cosine.jl +++ b/src/Meta/cosine.jl @@ -16,6 +16,7 @@ cosine_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_cosine_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_cosine_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/cragglvy.jl b/src/Meta/cragglvy.jl index 900486219..544bff345 100644 --- a/src/Meta/cragglvy.jl +++ b/src/Meta/cragglvy.jl @@ -16,6 +16,7 @@ cragglvy_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_cragglvy_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_cragglvy_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/cragglvy2.jl b/src/Meta/cragglvy2.jl index 194bfca92..2373b5377 100644 --- a/src/Meta/cragglvy2.jl +++ b/src/Meta/cragglvy2.jl @@ -16,6 +16,7 @@ cragglvy2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_cragglvy2_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/curly.jl b/src/Meta/curly.jl index 122f5cd21..b2c854fde 100644 --- a/src/Meta/curly.jl +++ b/src/Meta/curly.jl @@ -16,6 +16,7 @@ curly_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_curly_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_curly_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/curly10.jl b/src/Meta/curly10.jl index 6567720c2..35b9d39eb 100644 --- a/src/Meta/curly10.jl +++ b/src/Meta/curly10.jl @@ -16,6 +16,7 @@ curly10_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_curly10_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_curly10_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/curly20.jl b/src/Meta/curly20.jl index 0f1f9ff90..bee8fbf11 100644 --- a/src/Meta/curly20.jl +++ b/src/Meta/curly20.jl @@ -16,6 +16,7 @@ curly20_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_curly20_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_curly20_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/curly30.jl b/src/Meta/curly30.jl index 4428e98f8..ba9c6a2ae 100644 --- a/src/Meta/curly30.jl +++ b/src/Meta/curly30.jl @@ -16,6 +16,7 @@ curly30_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_curly30_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_curly30_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/danwood.jl b/src/Meta/danwood.jl index 96642cf2b..fe3955ecc 100644 --- a/src/Meta/danwood.jl +++ b/src/Meta/danwood.jl @@ -16,6 +16,7 @@ danwood_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_danwood_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_danwood_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixmaane.jl b/src/Meta/dixmaane.jl index 2037efaa2..2ff7ababc 100644 --- a/src/Meta/dixmaane.jl +++ b/src/Meta/dixmaane.jl @@ -16,6 +16,7 @@ dixmaane_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixmaane_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) get_dixmaane_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixmaanf.jl b/src/Meta/dixmaanf.jl index d38b3de76..1ad482ec1 100644 --- a/src/Meta/dixmaanf.jl +++ b/src/Meta/dixmaanf.jl @@ -16,6 +16,7 @@ dixmaanf_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixmaanf_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) get_dixmaanf_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixmaang.jl b/src/Meta/dixmaang.jl index 076494781..29f206170 100644 --- a/src/Meta/dixmaang.jl +++ b/src/Meta/dixmaang.jl @@ -16,6 +16,7 @@ dixmaang_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixmaang_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) get_dixmaang_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixmaanh.jl b/src/Meta/dixmaanh.jl index fb397f6a1..c4f097150 100644 --- a/src/Meta/dixmaanh.jl +++ b/src/Meta/dixmaanh.jl @@ -16,6 +16,7 @@ dixmaanh_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixmaanh_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) get_dixmaanh_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixmaani.jl b/src/Meta/dixmaani.jl index 76b9700d5..4c34118ca 100644 --- a/src/Meta/dixmaani.jl +++ b/src/Meta/dixmaani.jl @@ -16,6 +16,7 @@ dixmaani_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixmaani_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) get_dixmaani_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixmaanj.jl b/src/Meta/dixmaanj.jl index 530b0f4fe..fac6f0bbc 100644 --- a/src/Meta/dixmaanj.jl +++ b/src/Meta/dixmaanj.jl @@ -16,6 +16,7 @@ dixmaanj_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixmaanj_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) get_dixmaanj_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixmaank.jl b/src/Meta/dixmaank.jl index 0022bcf2b..63cbf4c07 100644 --- a/src/Meta/dixmaank.jl +++ b/src/Meta/dixmaank.jl @@ -16,6 +16,7 @@ dixmaank_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixmaank_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) get_dixmaank_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixmaanl.jl b/src/Meta/dixmaanl.jl index d83d79249..0b62391d9 100644 --- a/src/Meta/dixmaanl.jl +++ b/src/Meta/dixmaanl.jl @@ -16,6 +16,7 @@ dixmaanl_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixmaanl_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) get_dixmaanl_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixmaanm.jl b/src/Meta/dixmaanm.jl index 902c7257e..21addbbae 100644 --- a/src/Meta/dixmaanm.jl +++ b/src/Meta/dixmaanm.jl @@ -16,6 +16,7 @@ dixmaanm_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixmaanm_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) get_dixmaanm_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixmaann.jl b/src/Meta/dixmaann.jl index dc60db323..6c209098d 100644 --- a/src/Meta/dixmaann.jl +++ b/src/Meta/dixmaann.jl @@ -16,6 +16,7 @@ dixmaann_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixmaann_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) get_dixmaann_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixmaano.jl b/src/Meta/dixmaano.jl index a740ee65a..c3ba72019 100644 --- a/src/Meta/dixmaano.jl +++ b/src/Meta/dixmaano.jl @@ -16,6 +16,7 @@ dixmaano_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixmaano_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) get_dixmaano_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixmaanp.jl b/src/Meta/dixmaanp.jl index ab30bfede..410582088 100644 --- a/src/Meta/dixmaanp.jl +++ b/src/Meta/dixmaanp.jl @@ -16,6 +16,7 @@ dixmaanp_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixmaanp_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) get_dixmaanp_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dixon3dq.jl b/src/Meta/dixon3dq.jl index b1167abdf..ce4eab500 100644 --- a/src/Meta/dixon3dq.jl +++ b/src/Meta/dixon3dq.jl @@ -16,6 +16,7 @@ dixon3dq_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dixon3dq_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_dixon3dq_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dqdrtic.jl b/src/Meta/dqdrtic.jl index 03fa3f6b3..c1010e4c3 100644 --- a/src/Meta/dqdrtic.jl +++ b/src/Meta/dqdrtic.jl @@ -16,6 +16,7 @@ dqdrtic_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dqdrtic_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_dqdrtic_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/dqrtic.jl b/src/Meta/dqrtic.jl index 2cb568179..d1a21c4ea 100644 --- a/src/Meta/dqrtic.jl +++ b/src/Meta/dqrtic.jl @@ -16,6 +16,7 @@ dqrtic_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_dqrtic_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_dqrtic_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/eckerle4.jl b/src/Meta/eckerle4.jl index 3a5c12c53..ea1ae82fb 100644 --- a/src/Meta/eckerle4.jl +++ b/src/Meta/eckerle4.jl @@ -16,6 +16,7 @@ eckerle4_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_eckerle4_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_eckerle4_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/edensch.jl b/src/Meta/edensch.jl index 9ac722418..3ef580a9d 100644 --- a/src/Meta/edensch.jl +++ b/src/Meta/edensch.jl @@ -16,6 +16,7 @@ edensch_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_edensch_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_edensch_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/eg2.jl b/src/Meta/eg2.jl index e012fa559..0c496b7e4 100644 --- a/src/Meta/eg2.jl +++ b/src/Meta/eg2.jl @@ -16,6 +16,7 @@ eg2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_eg2_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_eg2_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/elec.jl b/src/Meta/elec.jl index 84e4b91d8..9f216b6aa 100644 --- a/src/Meta/elec.jl +++ b/src/Meta/elec.jl @@ -16,6 +16,7 @@ elec_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_elec_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(2, div(n, 3)) get_elec_ncon(; n::Integer = default_nvar, kwargs...) = max(2, div(n, 3)) diff --git a/src/Meta/engval1.jl b/src/Meta/engval1.jl index 432b0616a..bc5704b0d 100644 --- a/src/Meta/engval1.jl +++ b/src/Meta/engval1.jl @@ -16,6 +16,7 @@ engval1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_engval1_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_engval1_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/enso.jl b/src/Meta/enso.jl index a010b3090..e1f7474a9 100644 --- a/src/Meta/enso.jl +++ b/src/Meta/enso.jl @@ -16,6 +16,7 @@ enso_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_enso_nvar(; n::Integer = default_nvar, kwargs...) = 9 get_enso_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/errinros_mod.jl b/src/Meta/errinros_mod.jl index 01a24d5f8..31923121f 100644 --- a/src/Meta/errinros_mod.jl +++ b/src/Meta/errinros_mod.jl @@ -16,6 +16,7 @@ errinros_mod_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_errinros_mod_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_errinros_mod_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/extrosnb.jl b/src/Meta/extrosnb.jl index 7503572c6..e286b308f 100644 --- a/src/Meta/extrosnb.jl +++ b/src/Meta/extrosnb.jl @@ -16,6 +16,7 @@ extrosnb_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_extrosnb_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_extrosnb_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/fletcbv2.jl b/src/Meta/fletcbv2.jl index c1640e209..cab40b640 100644 --- a/src/Meta/fletcbv2.jl +++ b/src/Meta/fletcbv2.jl @@ -16,6 +16,7 @@ fletcbv2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_fletcbv2_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_fletcbv2_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/fletcbv3_mod.jl b/src/Meta/fletcbv3_mod.jl index 2216cc000..169d664aa 100644 --- a/src/Meta/fletcbv3_mod.jl +++ b/src/Meta/fletcbv3_mod.jl @@ -16,6 +16,7 @@ fletcbv3_mod_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_fletcbv3_mod_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_fletcbv3_mod_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/fletchcr.jl b/src/Meta/fletchcr.jl index 7285200ec..49e322d01 100644 --- a/src/Meta/fletchcr.jl +++ b/src/Meta/fletchcr.jl @@ -16,6 +16,7 @@ fletchcr_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_fletchcr_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_fletchcr_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/fminsrf2.jl b/src/Meta/fminsrf2.jl index 2e2851f0c..9887410ef 100644 --- a/src/Meta/fminsrf2.jl +++ b/src/Meta/fminsrf2.jl @@ -16,6 +16,7 @@ fminsrf2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_fminsrf2_nvar(; n::Integer = default_nvar, kwargs...) = 100 get_fminsrf2_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/freuroth.jl b/src/Meta/freuroth.jl index 3ed2aa6df..c846b6dad 100644 --- a/src/Meta/freuroth.jl +++ b/src/Meta/freuroth.jl @@ -16,6 +16,7 @@ freuroth_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_freuroth_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_freuroth_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/gasoil.jl b/src/Meta/gasoil.jl index 8bf105941..77b6eac4b 100644 --- a/src/Meta/gasoil.jl +++ b/src/Meta/gasoil.jl @@ -16,6 +16,7 @@ gasoil_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_gasoil_nvar(; n::Integer = default_nvar, kwargs...) = 26 * n + 3 get_gasoil_ncon(; n::Integer = default_nvar, kwargs...) = 26 * n + 0 diff --git a/src/Meta/gauss1.jl b/src/Meta/gauss1.jl index 0d9c1959c..e76acb505 100644 --- a/src/Meta/gauss1.jl +++ b/src/Meta/gauss1.jl @@ -16,6 +16,7 @@ gauss1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_gauss1_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_gauss1_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/gauss2.jl b/src/Meta/gauss2.jl index 14799cf09..890ea62d0 100644 --- a/src/Meta/gauss2.jl +++ b/src/Meta/gauss2.jl @@ -16,6 +16,7 @@ gauss2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_gauss2_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_gauss2_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/gauss3.jl b/src/Meta/gauss3.jl index 21f1306fc..ad2bc8988 100644 --- a/src/Meta/gauss3.jl +++ b/src/Meta/gauss3.jl @@ -16,6 +16,7 @@ gauss3_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_gauss3_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_gauss3_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/gaussian.jl b/src/Meta/gaussian.jl index 61019d115..539a4ae80 100644 --- a/src/Meta/gaussian.jl +++ b/src/Meta/gaussian.jl @@ -16,6 +16,7 @@ gaussian_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_gaussian_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_gaussian_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/genbroydenb.jl b/src/Meta/genbroydenb.jl index 2ecb87ad4..bba6c12de 100644 --- a/src/Meta/genbroydenb.jl +++ b/src/Meta/genbroydenb.jl @@ -16,6 +16,7 @@ genbroydenb_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :literature, + :implementation => :both, ) get_genbroydenb_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/genbroydentri.jl b/src/Meta/genbroydentri.jl index 4ee3003de..5a89298cc 100644 --- a/src/Meta/genbroydentri.jl +++ b/src/Meta/genbroydentri.jl @@ -16,6 +16,7 @@ genbroydentri_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :literature, + :implementation => :both, ) get_genbroydentri_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/genhumps.jl b/src/Meta/genhumps.jl index 992389569..9039ee523 100644 --- a/src/Meta/genhumps.jl +++ b/src/Meta/genhumps.jl @@ -16,6 +16,7 @@ genhumps_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_genhumps_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_genhumps_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/genrose.jl b/src/Meta/genrose.jl index 53fe1bc2e..aecf76c2c 100644 --- a/src/Meta/genrose.jl +++ b/src/Meta/genrose.jl @@ -16,6 +16,7 @@ genrose_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_genrose_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_genrose_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/genrose_nash.jl b/src/Meta/genrose_nash.jl index 62651bf53..5f9425255 100644 --- a/src/Meta/genrose_nash.jl +++ b/src/Meta/genrose_nash.jl @@ -16,6 +16,7 @@ genrose_nash_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_genrose_nash_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_genrose_nash_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/glider.jl b/src/Meta/glider.jl index 6a31a0298..c1578c457 100644 --- a/src/Meta/glider.jl +++ b/src/Meta/glider.jl @@ -16,6 +16,7 @@ glider_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_glider_nvar(; n::Integer = default_nvar, kwargs...) = 5 * n + 6 get_glider_ncon(; n::Integer = default_nvar, kwargs...) = 4 * n + 7 diff --git a/src/Meta/gulf.jl b/src/Meta/gulf.jl index 50763d053..defecf77f 100644 --- a/src/Meta/gulf.jl +++ b/src/Meta/gulf.jl @@ -16,6 +16,7 @@ gulf_meta = Dict( :is_feasible => true, :defined_everywhere => false, :origin => :real, + :implementation => :both, ) get_gulf_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_gulf_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hahn1.jl b/src/Meta/hahn1.jl index a5e6896ce..dd24acb3a 100644 --- a/src/Meta/hahn1.jl +++ b/src/Meta/hahn1.jl @@ -16,6 +16,7 @@ hahn1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hahn1_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_hahn1_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/helical.jl b/src/Meta/helical.jl index fb99f9183..c227b42f4 100644 --- a/src/Meta/helical.jl +++ b/src/Meta/helical.jl @@ -16,6 +16,7 @@ helical_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_helical_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_helical_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hovercraft1d.jl b/src/Meta/hovercraft1d.jl index 7f3fffe53..08aa5331f 100644 --- a/src/Meta/hovercraft1d.jl +++ b/src/Meta/hovercraft1d.jl @@ -16,6 +16,7 @@ hovercraft1d_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hovercraft1d_nvar(; n::Integer = default_nvar, kwargs...) = 3 * div(n, 3) - 1 get_hovercraft1d_ncon(; n::Integer = default_nvar, kwargs...) = 2 * div(n, 3) + 2 diff --git a/src/Meta/hs1.jl b/src/Meta/hs1.jl index fd431abb9..722c3fae1 100644 --- a/src/Meta/hs1.jl +++ b/src/Meta/hs1.jl @@ -16,6 +16,7 @@ hs1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs1_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs1_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs10.jl b/src/Meta/hs10.jl index cb4621b55..2e4cc929d 100644 --- a/src/Meta/hs10.jl +++ b/src/Meta/hs10.jl @@ -16,6 +16,7 @@ hs10_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs10_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs10_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs100.jl b/src/Meta/hs100.jl index bec68d4e1..c5931de88 100644 --- a/src/Meta/hs100.jl +++ b/src/Meta/hs100.jl @@ -16,6 +16,7 @@ hs100_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs100_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_hs100_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs101.jl b/src/Meta/hs101.jl index 96d2dc669..5387b662b 100644 --- a/src/Meta/hs101.jl +++ b/src/Meta/hs101.jl @@ -16,6 +16,7 @@ hs101_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs101_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_hs101_ncon(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/hs102.jl b/src/Meta/hs102.jl index 47eda9b42..4b94a0fa2 100644 --- a/src/Meta/hs102.jl +++ b/src/Meta/hs102.jl @@ -16,6 +16,7 @@ hs102_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs102_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_hs102_ncon(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/hs103.jl b/src/Meta/hs103.jl index 7d1e9946a..46d8a5cd5 100644 --- a/src/Meta/hs103.jl +++ b/src/Meta/hs103.jl @@ -16,6 +16,7 @@ hs103_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs103_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_hs103_ncon(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/hs104.jl b/src/Meta/hs104.jl index fe6ed9222..ec6fb679e 100644 --- a/src/Meta/hs104.jl +++ b/src/Meta/hs104.jl @@ -16,6 +16,7 @@ hs104_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs104_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_hs104_ncon(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/hs105.jl b/src/Meta/hs105.jl index d41eeef3a..b3c57ed96 100644 --- a/src/Meta/hs105.jl +++ b/src/Meta/hs105.jl @@ -16,6 +16,7 @@ hs105_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs105_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_hs105_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs106.jl b/src/Meta/hs106.jl index 49bc3871e..9ff305ba4 100644 --- a/src/Meta/hs106.jl +++ b/src/Meta/hs106.jl @@ -16,6 +16,7 @@ hs106_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs106_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_hs106_ncon(; n::Integer = default_nvar, kwargs...) = 6 diff --git a/src/Meta/hs107.jl b/src/Meta/hs107.jl index e0fd69fca..e828651ee 100644 --- a/src/Meta/hs107.jl +++ b/src/Meta/hs107.jl @@ -16,6 +16,7 @@ hs107_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs107_nvar(; n::Integer = default_nvar, kwargs...) = 9 get_hs107_ncon(; n::Integer = default_nvar, kwargs...) = 6 diff --git a/src/Meta/hs108.jl b/src/Meta/hs108.jl index 3bb568cd9..b9997f527 100644 --- a/src/Meta/hs108.jl +++ b/src/Meta/hs108.jl @@ -16,6 +16,7 @@ hs108_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs108_nvar(; n::Integer = default_nvar, kwargs...) = 9 get_hs108_ncon(; n::Integer = default_nvar, kwargs...) = 12 diff --git a/src/Meta/hs109.jl b/src/Meta/hs109.jl index 818327f90..de874d16e 100644 --- a/src/Meta/hs109.jl +++ b/src/Meta/hs109.jl @@ -16,6 +16,7 @@ hs109_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs109_nvar(; n::Integer = default_nvar, kwargs...) = 9 get_hs109_ncon(; n::Integer = default_nvar, kwargs...) = 9 diff --git a/src/Meta/hs11.jl b/src/Meta/hs11.jl index a9a5548e6..c182ab9ef 100644 --- a/src/Meta/hs11.jl +++ b/src/Meta/hs11.jl @@ -16,6 +16,7 @@ hs11_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs11_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs11_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs110.jl b/src/Meta/hs110.jl index 2c69c09fe..a14f19369 100644 --- a/src/Meta/hs110.jl +++ b/src/Meta/hs110.jl @@ -16,6 +16,7 @@ hs110_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs110_nvar(; n::Integer = default_nvar, kwargs...) = 10 get_hs110_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs111.jl b/src/Meta/hs111.jl index 989b97484..86cd8c925 100644 --- a/src/Meta/hs111.jl +++ b/src/Meta/hs111.jl @@ -16,6 +16,7 @@ hs111_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs111_nvar(; n::Integer = default_nvar, kwargs...) = 10 get_hs111_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs112.jl b/src/Meta/hs112.jl index 31ce58d0c..837b880af 100644 --- a/src/Meta/hs112.jl +++ b/src/Meta/hs112.jl @@ -16,6 +16,7 @@ hs112_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs112_nvar(; n::Integer = default_nvar, kwargs...) = 10 get_hs112_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs113.jl b/src/Meta/hs113.jl index 54db48c6f..cf6dd74a8 100644 --- a/src/Meta/hs113.jl +++ b/src/Meta/hs113.jl @@ -16,6 +16,7 @@ hs113_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs113_nvar(; n::Integer = default_nvar, kwargs...) = 10 get_hs113_ncon(; n::Integer = default_nvar, kwargs...) = 8 diff --git a/src/Meta/hs114.jl b/src/Meta/hs114.jl index 1741dd1c4..ac4e9824a 100644 --- a/src/Meta/hs114.jl +++ b/src/Meta/hs114.jl @@ -16,6 +16,7 @@ hs114_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs114_nvar(; n::Integer = default_nvar, kwargs...) = 10 get_hs114_ncon(; n::Integer = default_nvar, kwargs...) = 11 diff --git a/src/Meta/hs116.jl b/src/Meta/hs116.jl index 47be81dc2..b915f8a71 100644 --- a/src/Meta/hs116.jl +++ b/src/Meta/hs116.jl @@ -16,6 +16,7 @@ hs116_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs116_nvar(; n::Integer = default_nvar, kwargs...) = 13 get_hs116_ncon(; n::Integer = default_nvar, kwargs...) = 15 diff --git a/src/Meta/hs117.jl b/src/Meta/hs117.jl index 9c062b5c9..edebcf1c4 100644 --- a/src/Meta/hs117.jl +++ b/src/Meta/hs117.jl @@ -16,6 +16,7 @@ hs117_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs117_nvar(; n::Integer = default_nvar, kwargs...) = 15 get_hs117_ncon(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/hs118.jl b/src/Meta/hs118.jl index 52c4c7cac..dcc1d171b 100644 --- a/src/Meta/hs118.jl +++ b/src/Meta/hs118.jl @@ -16,6 +16,7 @@ hs118_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs118_nvar(; n::Integer = default_nvar, kwargs...) = 15 get_hs118_ncon(; n::Integer = default_nvar, kwargs...) = 17 diff --git a/src/Meta/hs119.jl b/src/Meta/hs119.jl index 2876677c4..a9ceba1da 100644 --- a/src/Meta/hs119.jl +++ b/src/Meta/hs119.jl @@ -16,6 +16,7 @@ hs119_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs119_nvar(; n::Integer = default_nvar, kwargs...) = 16 get_hs119_ncon(; n::Integer = default_nvar, kwargs...) = 8 diff --git a/src/Meta/hs12.jl b/src/Meta/hs12.jl index afca140ba..52f351404 100644 --- a/src/Meta/hs12.jl +++ b/src/Meta/hs12.jl @@ -16,6 +16,7 @@ hs12_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs12_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs12_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs13.jl b/src/Meta/hs13.jl index 6979c00a8..bcce0bf58 100644 --- a/src/Meta/hs13.jl +++ b/src/Meta/hs13.jl @@ -16,6 +16,7 @@ hs13_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs13_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs13_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs14.jl b/src/Meta/hs14.jl index 619a41af2..375da7993 100644 --- a/src/Meta/hs14.jl +++ b/src/Meta/hs14.jl @@ -16,6 +16,7 @@ hs14_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs14_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs14_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs15.jl b/src/Meta/hs15.jl index 69b45ce60..1f7be523a 100644 --- a/src/Meta/hs15.jl +++ b/src/Meta/hs15.jl @@ -16,6 +16,7 @@ hs15_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs15_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs15_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs16.jl b/src/Meta/hs16.jl index c93326e18..6ae798a6a 100644 --- a/src/Meta/hs16.jl +++ b/src/Meta/hs16.jl @@ -16,6 +16,7 @@ hs16_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs16_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs16_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs17.jl b/src/Meta/hs17.jl index 8478a2b18..877440612 100644 --- a/src/Meta/hs17.jl +++ b/src/Meta/hs17.jl @@ -16,6 +16,7 @@ hs17_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs17_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs17_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs18.jl b/src/Meta/hs18.jl index 1bb95e94f..7ed951567 100644 --- a/src/Meta/hs18.jl +++ b/src/Meta/hs18.jl @@ -16,6 +16,7 @@ hs18_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs18_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs18_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs19.jl b/src/Meta/hs19.jl index eedec28bf..bfc55071d 100644 --- a/src/Meta/hs19.jl +++ b/src/Meta/hs19.jl @@ -16,6 +16,7 @@ hs19_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs19_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs19_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs2.jl b/src/Meta/hs2.jl index 5c5e4152a..51dc17cfd 100644 --- a/src/Meta/hs2.jl +++ b/src/Meta/hs2.jl @@ -16,6 +16,7 @@ hs2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs2_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs2_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs20.jl b/src/Meta/hs20.jl index 91b4038b2..86c7263ae 100644 --- a/src/Meta/hs20.jl +++ b/src/Meta/hs20.jl @@ -16,6 +16,7 @@ hs20_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs20_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs20_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs201.jl b/src/Meta/hs201.jl index 0ed7b4bb1..0a5bb146f 100644 --- a/src/Meta/hs201.jl +++ b/src/Meta/hs201.jl @@ -16,6 +16,7 @@ hs201_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs201_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs201_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs21.jl b/src/Meta/hs21.jl index fe79be68b..7be0070df 100644 --- a/src/Meta/hs21.jl +++ b/src/Meta/hs21.jl @@ -16,6 +16,7 @@ hs21_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs21_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs21_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs211.jl b/src/Meta/hs211.jl index b3a8622ae..8a997260d 100644 --- a/src/Meta/hs211.jl +++ b/src/Meta/hs211.jl @@ -16,6 +16,7 @@ hs211_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs211_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs211_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs219.jl b/src/Meta/hs219.jl index da47ae177..4119b3d0a 100644 --- a/src/Meta/hs219.jl +++ b/src/Meta/hs219.jl @@ -16,6 +16,7 @@ hs219_meta = Dict( :is_feasible => true, :defined_everywhere => true, :origin => :unknown, + :implementation => :both, ) get_hs219_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs219_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs22.jl b/src/Meta/hs22.jl index f9cef42bb..22197aba2 100644 --- a/src/Meta/hs22.jl +++ b/src/Meta/hs22.jl @@ -16,6 +16,7 @@ hs22_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs22_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs22_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs220.jl b/src/Meta/hs220.jl index 3a81f74ba..4d090ff67 100644 --- a/src/Meta/hs220.jl +++ b/src/Meta/hs220.jl @@ -16,6 +16,7 @@ hs220_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs220_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs220_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs221.jl b/src/Meta/hs221.jl index e8e8f70e8..d2916dd1f 100644 --- a/src/Meta/hs221.jl +++ b/src/Meta/hs221.jl @@ -16,6 +16,7 @@ hs221_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs221_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs221_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs222.jl b/src/Meta/hs222.jl index f9bc7df95..b983c38ba 100644 --- a/src/Meta/hs222.jl +++ b/src/Meta/hs222.jl @@ -16,6 +16,7 @@ hs222_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs222_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs222_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs223.jl b/src/Meta/hs223.jl index 9b765b2cc..e4f809f10 100644 --- a/src/Meta/hs223.jl +++ b/src/Meta/hs223.jl @@ -16,6 +16,7 @@ hs223_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs223_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs223_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs224.jl b/src/Meta/hs224.jl index e6e29d1ad..aad1a3693 100644 --- a/src/Meta/hs224.jl +++ b/src/Meta/hs224.jl @@ -16,6 +16,7 @@ hs224_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs224_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs224_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs225.jl b/src/Meta/hs225.jl index a59aa14ee..abe93ef31 100644 --- a/src/Meta/hs225.jl +++ b/src/Meta/hs225.jl @@ -16,6 +16,7 @@ hs225_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs225_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs225_ncon(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/hs226.jl b/src/Meta/hs226.jl index c7944e788..0177c0c14 100644 --- a/src/Meta/hs226.jl +++ b/src/Meta/hs226.jl @@ -16,6 +16,7 @@ hs226_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs226_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs226_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs227.jl b/src/Meta/hs227.jl index fd0a0d2fb..af3c9f6d9 100644 --- a/src/Meta/hs227.jl +++ b/src/Meta/hs227.jl @@ -16,6 +16,7 @@ hs227_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs227_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs227_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs228.jl b/src/Meta/hs228.jl index c043053d1..790eee17d 100644 --- a/src/Meta/hs228.jl +++ b/src/Meta/hs228.jl @@ -16,6 +16,7 @@ hs228_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs228_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs228_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs229.jl b/src/Meta/hs229.jl index cedf7d599..d0190194a 100644 --- a/src/Meta/hs229.jl +++ b/src/Meta/hs229.jl @@ -16,6 +16,7 @@ hs229_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs229_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs229_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs23.jl b/src/Meta/hs23.jl index 1c7dc3a8f..a9ce1c19a 100644 --- a/src/Meta/hs23.jl +++ b/src/Meta/hs23.jl @@ -16,6 +16,7 @@ hs23_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs23_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs23_ncon(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/hs230.jl b/src/Meta/hs230.jl index 503b50404..1ad60613f 100644 --- a/src/Meta/hs230.jl +++ b/src/Meta/hs230.jl @@ -16,6 +16,7 @@ hs230_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs230_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs230_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs231.jl b/src/Meta/hs231.jl index 3d04572aa..e27c367b8 100644 --- a/src/Meta/hs231.jl +++ b/src/Meta/hs231.jl @@ -16,6 +16,7 @@ hs231_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs231_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs231_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs232.jl b/src/Meta/hs232.jl index 4af57a70b..ad6aa6950 100644 --- a/src/Meta/hs232.jl +++ b/src/Meta/hs232.jl @@ -16,6 +16,7 @@ hs232_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs232_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs232_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs233.jl b/src/Meta/hs233.jl index 719de3438..4e1d45e92 100644 --- a/src/Meta/hs233.jl +++ b/src/Meta/hs233.jl @@ -16,6 +16,7 @@ hs233_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs233_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs233_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs234.jl b/src/Meta/hs234.jl index 81237bec2..2a50d3950 100644 --- a/src/Meta/hs234.jl +++ b/src/Meta/hs234.jl @@ -16,6 +16,7 @@ hs234_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs234_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs234_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs235.jl b/src/Meta/hs235.jl index 7da5a8e49..116f07482 100644 --- a/src/Meta/hs235.jl +++ b/src/Meta/hs235.jl @@ -16,6 +16,7 @@ hs235_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs235_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs235_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs236.jl b/src/Meta/hs236.jl index 9bf873f25..0a7825546 100644 --- a/src/Meta/hs236.jl +++ b/src/Meta/hs236.jl @@ -16,6 +16,7 @@ hs236_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs236_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs236_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs237.jl b/src/Meta/hs237.jl index 72a098e75..aaf6c49ad 100644 --- a/src/Meta/hs237.jl +++ b/src/Meta/hs237.jl @@ -16,6 +16,7 @@ hs237_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs237_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs237_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs238.jl b/src/Meta/hs238.jl index 259fdac2a..a97461a66 100644 --- a/src/Meta/hs238.jl +++ b/src/Meta/hs238.jl @@ -16,6 +16,7 @@ hs238_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs238_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs238_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs239.jl b/src/Meta/hs239.jl index f60e88e21..b2c607abc 100644 --- a/src/Meta/hs239.jl +++ b/src/Meta/hs239.jl @@ -16,6 +16,7 @@ hs239_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs239_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs239_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs24.jl b/src/Meta/hs24.jl index 3b3377148..6c91b230c 100644 --- a/src/Meta/hs24.jl +++ b/src/Meta/hs24.jl @@ -16,6 +16,7 @@ hs24_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs24_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs24_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs240.jl b/src/Meta/hs240.jl index c22b9bddb..a159c5229 100644 --- a/src/Meta/hs240.jl +++ b/src/Meta/hs240.jl @@ -16,6 +16,7 @@ hs240_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs240_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs240_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs241.jl b/src/Meta/hs241.jl index f40486d3f..b1e8db19c 100644 --- a/src/Meta/hs241.jl +++ b/src/Meta/hs241.jl @@ -16,6 +16,7 @@ hs241_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs241_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs241_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs242.jl b/src/Meta/hs242.jl index 24ea2b7a4..b00a4277f 100644 --- a/src/Meta/hs242.jl +++ b/src/Meta/hs242.jl @@ -16,6 +16,7 @@ hs242_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs242_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs242_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs243.jl b/src/Meta/hs243.jl index ac26ab5d9..e7c47041d 100644 --- a/src/Meta/hs243.jl +++ b/src/Meta/hs243.jl @@ -16,6 +16,7 @@ hs243_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs243_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs243_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs244.jl b/src/Meta/hs244.jl index e3ba8001e..112b93e54 100644 --- a/src/Meta/hs244.jl +++ b/src/Meta/hs244.jl @@ -16,6 +16,7 @@ hs244_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs244_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs244_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs245.jl b/src/Meta/hs245.jl index 664b3b9a9..a66ba6cc9 100644 --- a/src/Meta/hs245.jl +++ b/src/Meta/hs245.jl @@ -16,6 +16,7 @@ hs245_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs245_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs245_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs246.jl b/src/Meta/hs246.jl index 92162896e..ac0cb9084 100644 --- a/src/Meta/hs246.jl +++ b/src/Meta/hs246.jl @@ -16,6 +16,7 @@ hs246_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs246_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs246_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs248.jl b/src/Meta/hs248.jl index 9100289ab..2551f8aa9 100644 --- a/src/Meta/hs248.jl +++ b/src/Meta/hs248.jl @@ -16,6 +16,7 @@ hs248_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs248_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs248_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs249.jl b/src/Meta/hs249.jl index 70482b498..01e52464a 100644 --- a/src/Meta/hs249.jl +++ b/src/Meta/hs249.jl @@ -16,6 +16,7 @@ hs249_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs249_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs249_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs25.jl b/src/Meta/hs25.jl index e84166ecf..32559dffc 100644 --- a/src/Meta/hs25.jl +++ b/src/Meta/hs25.jl @@ -16,6 +16,7 @@ hs25_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs25_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs25_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs250.jl b/src/Meta/hs250.jl index 0fad6714b..deadc3d85 100644 --- a/src/Meta/hs250.jl +++ b/src/Meta/hs250.jl @@ -16,6 +16,7 @@ hs250_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs250_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs250_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs251.jl b/src/Meta/hs251.jl index 05a11a0ab..eb6ae64b5 100644 --- a/src/Meta/hs251.jl +++ b/src/Meta/hs251.jl @@ -16,6 +16,7 @@ hs251_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs251_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs251_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs252.jl b/src/Meta/hs252.jl index 86b8ce087..630d2a066 100644 --- a/src/Meta/hs252.jl +++ b/src/Meta/hs252.jl @@ -16,6 +16,7 @@ hs252_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs252_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs252_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs253.jl b/src/Meta/hs253.jl index 7fa0eb6c4..b22779fae 100644 --- a/src/Meta/hs253.jl +++ b/src/Meta/hs253.jl @@ -16,6 +16,7 @@ hs253_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs253_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs253_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs254.jl b/src/Meta/hs254.jl index c21a61b3a..e8c8f87c5 100644 --- a/src/Meta/hs254.jl +++ b/src/Meta/hs254.jl @@ -16,6 +16,7 @@ hs254_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs254_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs254_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs255.jl b/src/Meta/hs255.jl index 814e7a403..9afe941c3 100644 --- a/src/Meta/hs255.jl +++ b/src/Meta/hs255.jl @@ -16,6 +16,7 @@ hs255_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs255_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs255_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs256.jl b/src/Meta/hs256.jl index 233bd0290..119db811a 100644 --- a/src/Meta/hs256.jl +++ b/src/Meta/hs256.jl @@ -16,6 +16,7 @@ hs256_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs256_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs256_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs257.jl b/src/Meta/hs257.jl index b5c7db3ae..62611f60d 100644 --- a/src/Meta/hs257.jl +++ b/src/Meta/hs257.jl @@ -16,6 +16,7 @@ hs257_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs257_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs257_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs258.jl b/src/Meta/hs258.jl index 19c62c7fb..4c9cf9b61 100644 --- a/src/Meta/hs258.jl +++ b/src/Meta/hs258.jl @@ -16,6 +16,7 @@ hs258_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs258_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs258_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs259.jl b/src/Meta/hs259.jl index 7e126a760..c9e781c9e 100644 --- a/src/Meta/hs259.jl +++ b/src/Meta/hs259.jl @@ -16,6 +16,7 @@ hs259_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs259_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs259_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs26.jl b/src/Meta/hs26.jl index 100cfdb28..ea0c855b3 100644 --- a/src/Meta/hs26.jl +++ b/src/Meta/hs26.jl @@ -16,6 +16,7 @@ hs26_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs26_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs26_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs260.jl b/src/Meta/hs260.jl index 874135b5d..be42a3770 100644 --- a/src/Meta/hs260.jl +++ b/src/Meta/hs260.jl @@ -16,6 +16,7 @@ hs260_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs260_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs260_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs261.jl b/src/Meta/hs261.jl index f7c10a523..3db4b7455 100644 --- a/src/Meta/hs261.jl +++ b/src/Meta/hs261.jl @@ -16,6 +16,7 @@ hs261_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs261_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs261_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs262.jl b/src/Meta/hs262.jl index 0fb822e0b..2b2207517 100644 --- a/src/Meta/hs262.jl +++ b/src/Meta/hs262.jl @@ -16,6 +16,7 @@ hs262_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs262_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs262_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs263.jl b/src/Meta/hs263.jl index 9a3db0151..fb321d38b 100644 --- a/src/Meta/hs263.jl +++ b/src/Meta/hs263.jl @@ -16,6 +16,7 @@ hs263_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs263_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs263_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs264.jl b/src/Meta/hs264.jl index b816a4cd3..2732b3588 100644 --- a/src/Meta/hs264.jl +++ b/src/Meta/hs264.jl @@ -16,6 +16,7 @@ hs264_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs264_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs264_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs265.jl b/src/Meta/hs265.jl index e57316ca6..4b4ff1611 100644 --- a/src/Meta/hs265.jl +++ b/src/Meta/hs265.jl @@ -16,6 +16,7 @@ hs265_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs265_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs265_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs27.jl b/src/Meta/hs27.jl index e8851e204..3f0bc3236 100644 --- a/src/Meta/hs27.jl +++ b/src/Meta/hs27.jl @@ -16,6 +16,7 @@ hs27_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs27_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs27_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs28.jl b/src/Meta/hs28.jl index f4f3f5894..bc8e6b42b 100644 --- a/src/Meta/hs28.jl +++ b/src/Meta/hs28.jl @@ -16,6 +16,7 @@ hs28_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs28_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs28_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs29.jl b/src/Meta/hs29.jl index 61d68ef42..1a09a137b 100644 --- a/src/Meta/hs29.jl +++ b/src/Meta/hs29.jl @@ -16,6 +16,7 @@ hs29_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs29_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs29_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs3.jl b/src/Meta/hs3.jl index c6c6010b8..9a42334be 100644 --- a/src/Meta/hs3.jl +++ b/src/Meta/hs3.jl @@ -16,6 +16,7 @@ hs3_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs3_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs3_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs30.jl b/src/Meta/hs30.jl index 331b51913..1beba6aca 100644 --- a/src/Meta/hs30.jl +++ b/src/Meta/hs30.jl @@ -16,6 +16,7 @@ hs30_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs30_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs30_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs31.jl b/src/Meta/hs31.jl index 5741aea10..4548e5682 100644 --- a/src/Meta/hs31.jl +++ b/src/Meta/hs31.jl @@ -16,6 +16,7 @@ hs31_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs31_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs31_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs316.jl b/src/Meta/hs316.jl index c719858ab..e379cbcec 100644 --- a/src/Meta/hs316.jl +++ b/src/Meta/hs316.jl @@ -16,6 +16,7 @@ hs316_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :academic, + :implementation => :both, ) get_hs316_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs316_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs317.jl b/src/Meta/hs317.jl index 67c249c25..ed5649ee2 100644 --- a/src/Meta/hs317.jl +++ b/src/Meta/hs317.jl @@ -16,6 +16,7 @@ hs317_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :academic, + :implementation => :both, ) get_hs317_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs317_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs318.jl b/src/Meta/hs318.jl index 9c373b782..ab97ede70 100644 --- a/src/Meta/hs318.jl +++ b/src/Meta/hs318.jl @@ -16,6 +16,7 @@ hs318_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :academic, + :implementation => :both, ) get_hs318_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs318_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs319.jl b/src/Meta/hs319.jl index 079daf998..158ae0ec1 100644 --- a/src/Meta/hs319.jl +++ b/src/Meta/hs319.jl @@ -16,6 +16,7 @@ hs319_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :academic, + :implementation => :both, ) get_hs319_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs319_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs32.jl b/src/Meta/hs32.jl index 77a0dca03..2f8938df1 100644 --- a/src/Meta/hs32.jl +++ b/src/Meta/hs32.jl @@ -16,6 +16,7 @@ hs32_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs32_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs32_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs320.jl b/src/Meta/hs320.jl index d5ca02a22..d92c1ab93 100644 --- a/src/Meta/hs320.jl +++ b/src/Meta/hs320.jl @@ -16,6 +16,7 @@ hs320_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :academic, + :implementation => :both, ) get_hs320_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs320_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs321.jl b/src/Meta/hs321.jl index 1414dfdf9..578097829 100644 --- a/src/Meta/hs321.jl +++ b/src/Meta/hs321.jl @@ -16,6 +16,7 @@ hs321_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :academic, + :implementation => :both, ) get_hs321_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs321_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs322.jl b/src/Meta/hs322.jl index 087fd7dd5..d1f298cac 100644 --- a/src/Meta/hs322.jl +++ b/src/Meta/hs322.jl @@ -16,6 +16,7 @@ hs322_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :academic, + :implementation => :both, ) get_hs322_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs322_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs33.jl b/src/Meta/hs33.jl index 4c0c25cfb..fcc629374 100644 --- a/src/Meta/hs33.jl +++ b/src/Meta/hs33.jl @@ -16,6 +16,7 @@ hs33_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs33_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs33_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs34.jl b/src/Meta/hs34.jl index 540e98af5..71bf315e3 100644 --- a/src/Meta/hs34.jl +++ b/src/Meta/hs34.jl @@ -16,6 +16,7 @@ hs34_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs34_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs34_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs35.jl b/src/Meta/hs35.jl index d2b7adcb4..b54dca236 100644 --- a/src/Meta/hs35.jl +++ b/src/Meta/hs35.jl @@ -16,6 +16,7 @@ hs35_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs35_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs35_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs36.jl b/src/Meta/hs36.jl index c833be211..0ad9a5b50 100644 --- a/src/Meta/hs36.jl +++ b/src/Meta/hs36.jl @@ -16,6 +16,7 @@ hs36_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs36_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs36_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs37.jl b/src/Meta/hs37.jl index 0eb670251..dc913263e 100644 --- a/src/Meta/hs37.jl +++ b/src/Meta/hs37.jl @@ -16,6 +16,7 @@ hs37_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs37_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs37_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs378.jl b/src/Meta/hs378.jl index 59cf3030c..d0c7da881 100644 --- a/src/Meta/hs378.jl +++ b/src/Meta/hs378.jl @@ -16,6 +16,7 @@ hs378_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :academic, + :implementation => :both, ) get_hs378_nvar(; n::Integer = default_nvar, kwargs...) = 10 get_hs378_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs38.jl b/src/Meta/hs38.jl index e7c8e2369..cb9e53cb5 100644 --- a/src/Meta/hs38.jl +++ b/src/Meta/hs38.jl @@ -16,6 +16,7 @@ hs38_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs38_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs38_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs39.jl b/src/Meta/hs39.jl index 8848c0b08..e71e5989d 100644 --- a/src/Meta/hs39.jl +++ b/src/Meta/hs39.jl @@ -16,6 +16,7 @@ hs39_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs39_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs39_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs4.jl b/src/Meta/hs4.jl index 84edf4fcc..a11f51a2a 100644 --- a/src/Meta/hs4.jl +++ b/src/Meta/hs4.jl @@ -16,6 +16,7 @@ hs4_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs4_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs4_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs40.jl b/src/Meta/hs40.jl index 397e96de0..32f30e2cd 100644 --- a/src/Meta/hs40.jl +++ b/src/Meta/hs40.jl @@ -16,6 +16,7 @@ hs40_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs40_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs40_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs41.jl b/src/Meta/hs41.jl index 7da1c61a4..73f233a47 100644 --- a/src/Meta/hs41.jl +++ b/src/Meta/hs41.jl @@ -16,6 +16,7 @@ hs41_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs41_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs41_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs42.jl b/src/Meta/hs42.jl index eed86f128..9f865a61a 100644 --- a/src/Meta/hs42.jl +++ b/src/Meta/hs42.jl @@ -16,6 +16,7 @@ hs42_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs42_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs42_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs43.jl b/src/Meta/hs43.jl index fdaabd236..4f17964b7 100644 --- a/src/Meta/hs43.jl +++ b/src/Meta/hs43.jl @@ -16,6 +16,7 @@ hs43_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs43_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs43_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs44.jl b/src/Meta/hs44.jl index ad7416a4a..34538e631 100644 --- a/src/Meta/hs44.jl +++ b/src/Meta/hs44.jl @@ -16,6 +16,7 @@ hs44_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs44_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs44_ncon(; n::Integer = default_nvar, kwargs...) = 6 diff --git a/src/Meta/hs45.jl b/src/Meta/hs45.jl index 5cba2d9ff..785926f97 100644 --- a/src/Meta/hs45.jl +++ b/src/Meta/hs45.jl @@ -16,6 +16,7 @@ hs45_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs45_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs45_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs46.jl b/src/Meta/hs46.jl index bc4c94d95..d2df1103a 100644 --- a/src/Meta/hs46.jl +++ b/src/Meta/hs46.jl @@ -16,6 +16,7 @@ hs46_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs46_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs46_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs47.jl b/src/Meta/hs47.jl index 4302f6864..4c7a1dcc0 100644 --- a/src/Meta/hs47.jl +++ b/src/Meta/hs47.jl @@ -16,6 +16,7 @@ hs47_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs47_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs47_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs48.jl b/src/Meta/hs48.jl index 2c8e4d117..0fe4ade10 100644 --- a/src/Meta/hs48.jl +++ b/src/Meta/hs48.jl @@ -16,6 +16,7 @@ hs48_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs48_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs48_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs49.jl b/src/Meta/hs49.jl index af3c2f00c..08e1126a8 100644 --- a/src/Meta/hs49.jl +++ b/src/Meta/hs49.jl @@ -16,6 +16,7 @@ hs49_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs49_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs49_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs5.jl b/src/Meta/hs5.jl index 6e77a3bc2..ac72a0efe 100644 --- a/src/Meta/hs5.jl +++ b/src/Meta/hs5.jl @@ -16,6 +16,7 @@ hs5_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs5_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs5_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs50.jl b/src/Meta/hs50.jl index 53e15536b..e8323185f 100644 --- a/src/Meta/hs50.jl +++ b/src/Meta/hs50.jl @@ -16,6 +16,7 @@ hs50_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs50_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs50_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs51.jl b/src/Meta/hs51.jl index f9cfdaaf7..508fe2212 100644 --- a/src/Meta/hs51.jl +++ b/src/Meta/hs51.jl @@ -16,6 +16,7 @@ hs51_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs51_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs51_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs52.jl b/src/Meta/hs52.jl index 9c45a7b3e..8d1519a4a 100644 --- a/src/Meta/hs52.jl +++ b/src/Meta/hs52.jl @@ -16,6 +16,7 @@ hs52_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs52_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs52_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs53.jl b/src/Meta/hs53.jl index a33f70ffe..3cf913cff 100644 --- a/src/Meta/hs53.jl +++ b/src/Meta/hs53.jl @@ -16,6 +16,7 @@ hs53_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs53_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs53_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs54.jl b/src/Meta/hs54.jl index 3446161ad..a5ce2f83c 100644 --- a/src/Meta/hs54.jl +++ b/src/Meta/hs54.jl @@ -16,6 +16,7 @@ hs54_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs54_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs54_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs55.jl b/src/Meta/hs55.jl index 52abcd0e2..bf392e86a 100644 --- a/src/Meta/hs55.jl +++ b/src/Meta/hs55.jl @@ -16,6 +16,7 @@ hs55_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs55_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs55_ncon(; n::Integer = default_nvar, kwargs...) = 6 diff --git a/src/Meta/hs56.jl b/src/Meta/hs56.jl index 31b9af7eb..612b94845 100644 --- a/src/Meta/hs56.jl +++ b/src/Meta/hs56.jl @@ -16,6 +16,7 @@ hs56_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs56_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_hs56_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs57.jl b/src/Meta/hs57.jl index e0bd7b42b..a3adaedb3 100644 --- a/src/Meta/hs57.jl +++ b/src/Meta/hs57.jl @@ -16,6 +16,7 @@ hs57_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs57_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs57_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs59.jl b/src/Meta/hs59.jl index e9d1879ae..1aa5fff54 100644 --- a/src/Meta/hs59.jl +++ b/src/Meta/hs59.jl @@ -16,6 +16,7 @@ hs59_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs59_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs59_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs6.jl b/src/Meta/hs6.jl index 46f8c1d57..a93a546e4 100644 --- a/src/Meta/hs6.jl +++ b/src/Meta/hs6.jl @@ -16,6 +16,7 @@ hs6_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs6_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs6_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs60.jl b/src/Meta/hs60.jl index 675588bf1..6a46dcd03 100644 --- a/src/Meta/hs60.jl +++ b/src/Meta/hs60.jl @@ -16,6 +16,7 @@ hs60_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs60_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs60_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs61.jl b/src/Meta/hs61.jl index 8862ea509..a3139a6fb 100644 --- a/src/Meta/hs61.jl +++ b/src/Meta/hs61.jl @@ -16,6 +16,7 @@ hs61_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs61_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs61_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs62.jl b/src/Meta/hs62.jl index 932a30fbe..2641c05ed 100644 --- a/src/Meta/hs62.jl +++ b/src/Meta/hs62.jl @@ -16,6 +16,7 @@ hs62_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs62_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs62_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs63.jl b/src/Meta/hs63.jl index 15be6725c..6ff67b299 100644 --- a/src/Meta/hs63.jl +++ b/src/Meta/hs63.jl @@ -16,6 +16,7 @@ hs63_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs63_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs63_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs64.jl b/src/Meta/hs64.jl index c4e4c59b9..f977a17e1 100644 --- a/src/Meta/hs64.jl +++ b/src/Meta/hs64.jl @@ -16,6 +16,7 @@ hs64_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs64_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs64_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs65.jl b/src/Meta/hs65.jl index e9161d629..9c06334f0 100644 --- a/src/Meta/hs65.jl +++ b/src/Meta/hs65.jl @@ -16,6 +16,7 @@ hs65_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs65_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs65_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs66.jl b/src/Meta/hs66.jl index e997f178d..b0ef1637d 100644 --- a/src/Meta/hs66.jl +++ b/src/Meta/hs66.jl @@ -16,6 +16,7 @@ hs66_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs66_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs66_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs68.jl b/src/Meta/hs68.jl index 4f4055018..c6c4868d6 100644 --- a/src/Meta/hs68.jl +++ b/src/Meta/hs68.jl @@ -16,6 +16,7 @@ hs68_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs68_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs68_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs69.jl b/src/Meta/hs69.jl index 307884bf6..3ab8d65d0 100644 --- a/src/Meta/hs69.jl +++ b/src/Meta/hs69.jl @@ -16,6 +16,7 @@ hs69_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs69_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs69_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs7.jl b/src/Meta/hs7.jl index 287d002b2..7362ad1fb 100644 --- a/src/Meta/hs7.jl +++ b/src/Meta/hs7.jl @@ -16,6 +16,7 @@ hs7_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs7_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs7_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs70.jl b/src/Meta/hs70.jl index d94ac5a23..923764ebc 100644 --- a/src/Meta/hs70.jl +++ b/src/Meta/hs70.jl @@ -16,6 +16,7 @@ hs70_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs70_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs70_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs71.jl b/src/Meta/hs71.jl index 2a856ce2c..14ef92e55 100644 --- a/src/Meta/hs71.jl +++ b/src/Meta/hs71.jl @@ -16,6 +16,7 @@ hs71_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs71_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs71_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs72.jl b/src/Meta/hs72.jl index 6298211f5..43a66971e 100644 --- a/src/Meta/hs72.jl +++ b/src/Meta/hs72.jl @@ -16,6 +16,7 @@ hs72_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs72_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs72_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs73.jl b/src/Meta/hs73.jl index f0eaefaef..82400e7aa 100644 --- a/src/Meta/hs73.jl +++ b/src/Meta/hs73.jl @@ -16,6 +16,7 @@ hs73_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs73_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs73_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs74.jl b/src/Meta/hs74.jl index 4072bd7e0..3f4d51e04 100644 --- a/src/Meta/hs74.jl +++ b/src/Meta/hs74.jl @@ -16,6 +16,7 @@ hs74_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs74_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs74_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs75.jl b/src/Meta/hs75.jl index 2685ee360..b719c1501 100644 --- a/src/Meta/hs75.jl +++ b/src/Meta/hs75.jl @@ -16,6 +16,7 @@ hs75_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs75_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs75_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs76.jl b/src/Meta/hs76.jl index 37e342530..6f8800540 100644 --- a/src/Meta/hs76.jl +++ b/src/Meta/hs76.jl @@ -16,6 +16,7 @@ hs76_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs76_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs76_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs77.jl b/src/Meta/hs77.jl index 9e1b7a3d1..46f7d045c 100644 --- a/src/Meta/hs77.jl +++ b/src/Meta/hs77.jl @@ -16,6 +16,7 @@ hs77_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs77_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs77_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs78.jl b/src/Meta/hs78.jl index 304b37a10..11dafd4fe 100644 --- a/src/Meta/hs78.jl +++ b/src/Meta/hs78.jl @@ -16,6 +16,7 @@ hs78_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs78_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs78_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs79.jl b/src/Meta/hs79.jl index 1046e5b9e..e48a80034 100644 --- a/src/Meta/hs79.jl +++ b/src/Meta/hs79.jl @@ -16,6 +16,7 @@ hs79_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs79_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs79_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs8.jl b/src/Meta/hs8.jl index 58f6e1c29..01b7006b4 100644 --- a/src/Meta/hs8.jl +++ b/src/Meta/hs8.jl @@ -16,6 +16,7 @@ hs8_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs8_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs8_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs80.jl b/src/Meta/hs80.jl index 73947274f..91fb5a839 100644 --- a/src/Meta/hs80.jl +++ b/src/Meta/hs80.jl @@ -16,6 +16,7 @@ hs80_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs80_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs80_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs81.jl b/src/Meta/hs81.jl index 9f069ddf9..729105bcf 100644 --- a/src/Meta/hs81.jl +++ b/src/Meta/hs81.jl @@ -16,6 +16,7 @@ hs81_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs81_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs81_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs83.jl b/src/Meta/hs83.jl index e7d4f9859..b905db9d2 100644 --- a/src/Meta/hs83.jl +++ b/src/Meta/hs83.jl @@ -16,6 +16,7 @@ hs83_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs83_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs83_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs84.jl b/src/Meta/hs84.jl index b402bd87d..c0828062d 100644 --- a/src/Meta/hs84.jl +++ b/src/Meta/hs84.jl @@ -16,6 +16,7 @@ hs84_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs84_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs84_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs86.jl b/src/Meta/hs86.jl index c43fb62ad..b0fc52cb9 100644 --- a/src/Meta/hs86.jl +++ b/src/Meta/hs86.jl @@ -16,6 +16,7 @@ hs86_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs86_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs86_ncon(; n::Integer = default_nvar, kwargs...) = 10 diff --git a/src/Meta/hs87.jl b/src/Meta/hs87.jl index e17050876..0d36e4a2f 100644 --- a/src/Meta/hs87.jl +++ b/src/Meta/hs87.jl @@ -16,6 +16,7 @@ hs87_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs87_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs87_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs9.jl b/src/Meta/hs9.jl index d5796046f..a46377e51 100644 --- a/src/Meta/hs9.jl +++ b/src/Meta/hs9.jl @@ -16,6 +16,7 @@ hs9_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs9_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs9_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs93.jl b/src/Meta/hs93.jl index d40af8a5c..14f857547 100644 --- a/src/Meta/hs93.jl +++ b/src/Meta/hs93.jl @@ -16,6 +16,7 @@ hs93_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs93_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs93_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs95.jl b/src/Meta/hs95.jl index 05c99830c..d7faa692e 100644 --- a/src/Meta/hs95.jl +++ b/src/Meta/hs95.jl @@ -16,6 +16,7 @@ hs95_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs95_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs95_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs96.jl b/src/Meta/hs96.jl index 5b357d1cc..213a81dd3 100644 --- a/src/Meta/hs96.jl +++ b/src/Meta/hs96.jl @@ -16,6 +16,7 @@ hs96_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs96_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs96_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs97.jl b/src/Meta/hs97.jl index 09ebcba7b..1d6287ba4 100644 --- a/src/Meta/hs97.jl +++ b/src/Meta/hs97.jl @@ -16,6 +16,7 @@ hs97_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs97_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs97_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs98.jl b/src/Meta/hs98.jl index af84acb88..79fff74c3 100644 --- a/src/Meta/hs98.jl +++ b/src/Meta/hs98.jl @@ -16,6 +16,7 @@ hs98_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs98_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs98_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs99.jl b/src/Meta/hs99.jl index b167858ee..1021d1e45 100644 --- a/src/Meta/hs99.jl +++ b/src/Meta/hs99.jl @@ -16,6 +16,7 @@ hs99_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_hs99_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_hs99_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/indef_mod.jl b/src/Meta/indef_mod.jl index 9d7bd1edb..626ded6b8 100644 --- a/src/Meta/indef_mod.jl +++ b/src/Meta/indef_mod.jl @@ -16,6 +16,7 @@ indef_mod_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_indef_mod_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_indef_mod_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/integreq.jl b/src/Meta/integreq.jl index 1f0ed5573..189257556 100644 --- a/src/Meta/integreq.jl +++ b/src/Meta/integreq.jl @@ -16,6 +16,7 @@ integreq_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_integreq_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_integreq_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/jennrichsampson.jl b/src/Meta/jennrichsampson.jl index 2c27041b8..dfc72fe2d 100644 --- a/src/Meta/jennrichsampson.jl +++ b/src/Meta/jennrichsampson.jl @@ -16,6 +16,7 @@ jennrichsampson_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_jennrichsampson_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_jennrichsampson_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/kirby2.jl b/src/Meta/kirby2.jl index 8fe41f02e..fa699bf13 100644 --- a/src/Meta/kirby2.jl +++ b/src/Meta/kirby2.jl @@ -16,6 +16,7 @@ kirby2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_kirby2_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_kirby2_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/kowosb.jl b/src/Meta/kowosb.jl index e4b4634b9..6438acb24 100644 --- a/src/Meta/kowosb.jl +++ b/src/Meta/kowosb.jl @@ -16,6 +16,7 @@ kowosb_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_kowosb_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_kowosb_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/lanczos1.jl b/src/Meta/lanczos1.jl index 9d876f029..12a1dfc9b 100644 --- a/src/Meta/lanczos1.jl +++ b/src/Meta/lanczos1.jl @@ -16,6 +16,7 @@ lanczos1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_lanczos1_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_lanczos1_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/lanczos2.jl b/src/Meta/lanczos2.jl index f13af14ba..bc1781c76 100644 --- a/src/Meta/lanczos2.jl +++ b/src/Meta/lanczos2.jl @@ -16,6 +16,7 @@ lanczos2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_lanczos2_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_lanczos2_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/lanczos3.jl b/src/Meta/lanczos3.jl index 06cc95b0d..6ebe1b698 100644 --- a/src/Meta/lanczos3.jl +++ b/src/Meta/lanczos3.jl @@ -16,6 +16,7 @@ lanczos3_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_lanczos3_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_lanczos3_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/liarwhd.jl b/src/Meta/liarwhd.jl index e20bf6836..2c5ea073e 100644 --- a/src/Meta/liarwhd.jl +++ b/src/Meta/liarwhd.jl @@ -16,6 +16,7 @@ liarwhd_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_liarwhd_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_liarwhd_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/lincon.jl b/src/Meta/lincon.jl index 0fd6d3590..518486cfe 100644 --- a/src/Meta/lincon.jl +++ b/src/Meta/lincon.jl @@ -16,6 +16,7 @@ lincon_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_lincon_nvar(; n::Integer = default_nvar, kwargs...) = 15 get_lincon_ncon(; n::Integer = default_nvar, kwargs...) = 11 diff --git a/src/Meta/linsv.jl b/src/Meta/linsv.jl index 1a46b2e32..c64db1ad6 100644 --- a/src/Meta/linsv.jl +++ b/src/Meta/linsv.jl @@ -16,6 +16,7 @@ linsv_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_linsv_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_linsv_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/marine.jl b/src/Meta/marine.jl index f978ad44b..5be9612ac 100644 --- a/src/Meta/marine.jl +++ b/src/Meta/marine.jl @@ -16,6 +16,7 @@ marine_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_marine_nvar(; n::Integer = default_nvar, nc::Int = 1, kwargs...) = 8 + 7 + Int(round((n - 2 * 8 + 1) / (3 * 8 * nc + 8))) * (8 + 3 * 8 * nc) diff --git a/src/Meta/methanol.jl b/src/Meta/methanol.jl index 40810a945..519edea4e 100644 --- a/src/Meta/methanol.jl +++ b/src/Meta/methanol.jl @@ -16,6 +16,7 @@ methanol_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_methanol_nvar(; n::Integer = default_nvar, kwargs...) = 30 * n + 5 get_methanol_ncon(; n::Integer = default_nvar, kwargs...) = 30 * n + 0 diff --git a/src/Meta/meyer3.jl b/src/Meta/meyer3.jl index f9ea82d0c..21a3d9cea 100644 --- a/src/Meta/meyer3.jl +++ b/src/Meta/meyer3.jl @@ -16,6 +16,7 @@ meyer3_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_meyer3_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_meyer3_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/mgh01feas.jl b/src/Meta/mgh01feas.jl index bc27baeb0..03a106691 100644 --- a/src/Meta/mgh01feas.jl +++ b/src/Meta/mgh01feas.jl @@ -16,6 +16,7 @@ mgh01feas_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_mgh01feas_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_mgh01feas_ncon(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/mgh09.jl b/src/Meta/mgh09.jl index 597edaaa6..4c369962f 100644 --- a/src/Meta/mgh09.jl +++ b/src/Meta/mgh09.jl @@ -16,6 +16,7 @@ mgh09_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_mgh09_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_mgh09_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/mgh10.jl b/src/Meta/mgh10.jl index fe2261028..760a65c29 100644 --- a/src/Meta/mgh10.jl +++ b/src/Meta/mgh10.jl @@ -16,6 +16,7 @@ mgh10_meta = Dict( :is_feasible => true, :defined_everywhere => false, :origin => :academic, + :implementation => :both, ) get_mgh10_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_mgh10_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/mgh17.jl b/src/Meta/mgh17.jl index f6cb8446a..93f942526 100644 --- a/src/Meta/mgh17.jl +++ b/src/Meta/mgh17.jl @@ -16,6 +16,7 @@ mgh17_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_mgh17_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_mgh17_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/minsurf.jl b/src/Meta/minsurf.jl index be0e8b8cd..7a929b297 100644 --- a/src/Meta/minsurf.jl +++ b/src/Meta/minsurf.jl @@ -16,6 +16,7 @@ minsurf_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_minsurf_nvar(; n::Integer = default_nvar, diff --git a/src/Meta/misra1a.jl b/src/Meta/misra1a.jl index 6ccf78069..bdac2a7ce 100644 --- a/src/Meta/misra1a.jl +++ b/src/Meta/misra1a.jl @@ -16,6 +16,7 @@ misra1a_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_misra1a_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_misra1a_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/misra1b.jl b/src/Meta/misra1b.jl index b61e00eab..eeaa11efc 100644 --- a/src/Meta/misra1b.jl +++ b/src/Meta/misra1b.jl @@ -16,6 +16,7 @@ misra1b_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_misra1b_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_misra1b_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/misra1c.jl b/src/Meta/misra1c.jl index bfb036695..2da20fe2d 100644 --- a/src/Meta/misra1c.jl +++ b/src/Meta/misra1c.jl @@ -16,6 +16,7 @@ misra1c_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_misra1c_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_misra1c_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/misra1d.jl b/src/Meta/misra1d.jl index c59d12577..daa37cb82 100644 --- a/src/Meta/misra1d.jl +++ b/src/Meta/misra1d.jl @@ -16,6 +16,7 @@ misra1d_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_misra1d_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_misra1d_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/morebv.jl b/src/Meta/morebv.jl index 6c6cf7807..c0cddb697 100644 --- a/src/Meta/morebv.jl +++ b/src/Meta/morebv.jl @@ -16,6 +16,7 @@ morebv_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_morebv_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_morebv_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/nasty.jl b/src/Meta/nasty.jl index 3bea418a1..72e5f9b2c 100644 --- a/src/Meta/nasty.jl +++ b/src/Meta/nasty.jl @@ -16,6 +16,7 @@ nasty_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_nasty_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_nasty_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/nazareth.jl b/src/Meta/nazareth.jl index 1efd0599f..e22ada873 100644 --- a/src/Meta/nazareth.jl +++ b/src/Meta/nazareth.jl @@ -16,6 +16,7 @@ nazareth_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :literature, + :implementation => :both, ) get_nazareth_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/ncb20.jl b/src/Meta/ncb20.jl index 6cda7b6fd..57ba2137f 100644 --- a/src/Meta/ncb20.jl +++ b/src/Meta/ncb20.jl @@ -16,6 +16,7 @@ ncb20_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_ncb20_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_ncb20_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/ncb20b.jl b/src/Meta/ncb20b.jl index 77fb70a67..510f92f0d 100644 --- a/src/Meta/ncb20b.jl +++ b/src/Meta/ncb20b.jl @@ -16,6 +16,7 @@ ncb20b_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_ncb20b_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_ncb20b_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/nelson.jl b/src/Meta/nelson.jl index 87edca097..5f48dfab5 100644 --- a/src/Meta/nelson.jl +++ b/src/Meta/nelson.jl @@ -16,6 +16,7 @@ nelson_meta = Dict( :is_feasible => true, :defined_everywhere => false, :origin => :real, + :implementation => :both, ) get_nelson_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_nelson_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/noncvxu2.jl b/src/Meta/noncvxu2.jl index e97abda97..5927c43e9 100644 --- a/src/Meta/noncvxu2.jl +++ b/src/Meta/noncvxu2.jl @@ -16,6 +16,7 @@ noncvxu2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_noncvxu2_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_noncvxu2_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/noncvxun.jl b/src/Meta/noncvxun.jl index 515b24d91..8dcaedaf4 100644 --- a/src/Meta/noncvxun.jl +++ b/src/Meta/noncvxun.jl @@ -16,6 +16,7 @@ noncvxun_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_noncvxun_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_noncvxun_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/nondia.jl b/src/Meta/nondia.jl index c906f8a3a..e3f4d2688 100644 --- a/src/Meta/nondia.jl +++ b/src/Meta/nondia.jl @@ -16,6 +16,7 @@ nondia_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_nondia_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_nondia_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/nondquar.jl b/src/Meta/nondquar.jl index 870725204..5655ac9c7 100644 --- a/src/Meta/nondquar.jl +++ b/src/Meta/nondquar.jl @@ -16,6 +16,7 @@ nondquar_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_nondquar_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_nondquar_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/osborne1.jl b/src/Meta/osborne1.jl index cd0e30500..1ac27efb2 100644 --- a/src/Meta/osborne1.jl +++ b/src/Meta/osborne1.jl @@ -1,4 +1,3 @@ - osborne1_meta = Dict( :nvar => 5, :variable_nvar => false, @@ -17,6 +16,7 @@ osborne1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_osborne1_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_osborne1_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/osborne2.jl b/src/Meta/osborne2.jl index dd588a4df..097ba26c9 100644 --- a/src/Meta/osborne2.jl +++ b/src/Meta/osborne2.jl @@ -16,6 +16,7 @@ osborne2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_osborne2_nvar(; n::Integer = default_nvar, kwargs...) = 11 get_osborne2_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/palmer1c.jl b/src/Meta/palmer1c.jl index 8547d980e..d9ff6ba59 100644 --- a/src/Meta/palmer1c.jl +++ b/src/Meta/palmer1c.jl @@ -16,6 +16,7 @@ palmer1c_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_palmer1c_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_palmer1c_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/palmer1d.jl b/src/Meta/palmer1d.jl index 0a6fa5d32..b9f0f2629 100644 --- a/src/Meta/palmer1d.jl +++ b/src/Meta/palmer1d.jl @@ -16,6 +16,7 @@ palmer1d_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_palmer1d_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_palmer1d_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/palmer2c.jl b/src/Meta/palmer2c.jl index 7daf473ec..0310fc6d7 100644 --- a/src/Meta/palmer2c.jl +++ b/src/Meta/palmer2c.jl @@ -16,6 +16,7 @@ palmer2c_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_palmer2c_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_palmer2c_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/palmer3c.jl b/src/Meta/palmer3c.jl index 0726c25f7..1944aec00 100644 --- a/src/Meta/palmer3c.jl +++ b/src/Meta/palmer3c.jl @@ -16,6 +16,7 @@ palmer3c_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_palmer3c_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_palmer3c_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/palmer4c.jl b/src/Meta/palmer4c.jl index f3c89cc86..2a9c224a0 100644 --- a/src/Meta/palmer4c.jl +++ b/src/Meta/palmer4c.jl @@ -16,6 +16,7 @@ palmer4c_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_palmer4c_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_palmer4c_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/palmer5c.jl b/src/Meta/palmer5c.jl index fd988d354..84a3c4862 100644 --- a/src/Meta/palmer5c.jl +++ b/src/Meta/palmer5c.jl @@ -16,6 +16,7 @@ palmer5c_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_palmer5c_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_palmer5c_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/palmer5d.jl b/src/Meta/palmer5d.jl index a132a530b..5ce30f7e3 100644 --- a/src/Meta/palmer5d.jl +++ b/src/Meta/palmer5d.jl @@ -16,6 +16,7 @@ palmer5d_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_palmer5d_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_palmer5d_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/palmer6c.jl b/src/Meta/palmer6c.jl index 042f512ce..6db1c9244 100644 --- a/src/Meta/palmer6c.jl +++ b/src/Meta/palmer6c.jl @@ -16,6 +16,7 @@ palmer6c_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_palmer6c_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_palmer6c_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/palmer7c.jl b/src/Meta/palmer7c.jl index f56e2f944..db2c03458 100644 --- a/src/Meta/palmer7c.jl +++ b/src/Meta/palmer7c.jl @@ -16,6 +16,7 @@ palmer7c_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_palmer7c_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_palmer7c_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/palmer8c.jl b/src/Meta/palmer8c.jl index 733702d56..2df3c189d 100644 --- a/src/Meta/palmer8c.jl +++ b/src/Meta/palmer8c.jl @@ -16,6 +16,7 @@ palmer8c_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_palmer8c_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_palmer8c_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/penalty1.jl b/src/Meta/penalty1.jl index 49722c650..23e554742 100644 --- a/src/Meta/penalty1.jl +++ b/src/Meta/penalty1.jl @@ -16,6 +16,7 @@ penalty1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_penalty1_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_penalty1_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/penalty2.jl b/src/Meta/penalty2.jl index 5b0496ced..01c04f277 100644 --- a/src/Meta/penalty2.jl +++ b/src/Meta/penalty2.jl @@ -16,6 +16,7 @@ penalty2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_penalty2_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_penalty2_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/penalty3.jl b/src/Meta/penalty3.jl index 2e6490102..341546d02 100644 --- a/src/Meta/penalty3.jl +++ b/src/Meta/penalty3.jl @@ -16,6 +16,7 @@ penalty3_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_penalty3_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_penalty3_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/pinene.jl b/src/Meta/pinene.jl index 056066a66..31ec8c933 100644 --- a/src/Meta/pinene.jl +++ b/src/Meta/pinene.jl @@ -16,6 +16,7 @@ pinene_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_pinene_nvar(; n::Integer = default_nvar, kwargs...) = 50 * n + 5 get_pinene_ncon(; n::Integer = default_nvar, kwargs...) = 50 * n + 0 diff --git a/src/Meta/polygon.jl b/src/Meta/polygon.jl index 9650af611..0d0b6ac91 100644 --- a/src/Meta/polygon.jl +++ b/src/Meta/polygon.jl @@ -16,6 +16,7 @@ polygon_meta = Dict( :is_feasible => false, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_polygon_nvar(; n::Integer = default_nvar, kwargs...) = 2 * div(n, 2) get_polygon_ncon(; n::Integer = default_nvar, kwargs...) = diff --git a/src/Meta/polygon1.jl b/src/Meta/polygon1.jl index 327acd3ce..272a4d590 100644 --- a/src/Meta/polygon1.jl +++ b/src/Meta/polygon1.jl @@ -16,6 +16,7 @@ polygon1_meta = Dict( :is_feasible => false, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_polygon1_nvar(; n::Integer = default_nvar, kwargs...) = 2 * div(n, 2) get_polygon1_ncon(; n::Integer = default_nvar, kwargs...) = div(n, 2) diff --git a/src/Meta/polygon2.jl b/src/Meta/polygon2.jl index 40c16f243..2c7f32355 100644 --- a/src/Meta/polygon2.jl +++ b/src/Meta/polygon2.jl @@ -16,6 +16,7 @@ polygon2_meta = Dict( :is_feasible => false, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_polygon2_nvar(; n::Integer = default_nvar, kwargs...) = 2 * div(n, 2) get_polygon2_ncon(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/polygon3.jl b/src/Meta/polygon3.jl index 38251ea13..7063a3b28 100644 --- a/src/Meta/polygon3.jl +++ b/src/Meta/polygon3.jl @@ -16,6 +16,7 @@ polygon3_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_polygon3_nvar(; n::Integer = default_nvar, kwargs...) = 2 * div(n, 2) get_polygon3_ncon(; n::Integer = default_nvar, kwargs...) = 2 * div(n, 2) diff --git a/src/Meta/powellbs.jl b/src/Meta/powellbs.jl index 7a592596a..429582a98 100644 --- a/src/Meta/powellbs.jl +++ b/src/Meta/powellbs.jl @@ -16,6 +16,7 @@ powellbs_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_powellbs_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_powellbs_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/powellsg.jl b/src/Meta/powellsg.jl index 51b2de147..fcd04008f 100644 --- a/src/Meta/powellsg.jl +++ b/src/Meta/powellsg.jl @@ -16,6 +16,7 @@ powellsg_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_powellsg_nvar(; n::Integer = default_nvar, kwargs...) = 4 * max(1, div(n, 4)) # number of variables adjusted to be a multiple of 4 get_powellsg_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/power.jl b/src/Meta/power.jl index be830e73e..f5a775bb6 100644 --- a/src/Meta/power.jl +++ b/src/Meta/power.jl @@ -16,6 +16,7 @@ power_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_power_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_power_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/quartc.jl b/src/Meta/quartc.jl index c00b4f8a0..ac2dc2b9b 100644 --- a/src/Meta/quartc.jl +++ b/src/Meta/quartc.jl @@ -16,6 +16,7 @@ quartc_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_quartc_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_quartc_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/rat42.jl b/src/Meta/rat42.jl index 4ac6dd042..dd2cc3078 100644 --- a/src/Meta/rat42.jl +++ b/src/Meta/rat42.jl @@ -16,6 +16,7 @@ rat42_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_rat42_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_rat42_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/rat43.jl b/src/Meta/rat43.jl index ad7b4d9bd..9cdf2a5da 100644 --- a/src/Meta/rat43.jl +++ b/src/Meta/rat43.jl @@ -16,6 +16,7 @@ rat43_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_rat43_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_rat43_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/robotarm.jl b/src/Meta/robotarm.jl index 50960a66f..e630386d2 100644 --- a/src/Meta/robotarm.jl +++ b/src/Meta/robotarm.jl @@ -16,6 +16,7 @@ robotarm_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_robotarm_nvar(; n::Integer = default_nvar, kwargs...) = 9 * (max(2, div(n, 9)) + 1) + 1 get_robotarm_ncon(; n::Integer = default_nvar, kwargs...) = diff --git a/src/Meta/rocket.jl b/src/Meta/rocket.jl index b3096e884..2d0d0f4df 100644 --- a/src/Meta/rocket.jl +++ b/src/Meta/rocket.jl @@ -16,6 +16,7 @@ rocket_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_rocket_nvar(; n::Integer = default_nvar, kwargs...) = 4 * n + 5 get_rocket_ncon(; n::Integer = default_nvar, kwargs...) = 3 * n + 4 diff --git a/src/Meta/rosenbrock.jl b/src/Meta/rosenbrock.jl index e39be54a7..33e2a5996 100644 --- a/src/Meta/rosenbrock.jl +++ b/src/Meta/rosenbrock.jl @@ -16,6 +16,7 @@ rosenbrock_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_rosenbrock_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_rosenbrock_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/rozman1.jl b/src/Meta/rozman1.jl index fefe706dd..d056b8abe 100644 --- a/src/Meta/rozman1.jl +++ b/src/Meta/rozman1.jl @@ -16,6 +16,7 @@ rozman1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_rozman1_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_rozman1_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/sbrybnd.jl b/src/Meta/sbrybnd.jl index a2df40062..c89f5976f 100644 --- a/src/Meta/sbrybnd.jl +++ b/src/Meta/sbrybnd.jl @@ -16,6 +16,7 @@ sbrybnd_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_sbrybnd_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_sbrybnd_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/schmvett.jl b/src/Meta/schmvett.jl index 4bbf1cc7e..b181dc612 100644 --- a/src/Meta/schmvett.jl +++ b/src/Meta/schmvett.jl @@ -16,6 +16,7 @@ schmvett_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_schmvett_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_schmvett_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/scosine.jl b/src/Meta/scosine.jl index 460665246..c2f4cb5cd 100644 --- a/src/Meta/scosine.jl +++ b/src/Meta/scosine.jl @@ -16,6 +16,7 @@ scosine_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_scosine_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_scosine_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/sinquad.jl b/src/Meta/sinquad.jl index 5ed24a976..1c8b0ce24 100644 --- a/src/Meta/sinquad.jl +++ b/src/Meta/sinquad.jl @@ -16,6 +16,7 @@ sinquad_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_sinquad_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_sinquad_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/sparsine.jl b/src/Meta/sparsine.jl index 0700aff91..b1b22dd17 100644 --- a/src/Meta/sparsine.jl +++ b/src/Meta/sparsine.jl @@ -16,6 +16,7 @@ sparsine_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_sparsine_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_sparsine_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/sparsqur.jl b/src/Meta/sparsqur.jl index 8873a8beb..bca342e59 100644 --- a/src/Meta/sparsqur.jl +++ b/src/Meta/sparsqur.jl @@ -16,6 +16,7 @@ sparsqur_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_sparsqur_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_sparsqur_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/spmsrtls.jl b/src/Meta/spmsrtls.jl index d16654876..026cbddcd 100644 --- a/src/Meta/spmsrtls.jl +++ b/src/Meta/spmsrtls.jl @@ -16,6 +16,7 @@ spmsrtls_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_spmsrtls_nvar(; n::Integer = default_nvar, kwargs...) = max(Int(round((n + 2) / 3)), 34) * 3 - 2 get_spmsrtls_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/srosenbr.jl b/src/Meta/srosenbr.jl index fc14512d9..6f9e8ddab 100644 --- a/src/Meta/srosenbr.jl +++ b/src/Meta/srosenbr.jl @@ -16,6 +16,7 @@ srosenbr_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_srosenbr_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_srosenbr_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/steering.jl b/src/Meta/steering.jl index 4a5dfa83b..ba44b37c9 100644 --- a/src/Meta/steering.jl +++ b/src/Meta/steering.jl @@ -16,6 +16,7 @@ steering_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_steering_nvar(; n::Integer = default_nvar, kwargs...) = 5 * n + 6 get_steering_ncon(; n::Integer = default_nvar, kwargs...) = 4 * n + 8 diff --git a/src/Meta/structural.jl b/src/Meta/structural.jl index 15c160bf3..b365902e7 100644 --- a/src/Meta/structural.jl +++ b/src/Meta/structural.jl @@ -25,6 +25,7 @@ structural_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_structural_nvar(; n::Integer = default_nvar, kwargs...) = 2 * Int( diff --git a/src/Meta/tetra.jl b/src/Meta/tetra.jl index 55f1f59f2..c6d6f3e1d 100644 --- a/src/Meta/tetra.jl +++ b/src/Meta/tetra.jl @@ -16,6 +16,7 @@ tetra_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_tetra_nvar(; n::Integer = default_nvar, kwargs...) = 15 get_tetra_ncon(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/tetra_duct12.jl b/src/Meta/tetra_duct12.jl index c561d31da..584f84e99 100644 --- a/src/Meta/tetra_duct12.jl +++ b/src/Meta/tetra_duct12.jl @@ -16,6 +16,7 @@ tetra_duct12_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_tetra_duct12_nvar(; n::Integer = default_nvar, kwargs...) = 12597 get_tetra_duct12_ncon(; n::Integer = default_nvar, kwargs...) = 19222 diff --git a/src/Meta/tetra_duct15.jl b/src/Meta/tetra_duct15.jl index 141b45260..383aaf02a 100644 --- a/src/Meta/tetra_duct15.jl +++ b/src/Meta/tetra_duct15.jl @@ -16,6 +16,7 @@ tetra_duct15_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_tetra_duct15_nvar(; n::Integer = default_nvar, kwargs...) = 6417 get_tetra_duct15_ncon(; n::Integer = default_nvar, kwargs...) = 9000 diff --git a/src/Meta/tetra_duct20.jl b/src/Meta/tetra_duct20.jl index 03ad990d5..6457063ba 100644 --- a/src/Meta/tetra_duct20.jl +++ b/src/Meta/tetra_duct20.jl @@ -16,6 +16,7 @@ tetra_duct20_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_tetra_duct20_nvar(; n::Integer = default_nvar, kwargs...) = 3201 get_tetra_duct20_ncon(; n::Integer = default_nvar, kwargs...) = 4104 diff --git a/src/Meta/tetra_foam5.jl b/src/Meta/tetra_foam5.jl index d98d2ad6f..39d08dcd5 100644 --- a/src/Meta/tetra_foam5.jl +++ b/src/Meta/tetra_foam5.jl @@ -16,6 +16,7 @@ tetra_foam5_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_tetra_foam5_nvar(; n::Integer = default_nvar, kwargs...) = 4011 get_tetra_foam5_ncon(; n::Integer = default_nvar, kwargs...) = 4847 diff --git a/src/Meta/tetra_gear.jl b/src/Meta/tetra_gear.jl index e4bff7be7..43e17415e 100644 --- a/src/Meta/tetra_gear.jl +++ b/src/Meta/tetra_gear.jl @@ -16,6 +16,7 @@ tetra_gear_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_tetra_gear_nvar(; n::Integer = default_nvar, kwargs...) = 2598 get_tetra_gear_ncon(; n::Integer = default_nvar, kwargs...) = 3116 diff --git a/src/Meta/tetra_hook.jl b/src/Meta/tetra_hook.jl index eefd12b14..213a50734 100644 --- a/src/Meta/tetra_hook.jl +++ b/src/Meta/tetra_hook.jl @@ -16,6 +16,7 @@ tetra_hook_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_tetra_hook_nvar(; n::Integer = default_nvar, kwargs...) = 3570 get_tetra_hook_ncon(; n::Integer = default_nvar, kwargs...) = 4675 diff --git a/src/Meta/threepk.jl b/src/Meta/threepk.jl index 28cd6f15f..135a045fc 100644 --- a/src/Meta/threepk.jl +++ b/src/Meta/threepk.jl @@ -16,6 +16,7 @@ threepk_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_threepk_nvar(; n::Integer = default_nvar, kwargs...) = 30 get_threepk_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/thurber.jl b/src/Meta/thurber.jl index 51ec97539..6dd5c47f6 100644 --- a/src/Meta/thurber.jl +++ b/src/Meta/thurber.jl @@ -16,6 +16,7 @@ thurber_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_thurber_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_thurber_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/toint.jl b/src/Meta/toint.jl index c050ef51d..a5d18f8ff 100644 --- a/src/Meta/toint.jl +++ b/src/Meta/toint.jl @@ -16,6 +16,7 @@ toint_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_toint_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/tointgss.jl b/src/Meta/tointgss.jl index c7fc7d139..7d36831c5 100644 --- a/src/Meta/tointgss.jl +++ b/src/Meta/tointgss.jl @@ -16,6 +16,7 @@ tointgss_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_tointgss_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_tointgss_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/torsion.jl b/src/Meta/torsion.jl index f2809e2db..b49c2acff 100644 --- a/src/Meta/torsion.jl +++ b/src/Meta/torsion.jl @@ -16,6 +16,7 @@ torsion_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_torsion_nvar(; n::Integer = default_nvar, diff --git a/src/Meta/tquartic.jl b/src/Meta/tquartic.jl index 0b70a70cd..f85ea6bc0 100644 --- a/src/Meta/tquartic.jl +++ b/src/Meta/tquartic.jl @@ -16,6 +16,7 @@ tquartic_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_tquartic_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_tquartic_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/triangle.jl b/src/Meta/triangle.jl index 5dd9953b7..2bfaf90da 100644 --- a/src/Meta/triangle.jl +++ b/src/Meta/triangle.jl @@ -16,6 +16,7 @@ triangle_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_triangle_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_triangle_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/triangle_deer.jl b/src/Meta/triangle_deer.jl index 7ad67dc19..803faccea 100644 --- a/src/Meta/triangle_deer.jl +++ b/src/Meta/triangle_deer.jl @@ -16,10 +16,11 @@ triangle_deer_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_triangle_deer_nvar(; n::Integer = default_nvar, kwargs...) = 2244 get_triangle_deer_ncon(; n::Integer = default_nvar, kwargs...) = 1896 get_triangle_deer_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_triangle_deer_nnln(; n::Integer = default_nvar, kwargs...) = 1896 get_triangle_deer_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_triangle_deer_nineq(; n::Integer = default_nvar, kwargs...) = 1896 +get_triangle_deer_nineq(; n::Integer = default_nvar, kwargs...) = 1896 \ No newline at end of file diff --git a/src/Meta/triangle_pacman.jl b/src/Meta/triangle_pacman.jl index 677dd4846..ca0861f11 100644 --- a/src/Meta/triangle_pacman.jl +++ b/src/Meta/triangle_pacman.jl @@ -16,10 +16,11 @@ triangle_pacman_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_triangle_pacman_nvar(; n::Integer = default_nvar, kwargs...) = 1366 get_triangle_pacman_ncon(; n::Integer = default_nvar, kwargs...) = 1182 get_triangle_pacman_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_triangle_pacman_nnln(; n::Integer = default_nvar, kwargs...) = 1182 get_triangle_pacman_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_triangle_pacman_nineq(; n::Integer = default_nvar, kwargs...) = 1182 +get_triangle_pacman_nineq(; n::Integer = default_nvar, kwargs...) = 1182 \ No newline at end of file diff --git a/src/Meta/triangle_turtle.jl b/src/Meta/triangle_turtle.jl index 1d2fc030e..560d0e52d 100644 --- a/src/Meta/triangle_turtle.jl +++ b/src/Meta/triangle_turtle.jl @@ -16,10 +16,11 @@ triangle_turtle_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_triangle_turtle_nvar(; n::Integer = default_nvar, kwargs...) = 4444 get_triangle_turtle_ncon(; n::Integer = default_nvar, kwargs...) = 4025 get_triangle_turtle_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_triangle_turtle_nnln(; n::Integer = default_nvar, kwargs...) = 4025 get_triangle_turtle_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_triangle_turtle_nineq(; n::Integer = default_nvar, kwargs...) = 4025 +get_triangle_turtle_nineq(; n::Integer = default_nvar, kwargs...) = 4025 \ No newline at end of file diff --git a/src/Meta/tridia.jl b/src/Meta/tridia.jl index 1e4b79056..fcb802002 100644 --- a/src/Meta/tridia.jl +++ b/src/Meta/tridia.jl @@ -16,6 +16,7 @@ tridia_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_tridia_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_tridia_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/trig.jl b/src/Meta/trig.jl index 6fab7ffb8..6f91eb632 100644 --- a/src/Meta/trig.jl +++ b/src/Meta/trig.jl @@ -16,6 +16,7 @@ trig_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_trig_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/trigb.jl b/src/Meta/trigb.jl index 2fd84ffa1..b03abd02b 100644 --- a/src/Meta/trigb.jl +++ b/src/Meta/trigb.jl @@ -16,6 +16,7 @@ trigb_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_trigb_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/vardim.jl b/src/Meta/vardim.jl index a31eaa80d..5571f7a77 100644 --- a/src/Meta/vardim.jl +++ b/src/Meta/vardim.jl @@ -16,6 +16,7 @@ vardim_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_vardim_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_vardim_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/variational.jl b/src/Meta/variational.jl index 14c98dfca..d5eb72d35 100644 --- a/src/Meta/variational.jl +++ b/src/Meta/variational.jl @@ -16,6 +16,7 @@ variational_meta = Dict( :is_feasible => true, :defined_everywhere => false, :origin => :academic, + :implementation => :both, ) get_variational_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/vibrbeam.jl b/src/Meta/vibrbeam.jl index 9a5421824..bd9fc8630 100644 --- a/src/Meta/vibrbeam.jl +++ b/src/Meta/vibrbeam.jl @@ -16,6 +16,7 @@ vibrbeam_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_vibrbeam_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_vibrbeam_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/watson.jl b/src/Meta/watson.jl index 668c85dcd..ef6d3c3d9 100644 --- a/src/Meta/watson.jl +++ b/src/Meta/watson.jl @@ -16,6 +16,7 @@ watson_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_watson_nvar(; n::Integer = default_nvar, kwargs...) = min(max(n, 2), 31) get_watson_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/woods.jl b/src/Meta/woods.jl index 12be72b43..a835a9886 100644 --- a/src/Meta/woods.jl +++ b/src/Meta/woods.jl @@ -16,6 +16,7 @@ woods_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_woods_nvar(; n::Integer = default_nvar, kwargs...) = 4 * max(1, div(n, 4)) # number of variables adjusted to be a multiple of 4 get_woods_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/zangwil3.jl b/src/Meta/zangwil3.jl index 431eb6964..f7422940c 100644 --- a/src/Meta/zangwil3.jl +++ b/src/Meta/zangwil3.jl @@ -16,6 +16,7 @@ zangwil3_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :implementation => :both, ) get_zangwil3_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_zangwil3_ncon(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/OptimizationProblems.jl b/src/OptimizationProblems.jl index 7ea7b664e..0f0ad5088 100644 --- a/src/OptimizationProblems.jl +++ b/src/OptimizationProblems.jl @@ -34,6 +34,7 @@ const cols_names = [ :is_feasible :defined_everywhere :origin + :implementation ] const types = [ @@ -54,6 +55,7 @@ const types = [ Union{Bool, Missing} Union{Bool, Missing} Symbol + Symbol ] """ @@ -81,6 +83,7 @@ The following keys are valid: - `is_feasible::Union{Bool, Missing}`: true if problem is feasible - `defined_everywhere::Union{Bool, Missing}`: true if the objective is define for all values of the variables - `origin::Symbol`: origin of the problem, in [:academic, :modelling, :real, :unknown] + - `implementation::Symbol`: takes the value :jump, :adnlpmodels or :both whether the problem is defined in PureJuMP, ADNLPProblems, or both """ const meta = DataFrame(cols_names .=> [Array{T}(undef, number_of_problems) for T in types]) diff --git a/src/PureJuMP/curly10.jl b/src/PureJuMP/curly10.jl new file mode 100644 index 000000000..62a030572 --- /dev/null +++ b/src/PureJuMP/curly10.jl @@ -0,0 +1,23 @@ +export curly10 + +function curly10(; n::Int = default_nvar, kwargs...) + n < 2 && @warn("curly10: number of variables must be ≥ 2") + n = max(2, n) + b = 10 + + model = Model() + + @variable(model, x[i=1:n], start = 1.0e-4 * i / (n + 1)) + + @objective(model, Min, + sum( + sum(x[j] for j = i:min(i + b, n)) * ( + sum(x[j] for j = i:min(i + b, n)) * ( + (sum(x[j] for j = i:min(i + b, n)))^2 - 20 + ) - 1//10 + ) for i = 1:n + ) + ) + + return model +end \ No newline at end of file diff --git a/src/PureJuMP/curly20.jl b/src/PureJuMP/curly20.jl new file mode 100644 index 000000000..807fc5b2f --- /dev/null +++ b/src/PureJuMP/curly20.jl @@ -0,0 +1,23 @@ +export curly20 + +function curly20(; n::Int = default_nvar, kwargs...) + n < 2 && @warn("curly20: number of variables must be ≥ 2") + n = max(2, n) + b = 20 + + model = Model() + + @variable(model, x[i=1:n], start = 1.0e-4 * i / (n + 1)) + + @objective(model, Min, + sum( + sum(x[j] for j = i:min(i + b, n)) * ( + sum(x[j] for j = i:min(i + b, n)) * ( + (sum(x[j] for j = i:min(i + b, n)))^2 - 20 + ) - 1//10 + ) for i = 1:n + ) + ) + + return model +end \ No newline at end of file diff --git a/src/PureJuMP/curly30.jl b/src/PureJuMP/curly30.jl new file mode 100644 index 000000000..6da9285e9 --- /dev/null +++ b/src/PureJuMP/curly30.jl @@ -0,0 +1,23 @@ +export curly30 + +function curly30(; n::Int = default_nvar, kwargs...) + n < 2 && @warn("curly30: number of variables must be ≥ 2") + n = max(2, n) + b = 30 + + model = Model() + + @variable(model, x[i=1:n], start = 1.0e-4 * i / (n + 1)) + + @objective(model, Min, + sum( + sum(x[j] for j = i:min(i + b, n)) * ( + sum(x[j] for j = i:min(i + b, n)) * ( + (sum(x[j] for j = i:min(i + b, n)))^2 - 20 + ) - 1//10 + ) for i = 1:n + ) + ) + + return model +end \ No newline at end of file diff --git a/src/test.jl b/src/test.jl new file mode 100644 index 000000000..035323178 --- /dev/null +++ b/src/test.jl @@ -0,0 +1,22 @@ +using NLPModels, NLPModelsJuMP, OptimizationProblems, Test + +# meta_dir = "src/Meta" + +# for filename in readdir(meta_dir) +# endswith(filename, ".jl") || continue +# filepath = joinpath(meta_dir, filename) +# content = read(filepath, String) + +# if occursin(":implementation", content) +# println("✅ $(filename)") +# else +# println("❌ $(filename)") +# end +# end + +function defined_names(mod::Module) + # Exported only (default) + actually defined. Adjust all=true if you prefer. + [n for n in names(mod) if isdefined(mod, n)] +end + +const list_problems = setdiff(union(defined_names(ADNLPProblems), defined_names(PureJuMP)), [:PureJuMP, :ADNLPProblems]) diff --git a/test/runtests.jl b/test/runtests.jl index 22ce11bfe..1880e6d69 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -24,10 +24,8 @@ end # The problems included should be carefully argumented and issues # to create them added. # TODO: tests are limited for JuMP-only problems -@everywhere const list_problems_not_ADNLPProblems = - Symbol[:catmix, :gasoil, :glider, :methanol, :minsurf, :pinene, :rocket, :steering, :torsion] -@everywhere const list_problems_ADNLPProblems = - setdiff(list_problems, list_problems_not_ADNLPProblems) +@everywhere const list_problems_not_ADNLPProblems = Symbol[] +@everywhere const list_problems_ADNLPProblems = setdiff(list_problems, list_problems_not_ADNLPProblems) @everywhere const list_problems_not_PureJuMP = Symbol[] @everywhere const list_problems_PureJuMP = setdiff(list_problems, list_problems_not_PureJuMP) From 40a0916c042becd62f835acb7dd46517170041b4 Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU Date: Wed, 6 May 2026 15:09:10 -0400 Subject: [PATCH 2/7] modif on glider and pinene --- .DS_Store | Bin 6148 -> 6148 bytes src/.DS_Store | Bin 10244 -> 10244 bytes src/ADNLPProblems/glider.jl | 427 ++++++++++++++++-------------------- src/ADNLPProblems/pinene.jl | 152 +++++++------ 4 files changed, 270 insertions(+), 309 deletions(-) diff --git a/.DS_Store b/.DS_Store index edef2223857808bac70919b729a35651c88d95af..f4e7aec05b17b597625bac7096eb34a0d611110d 100644 GIT binary patch delta 21 ccmZoMXffC@jgiCD%v49g$ijT{JjOIJ07m)-6951J delta 21 ccmZoMXffC@jgiCL+(1Xc$lPM{JjOIJ07mEr5dZ)H diff --git a/src/.DS_Store b/src/.DS_Store index d81dfff03aa14a43ba89cd538a6d222e0271ecfa..fb783f3f1432dd391b3f3772f24a9db003efe009 100644 GIT binary patch literal 10244 zcmeHMX>c4z74C0z%`j_wWGnHqSxIXvv3zVC$+l$qh`n0LiEPW3qQjC;c~?7$r!tyR zc6KEjVItrccES;gkm5?JI77fx0SO^oKOm5#iu_2NfVl}r1qek_MN$Q!C|-BZF4C^- zA1Mb6HKUq&dasY^e)GQfb@wvHkj!UV8H+K-RJyq|LiAYR;^q7!-gg zb6J|%WwirC;DNvcfd>K)1Re-Ha3y$vIGbOpE@kixJP>#w@IcW6JU_(f<}%^SSt&*8 zpoiE3kgO!Lxafb{2Z%N?UnYDxE2U^keahVf{HE}?7?91WJjSb&O!#tEO4*!2HfQkP z41b3L@pft#6V(|KQU=e!1Azz1J-}hJh;_1Vwx9LR+rOJ^f_dp_Z!&GWX{z;TdeXMM zTuaOIP%0{`s%z95RacJ=o^YoJbE#b3OQy1ixi;jwcDnF?Dt*8*r^k%CF4xJWEXT}> z23E$TDn~{vC*w{h-Mo|WMB71GplYf%W`t*E+S=RVu?-!YPsd|3TQ;=BW1BX%pFXXr zS2f+RZD8znd%|(g$VtIZ3^beh*I808F+XI|8Xe-R{CxsbmZ_z`GB16LmMnVV2 zjHOdFmA=WG{AH*Pu^%en0k z`P|7_w_0Xat3_NJa#9oK`K3nflJHw2k>?gouNj^;bUOurY}y*ys2Uk<*iNNQ zTbkNK9jdWc8<~>6md3i!c2yf4cPA!j(4MsIjC88T6Y4Sk;@*^(>zgzkdN-d!S3@Ln zklQ;m88hS0Akq`rqZ-eshrAQ1tl2kBQ7Jp>iR@QZ@lDCjd)k$;a&ED3fEOB;Gi6c0 z)8~_MuQnwfxJP`2ro>wLHJS<^Mfg%{O0@U}mDRHi1h!swoDRxn*xl?t_7M9jdz^ir zJ;#2*e$QTFuK`d{g=*-iLp>T1!wRg$I$V$S*oJQG!c7>!VI09Rj3I*wIGDs8n8KZy z#k=rsya)H-gZL2c#V7Dtd=3xd%lHPqiEraOcp5*#ukiwYgO~7U`~@%Lb){0NQmU1( zvO-y@G%4-MW+kEQRtA(2WmJw_DZuMcVQRiTMe@?{@)L-1Zee&e-rTc$PpJ2Q23{8y zb3iStyXxxYF^;m18#{~PD5JL!uycVRVt*cDMC^cCWvJ1pBKSykRWqs81Rbfai#IkJ3L#diEv=0qqk{0LiMDNVQsFCGwuVAR zB_UIm?WiY}`AV{jy5TreFIU80U@x#2*~{!76!D9(3}G~*1?|{Q@x34Y7{m~UDaMZ@ zjd2m@E=7439^Q_3P^7<;V*M=c#{2Mod;lN8$MA6x?+@Z3d;wp?BX|^F$7A>|9>)*x z1fIlGcosjy@9;qab&1Ooq0mE$@Y-k$NK+Ih_h^7 zbLg^tAw27g!kjKgi7v}H>pw%5MP^(uqiA#JaYvCJm(}U|92&eBF2avRdMsPZ5U%Q33riBJj~HMv>~&NUZ`MFXEh3al)(FlvPTz zvRY|Xwklmpk8+EcDZ40N@}=}bs4B4Jmlj4tRO8Xjnrc8Q zTlMXHxoT8Ob*J7*E9E}TU_y_^ql6*jO$+oV*)#0N>{qlje1-iJ6%^jfX-T-67K0tw zft?iEU9=?Jk3QT&0X~GIf-+M?nKmsAU0NDuF(WARPNK{+M45MqFu#u|^P@zWpP?n< z=ZP{oVSbG$^D$Z~eh)vy^Y|%#TN2KtH2La6;aozFvWwt(rFo!24k*UY|94&d_x~$x z*ui)L4+I{#j2=K`_h5IDIxOt*OZ(<$?J>HK)6FklZ&pgtgdV&Kw~OO=Quw*zYTs5k v{NUvY-!?0yXij#~oTNO>f75>qaGf`PyjH%_3HJYty`dAYVE_N$J2?Lr`Sp3P literal 10244 zcmeHNYitx%6u#fIz>FPWsO2e>-MR=37W<%59)jBk?-nZC(rqc$-R{tiOlRuO?3PDr zN{mlTe4F@-`25+Z(TFkl`eouPnubIYiBS{%Wuo#2BkH+xXNhfrUnObC+-B~XbM8Io z?m2V5IeYJxF^0xmriQU7V@#%tQ%$Ar3XPBRYf6&>2_FRMGuB3bS>~`bv!=`r1z`lj z2!s&`BM?R)jKEBY0M%^XBf#GeQMx#d2Xs_W|J6aAzXc##Ok%&$ zJ?#U0ooGPg0UZ_8S0$Tb_kchZ!4?BToyMblI?;GQM+Ft?3__hDSQ)_%1^()!7xkwz z#03reFalu&rbd9nW-e=B&1?^AnXrF1*dTM$!|qVpa?&*Gbb81#U9YE2Fjb>qjc1$2Zi{ecjr1BO{8uFjlo`U+-aS&~}~> zP9brDnz1o7ll+~BBQl8OZS$s0d=DU4a$FkZS*Yr%s?n-*b5wBoq!cel? zb+TTQZ>(3-a;~w@AX{eMXeNtfs+6y`cZi#D_ZwN4Xe?eW{8h&0Esm_HSW{bnSA6Tv zJ^RMzYYR%%GIddB-gM2hWpoUi8E>E~<@OnN#?E$W|xAEoS@?y+_i1xy57a*4VjFQArF=~!m zTe;gENM((^!<3~3`8~4iKW~zAOItIh=Ug7_;DefJ=S>0tJqv*YITn9LRHayawRkqM zLQ48ER>}%&KzZ@g*-Eyaid{Q9L5?;ZpcpYzG z4DaDI-p8l-9ADroe2w$?1;67D{E5GD3I9q=Dv`>hh0-FaLaLE!rM1#FX}i=WbxCQd zUm6e|NCog6oamW!l=y3dFL=F3V^;=WWc!YtyVRB$55Di_ak$-Fws6tn=xwX3>eg>= zxSW(ChYM-@e>nIEn1CA}0e+TD&R&5_HPS&4F^*gfp4uD^WqF*>F27ZcXtM}Jf?c_a z*x3Xi!QNgOiD(kxR)bS}??jL**!_O5f0$FfC<&Vb$*{GntI_df9M8&zu kb^kFSIK`XB!?$q%AMXGCe|z(f%_n`0nesJf2JHX;1F}S!%>V!Z diff --git a/src/ADNLPProblems/glider.jl b/src/ADNLPProblems/glider.jl index 6485307f2..8311411b3 100644 --- a/src/ADNLPProblems/glider.jl +++ b/src/ADNLPProblems/glider.jl @@ -9,9 +9,7 @@ export glider function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - # ----------------------------- # Parameters - # ----------------------------- x_0 = T(0.0) y_0 = T(1000.0) y_f = T(900.0) @@ -34,186 +32,99 @@ function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs. cL_max = T(1.4) N = n + nvar = 5*(N + 1) + 1 + ncon = 4*N + 7 - # ----------------------------- - # Variable layout - # ----------------------------- - nvar = 1 + 5*(N+1) - idx_tf = 1 + y = (x,i) -> x[N + 1 + i] + vx = (x,i) -> x[2*N + 2 + i] + vy = (x,i) -> x[3*N + 3 + i] + cL = (x,i) -> x[4*N + 4 + i] + t_f = x -> x[end] - off_x = 1 - off_y = off_x + (N+1) - off_vx = off_y + (N+1) - off_vy = off_vx + (N+1) - off_cL = off_vy + (N+1) + r = (x,i) -> (x[i]/r_0 - 2.5)^2 + u = (x,i) -> u_c*(1 - r(x, i))*exp(-r(x, i)) + w = (x,i) -> vy(x, i) - u(x, i) + v = (x,i) -> sqrt(vx(x, i)^2 + w(x, i)^2) + D = (x,i) -> 0.5*(c0 + c1*cL(x, i)^2)*rho*S*v(x, i)^2 + L = (x,i) -> 0.5*cL(x, i)*rho*S*v(x, i)^2 + vx_dot = (x,i) -> (-L(x, i)*(w(x, i)/v(x, i)) - D(x, i)*(vx(x, i)/v(x, i)))/m + vy_dot = (x,i) -> (L(x, i)*(vx(x, i)/v(x, i)) - D(x, i)*(w(x, i)/v(x, i)))/m - g - idx_x(i) = off_x + i - idx_y(i) = off_y + i - idx_vx(i) = off_vx + i - idx_vy(i) = off_vy + i - idx_cL(i) = off_cL + i - - # ----------------------------- # Objective - # ----------------------------- - f(y) = -y[idx_x(N)] - - # ----------------------------- - # Helpers - # ----------------------------- - r_expr(y,i) = (y[idx_x(i)]/r_0 - T(2.5))^2 - u_expr(y,i) = u_c * (1 - r_expr(y,i)) * exp(-r_expr(y,i)) - w_expr(y,i) = y[idx_vy(i)] - u_expr(y,i) - v_expr(y,i) = sqrt(y[idx_vx(i)]^2 + w_expr(y,i)^2) - - D_expr(y,i) = 0.5*(c0 + c1*y[idx_cL(i)]^2)*rho*S*v_expr(y,i)^2 - L_expr(y,i) = 0.5*y[idx_cL(i)]*rho*S*v_expr(y,i)^2 - - vx_dot(y,i) = begin - vi = v_expr(y,i) - wi = w_expr(y,i) - vxi = y[idx_vx(i)] - (-L_expr(y,i)*(wi/vi) - D_expr(y,i)*(vxi/vi)) / m - end - - vy_dot(y,i) = begin - vi = v_expr(y,i) - wi = w_expr(y,i) - vxi = y[idx_vx(i)] - (L_expr(y,i)*(vxi/vi) - D_expr(y,i)*(wi/vi)) / m - g - end + f = x -> -x[N + 1] - # ----------------------------- - # NONLINEAR constraints (dynamics) - # ----------------------------- - nnln = 4*N - - function c!(cx, y) - tf = y[idx_tf] + # Dynamics + function c!(cx, x) + tf = t_f(x) step = tf / N for j = 1:N - cx[4*(j-1)+1] = y[idx_x(j)] - y[idx_x(j-1)] - 0.5*step*(y[idx_vx(j)] + y[idx_vx(j-1)]) - cx[4*(j-1)+2] = y[idx_y(j)] - y[idx_y(j-1)] - 0.5*step*(y[idx_vy(j)] + y[idx_vy(j-1)]) - cx[4*(j-1)+3] = y[idx_vx(j)] - y[idx_vx(j-1)] - 0.5*step*(vx_dot(y,j) + vx_dot(y,j-1)) - cx[4*(j-1)+4] = y[idx_vy(j)] - y[idx_vy(j-1)] - 0.5*step*(vy_dot(y,j) + vy_dot(y,j-1)) + cx[j] = x[j + 1] - x[j] - 0.5*step*(vx(x, j + 1) + vx(x, j)) + cx[j + N] = y(x, j + 1) - y(x, j) - 0.5*step*(vy(x, j + 1) + vy(x, j)) + cx[j + 2*N] = vx(x, j + 1) - vx(x, j) - 0.5*step*(vx_dot(x, j + 1) + vx_dot(x, j)) + cx[j + 3*N] = vy(x, j + 1) - vy(x, j) - 0.5*step*(vy_dot(x, j + 1) + vy_dot(x, j)) end + cx[4*N + 1] = x[1] - x_0 + cx[4*N + 2] = y(x, 1) - y_0 + cx[4*N + 3] = y(x, N + 1) - y_f + cx[4*N + 4] = vx(x, 1) - vx_0 + cx[4*N + 5] = vx(x, N + 1) - vx_f + cx[4*N + 6] = vy(x, 1) - vy_0 + cx[4*N + 7] = vy(x, N + 1) - vy_f return cx end - # ----------------------------- - # LINEAR constraints (boundary) - # ----------------------------- - nlin = 7 - - lcon_lin = zeros(T, nlin) - ucon_lin = zeros(T, nlin) - - row_I = Int[] - col_J = Int[] - val_V = T[] - - push_entry! = (r,c,v) -> (push!(row_I,r); push!(col_J,c); push!(val_V,T(v))) - - # x(0) - push_entry!(1, idx_x(0), 1) - lcon_lin[1] = x_0; ucon_lin[1] = x_0 - - # y(0) - push_entry!(2, idx_y(0), 1) - lcon_lin[2] = y_0; ucon_lin[2] = y_0 - - # y(N) - push_entry!(3, idx_y(N), 1) - lcon_lin[3] = y_f; ucon_lin[3] = y_f - - # vx(0) - push_entry!(4, idx_vx(0), 1) - lcon_lin[4] = vx_0; ucon_lin[4] = vx_0 - - # vx(N) - push_entry!(5, idx_vx(N), 1) - lcon_lin[5] = vx_f; ucon_lin[5] = vx_f - - # vy(0) - push_entry!(6, idx_vy(0), 1) - lcon_lin[6] = vy_0; ucon_lin[6] = vy_0 + # Boundary constraints + lcon = zeros(T, ncon) + ucon = zeros(T, ncon) - # vy(N) - push_entry!(7, idx_vy(N), 1) - lcon_lin[7] = vy_f; ucon_lin[7] = vy_f - - # ----------------------------- - # Merge constraints - # ----------------------------- - lcon = vcat(lcon_lin, zeros(T, nnln)) - ucon = vcat(ucon_lin, zeros(T, nnln)) - - # ----------------------------- - # Bounds - # ----------------------------- + # Variable boundaries lvar = T(-Inf) * ones(T, nvar) - uvar = T( Inf) * ones(T, nvar) + uvar = T(Inf) * ones(T, nvar) + for i in 0:N + lvar[i + 1] = 0.0 - lvar[idx_tf] = 0 + lvar[2*N + 2 + i] = 0.0 - for i = 0:N - lvar[idx_x(i)] = 0 - lvar[idx_vx(i)] = 0 - lvar[idx_cL(i)] = cL_min - uvar[idx_cL(i)] = cL_max + lvar[4*N + 4 + i] = cL_min + uvar[4*N + 4 + i] = cL_max + + lvar[end] = 0 end - # ----------------------------- - # Initial point - # ----------------------------- + # initialization x0 = zeros(T, nvar) - x0[idx_tf] = 1.0 - + x0[end] = 1.0 for i = 0:N - α = i / N - x0[idx_x(i)] = x_0 + vx_0 * α - x0[idx_y(i)] = y_0 + α*(y_f - y_0) - x0[idx_vx(i)] = vx_0 - x0[idx_vy(i)] = vy_0 - x0[idx_cL(i)] = 0.5*(cL_min + cL_max) + k = i / N + x0[i+1] = x_0 + vx_0 * k + x0[N + i + 1] = y_0 + k*(y_f - y_0) + x0[2*N + 2 + i] = vx_0 + x0[3*N + 3 + i] = vy_0 + x0[4*N + 4 + i] = 0.5*cL_max end - # ----------------------------- - # Model - # ----------------------------- return ADNLPModels.ADNLPModel!( f, x0, lvar, uvar, - row_I, - col_J, - val_V, c!, lcon, ucon, name = "glider"; kwargs..., ) -end - - - -# # Hang Glider Problem -# # Trapezoidal formulation -# # David Bortz - Summer 1998 -# # COPS 2.0 - September 2000 -# # COPS 3.0 - November 2002 -# # COPS 3.1 - March 2004 - -# export glider +end # function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} -# # Design parameters + +# # ----------------------------- +# # Parameters +# # ----------------------------- # x_0 = T(0.0) # y_0 = T(1000.0) # y_f = T(900.0) @@ -221,141 +132,183 @@ end # vx_f = T(13.23) # vy_0 = T(-1.288) # vy_f = T(-1.288) + # u_c = T(2.5) # r_0 = T(100.0) # m = T(100.0) # g = T(9.81) + # c0 = T(0.034) # c1 = T(0.069662) # S = T(14.0) # rho = T(1.13) + # cL_min = T(0.0) # cL_max = T(1.4) -# # Variable layout (length = 1 + 5*(n+1)): -# # y[1] = t_f -# # y[2:n+2] = x[0:n] (≥ 0) -# # y[n+3:2n+3] = y_state[0:n] -# # y[2n+4:3n+4] = vx[0:n] (≥ 0) -# # y[3n+5:4n+5] = vy[0:n] -# # y[4n+6:5n+6] = cL[0:n] ∈ [cL_min, cL_max] - # N = n -# nvar = 1 + 5*(N + 1) - -# # Indices helpers -# idx_tf = 1 -# idx_x = i -> 1 + (i + 1) # x[i], i=0..N -# idx_ys = i -> N + 2 + (i + 1) # y_state[i], i=0..N -# idx_vx = i -> 2*N+3 + (i + 1) # vx[i], i=0..N -# idx_vy = i -> 3*N+4 + (i + 1) # vy[i], i=0..N -# idx_cL = i -> 4*N+5 + (i + 1) # cL[i], i=0..N - -# # Objective: maximize x[N] ↔ minimize -x[N] -# function f(y) -# return -y[idx_x(N)] -# end -# # Aerodynamic helper expressions -# function r_expr(y, i) -# xi = y[idx_x(i)] -# return (xi / r_0 - T(2.5))^2 -# end -# function u_expr(y, i) -# ri = r_expr(y, i) -# return u_c * (1 - ri) * exp(-ri) -# end -# function w_expr(y, i) -# return y[idx_vy(i)] - u_expr(y, i) -# end -# function v_expr(y, i) +# # ----------------------------- +# # Variable layout +# # ----------------------------- +# nvar = 1 + 5*(N+1) + +# idx_tf = 1 + +# off_x = 1 +# off_y = off_x + (N+1) +# off_vx = off_y + (N+1) +# off_vy = off_vx + (N+1) +# off_cL = off_vy + (N+1) + +# idx_x(i) = off_x + i +# idx_y(i) = off_y + i +# idx_vx(i) = off_vx + i +# idx_vy(i) = off_vy + i +# idx_cL(i) = off_cL + i + +# # ----------------------------- +# # Objective +# # ----------------------------- +# f(y) = -y[idx_x(N)] + +# # ----------------------------- +# # Helpers +# # ----------------------------- +# r_expr(y,i) = (y[idx_x(i)]/r_0 - T(2.5))^2 +# u_expr(y,i) = u_c * (1 - r_expr(y,i)) * exp(-r_expr(y,i)) +# w_expr(y,i) = y[idx_vy(i)] - u_expr(y,i) +# v_expr(y,i) = sqrt(y[idx_vx(i)]^2 + w_expr(y,i)^2) + +# D_expr(y,i) = 0.5*(c0 + c1*y[idx_cL(i)]^2)*rho*S*v_expr(y,i)^2 +# L_expr(y,i) = 0.5*y[idx_cL(i)]*rho*S*v_expr(y,i)^2 + +# vx_dot(y,i) = begin +# vi = v_expr(y,i) +# wi = w_expr(y,i) # vxi = y[idx_vx(i)] -# wi = w_expr(y, i) -# return sqrt(vxi^2 + wi^2) +# (-L_expr(y,i)*(wi/vi) - D_expr(y,i)*(vxi/vi)) / m # end -# function D_expr(y, i) -# vi = v_expr(y, i) -# cLi = y[idx_cL(i)] -# return T(0.5) * (c0 + c1 * cLi^2) * rho * S * vi^2 -# end -# function L_expr(y, i) -# vi = v_expr(y, i) -# cLi = y[idx_cL(i)] -# return T(0.5) * cLi * rho * S * vi^2 -# end -# function vx_dot(y, i) -# vi = v_expr(y, i) -# wi = w_expr(y, i) -# vxi = y[idx_vx(i)] -# Di = D_expr(y, i) -# Li = L_expr(y, i) -# return (-Li * (wi / vi) - Di * (vxi / vi)) / m -# end -# function vy_dot(y, i) -# vi = v_expr(y, i) -# wi = w_expr(y, i) + +# vy_dot(y,i) = begin +# vi = v_expr(y,i) +# wi = w_expr(y,i) # vxi = y[idx_vx(i)] -# Di = D_expr(y, i) -# Li = L_expr(y, i) -# return (Li * (vxi / vi) - Di * (wi / vi)) / m - g +# (L_expr(y,i)*(vxi/vi) - D_expr(y,i)*(wi/vi)) / m - g # end -# # Constraints: -# # 4*N trapezoidal dynamics (x, y_state, vx, vy) for j=1..N -# # 7 boundary conditions -# # Total: 4N + 7 -# ncon = 4 * N + 7 +# # ----------------------------- +# # NONLINEAR constraints (dynamics) +# # ----------------------------- +# nnln = 4*N # function c!(cx, y) # tf = y[idx_tf] # step = tf / N -# # Dynamics # for j = 1:N -# cx[4*(j-1)+1] = y[idx_x(j)] - y[idx_x(j-1)] - T(0.5)*step*(y[idx_vx(j)] + y[idx_vx(j-1)]) -# cx[4*(j-1)+2] = y[idx_ys(j)] - y[idx_ys(j-1)] - T(0.5)*step*(y[idx_vy(j)] + y[idx_vy(j-1)]) -# cx[4*(j-1)+3] = y[idx_vx(j)] - y[idx_vx(j-1)] - T(0.5)*step*(vx_dot(y,j) + vx_dot(y,j-1)) -# cx[4*(j-1)+4] = y[idx_vy(j)] - y[idx_vy(j-1)] - T(0.5)*step*(vy_dot(y,j) + vy_dot(y,j-1)) +# cx[4*(j-1)+1] = y[idx_x(j)] - y[idx_x(j-1)] - 0.5*step*(y[idx_vx(j)] + y[idx_vx(j-1)]) +# cx[4*(j-1)+2] = y[idx_y(j)] - y[idx_y(j-1)] - 0.5*step*(y[idx_vy(j)] + y[idx_vy(j-1)]) +# cx[4*(j-1)+3] = y[idx_vx(j)] - y[idx_vx(j-1)] - 0.5*step*(vx_dot(y,j) + vx_dot(y,j-1)) +# cx[4*(j-1)+4] = y[idx_vy(j)] - y[idx_vy(j-1)] - 0.5*step*(vy_dot(y,j) + vy_dot(y,j-1)) # end -# # Boundary conditions -# base = 4*N -# cx[base+1] = y[idx_x(0)] - x_0 -# cx[base+2] = y[idx_ys(0)] - y_0 -# cx[base+3] = y[idx_ys(N)] - y_f -# cx[base+4] = y[idx_vx(0)] - vx_0 -# cx[base+5] = y[idx_vx(N)] - vx_f -# cx[base+6] = y[idx_vy(0)] - vy_0 -# cx[base+7] = y[idx_vy(N)] - vy_f + # return cx # end -# # Variable bounds +# # ----------------------------- +# # LINEAR constraints (boundary) +# # ----------------------------- +# nlin = 7 + +# lcon_lin = zeros(T, nlin) +# ucon_lin = zeros(T, nlin) + +# row_I = Int[] +# col_J = Int[] +# val_V = T[] + +# push_entry! = (r,c,v) -> (push!(row_I,r); push!(col_J,c); push!(val_V,T(v))) + +# # x(0) +# push_entry!(1, idx_x(0), 1) +# lcon_lin[1] = x_0; ucon_lin[1] = x_0 + +# # y(0) +# push_entry!(2, idx_y(0), 1) +# lcon_lin[2] = y_0; ucon_lin[2] = y_0 + +# # y(N) +# push_entry!(3, idx_y(N), 1) +# lcon_lin[3] = y_f; ucon_lin[3] = y_f + +# # vx(0) +# push_entry!(4, idx_vx(0), 1) +# lcon_lin[4] = vx_0; ucon_lin[4] = vx_0 + +# # vx(N) +# push_entry!(5, idx_vx(N), 1) +# lcon_lin[5] = vx_f; ucon_lin[5] = vx_f + +# # vy(0) +# push_entry!(6, idx_vy(0), 1) +# lcon_lin[6] = vy_0; ucon_lin[6] = vy_0 + +# # vy(N) +# push_entry!(7, idx_vy(N), 1) +# lcon_lin[7] = vy_f; ucon_lin[7] = vy_f + +# # ----------------------------- +# # Merge constraints +# # ----------------------------- +# lcon = vcat(lcon_lin, zeros(T, nnln)) +# ucon = vcat(ucon_lin, zeros(T, nnln)) + +# # ----------------------------- +# # Bounds +# # ----------------------------- # lvar = T(-Inf) * ones(T, nvar) # uvar = T( Inf) * ones(T, nvar) -# lvar[idx_tf] = T(0.0) # t_f ≥ 0 +# lvar[idx_tf] = 0 # for i = 0:N -# lvar[idx_x(i)] = T(0.0) # x ≥ 0 -# lvar[idx_vx(i)] = T(0.0) # vx ≥ 0 +# lvar[idx_x(i)] = 0 +# lvar[idx_vx(i)] = 0 # lvar[idx_cL(i)] = cL_min # uvar[idx_cL(i)] = cL_max # end -# # Constraint bounds (all equalities) -# lcon = zeros(T, ncon) -# ucon = zeros(T, ncon) - +# # ----------------------------- # # Initial point +# # ----------------------------- # x0 = zeros(T, nvar) -# x0[idx_tf] = T(1.0) +# x0[idx_tf] = 1.0 + # for i = 0:N -# x0[idx_x(i)] = x_0 + vx_0 * (i / N) -# x0[idx_ys(i)] = y_0 + (i / N) * (y_f - y_0) +# α = i / N +# x0[idx_x(i)] = x_0 + vx_0 * α +# x0[idx_y(i)] = y_0 + α*(y_f - y_0) # x0[idx_vx(i)] = vx_0 # x0[idx_vy(i)] = vy_0 -# x0[idx_cL(i)] = cL_max / T(2.0) +# x0[idx_cL(i)] = 0.5*(cL_min + cL_max) # end -# return ADNLPModels.ADNLPModel!(f, x0, lvar, uvar, c!, lcon, ucon, name = "glider"; kwargs...) +# # ----------------------------- +# # Model +# # ----------------------------- +# return ADNLPModels.ADNLPModel!( +# f, +# x0, +# lvar, +# uvar, +# row_I, +# col_J, +# val_V, +# c!, +# lcon, +# ucon, +# name = "glider"; +# kwargs..., +# ) # end \ No newline at end of file diff --git a/src/ADNLPProblems/pinene.jl b/src/ADNLPProblems/pinene.jl index daec118b5..0ea57f2a9 100644 --- a/src/ADNLPProblems/pinene.jl +++ b/src/ADNLPProblems/pinene.jl @@ -20,12 +20,11 @@ function pinene(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs. rho = T[0.11270166537926, 0.5, 0.88729833462074] bc = T[100.0, 0.0, 0.0, 0.0, 0.0] - tau = T[1230.0, 3060.0, 4920.0, 7800.0, - 10680.0, 15030.0, 22620.0, 36420.0] + tau = T[1230.0, 3060.0, 4920.0, 7800.0, 10680.0, 15030.0, 22620.0, 36420.0] - tf = tau[nm] - h = tf / n - t = T[(i-1)*h for i=1:(n+1)] + tf = tau[nm] + h = tf / n + t= T[(i-1)*h for i=1:(n+1)] fact = [factorial(k) for k=0:nc] itau = Int[min(n, floor(tau[i]/h)+1) for i=1:nm] @@ -41,107 +40,116 @@ function pinene(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs. 4.5 63.1 3.8 2.9 25.7; ] - # ---------------- VARIABLES ---------------- - nA = np - nB = n*ne - nC = n*nc*ne + v0 = zeros(n, ne) + # Starting-value + for i = 1:itau[1], s = 1:ne + v0[i, s] = bc[s] + end + for j = 2:nm, i = (itau[j - 1] + 1):itau[j], s = 1:ne + v0[i, s] = z[j, s] + end + for i = (itau[nm] + 1):n, s = 1:ne + v0[i, s] = z[nm, s] + end - nvar = nA + nB + 3*nC + nv = np + n*ne + nw = nv + n*nc*ne + nuc = nw + n*nc*ne + nDuc = nuc + n*nc*ne - offθ = 0 - offv = nA - offw = nA + nB - offu = nA + nB + nC - offD = nA + nB + 2*nC + nvar = np + nv + nw + nuc + nDuc - θ = p -> offθ + p - v = (i,s) -> offv + (i-1)*ne + s - w = (i,j,s) -> offw + ((i-1)*nc+(j-1))*ne + s - u = (i,j,s) -> offu + ((i-1)*nc+(j-1))*ne + s - D = (i,j,s) -> offD + ((i-1)*nc+(j-1))*ne + s + theta = x -> view(x, 1 : np) + v = x -> reshape_array(view(x, np + 1 : nv), (n, ne)) + w = x ->reshape_array(view(x, nv + 1 : nw), (n, nc, ne)) + uc = x ->reshape_array(view(x, nw + 1 : nuc), (n, nc, ne)) + Duc = x -> reshape_array(view(x, nuc + 1 : nDuc), (n, nc, ne)) + + error = (x, j, s) -> v(x)[itau[j], s] + sum(w(x)[itau[j], k, s]*(tau[j]-t[itau[j]])^k/(fact[k + 1]*h^(k-1)) for k = 1:nc) - z[j, s] # ---------------- OBJECTIVE ---------------- - f = y -> sum( - (y[v(itau[j],s)] + - sum(y[w(itau[j],k,s)]*(tau[j]-t[itau[j]])^k / - (fact[k+1]*h^(k-1)) for k=1:nc) - - z[j,s])^2 - for j=1:nm, s=1:ne - ) + f = x -> sum(error(x, j, s)^2 for j = 1:nm, s = 1:ne) - # ---------------- NONLINEAR CONSTRAINTS ONLY ---------------- - # IMPORTANT: ONLY dynamics here (no linear constraints mixed) - ncon = 5 * n * nc # EXACT COPS structure + ncon = 2*(ne * n * nc) + ne + (n-1)*ne + 5*n*nc + lcon = zeros(T, ncon) - function c!(cx, y) + function c!(cx, x) idx = 1 - θp = p -> y[θ(p)] - # eq1 - for i=1:n, j=1:nc - cx[idx] = y[D(i,j,1)] + - (θp(1)+θp(2)) * y[u(i,j,1)] + for i=1:n, j=1:nc, s=1:ne + cx[idx] = uc(x)[i, j, s] - v(x)[i, s] - h*sum(w(x)[i, k, s]*(rho[j]^k/fact[k + 1]) for k = 1:nc) idx += 1 end - # eq2 - for i=1:n, j=1:nc - cx[idx] = y[D(i,j,2)] - - θp(1) * y[u(i,j,1)] + for i=1:n, j=1:nc, s=1:ne + cx[idx] = Duc(x)[i, j, s] - sum(w(x)[i, k, s]*(rho[j]^(k-1)/fact[k]) for k = 1:nc) idx += 1 end - # eq3 - for i=1:n, j=1:nc - cx[idx] = y[D(i,j,3)] - - θp(2) * y[u(i,j,1)] + - (θp(3)+θp(4)) * y[u(i,j,3)] - - θp(5) * y[u(i,j,5)] + for i=1:(n - 1), s=1:ne + cx[idx] = v(x)[i, s] + sum(w(x)[i, j, s]*h/fact[j + 1] for j = 1:nc) - v(x)[i + 1, s] idx += 1 end - # eq4 for i=1:n, j=1:nc - cx[idx] = y[D(i,j,4)] - - θp(3) * y[u(i,j,3)] + cx[idx] = Duc(x)[i, j, 1] + (theta(x)[1] + theta(x)[2])*uc(x)[i, j, 1] + idx += 1 + cx[idx] = Duc(x)[i, j, 2] - theta(x)[1]*uc(x)[i, j, 1] + idx += 1 + cx[idx] = Duc(x)[i, j, 3] - theta(x)[2]*uc(x)[i, j, 1] + (theta(x)[3]+theta(x)[4])*uc(x)[i, j, 3] - theta(x)[5]*uc(x)[i, j, 5] + idx += 1 + cx[idx] = Duc(x)[i, j, 4] - theta(x)[3]*uc(x)[i, j, 3] + idx += 1 + cx[idx] = Duc(x)[i, j, 5] - theta(x)[4]*uc(x)[i, j, 3] + theta(x)[5]*uc(x)[i, j, 5] idx += 1 end - # eq5 - for i=1:n, j=1:nc - cx[idx] = y[D(i,j,5)] - - θp(4) * y[u(i,j,3)] + - θp(5) * y[u(i,j,5)] - idx += 1 + for s=1:ne + cx[idx] = v(x)[1, s] - bc[s] end return cx end - # ---------------- BOUNDS ---------------- - lvar = fill(T(-Inf), nvar) - uvar = fill(T(Inf), nvar) + # Boundary constraints + lcon = zeros(T, ncon) - for p=1:np - lvar[θ(p)] = T(0.0) - end - x0 = zeros(T, nvar) + # Variable boundaries + lvar = T(-Inf) * ones(T, nvar) + uvar = T(Inf) * ones(T, nvar) - for i=1:n, s=1:ne - for j=1:nc - x0[u(i,j,s)] = T(0.0) - end + lvar[1:np] .= 0.0 + lvar[nv + 1 : nw] .= 0.0 + lvar[nuc + 1 : nDuc] .= 0.0 + + # initialization + x0 = zeros(T, nvar) + x0[1:np] .= 0.0 + idx = np + 1 + for i = 1:n, s = 1:ne + x0[idx] = v0[i, s] + idx += 1 end + x0[nv+1:nw] .= 0.0 + idx = nw + 1 + for i = 1:n, j = 1:nc, s = 1:ne + x0[idx] = v0[i, s] + idx += 1 + end + x0[nuc+1:nDuc] .= 0.0 - lcon = zeros(T, ncon) - ucon = zeros(T, ncon) return ADNLPModels.ADNLPModel!( - f, x0, lvar, uvar, - c!, lcon, ucon, - name="pinene"; - kwargs... + f, + x0, + lvar, + uvar, + c!, + lcon, + lcon, + name = "glider"; + kwargs..., ) end From 94c5468fef27311384d477b1e1393792904b64e5 Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU Date: Wed, 6 May 2026 16:09:48 -0400 Subject: [PATCH 3/7] :implementation features --- src/ADNLPProblems/glider.jl | 37 +++++++++++++++++++++++++++++-------- src/ADNLPProblems/pinene.jl | 2 +- src/Meta/catmix.jl | 2 +- src/Meta/gasoil.jl | 2 +- src/Meta/glider.jl | 2 +- src/Meta/methanol.jl | 2 +- src/Meta/minsurf.jl | 2 +- src/Meta/pinene.jl | 2 +- src/Meta/rocket.jl | 2 +- src/Meta/steering.jl | 2 +- src/Meta/torsion.jl | 2 +- 11 files changed, 39 insertions(+), 18 deletions(-) diff --git a/src/ADNLPProblems/glider.jl b/src/ADNLPProblems/glider.jl index 8311411b3..2dbfcaa8c 100644 --- a/src/ADNLPProblems/glider.jl +++ b/src/ADNLPProblems/glider.jl @@ -33,7 +33,7 @@ function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs. N = n nvar = 5*(N + 1) + 1 - ncon = 4*N + 7 + ncon = 4*N y = (x,i) -> x[N + 1 + i] @@ -65,13 +65,13 @@ function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs. cx[j + 2*N] = vx(x, j + 1) - vx(x, j) - 0.5*step*(vx_dot(x, j + 1) + vx_dot(x, j)) cx[j + 3*N] = vy(x, j + 1) - vy(x, j) - 0.5*step*(vy_dot(x, j + 1) + vy_dot(x, j)) end - cx[4*N + 1] = x[1] - x_0 - cx[4*N + 2] = y(x, 1) - y_0 - cx[4*N + 3] = y(x, N + 1) - y_f - cx[4*N + 4] = vx(x, 1) - vx_0 - cx[4*N + 5] = vx(x, N + 1) - vx_f - cx[4*N + 6] = vy(x, 1) - vy_0 - cx[4*N + 7] = vy(x, N + 1) - vy_f + # cx[4*N + 1] = x[1] - x_0 + # cx[4*N + 2] = y(x, 1) - y_0 + # cx[4*N + 3] = y(x, N + 1) - y_f + # cx[4*N + 4] = vx(x, 1) - vx_0 + # cx[4*N + 5] = vx(x, N + 1) - vx_f + # cx[4*N + 6] = vy(x, 1) - vy_0 + # cx[4*N + 7] = vy(x, N + 1) - vy_f return cx end @@ -93,6 +93,27 @@ function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs. lvar[end] = 0 end + # x(0) + lvar[1] = x_0 + uvar[1] = x_0 + # y(0) + lvar[N + 1 + 1] = y_0 + uvar[N + 1 + 1] = y_0 + # y(tf) + lvar[N + 1 + (N + 1)] = y_f + uvar[N + 1 + (N + 1)] = y_f + # vx(0) + lvar[2*N + 2 + 1] = vx_0 + uvar[2*N + 2 + 1] = vx_0 + # vx(tf) + lvar[2*N + 2 + (N + 1)] = vx_f + uvar[2*N + 2 + (N + 1)] = vx_f + # vy(0) + lvar[3*N + 3 + 1] = vy_0 + uvar[3*N + 3 + 1] = vy_0 + # vy(tf) + lvar[3*N + 3 + (N + 1)] = vy_f + uvar[3*N + 3 + (N + 1)] = vy_f # initialization x0 = zeros(T, nvar) diff --git a/src/ADNLPProblems/pinene.jl b/src/ADNLPProblems/pinene.jl index 0ea57f2a9..1dd377faf 100644 --- a/src/ADNLPProblems/pinene.jl +++ b/src/ADNLPProblems/pinene.jl @@ -148,7 +148,7 @@ function pinene(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs. c!, lcon, lcon, - name = "glider"; + name = "pinene"; kwargs..., ) end diff --git a/src/Meta/catmix.jl b/src/Meta/catmix.jl index e6c8dd13c..ed9a4d538 100644 --- a/src/Meta/catmix.jl +++ b/src/Meta/catmix.jl @@ -16,7 +16,7 @@ catmix_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, - :implementation => :both, + :implementation => :jump, ) get_catmix_nvar(; n::Integer = default_nvar, kwargs...) = 23 * n + 2 get_catmix_ncon(; n::Integer = default_nvar, kwargs...) = 20 * n + 2 diff --git a/src/Meta/gasoil.jl b/src/Meta/gasoil.jl index 77b6eac4b..2e735db22 100644 --- a/src/Meta/gasoil.jl +++ b/src/Meta/gasoil.jl @@ -16,7 +16,7 @@ gasoil_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :both, + :implementation => :jump, ) get_gasoil_nvar(; n::Integer = default_nvar, kwargs...) = 26 * n + 3 get_gasoil_ncon(; n::Integer = default_nvar, kwargs...) = 26 * n + 0 diff --git a/src/Meta/glider.jl b/src/Meta/glider.jl index c1578c457..e0688df9a 100644 --- a/src/Meta/glider.jl +++ b/src/Meta/glider.jl @@ -16,7 +16,7 @@ glider_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :both, + :implementation => :jump, ) get_glider_nvar(; n::Integer = default_nvar, kwargs...) = 5 * n + 6 get_glider_ncon(; n::Integer = default_nvar, kwargs...) = 4 * n + 7 diff --git a/src/Meta/methanol.jl b/src/Meta/methanol.jl index 519edea4e..8f255c124 100644 --- a/src/Meta/methanol.jl +++ b/src/Meta/methanol.jl @@ -16,7 +16,7 @@ methanol_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :both, + :implementation => :jump, ) get_methanol_nvar(; n::Integer = default_nvar, kwargs...) = 30 * n + 5 get_methanol_ncon(; n::Integer = default_nvar, kwargs...) = 30 * n + 0 diff --git a/src/Meta/minsurf.jl b/src/Meta/minsurf.jl index 7a929b297..3d43a7989 100644 --- a/src/Meta/minsurf.jl +++ b/src/Meta/minsurf.jl @@ -16,7 +16,7 @@ minsurf_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :both, + :implementation => :jump, ) get_minsurf_nvar(; n::Integer = default_nvar, diff --git a/src/Meta/pinene.jl b/src/Meta/pinene.jl index 31ec8c933..b75edfadf 100644 --- a/src/Meta/pinene.jl +++ b/src/Meta/pinene.jl @@ -16,7 +16,7 @@ pinene_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :both, + :implementation => :jump, ) get_pinene_nvar(; n::Integer = default_nvar, kwargs...) = 50 * n + 5 get_pinene_ncon(; n::Integer = default_nvar, kwargs...) = 50 * n + 0 diff --git a/src/Meta/rocket.jl b/src/Meta/rocket.jl index 2d0d0f4df..9cd41f237 100644 --- a/src/Meta/rocket.jl +++ b/src/Meta/rocket.jl @@ -16,7 +16,7 @@ rocket_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :both, + :implementation => :jump, ) get_rocket_nvar(; n::Integer = default_nvar, kwargs...) = 4 * n + 5 get_rocket_ncon(; n::Integer = default_nvar, kwargs...) = 3 * n + 4 diff --git a/src/Meta/steering.jl b/src/Meta/steering.jl index ba44b37c9..3471ea999 100644 --- a/src/Meta/steering.jl +++ b/src/Meta/steering.jl @@ -16,7 +16,7 @@ steering_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :both, + :implementation => :jump, ) get_steering_nvar(; n::Integer = default_nvar, kwargs...) = 5 * n + 6 get_steering_ncon(; n::Integer = default_nvar, kwargs...) = 4 * n + 8 diff --git a/src/Meta/torsion.jl b/src/Meta/torsion.jl index b49c2acff..6b63d26fa 100644 --- a/src/Meta/torsion.jl +++ b/src/Meta/torsion.jl @@ -16,7 +16,7 @@ torsion_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, - :implementation => :both, + :implementation => :jump, ) get_torsion_nvar(; n::Integer = default_nvar, From ce0c3e4b0c1c269f2e41a36119dbc2f3e848036b Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU Date: Wed, 6 May 2026 16:14:11 -0400 Subject: [PATCH 4/7] format file --- src/ADNLPProblems/catmix.jl | 413 ------------------------------- src/ADNLPProblems/gasoil.jl | 194 --------------- src/ADNLPProblems/glider.jl | 335 -------------------------- src/ADNLPProblems/methanol.jl | 440 ---------------------------------- src/ADNLPProblems/minsurf.jl | 91 ------- src/ADNLPProblems/pinene.jl | 306 ----------------------- src/ADNLPProblems/rocket.jl | 101 -------- src/ADNLPProblems/steering.jl | 110 --------- src/ADNLPProblems/torsion.jl | 49 ---- 9 files changed, 2039 deletions(-) delete mode 100644 src/ADNLPProblems/catmix.jl delete mode 100644 src/ADNLPProblems/gasoil.jl delete mode 100644 src/ADNLPProblems/glider.jl delete mode 100644 src/ADNLPProblems/methanol.jl delete mode 100644 src/ADNLPProblems/minsurf.jl delete mode 100644 src/ADNLPProblems/pinene.jl delete mode 100644 src/ADNLPProblems/rocket.jl delete mode 100644 src/ADNLPProblems/steering.jl delete mode 100644 src/ADNLPProblems/torsion.jl diff --git a/src/ADNLPProblems/catmix.jl b/src/ADNLPProblems/catmix.jl deleted file mode 100644 index 52fc44f1b..000000000 --- a/src/ADNLPProblems/catmix.jl +++ /dev/null @@ -1,413 +0,0 @@ -# Catalyst Mixing Problem -# Collocation formulation -# COPS 3.0 - November 2002 -# COPS 3.1 - March 2004 - -export catmix - -function catmix(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - - ne = 2 - nc = 3 - - tf = one(T) - h = tf / n - fact = [factorial(k) for k = 0:nc] - - ρ = T[0.11270166537926, 0.5, 0.88729833462074] - bc = T[1.0, 0.0] - α = zero(T) - - # ------------------------- - # VARIABLE LAYOUT - # ------------------------- - nu = n*nc - nv = n*ne - nw = n*nc*ne - npp = n*nc*ne - nDpp = n*nc*ne - nppf = ne - - nvar = nu + nv + nw + npp + nDpp + nppf - - # views - function split(x) - u = reshape_array(view(x, 1:nu), (n, nc)) - v = reshape_array(view(x, nu+1:nu+nv), (n, ne)) - w = reshape_array(view(x, nu+nv+1:nu+nv+nw), (n, nc, ne)) - pp = reshape_array(view(x, nu+nv+nw+1:nu+nv+nw+npp), (n, nc, ne)) - Dpp = reshape_array(view(x, nu+nv+nw+npp+1:nu+nv+nw+npp+nDpp), (n, nc, ne)) - ppf = view(x, nu+nv+nw+npp+nDpp+1:nvar) - return u, v, w, pp, Dpp, ppf - end - - # ------------------------- - # OBJECTIVE - # ------------------------- - function f(x) - u, v, w, pp, Dpp, ppf = split(x) - - val = -one(T) + sum(ppf) - - for i=1:n-1, j=1:nc - val += α/h * (u[i+1,j] - u[i,j])^2 - end - - return val - end - - # ------------------------- - # NONLINEAR (ONLY dynamics) - # ------------------------- - nnln = 2*n*nc - - function c!(cx, x) - u, _, _, pp, Dpp, _ = split(x) - - idx = 1 - - for i=1:n, j=1:nc - cx[idx] = Dpp[i,j,1] - u[i,j]*(10pp[i,j,2] - pp[i,j,1]) - idx += 1 - end - - for i=1:n, j=1:nc - cx[idx] = Dpp[i,j,2] - u[i,j]*(pp[i,j,1] - 10pp[i,j,2]) + - (1 - u[i,j])*pp[i,j,2] - idx += 1 - end - - return cx - end - - # ------------------------- - # LINEAR CONSTRAINT MATRIX - # ------------------------- - nlin = - n*nc*ne + # pp collocation - n*nc*ne + # Dpp collocation - ne + # ppf - (n-1)*ne + # continuity - ne # boundary - - A = spzeros(T, nlin, nvar) - - row = 1 - - # helper: get flat index via linear indexing - function lin_index(offset, idx) - return offset + idx - end - - off_u = 0 - off_v = nu - off_w = nu + nv - off_pp = nu + nv + nw - off_Dpp = nu + nv + nw + npp - off_ppf = nu + nv + nw + npp + nDpp - - # ------------------------- - # collocation pp - # ------------------------- - for i=1:n, k=1:nc, s=1:ne - A[row, off_pp + ((i-1)*nc + (k-1))*ne + s] = 1 - A[row, off_v + (i-1)*ne + s] = -1 - - for j=1:nc - A[row, off_w + ((i-1)*nc + (j-1))*ne + s] = - -h * ρ[k]^j / fact[j+1] - end - - row += 1 - end - - # ------------------------- - # collocation Dpp - # ------------------------- - for i=1:n, k=1:nc, s=1:ne - A[row, off_Dpp + ((i-1)*nc + (k-1))*ne + s] = 1 - - for j=1:nc - A[row, off_w + ((i-1)*nc + (j-1))*ne + s] = - -ρ[k]^(j-1) / fact[j] - end - - row += 1 - end - - # ------------------------- - # ppf - # ------------------------- - for s=1:ne - A[row, off_ppf + s] = 1 - A[row, off_v + (n-1)*ne + s] = -1 - - for j=1:nc - A[row, off_w + ((n-1)*nc + (j-1))*ne + s] = - -h / fact[j+1] - end - - row += 1 - end - - # ------------------------- - # continuity - # ------------------------- - for i=1:n-1, s=1:ne - A[row, off_v + (i-1)*ne + s] = 1 - A[row, off_v + i*ne + s] = -1 - - for j=1:nc - A[row, off_w + ((i-1)*nc + (j-1))*ne + s] = - h / fact[j+1] - end - - row += 1 - end - - # ------------------------- - # boundary - # ------------------------- - lcon_lin = zeros(T, nlin) - ucon_lin = zeros(T, nlin) - - for s=1:ne - A[row, off_v + s] = 1 - lcon_lin[row] = bc[s] - ucon_lin[row] = bc[s] - row += 1 - end - - # ------------------------- - # FINAL BOUNDS - # ------------------------- - lcon = vcat(lcon_lin, zeros(T, nnln)) - ucon = vcat(ucon_lin, zeros(T, nnln)) - - lvar = fill(-Inf, nvar) - uvar = fill( Inf, nvar) - - for i=1:nu - lvar[i] = 0 - uvar[i] = 1 - end - - # ------------------------- - # INITIAL POINT - # ------------------------- - x0 = zeros(T, nvar) - - return ADNLPModels.ADNLPModel!( - f, x0, - A, - c!, - lcon, ucon, - name = "catmix"; - kwargs... - ) -end - - - - - -# export catmix - -# function catmix(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} -# ne = 2 -# nc = 3 -# tf = T(1) -# h = tf / n -# fact = [factorial(k) for k = 0:nc] - -# rho = T[0.11270166537926, 0.50000000000000, 0.88729833462074] -# bc = T[1.0, 0.0] -# alpha = T(0.0) - -# # --------------------------------------------------------------- -# # Variable layout -# # Block A : u[i,j] i=1:n, j=1:nc → n*nc vars, ∈ [0,1] -# # Block B : v[i,s] i=1:n, s=1:ne → n*ne vars -# # Block C : w[i,j,s] i=1:n, j=1:nc, s=1:ne → n*nc*ne vars -# # Block D : pp[i,j,s] i=1:n, j=1:nc, s=1:ne → n*nc*ne vars -# # Block E : Dpp[i,j,s] i=1:n, j=1:nc, s=1:ne → n*nc*ne vars -# # Block F : ppf[s] s=1:ne → ne vars -# # --------------------------------------------------------------- -# nA = n * nc; nB = n * ne; nC = n * nc * ne -# nD = n * nc * ne; nE = n * nc * ne; nF = ne -# nvar = nA + nB + nC + nD + nE + nF - -# offA = 0; offB = nA; offC = nA + nB -# offD = nA + nB + nC; offE = nA + nB + nC + nD; offF = nA + nB + nC + nD + nE - -# idx_u = (i, j) -> offA + (i-1)*nc + j -# idx_v = (i, s) -> offB + (i-1)*ne + s -# idx_w = (i, j, s) -> offC + ((i-1)*nc + (j-1))*ne + s -# idx_pp = (i, j, s) -> offD + ((i-1)*nc + (j-1))*ne + s -# idx_Dpp = (i, j, s) -> offE + ((i-1)*nc + (j-1))*ne + s -# idx_ppf = s -> offF + s - -# # --------------------------------------------------------------- -# # Objective -# # --------------------------------------------------------------- -# function f(y) -# return -T(1.0) + y[idx_ppf(1)] + y[idx_ppf(2)] + -# alpha / h * sum((y[idx_u(i+1,j)] - y[idx_u(i,j)])^2 for i=1:(n-1), j=1:nc) -# end - -# # --------------------------------------------------------------- -# # NONLINEAR constraints: de1 and de2 (nnln = 6n) -# # -# # Row 1..n*nc : de1[i,j]: Dpp[i,j,1] = u[i,j]*(10*pp[i,j,2] - pp[i,j,1]) -# # Row n*nc+1..end: de2[i,j]: Dpp[i,j,2] = u[i,j]*(pp[i,j,1]-10*pp[i,j,2]) -# # - (1-u[i,j])*pp[i,j,2] -# # --------------------------------------------------------------- -# nnln = 2 * n * nc # 6n - -# function c!(cx, y) -# ptr = 1 -# for i = 1:n, j = 1:nc -# cx[ptr] = y[idx_Dpp(i,j,1)] - y[idx_u(i,j)] * (T(10)*y[idx_pp(i,j,2)] - y[idx_pp(i,j,1)]) -# ptr += 1 -# end -# for i = 1:n, j = 1:nc -# cx[ptr] = y[idx_Dpp(i,j,2)] - -# y[idx_u(i,j)] * (y[idx_pp(i,j,1)] - T(10)*y[idx_pp(i,j,2)]) + -# (T(1) - y[idx_u(i,j)]) * y[idx_pp(i,j,2)] -# ptr += 1 -# end -# return cx -# end - -# # --------------------------------------------------------------- -# # LINEAR constraints (nlin = 14n + 2) -# # -# # Row ordering: -# # 1 .. 6n : collocation pp (n*nc*ne) -# # 6n+1 .. 12n : collocation Dpp (n*nc*ne) -# # 12n+1 .. 12n+2 : ppf (ne) -# # 12n+3 .. 14n : continuity ((n-1)*ne) -# # 14n+1 .. 14n+2 : boundary (ne) -# # --------------------------------------------------------------- -# nlin_pp = n * nc * ne # 6n -# nlin_Dpp = n * nc * ne # 6n -# nlin_ppf = ne # 2 -# nlin_cont = (n-1) * ne # 2(n-1) -# nlin_bc = ne # 2 -# nlin = nlin_pp + nlin_Dpp + nlin_ppf + nlin_cont + nlin_bc # 14n+2 - -# lcon_lin = zeros(T, nlin) -# ucon_lin = zeros(T, nlin) - -# # Boundary rhs: v[1,s] = bc[s] -# bc_off = nlin_pp + nlin_Dpp + nlin_ppf + nlin_cont -# for s = 1:ne -# lcon_lin[bc_off + s] = bc[s] -# ucon_lin[bc_off + s] = bc[s] -# end - -# # --------------------------------------------------------------- -# # Sparse linear matrix entries -# # --------------------------------------------------------------- -# row_I = Int[]; col_J = Int[]; val_V = T[] - -# push_entry! = (r, c, v) -> (push!(row_I, r); push!(col_J, c); push!(val_V, T(v))) - -# # Block 1: collocation pp -# # pp[i,k,s] - v[i,s] - h * sum_j w[i,j,s]*rho[k]^j/fact[j+1] = 0 -# for i = 1:n, k = 1:nc, s = 1:ne -# row = (i-1)*nc*ne + (k-1)*ne + s -# push_entry!(row, idx_pp(i,k,s), 1) -# push_entry!(row, idx_v(i,s), -1) -# for j = 1:nc -# push_entry!(row, idx_w(i,j,s), -h * rho[k]^j / fact[j+1]) -# end -# end - -# # Block 2: collocation Dpp -# # Dpp[i,k,s] - sum_j w[i,j,s]*rho[k]^(j-1)/fact[j] = 0 -# off2 = nlin_pp -# for i = 1:n, k = 1:nc, s = 1:ne -# row = off2 + (i-1)*nc*ne + (k-1)*ne + s -# push_entry!(row, idx_Dpp(i,k,s), 1) -# for j = 1:nc -# push_entry!(row, idx_w(i,j,s), -rho[k]^(j-1) / fact[j]) -# end -# end - -# # Block 3: ppf -# # ppf[s] - v[n,s] - h * sum_j w[n,j,s]/fact[j+1] = 0 -# off3 = nlin_pp + nlin_Dpp -# for s = 1:ne -# row = off3 + s -# push_entry!(row, idx_ppf(s), 1) -# push_entry!(row, idx_v(n, s), -1) -# for j = 1:nc -# push_entry!(row, idx_w(n,j,s), -h / fact[j+1]) -# end -# end - -# # Block 4: continuity -# # v[i,s] + h*sum_j w[i,j,s]/fact[j+1] - v[i+1,s] = 0 for i=1:n-1 -# off4 = nlin_pp + nlin_Dpp + nlin_ppf -# for i = 1:(n-1), s = 1:ne -# row = off4 + (i-1)*ne + s -# push_entry!(row, idx_v(i, s), 1) -# push_entry!(row, idx_v(i+1, s), -1) -# for j = 1:nc -# push_entry!(row, idx_w(i,j,s), h / fact[j+1]) -# end -# end - -# # Block 5: boundary v[1,s] = bc[s] -# off5 = bc_off -# for s = 1:ne -# push_entry!(off5 + s, idx_v(1, s), 1) -# end - -# # --------------------------------------------------------------- -# # Combine lcon/ucon: linear constraints first, then nonlinear -# # --------------------------------------------------------------- -# lcon = vcat(lcon_lin, zeros(T, nnln)) -# ucon = vcat(ucon_lin, zeros(T, nnln)) - -# # --------------------------------------------------------------- -# # Variable bounds -# # --------------------------------------------------------------- -# lvar = T(-Inf) * ones(T, nvar) -# uvar = T( Inf) * ones(T, nvar) - -# for i = 1:n, j = 1:nc -# lvar[idx_u(i,j)] = T(0.0) -# uvar[idx_u(i,j)] = T(1.0) -# end - -# # --------------------------------------------------------------- -# # Initial point -# # --------------------------------------------------------------- -# x0 = zeros(T, nvar) -# for i = 1:n, s = 1:ne -# x0[idx_v(i,s)] = T(mod(s, ne)) -# for j = 1:nc -# x0[idx_pp(i,j,s)] = T(mod(s, ne)) -# end -# end -# for s = 1:ne -# x0[idx_ppf(s)] = T(mod(s, ne)) -# end - -# return ADNLPModels.ADNLPModel!( -# f, -# x0, -# lvar, -# uvar, -# row_I, -# col_J, -# val_V, -# c!, -# lcon, -# ucon, -# name = "catmix"; -# kwargs..., -# ) -# end \ No newline at end of file diff --git a/src/ADNLPProblems/gasoil.jl b/src/ADNLPProblems/gasoil.jl deleted file mode 100644 index 83df0dfce..000000000 --- a/src/ADNLPProblems/gasoil.jl +++ /dev/null @@ -1,194 +0,0 @@ -# Hang Glider Problem -# Trapezoidal formulation -# David Bortz - Summer 1998 -# COPS 2.0 - September 2000 -# COPS 3.0 - November 2002 -# COPS 3.1 - March 2004 - -export gasoil - -function gasoil(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - nc = 4 - ne = 2 - np = 3 - nm = 21 - - rho = T[0.06943184420297, 0.33000947820757, 0.66999052179243, 0.93056815579703] - bc = T[1, 1] - tau = T[0.0,0.025,0.05,0.075,0.10,0.125,0.150,0.175,0.20,0.225, - 0.250,0.30,0.35,0.40,0.45,0.50,0.55,0.65,0.75,0.85,0.95] - - tf = tau[nm] - h = tf / n - t = T[(i-1)*h for i=1:(n+1)] - fact = [factorial(k) for k=0:nc] - - itau = Int[min(n, floor(tau[i]/h)+1) for i=1:nm] - - z = T[ - 1.0000 0; - 0.8105 0.2000; 0.6208 0.2886; 0.5258 0.3010; 0.4345 0.3215; - 0.3903 0.3123; 0.3342 0.2716; 0.3034 0.2551; 0.2735 0.2258; - 0.2405 0.1959; 0.2283 0.1789; 0.2071 0.1457; 0.1669 0.1198; - 0.1530 0.0909; 0.1339 0.0719; 0.1265 0.0561; 0.1200 0.0460; - 0.0990 0.0280; 0.0870 0.0190; 0.0770 0.0140; 0.0690 0.0100; - ] - - # ----------------------------- - # Variable layout - # ----------------------------- - off_theta = 0 - off_v = np - off_w = np + n*ne - off_uc = np + n*ne + n*nc*ne - off_Duc = np + n*ne + 2*n*nc*ne - - nvar = np + n*ne + 3*n*nc*ne - - idx_theta = p -> off_theta + p - idx_v = (i,s) -> off_v + (i-1)*ne + s - idx_w = (i,j,s) -> off_w + ((i-1)*nc+(j-1))*ne + s - idx_uc = (i,j,s) -> off_uc + ((i-1)*nc+(j-1))*ne + s - idx_Duc = (i,j,s) -> off_Duc + ((i-1)*nc+(j-1))*ne + s - - # ----------------------------- - # Objective - # ----------------------------- - function f(y) - return sum( - (y[idx_v(itau[j],s)] + - sum(y[idx_w(itau[j],k,s)] * (tau[j]-t[itau[j]])^k / - (fact[k+1]*h^(k-1)) for k=1:nc) - - z[j,s])^2 - for j=1:nm, s=1:ne - ) - end - - # ----------------------------- - # NONLINEAR constraints (dynamics) - # ----------------------------- - nnln = 2*n*nc - - function c!(cx, y) - idx = 1 - - # Duc[i,j,1] - for i=1:n, j=1:nc - cx[idx] = y[idx_Duc(i,j,1)] + - (y[idx_theta(1)] + y[idx_theta(3)]) * y[idx_uc(i,j,1)]^2 - idx += 1 - end - - # Duc[i,j,2] - for i=1:n, j=1:nc - cx[idx] = y[idx_Duc(i,j,2)] - - y[idx_theta(1)] * y[idx_uc(i,j,1)]^2 + - y[idx_theta(2)] * y[idx_uc(i,j,2)] - idx += 1 - end - - return cx - end - - # ----------------------------- - # LINEAR constraints - # ----------------------------- - nlin_uc = n * nc * ne - nlin_Duc = n * nc * ne - nlin_cont = (n-1) * ne - nlin_bc = ne - - nlin = nlin_uc + nlin_Duc + nlin_cont + nlin_bc - - lcon_lin = zeros(T, nlin) - ucon_lin = zeros(T, nlin) - - row_I = Int[] - col_J = Int[] - val_V = T[] - - push_entry! = (r,c,v) -> (push!(row_I,r); push!(col_J,c); push!(val_V,T(v))) - - # Collocation uc - for i=1:n, j=1:nc, s=1:ne - row = (i-1)*nc*ne + (j-1)*ne + s - push_entry!(row, idx_uc(i,j,s), 1) - push_entry!(row, idx_v(i,s), -1) - for k=1:nc - push_entry!(row, idx_w(i,k,s), -h * rho[j]^k / fact[k+1]) - end - end - - # Collocation Duc - off2 = nlin_uc - for i=1:n, j=1:nc, s=1:ne - row = off2 + (i-1)*nc*ne + (j-1)*ne + s - push_entry!(row, idx_Duc(i,j,s), 1) - for k=1:nc - push_entry!(row, idx_w(i,k,s), -rho[j]^(k-1)/fact[k]) - end - end - - # Continuity - off3 = nlin_uc + nlin_Duc - for i=1:(n-1), s=1:ne - row = off3 + (i-1)*ne + s - push_entry!(row, idx_v(i,s), 1) - push_entry!(row, idx_v(i+1,s), -1) - for j=1:nc - push_entry!(row, idx_w(i,j,s), h/fact[j+1]) - end - end - - # Boundary - off4 = nlin_uc + nlin_Duc + nlin_cont - for s=1:ne - row = off4 + s - push_entry!(row, idx_v(1,s), 1) - lcon_lin[row] = z[1,s] - ucon_lin[row] = z[1,s] - end - - # ----------------------------- - # Merge constraints - # ----------------------------- - lcon = vcat(lcon_lin, zeros(T, nnln)) - ucon = vcat(ucon_lin, zeros(T, nnln)) - - # ----------------------------- - # Bounds - # ----------------------------- - lvar = T(-Inf) * ones(T, nvar) - uvar = T( Inf) * ones(T, nvar) - - for p=1:np - lvar[idx_theta(p)] = T(0.0) - end - - # ----------------------------- - # Initial point - # ----------------------------- - x0 = zeros(T, nvar) - - for i=1:n, s=1:ne - x0[idx_v(i,s)] = z[1,s] - for j=1:nc - x0[idx_uc(i,j,s)] = z[1,s] - end - end - - return ADNLPModels.ADNLPModel!( - f, - x0, - lvar, - uvar, - row_I, - col_J, - val_V, - c!, - lcon, - ucon, - name = "gasoil"; - kwargs..., - ) -end \ No newline at end of file diff --git a/src/ADNLPProblems/glider.jl b/src/ADNLPProblems/glider.jl deleted file mode 100644 index 2dbfcaa8c..000000000 --- a/src/ADNLPProblems/glider.jl +++ /dev/null @@ -1,335 +0,0 @@ -# Catalytic Cracking of Gas Oil Problem -# Collocation formulation -# Michael Merritt - Summer 2000 -# COPS 2.0 - September 2000 -# COPS 3.0 - November 2002 -# COPS 3.1 - March 2004 - -export glider - -function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - - # Parameters - x_0 = T(0.0) - y_0 = T(1000.0) - y_f = T(900.0) - vx_0 = T(13.23) - vx_f = T(13.23) - vy_0 = T(-1.288) - vy_f = T(-1.288) - - u_c = T(2.5) - r_0 = T(100.0) - m = T(100.0) - g = T(9.81) - - c0 = T(0.034) - c1 = T(0.069662) - S = T(14.0) - rho = T(1.13) - - cL_min = T(0.0) - cL_max = T(1.4) - - N = n - nvar = 5*(N + 1) + 1 - ncon = 4*N - - - y = (x,i) -> x[N + 1 + i] - vx = (x,i) -> x[2*N + 2 + i] - vy = (x,i) -> x[3*N + 3 + i] - cL = (x,i) -> x[4*N + 4 + i] - t_f = x -> x[end] - - r = (x,i) -> (x[i]/r_0 - 2.5)^2 - u = (x,i) -> u_c*(1 - r(x, i))*exp(-r(x, i)) - w = (x,i) -> vy(x, i) - u(x, i) - v = (x,i) -> sqrt(vx(x, i)^2 + w(x, i)^2) - D = (x,i) -> 0.5*(c0 + c1*cL(x, i)^2)*rho*S*v(x, i)^2 - L = (x,i) -> 0.5*cL(x, i)*rho*S*v(x, i)^2 - vx_dot = (x,i) -> (-L(x, i)*(w(x, i)/v(x, i)) - D(x, i)*(vx(x, i)/v(x, i)))/m - vy_dot = (x,i) -> (L(x, i)*(vx(x, i)/v(x, i)) - D(x, i)*(w(x, i)/v(x, i)))/m - g - - # Objective - f = x -> -x[N + 1] - - # Dynamics - function c!(cx, x) - tf = t_f(x) - step = tf / N - - for j = 1:N - cx[j] = x[j + 1] - x[j] - 0.5*step*(vx(x, j + 1) + vx(x, j)) - cx[j + N] = y(x, j + 1) - y(x, j) - 0.5*step*(vy(x, j + 1) + vy(x, j)) - cx[j + 2*N] = vx(x, j + 1) - vx(x, j) - 0.5*step*(vx_dot(x, j + 1) + vx_dot(x, j)) - cx[j + 3*N] = vy(x, j + 1) - vy(x, j) - 0.5*step*(vy_dot(x, j + 1) + vy_dot(x, j)) - end - # cx[4*N + 1] = x[1] - x_0 - # cx[4*N + 2] = y(x, 1) - y_0 - # cx[4*N + 3] = y(x, N + 1) - y_f - # cx[4*N + 4] = vx(x, 1) - vx_0 - # cx[4*N + 5] = vx(x, N + 1) - vx_f - # cx[4*N + 6] = vy(x, 1) - vy_0 - # cx[4*N + 7] = vy(x, N + 1) - vy_f - - return cx - end - - # Boundary constraints - lcon = zeros(T, ncon) - ucon = zeros(T, ncon) - - # Variable boundaries - lvar = T(-Inf) * ones(T, nvar) - uvar = T(Inf) * ones(T, nvar) - for i in 0:N - lvar[i + 1] = 0.0 - - lvar[2*N + 2 + i] = 0.0 - - lvar[4*N + 4 + i] = cL_min - uvar[4*N + 4 + i] = cL_max - - lvar[end] = 0 - end - # x(0) - lvar[1] = x_0 - uvar[1] = x_0 - # y(0) - lvar[N + 1 + 1] = y_0 - uvar[N + 1 + 1] = y_0 - # y(tf) - lvar[N + 1 + (N + 1)] = y_f - uvar[N + 1 + (N + 1)] = y_f - # vx(0) - lvar[2*N + 2 + 1] = vx_0 - uvar[2*N + 2 + 1] = vx_0 - # vx(tf) - lvar[2*N + 2 + (N + 1)] = vx_f - uvar[2*N + 2 + (N + 1)] = vx_f - # vy(0) - lvar[3*N + 3 + 1] = vy_0 - uvar[3*N + 3 + 1] = vy_0 - # vy(tf) - lvar[3*N + 3 + (N + 1)] = vy_f - uvar[3*N + 3 + (N + 1)] = vy_f - - # initialization - x0 = zeros(T, nvar) - x0[end] = 1.0 - for i = 0:N - k = i / N - x0[i+1] = x_0 + vx_0 * k - x0[N + i + 1] = y_0 + k*(y_f - y_0) - x0[2*N + 2 + i] = vx_0 - x0[3*N + 3 + i] = vy_0 - x0[4*N + 4 + i] = 0.5*cL_max - end - - return ADNLPModels.ADNLPModel!( - f, - x0, - lvar, - uvar, - c!, - lcon, - ucon, - name = "glider"; - kwargs..., - ) - -end - -# function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - -# # ----------------------------- -# # Parameters -# # ----------------------------- -# x_0 = T(0.0) -# y_0 = T(1000.0) -# y_f = T(900.0) -# vx_0 = T(13.23) -# vx_f = T(13.23) -# vy_0 = T(-1.288) -# vy_f = T(-1.288) - -# u_c = T(2.5) -# r_0 = T(100.0) -# m = T(100.0) -# g = T(9.81) - -# c0 = T(0.034) -# c1 = T(0.069662) -# S = T(14.0) -# rho = T(1.13) - -# cL_min = T(0.0) -# cL_max = T(1.4) - -# N = n - -# # ----------------------------- -# # Variable layout -# # ----------------------------- -# nvar = 1 + 5*(N+1) - -# idx_tf = 1 - -# off_x = 1 -# off_y = off_x + (N+1) -# off_vx = off_y + (N+1) -# off_vy = off_vx + (N+1) -# off_cL = off_vy + (N+1) - -# idx_x(i) = off_x + i -# idx_y(i) = off_y + i -# idx_vx(i) = off_vx + i -# idx_vy(i) = off_vy + i -# idx_cL(i) = off_cL + i - -# # ----------------------------- -# # Objective -# # ----------------------------- -# f(y) = -y[idx_x(N)] - -# # ----------------------------- -# # Helpers -# # ----------------------------- -# r_expr(y,i) = (y[idx_x(i)]/r_0 - T(2.5))^2 -# u_expr(y,i) = u_c * (1 - r_expr(y,i)) * exp(-r_expr(y,i)) -# w_expr(y,i) = y[idx_vy(i)] - u_expr(y,i) -# v_expr(y,i) = sqrt(y[idx_vx(i)]^2 + w_expr(y,i)^2) - -# D_expr(y,i) = 0.5*(c0 + c1*y[idx_cL(i)]^2)*rho*S*v_expr(y,i)^2 -# L_expr(y,i) = 0.5*y[idx_cL(i)]*rho*S*v_expr(y,i)^2 - -# vx_dot(y,i) = begin -# vi = v_expr(y,i) -# wi = w_expr(y,i) -# vxi = y[idx_vx(i)] -# (-L_expr(y,i)*(wi/vi) - D_expr(y,i)*(vxi/vi)) / m -# end - -# vy_dot(y,i) = begin -# vi = v_expr(y,i) -# wi = w_expr(y,i) -# vxi = y[idx_vx(i)] -# (L_expr(y,i)*(vxi/vi) - D_expr(y,i)*(wi/vi)) / m - g -# end - -# # ----------------------------- -# # NONLINEAR constraints (dynamics) -# # ----------------------------- -# nnln = 4*N - -# function c!(cx, y) -# tf = y[idx_tf] -# step = tf / N - -# for j = 1:N -# cx[4*(j-1)+1] = y[idx_x(j)] - y[idx_x(j-1)] - 0.5*step*(y[idx_vx(j)] + y[idx_vx(j-1)]) -# cx[4*(j-1)+2] = y[idx_y(j)] - y[idx_y(j-1)] - 0.5*step*(y[idx_vy(j)] + y[idx_vy(j-1)]) -# cx[4*(j-1)+3] = y[idx_vx(j)] - y[idx_vx(j-1)] - 0.5*step*(vx_dot(y,j) + vx_dot(y,j-1)) -# cx[4*(j-1)+4] = y[idx_vy(j)] - y[idx_vy(j-1)] - 0.5*step*(vy_dot(y,j) + vy_dot(y,j-1)) -# end - -# return cx -# end - -# # ----------------------------- -# # LINEAR constraints (boundary) -# # ----------------------------- -# nlin = 7 - -# lcon_lin = zeros(T, nlin) -# ucon_lin = zeros(T, nlin) - -# row_I = Int[] -# col_J = Int[] -# val_V = T[] - -# push_entry! = (r,c,v) -> (push!(row_I,r); push!(col_J,c); push!(val_V,T(v))) - -# # x(0) -# push_entry!(1, idx_x(0), 1) -# lcon_lin[1] = x_0; ucon_lin[1] = x_0 - -# # y(0) -# push_entry!(2, idx_y(0), 1) -# lcon_lin[2] = y_0; ucon_lin[2] = y_0 - -# # y(N) -# push_entry!(3, idx_y(N), 1) -# lcon_lin[3] = y_f; ucon_lin[3] = y_f - -# # vx(0) -# push_entry!(4, idx_vx(0), 1) -# lcon_lin[4] = vx_0; ucon_lin[4] = vx_0 - -# # vx(N) -# push_entry!(5, idx_vx(N), 1) -# lcon_lin[5] = vx_f; ucon_lin[5] = vx_f - -# # vy(0) -# push_entry!(6, idx_vy(0), 1) -# lcon_lin[6] = vy_0; ucon_lin[6] = vy_0 - -# # vy(N) -# push_entry!(7, idx_vy(N), 1) -# lcon_lin[7] = vy_f; ucon_lin[7] = vy_f - -# # ----------------------------- -# # Merge constraints -# # ----------------------------- -# lcon = vcat(lcon_lin, zeros(T, nnln)) -# ucon = vcat(ucon_lin, zeros(T, nnln)) - -# # ----------------------------- -# # Bounds -# # ----------------------------- -# lvar = T(-Inf) * ones(T, nvar) -# uvar = T( Inf) * ones(T, nvar) - -# lvar[idx_tf] = 0 - -# for i = 0:N -# lvar[idx_x(i)] = 0 -# lvar[idx_vx(i)] = 0 -# lvar[idx_cL(i)] = cL_min -# uvar[idx_cL(i)] = cL_max -# end - -# # ----------------------------- -# # Initial point -# # ----------------------------- -# x0 = zeros(T, nvar) -# x0[idx_tf] = 1.0 - -# for i = 0:N -# α = i / N -# x0[idx_x(i)] = x_0 + vx_0 * α -# x0[idx_y(i)] = y_0 + α*(y_f - y_0) -# x0[idx_vx(i)] = vx_0 -# x0[idx_vy(i)] = vy_0 -# x0[idx_cL(i)] = 0.5*(cL_min + cL_max) -# end - -# # ----------------------------- -# # Model -# # ----------------------------- -# return ADNLPModels.ADNLPModel!( -# f, -# x0, -# lvar, -# uvar, -# row_I, -# col_J, -# val_V, -# c!, -# lcon, -# ucon, -# name = "glider"; -# kwargs..., -# ) -# end \ No newline at end of file diff --git a/src/ADNLPProblems/methanol.jl b/src/ADNLPProblems/methanol.jl deleted file mode 100644 index 0eff55209..000000000 --- a/src/ADNLPProblems/methanol.jl +++ /dev/null @@ -1,440 +0,0 @@ -# Methanol-to-Hydrocarbons Problem -# Collocation formulation -# Michael Merritt - Summer 2000 -# COPS 2.0 - September 2000 -# COPS 3.0 - November 2002 -# COPS 3.1 - March 2004 - -export methanol - -function methanol(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - - ne = 3 - np = 5 - nc = 3 - nm = 17 - - rho = T[0.11270166537926, 0.5, 0.88729833462074] - - tau = T[ - 0, - 0.050, 0.065, 0.080, 0.123, 0.233, 0.273, 0.354, 0.397, - 0.418, 0.502, 0.553, 0.681, 0.750, 0.916, 0.937, 1.122, - ] - - tf = tau[nm] - h = tf / n - t = T[(i-1)*h for i=1:(n+1)] - fact = [factorial(k) for k=0:nc] - - itau = Int[min(n, floor(tau[i]/h)+1) for i=1:nm] - - z = T[ - 1.0000 0 0; - 0.7085 0.1621 0.0811; - 0.5971 0.1855 0.0965; - 0.5537 0.1989 0.1198; - 0.3684 0.2845 0.1535; - 0.1712 0.3491 0.2097; - 0.1198 0.3098 0.2628; - 0.0747 0.3576 0.2467; - 0.0529 0.3347 0.2884; - 0.0415 0.3388 0.2757; - 0.0261 0.3557 0.3167; - 0.0208 0.3483 0.2954; - 0.0085 0.3836 0.2950; - 0.0053 0.3611 0.2937; - 0.0019 0.3609 0.2831; - 0.0018 0.3485 0.2846; - 0.0006 0.3698 0.2899; - ] - - bc = T[1.0, 0.0, 0.0] - - # ----------------------------- - # Variable layout - # ----------------------------- - off_theta = 0 - off_v = np - off_w = np + n*ne - off_uc = np + n*ne + n*nc*ne - off_Duc = np + n*ne + 2*n*nc*ne - - nvar = np + n*ne + 3*n*nc*ne - - idx_theta = p -> off_theta + p - idx_v = (i,s) -> off_v + (i-1)*ne + s - idx_w = (i,j,s) -> off_w + ((i-1)*nc+(j-1))*ne + s - idx_uc = (i,j,s) -> off_uc + ((i-1)*nc+(j-1))*ne + s - idx_Duc = (i,j,s) -> off_Duc + ((i-1)*nc+(j-1))*ne + s - - # ----------------------------- - # Objective - # ----------------------------- - function f(y) - return sum( - (y[idx_v(itau[j],s)] + - sum(y[idx_w(itau[j],k,s)] * (tau[j]-t[itau[j]])^k / - (fact[k+1]*h^(k-1)) for k=1:nc) - - z[j,s])^2 - for j=1:nm, s=1:ne - ) - end - - # ----------------------------- - # NONLINEAR constraints (dynamics only) - # ----------------------------- - nnln = 3*n*nc - - function c!(cx, y) - ptr = 1 - - for i=1:n, j=1:nc - th1 = y[idx_theta(1)] - th2 = y[idx_theta(2)] - th3 = y[idx_theta(3)] - th4 = y[idx_theta(4)] - th5 = y[idx_theta(5)] - - uc1 = y[idx_uc(i,j,1)] - uc2 = y[idx_uc(i,j,2)] - - cx[ptr] = y[idx_Duc(i,j,1)] - - (-(T(2)*th2 - (th1*uc2)/((th2+th5)*uc1+uc2) + th3 + th4) * uc1) - ptr += 1 - end - - for i=1:n, j=1:nc - th1 = y[idx_theta(1)] - th2 = y[idx_theta(2)] - th3 = y[idx_theta(3)] - th5 = y[idx_theta(5)] - - uc1 = y[idx_uc(i,j,1)] - uc2 = y[idx_uc(i,j,2)] - - cx[ptr] = y[idx_Duc(i,j,2)] - - (th1*uc1*(th2*uc1 - uc2) / ((th2+th5)*uc1+uc2) + th3*uc1) - ptr += 1 - end - - for i=1:n, j=1:nc - th1 = y[idx_theta(1)] - th2 = y[idx_theta(2)] - th4 = y[idx_theta(4)] - th5 = y[idx_theta(5)] - - uc1 = y[idx_uc(i,j,1)] - uc2 = y[idx_uc(i,j,2)] - - cx[ptr] = y[idx_Duc(i,j,3)] - - (th1*uc1*(uc2 + th5*uc1) / ((th2+th5)*uc1+uc2) + th4*uc1) - ptr += 1 - end - - return cx - end - - # ----------------------------- - # LINEAR constraints - # ----------------------------- - nlin_uc = n*nc*ne - nlin_Duc = n*nc*ne - nlin_bc = ne - nlin_cont = (n-1)*ne - - nlin = nlin_uc + nlin_Duc + nlin_bc + nlin_cont - - lcon_lin = zeros(T, nlin) - ucon_lin = zeros(T, nlin) - - row_I = Int[] - col_J = Int[] - val_V = T[] - - push_entry! = (r,c,v) -> (push!(row_I,r); push!(col_J,c); push!(val_V,T(v))) - - # Collocation uc - for i=1:n, k=1:nc, s=1:ne - row = (i-1)*nc*ne + (k-1)*ne + s - push_entry!(row, idx_uc(i,k,s), 1) - push_entry!(row, idx_v(i,s), -1) - for j=1:nc - push_entry!(row, idx_w(i,j,s), -h*rho[k]^j/fact[j+1]) - end - end - - # Collocation Duc - off2 = nlin_uc - for i=1:n, k=1:nc, s=1:ne - row = off2 + (i-1)*nc*ne + (k-1)*ne + s - push_entry!(row, idx_Duc(i,k,s), 1) - for j=1:nc - push_entry!(row, idx_w(i,j,s), -rho[k]^(j-1)/fact[j]) - end - end - - # Boundary - off3 = nlin_uc + nlin_Duc - for s=1:ne - row = off3 + s - push_entry!(row, idx_v(1,s), 1) - lcon_lin[row] = bc[s] - ucon_lin[row] = bc[s] - end - - # Continuity - off4 = nlin_uc + nlin_Duc + nlin_bc - for i=1:(n-1), s=1:ne - row = off4 + (i-1)*ne + s - push_entry!(row, idx_v(i,s), 1) - push_entry!(row, idx_v(i+1,s), -1) - for j=1:nc - push_entry!(row, idx_w(i,j,s), h/fact[j+1]) - end - end - - # ----------------------------- - # Merge constraints - # ----------------------------- - lcon = vcat(lcon_lin, zeros(T, nnln)) - ucon = vcat(ucon_lin, zeros(T, nnln)) - - # ----------------------------- - # Bounds - # ----------------------------- - lvar = T(-Inf) * ones(T, nvar) - uvar = T( Inf) * ones(T, nvar) - - for p=1:np - lvar[idx_theta(p)] = 0 - end - - # ----------------------------- - # Initial point - # ----------------------------- - x0 = zeros(T, nvar) - - for p=1:np - x0[idx_theta(p)] = 1 - end - - for i=1:n, s=1:ne - x0[idx_v(i,s)] = T(0.001) - for j=1:nc - x0[idx_uc(i,j,s)] = T(0.001) - end - end - - # ----------------------------- - # Model - # ----------------------------- - return ADNLPModels.ADNLPModel!( - f, - x0, - lvar, - uvar, - row_I, - col_J, - val_V, - c!, - lcon, - ucon, - name = "methanol"; - kwargs..., - ) -end - - - - - - - - - -# export methanol - -# function methanol(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} -# ne = 3 -# np = 5 -# nc = 3 -# nm = 17 - -# rho = T[0.11270166537926, 0.5, 0.88729833462074] - -# tau = T[ -# 0, -# 0.050, 0.065, 0.080, 0.123, 0.233, 0.273, 0.354, 0.397, -# 0.418, 0.502, 0.553, 0.681, 0.750, 0.916, 0.937, 1.122, -# ] -# tf = tau[nm] -# h = tf / n -# t = T[(i-1)*h for i=1:(n+1)] -# fact = [factorial(k) for k=0:nc] - -# itau = Int[min(n, floor(tau[i]/h)+1) for i=1:nm] - -# z = T[ -# 1.0000 0 0; -# 0.7085 0.1621 0.0811; -# 0.5971 0.1855 0.0965; -# 0.5537 0.1989 0.1198; -# 0.3684 0.2845 0.1535; -# 0.1712 0.3491 0.2097; -# 0.1198 0.3098 0.2628; -# 0.0747 0.3576 0.2467; -# 0.0529 0.3347 0.2884; -# 0.0415 0.3388 0.2757; -# 0.0261 0.3557 0.3167; -# 0.0208 0.3483 0.2954; -# 0.0085 0.3836 0.2950; -# 0.0053 0.3611 0.2937; -# 0.0019 0.3609 0.2831; -# 0.0018 0.3485 0.2846; -# 0.0006 0.3698 0.2899; -# ] - -# bc = T[1.0, 0.0, 0.0] - -# # Starting values for v -# v0 = T(0.001) * ones(T, n, ne) - -# # Variable layout: -# # theta[1:np] ODE parameters (≥ 0) -# # v[i,s] i=1:n, s=1:ne -# # w[i,j,s] i=1:n, j=1:nc, s=1:ne -# # uc[i,j,s] i=1:n, j=1:nc, s=1:ne -# # Duc[i,j,s] - -# off_theta = 0 -# off_v = np -# off_w = np + n*ne -# off_uc = np + n*ne + n*nc*ne -# off_Duc = np + n*ne + 2*n*nc*ne -# nvar = np + n*ne + 3*n*nc*ne - -# idx_theta = p -> off_theta + p -# idx_v = (i, s) -> off_v + (i-1)*ne + s -# idx_w = (i, j, s) -> off_w + ((i-1)*nc + (j-1))*ne + s -# idx_uc = (i, j, s) -> off_uc + ((i-1)*nc + (j-1))*ne + s -# idx_Duc = (i, j, s) -> off_Duc + ((i-1)*nc + (j-1))*ne + s - -# # Objective: sum of squared errors at measurement points -# function f(y) -# return sum( -# (y[idx_v(itau[j], s)] + -# sum(y[idx_w(itau[j], k, s)] * (tau[j] - t[itau[j]])^k / (fact[k+1] * h^(k-1)) for k=1:nc) - -# z[j, s])^2 -# for j=1:nm, s=1:ne -# ) -# end - -# # ncon: -# # collocation uc: n*nc*ne -# # collocation Duc: n*nc*ne -# # boundary: ne -# # continuity: (n-1)*ne -# # dynamics (3 eqns): 3*n*nc -# ncon = 2*n*nc*ne + ne + (n-1)*ne + 3*n*nc - -# function c!(cx, y) -# ptr = 1 - -# # Collocation uc: uc[i,k,s] = v[i,s] + h * sum_j w[i,j,s] * rho[k]^j / fact[j+1] -# for i=1:n, k=1:nc, s=1:ne -# cx[ptr] = y[idx_uc(i,k,s)] - y[idx_v(i,s)] - -# h * sum(y[idx_w(i,j,s)] * (rho[k]^j / fact[j+1]) for j=1:nc) -# ptr += 1 -# end - -# # Collocation Duc: Duc[i,k,s] = sum_j w[i,j,s] * rho[k]^(j-1) / fact[j] -# for i=1:n, k=1:nc, s=1:ne -# cx[ptr] = y[idx_Duc(i,k,s)] - -# sum(y[idx_w(i,j,s)] * (rho[k]^(j-1) / fact[j]) for j=1:nc) -# ptr += 1 -# end - -# # Boundary: v[1,s] = bc[s] -# for s=1:ne -# cx[ptr] = y[idx_v(1,s)] - bc[s] -# ptr += 1 -# end - -# # Continuity: v[i,s] + h * sum_j w[i,j,s]/fact[j+1] = v[i+1,s] -# for i=1:(n-1), s=1:ne -# cx[ptr] = y[idx_v(i,s)] + sum(y[idx_w(i,j,s)] * h / fact[j+1] for j=1:nc) - y[idx_v(i+1,s)] -# ptr += 1 -# end - -# # Dynamics (collocation equations): - -# # eq1: Duc[i,j,1] = -(2*theta[2] - theta[1]*uc2/((th2+th5)*uc1+uc2) + th3 + th4) * uc1 -# for i=1:n, j=1:nc -# th1 = y[idx_theta(1)] -# th2 = y[idx_theta(2)] -# th3 = y[idx_theta(3)] -# th4 = y[idx_theta(4)] -# th5 = y[idx_theta(5)] -# uc1 = y[idx_uc(i,j,1)] -# uc2 = y[idx_uc(i,j,2)] -# cx[ptr] = y[idx_Duc(i,j,1)] - -# (-(T(2)*th2 - (th1*uc2)/((th2+th5)*uc1+uc2) + th3 + th4) * uc1) -# ptr += 1 -# end - -# # eq2: Duc[i,j,2] = theta[1]*uc1*(theta[2]*uc1 - uc2) / ((th2+th5)*uc1+uc2) + th3*uc1 -# for i=1:n, j=1:nc -# th1 = y[idx_theta(1)] -# th2 = y[idx_theta(2)] -# th3 = y[idx_theta(3)] -# th5 = y[idx_theta(5)] -# uc1 = y[idx_uc(i,j,1)] -# uc2 = y[idx_uc(i,j,2)] -# cx[ptr] = y[idx_Duc(i,j,2)] - -# (th1*uc1*(th2*uc1 - uc2) / ((th2+th5)*uc1+uc2) + th3*uc1) -# ptr += 1 -# end - -# # eq3: Duc[i,j,3] = theta[1]*uc1*(uc2 + th5*uc1) / ((th2+th5)*uc1+uc2) + th4*uc1 -# for i=1:n, j=1:nc -# th1 = y[idx_theta(1)] -# th2 = y[idx_theta(2)] -# th4 = y[idx_theta(4)] -# th5 = y[idx_theta(5)] -# uc1 = y[idx_uc(i,j,1)] -# uc2 = y[idx_uc(i,j,2)] -# cx[ptr] = y[idx_Duc(i,j,3)] - -# (th1*uc1*(uc2 + th5*uc1) / ((th2+th5)*uc1+uc2) + th4*uc1) -# ptr += 1 -# end - -# return cx -# end - -# lcon = zeros(T, ncon) -# ucon = zeros(T, ncon) - -# lvar = T(-Inf) * ones(T, nvar) -# uvar = T( Inf) * ones(T, nvar) - -# # theta >= 0 -# for p=1:np -# lvar[idx_theta(p)] = T(0.0) -# end - -# # Initial point -# x0 = zeros(T, nvar) -# for p=1:np -# x0[idx_theta(p)] = T(1.0) -# end -# for i=1:n, s=1:ne -# x0[idx_v(i,s)] = v0[i,s] -# for j=1:nc -# x0[idx_uc(i,j,s)] = v0[i,s] -# x0[idx_Duc(i,j,s)] = T(0.0) -# end -# end - -# return ADNLPModels.ADNLPModel!(f, x0, lvar, uvar, c!, lcon, ucon, name = "methanol"; kwargs...) -# end \ No newline at end of file diff --git a/src/ADNLPProblems/minsurf.jl b/src/ADNLPProblems/minsurf.jl deleted file mode 100644 index ae915bc49..000000000 --- a/src/ADNLPProblems/minsurf.jl +++ /dev/null @@ -1,91 +0,0 @@ -# Minimal surface with obstacle problem - -# Find the surface with minimal area, given boundary conditions, -# and above an obstacle. - -# This is problem 17=the COPS (Version 3) collection of -# E. Dolan and J. More' -# see "Benchmarking Optimization Software with COPS" -# Argonne National Labs Technical Report ANL/MCS-246 (2004) -# classification OBR2-AN-V-V - -export minsurf - -function minsurf(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - nx, ny = Int(round(sqrt(max(1, n - 2)))), Int(round(sqrt(max(1, n - 2)))) - - x_mesh = LinRange(T(0), T(1), nx + 2) - hx = T(1.0) / (nx + 1) - hy = T(1.0) / (ny + 1) - area = T(1 // 2) * hx * hy - - nv = (nx + 2) * (ny + 2) - idx_v = (i, j) -> (nx + 2) * (j - 1) + i - - function f(y) - Ti = eltype(y) - s1 = sum( - Ti(area) * (1 + ((y[idx_v(i+1,j)] - y[idx_v(i,j)]) / hx)^2 + - ((y[idx_v(i,j+1)] - y[idx_v(i,j)]) / hy)^2)^(Ti(1)/Ti(2)) - for i = 1:(nx+1), j = 1:(ny+1) - ) - s2 = sum( - Ti(area) * (1 + ((y[idx_v(i-1,j)] - y[idx_v(i,j)]) / hx)^2 + - ((y[idx_v(i,j-1)] - y[idx_v(i,j)]) / hy)^2)^(Ti(1)/Ti(2)) - for i = 2:(nx+2), j = 2:(ny+2) - ) - return s1 + s2 - end - - lvar = T(-Inf) * ones(T, nv) - uvar = T( Inf) * ones(T, nv) - - # Boundary conditions - for j = 1:(ny+2) - lvar[idx_v(1, j)] = T(0.0) - uvar[idx_v(1, j)] = T(0.0) - lvar[idx_v(nx+2, j)] = T(0.0) - uvar[idx_v(nx+2, j)] = T(0.0) - end - - for i = 1:(nx+2) - val = T(1.0 - (2 * (i-1) * hx - 1)^2) - lvar[idx_v(i, 1)] = val - uvar[idx_v(i, 1)] = val - lvar[idx_v(i, ny+2)] = val - uvar[idx_v(i, ny+2)] = val - end - - # Interior ≥ 0 - for i = 1:(nx+2), j = 1:(ny+2) - if lvar[idx_v(i,j)] == T(-Inf) - lvar[idx_v(i,j)] = T(0.0) - end - end - - # Obstacle ≥ 1 - for i = Int(floor(T(0.25)/hx)):Int(ceil(T(0.75)/hx)) - for j = Int(floor(T(0.25)/hy)):Int(ceil(T(0.75)/hy)) - ii = i + 1 - jj = j + 1 - if 1 <= ii <= nx+2 && 1 <= jj <= ny+2 - lvar[idx_v(ii, jj)] = max(lvar[idx_v(ii, jj)], T(1.0)) - end - end - end - - x0 = zeros(T, nv) - for i = 1:(nx+2), j = 1:(ny+2) - x0[idx_v(i,j)] = max(lvar[idx_v(i,j)], - min(uvar[idx_v(i,j)], T(1 - (2 * x_mesh[i] - 1)^2))) - end - - return ADNLPModels.ADNLPModel( - f, - x0, - lvar, - uvar; - name = "minsurf", - kwargs... - ) -end diff --git a/src/ADNLPProblems/pinene.jl b/src/ADNLPProblems/pinene.jl deleted file mode 100644 index 1dd377faf..000000000 --- a/src/ADNLPProblems/pinene.jl +++ /dev/null @@ -1,306 +0,0 @@ -# This is problem 8 in the COPS (Version 3) collection of -# E. Dolan and J. More -# see "Benchmarking Optimization Software with COPS" -# Argonne National Labs Technical Report ANL/MCS-246 (2004) - -# Isomerization of Alpha-Pinene Problem -# Collocation formulation -# Alexander S. Bondarenko - Summer 1998 -# COPS 2.0 - September 2000 -# COPS 3.0 - November 2002 -# COPS 3.1 - March 2004 - - -export pinene - -function pinene(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - - nc, ne, np, nm = 3, 5, 5, 8 - - rho = T[0.11270166537926, 0.5, 0.88729833462074] - bc = T[100.0, 0.0, 0.0, 0.0, 0.0] - - tau = T[1230.0, 3060.0, 4920.0, 7800.0, 10680.0, 15030.0, 22620.0, 36420.0] - - tf = tau[nm] - h = tf / n - t= T[(i-1)*h for i=1:(n+1)] - fact = [factorial(k) for k=0:nc] - - itau = Int[min(n, floor(tau[i]/h)+1) for i=1:nm] - - z = T[ - 88.35 7.3 2.3 0.4 1.75; - 76.4 15.6 4.5 0.7 2.8; - 65.1 23.1 5.3 1.1 5.8; - 50.4 32.9 6.0 1.5 9.3; - 37.5 42.7 6.0 1.9 12.0; - 25.9 49.1 5.9 2.2 17.0; - 14.0 57.4 5.1 2.6 21.0; - 4.5 63.1 3.8 2.9 25.7; - ] - - v0 = zeros(n, ne) - # Starting-value - for i = 1:itau[1], s = 1:ne - v0[i, s] = bc[s] - end - for j = 2:nm, i = (itau[j - 1] + 1):itau[j], s = 1:ne - v0[i, s] = z[j, s] - end - for i = (itau[nm] + 1):n, s = 1:ne - v0[i, s] = z[nm, s] - end - - nv = np + n*ne - nw = nv + n*nc*ne - nuc = nw + n*nc*ne - nDuc = nuc + n*nc*ne - - nvar = np + nv + nw + nuc + nDuc - - theta = x -> view(x, 1 : np) - v = x -> reshape_array(view(x, np + 1 : nv), (n, ne)) - w = x ->reshape_array(view(x, nv + 1 : nw), (n, nc, ne)) - uc = x ->reshape_array(view(x, nw + 1 : nuc), (n, nc, ne)) - Duc = x -> reshape_array(view(x, nuc + 1 : nDuc), (n, nc, ne)) - - error = (x, j, s) -> v(x)[itau[j], s] + sum(w(x)[itau[j], k, s]*(tau[j]-t[itau[j]])^k/(fact[k + 1]*h^(k-1)) for k = 1:nc) - z[j, s] - - # ---------------- OBJECTIVE ---------------- - f = x -> sum(error(x, j, s)^2 for j = 1:nm, s = 1:ne) - - ncon = 2*(ne * n * nc) + ne + (n-1)*ne + 5*n*nc - lcon = zeros(T, ncon) - - function c!(cx, x) - idx = 1 - - for i=1:n, j=1:nc, s=1:ne - cx[idx] = uc(x)[i, j, s] - v(x)[i, s] - h*sum(w(x)[i, k, s]*(rho[j]^k/fact[k + 1]) for k = 1:nc) - idx += 1 - end - - for i=1:n, j=1:nc, s=1:ne - cx[idx] = Duc(x)[i, j, s] - sum(w(x)[i, k, s]*(rho[j]^(k-1)/fact[k]) for k = 1:nc) - idx += 1 - end - - for i=1:(n - 1), s=1:ne - cx[idx] = v(x)[i, s] + sum(w(x)[i, j, s]*h/fact[j + 1] for j = 1:nc) - v(x)[i + 1, s] - idx += 1 - end - - for i=1:n, j=1:nc - cx[idx] = Duc(x)[i, j, 1] + (theta(x)[1] + theta(x)[2])*uc(x)[i, j, 1] - idx += 1 - cx[idx] = Duc(x)[i, j, 2] - theta(x)[1]*uc(x)[i, j, 1] - idx += 1 - cx[idx] = Duc(x)[i, j, 3] - theta(x)[2]*uc(x)[i, j, 1] + (theta(x)[3]+theta(x)[4])*uc(x)[i, j, 3] - theta(x)[5]*uc(x)[i, j, 5] - idx += 1 - cx[idx] = Duc(x)[i, j, 4] - theta(x)[3]*uc(x)[i, j, 3] - idx += 1 - cx[idx] = Duc(x)[i, j, 5] - theta(x)[4]*uc(x)[i, j, 3] + theta(x)[5]*uc(x)[i, j, 5] - idx += 1 - end - - for s=1:ne - cx[idx] = v(x)[1, s] - bc[s] - end - - return cx - end - - # Boundary constraints - lcon = zeros(T, ncon) - - - # Variable boundaries - lvar = T(-Inf) * ones(T, nvar) - uvar = T(Inf) * ones(T, nvar) - - lvar[1:np] .= 0.0 - lvar[nv + 1 : nw] .= 0.0 - lvar[nuc + 1 : nDuc] .= 0.0 - - # initialization - x0 = zeros(T, nvar) - x0[1:np] .= 0.0 - idx = np + 1 - for i = 1:n, s = 1:ne - x0[idx] = v0[i, s] - idx += 1 - end - x0[nv+1:nw] .= 0.0 - idx = nw + 1 - for i = 1:n, j = 1:nc, s = 1:ne - x0[idx] = v0[i, s] - idx += 1 - end - x0[nuc+1:nDuc] .= 0.0 - - - return ADNLPModels.ADNLPModel!( - f, - x0, - lvar, - uvar, - c!, - lcon, - lcon, - name = "pinene"; - kwargs..., - ) -end - - - - - -# export pinene - -# function pinene(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} -# nc, ne, np, nm = 3, 5, 5, 8 - -# rho = T[0.11270166537926, 0.5, 0.88729833462074] -# bc = T[100.0, 0.0, 0.0, 0.0, 0.0] -# tau = T[1230.0, 3060.0, 4920.0, 7800.0, 10680.0, 15030.0, 22620.0, 36420.0] - -# tf = tau[nm] -# h = tf / n -# t = T[(i-1)*h for i=1:(n+1)] -# fact = [factorial(k) for k=0:nc] - -# itau = Int[min(n, floor(tau[i]/h)+1) for i=1:nm] - -# z = T[ -# 88.35 7.3 2.3 0.4 1.75; -# 76.4 15.6 4.5 0.7 2.8; -# 65.1 23.1 5.3 1.1 5.8; -# 50.4 32.9 6.0 1.5 9.3; -# 37.5 42.7 6.0 1.9 12.0; -# 25.9 49.1 5.9 2.2 17.0; -# 14.0 57.4 5.1 2.6 21.0; -# 4.5 63.1 3.8 2.9 25.7; -# ] - -# # dimensions -# nA = np -# nB = n*ne -# nC = n*nc*ne -# nvar = nA + nB + 3*nC - -# offθ = 0 -# offv = nA -# offw = nA + nB -# offu = nA + nB + nC -# offD = nA + nB + 2*nC - -# θ = p -> offθ + p -# v = (i,s) -> offv + (i-1)*ne + s -# w = (i,j,s) -> offw + ((i-1)*nc+(j-1))*ne + s -# u = (i,j,s) -> offu + ((i-1)*nc+(j-1))*ne + s -# D = (i,j,s) -> offD + ((i-1)*nc+(j-1))*ne + s - -# function f(y) -# sum( -# (y[v(itau[j],s)] + -# sum(y[w(itau[j],k,s)]*(tau[j]-t[itau[j]])^k/(fact[k+1]*h^(k-1)) for k=1:nc) -# - z[j,s])^2 -# for j=1:nm, s=1:ne -# ) -# end - -# # ---------- NONLINEAR ---------- -# nnln = 5*n*nc - -# function c!(cx, y) -# idx = 1 -# th = p -> y[θ(p)] - -# for i=1:n, j=1:nc -# cx[idx] = y[D(i,j,1)] + (th(1)+th(2))*y[u(i,j,1)]; idx+=1 -# end -# for i=1:n, j=1:nc -# cx[idx] = y[D(i,j,2)] - th(1)*y[u(i,j,1)]; idx+=1 -# end -# for i=1:n, j=1:nc -# cx[idx] = y[D(i,j,3)] - th(2)*y[u(i,j,1)] + -# (th(3)+th(4))*y[u(i,j,3)] - th(5)*y[u(i,j,5)]; idx+=1 -# end -# for i=1:n, j=1:nc -# cx[idx] = y[D(i,j,4)] - th(3)*y[u(i,j,3)]; idx+=1 -# end -# for i=1:n, j=1:nc -# cx[idx] = y[D(i,j,5)] - th(4)*y[u(i,j,3)] + th(5)*y[u(i,j,5)]; idx+=1 -# end - -# return cx -# end - -# # ---------- LINEAR ---------- -# nlin = 2*n*nc*ne + ne + (n-1)*ne - -# row = Int[]; col = Int[]; val = T[] -# pushE(r,c,vv) = (push!(row,r); push!(col,c); push!(val,vv)) - -# # collocation uc -# for i=1:n, k=1:nc, s=1:ne -# r = (i-1)*nc*ne + (k-1)*ne + s -# pushE(r, u(i,k,s), 1) -# pushE(r, v(i,s), -1) -# for j=1:nc -# pushE(r, w(i,j,s), -h*rho[k]^j/fact[j+1]) -# end -# end - -# # collocation Duc -# off = n*nc*ne -# for i=1:n, k=1:nc, s=1:ne -# r = off + (i-1)*nc*ne + (k-1)*ne + s -# pushE(r, D(i,k,s), 1) -# for j=1:nc -# pushE(r, w(i,j,s), -rho[k]^(j-1)/fact[j]) -# end -# end - -# # boundary -# off2 = 2*n*nc*ne -# lcon_lin = zeros(T,nlin) -# ucon_lin = zeros(T,nlin) -# for s=1:ne -# lcon_lin[off2+s] = bc[s] -# ucon_lin[off2+s] = bc[s] -# pushE(off2+s, v(1,s), 1) -# end - -# # continuity -# off3 = 2*n*nc*ne + ne -# for i=1:n-1, s=1:ne -# r = off3 + (i-1)*ne + s -# pushE(r, v(i,s), 1) -# pushE(r, v(i+1,s), -1) -# for j=1:nc -# pushE(r, w(i,j,s), h/fact[j+1]) -# end -# end - -# lcon = vcat(lcon_lin, zeros(T,nnln)) -# ucon = vcat(ucon_lin, zeros(T,nnln)) - -# lvar = fill(-Inf,nvar) -# uvar = fill( Inf,nvar) -# for p=1:np -# lvar[θ(p)] = 0 -# end - -# x0 = zeros(T,nvar) - -# return ADNLPModels.ADNLPModel!( -# f,x0,lvar,uvar, -# row,col,val, -# c!,lcon,ucon, -# name="pinene"; -# kwargs... -# ) -# end diff --git a/src/ADNLPProblems/rocket.jl b/src/ADNLPProblems/rocket.jl deleted file mode 100644 index c1ff9fed7..000000000 --- a/src/ADNLPProblems/rocket.jl +++ /dev/null @@ -1,101 +0,0 @@ -# Goddard Rocket Problem -# Trapezoidal formulation -# COPS 2.0 - September 2000 -# COPS 3.0 - November 2002 -# COPS 3.1 - March 2004 - -export rocket - -function rocket(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - - h_0 = T(1.0) - v_0 = T(0.0) - m_0 = T(1.0) - g_0 = T(1.0) - T_c = T(3.5) - h_c = T(500.0) - v_c = T(620.0) - m_c = T(0.6) - - c = T(0.5) * sqrt(g_0 * h_0) - m_f = m_c * m_0 - D_c = T(0.5) * v_c * (m_0 / g_0) - T_max = T_c * m_0 * g_0 - - N = n - nvar = 1 + 4 * (N + 1) - - # indices (0..N) - idx_step = 1 - idx_h(i) = 1 + (i + 1) - idx_v(i) = N + 2 + (i + 1) - idx_m(i) = 2*N + 3 + (i + 1) - idx_T(i) = 3*N + 4 + (i + 1) - - # objective - f = y -> -y[idx_h(N)] - - # dynamics only (NO boundary constraints here) - function c!(cx, y) - step = y[idx_step] - - D(i) = D_c * y[idx_v(i)]^2 * exp(-h_c * (y[idx_h(i)] - h_0) / h_0) - g(i) = g_0 * (h_0 / y[idx_h(i)])^2 - - dh(i) = y[idx_v(i)] - dv(i) = (y[idx_T(i)] - D(i) - y[idx_m(i)] * g(i)) / y[idx_m(i)] - dm(i) = -y[idx_T(i)] / c - - for i = 1:N - cx[3*(i-1)+1] = y[idx_h(i)] - y[idx_h(i-1)] - - T(0.5) * step * (dh(i) + dh(i-1)) - - cx[3*(i-1)+2] = y[idx_v(i)] - y[idx_v(i-1)] - - T(0.5) * step * (dv(i) + dv(i-1)) - - cx[3*(i-1)+3] = y[idx_m(i)] - y[idx_m(i-1)] - - T(0.5) * step * (dm(i) + dm(i-1)) - end - - return cx - end - - # ONLY dynamics constraints - ncon = 3 * N - lcon = zeros(T, ncon) - ucon = zeros(T, ncon) - - # variable bounds - lvar = T(-Inf) * ones(T, nvar) - uvar = T( Inf) * ones(T, nvar) - - lvar[idx_step] = T(0.0) - - for i = 0:N - lvar[idx_h(i)] = T(1.0) - lvar[idx_v(i)] = T(0.0) - - lvar[idx_m(i)] = m_f - uvar[idx_m(i)] = m_0 - - lvar[idx_T(i)] = T(0.0) - uvar[idx_T(i)] = T_max - end - - # initial guess - x0 = zeros(T, nvar) - x0[idx_step] = T(1.0 / N) - - for i = 0:N - x0[idx_h(i)] = T(1.0) - x0[idx_v(i)] = T(i / N) * (1 - T(i / N)) - x0[idx_m(i)] = (m_f - m_0) * T(i / N) + m_0 - x0[idx_T(i)] = T_max / T(2.0) - end - - return ADNLPModels.ADNLPModel!( - f, x0, lvar, uvar, c!, lcon, ucon; - name = "rocket", - kwargs... - ) -end diff --git a/src/ADNLPProblems/steering.jl b/src/ADNLPProblems/steering.jl deleted file mode 100644 index c41054a81..000000000 --- a/src/ADNLPProblems/steering.jl +++ /dev/null @@ -1,110 +0,0 @@ -# Rocket Steering Problem -# Trapezoidal formulation -# COPS 2.0 - September 2000 -# COPS 3.0 - November 2002 -# COPS 3.1 - March 2004 - -export steering - -function steering(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - - a = T(100.0) - u_min, u_max = -T(pi)/2, T(pi)/2 - - xs = zeros(T, 4) - xf = T[NaN, 5.0, 45.0, 0.0] - - N = n - - nvar = 1 + (N+1) + 4*(N+1) - - idx_tf = 1 - idx_u(i) = 1 + i - idx_x1(i) = N + 2 + (i-1) - idx_x2(i) = N + 2 + (N+1) + (i-1) - idx_x3(i) = N + 2 + 2*(N+1) + (i-1) - idx_x4(i) = N + 2 + 3*(N+1) + (i-1) - - f(y) = y[idx_tf] - - # Seulement les contraintes de dynamique : 4*N - ncon = 4*N - - function c!(cx, y) - tf = y[idx_tf] - h = tf / N - - k = 1 - - # ---------------- dynamics ---------------- - for i = 1:N - u1 = y[idx_u(i)] - u2 = y[idx_u(i+1)] - - x1 = y[idx_x1(i)] - x1p = y[idx_x1(i+1)] - x2 = y[idx_x2(i)] - x2p = y[idx_x2(i+1)] - x3 = y[idx_x3(i)] - x3p = y[idx_x3(i+1)] - x4 = y[idx_x4(i)] - x4p = y[idx_x4(i+1)] - - cx[k] = x1p - x1 - 0.5 * h * (x3 + x3p); k += 1 - cx[k] = x2p - x2 - 0.5 * h * (x4 + x4p); k += 1 - cx[k] = x3p - x3 - 0.5 * h * (a*cos(u1) + a*cos(u2)); k += 1 - cx[k] = x4p - x4 - 0.5 * h * (a*sin(u1) + a*sin(u2)); k += 1 - end - - return nothing - end - - # Bornes des contraintes (toutes des égalités pour la dynamique) - lcon = zeros(T, ncon) - ucon = zeros(T, ncon) - - # Bornes des variables - lvar = fill(-T(Inf), nvar) - uvar = fill( T(Inf), nvar) - - # tf >= 0 - lvar[idx_tf] = T(0.0) - - # Bornes sur le contrôle u - for i = 1:(N+1) - lvar[idx_u(i)] = u_min - uvar[idx_u(i)] = u_max - end - - # Conditions initiales (comme bornes sur les variables) - for j = 1:4 - lvar[idx_x1(1)] = xs[1]; uvar[idx_x1(1)] = xs[1] - lvar[idx_x2(1)] = xs[2]; uvar[idx_x2(1)] = xs[2] - lvar[idx_x3(1)] = xs[3]; uvar[idx_x3(1)] = xs[3] - lvar[idx_x4(1)] = xs[4]; uvar[idx_x4(1)] = xs[4] - end - - # Conditions terminales (comme bornes sur les variables) - lvar[idx_x2(N+1)] = xf[2]; uvar[idx_x2(N+1)] = xf[2] - lvar[idx_x3(N+1)] = xf[3]; uvar[idx_x3(N+1)] = xf[3] - lvar[idx_x4(N+1)] = xf[4]; uvar[idx_x4(N+1)] = xf[4] - # x1(N+1) n'a pas de borne (NaN) - - # Point initial - x0 = zeros(T, nvar) - x0[idx_tf] = T(1.0) - - for i = 1:(N+1) - k = i - 1 - x0[idx_x2(i)] = T(5.0 * k / N) - x0[idx_x3(i)] = T(45.0 * k / N) - end - - # Initialisation des u - for i = 1:(N+1) - x0[idx_u(i)] = T(0.0) - end - - return ADNLPModels.ADNLPModel!(f, x0, lvar, uvar, c!, lcon, ucon, - name = "steering"; kwargs...) -end \ No newline at end of file diff --git a/src/ADNLPProblems/torsion.jl b/src/ADNLPProblems/torsion.jl deleted file mode 100644 index 678d8532d..000000000 --- a/src/ADNLPProblems/torsion.jl +++ /dev/null @@ -1,49 +0,0 @@ -# Torsion problem -# Liz Dolan - Summer 2000 -# Version 2.0 - October 2000 -# COPS 3.1 - March 2004 - -export torsion - -function torsion(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - nx, ny = Int(round(sqrt(max(1, n - 2)))), Int(round(sqrt(max(1, n - 2)))) - c = T(5.0) - hx = T(1.0) / (nx + T(1.0)) - hy = T(1.0) / (ny + T(1.0)) - area = T(0.5) * hx * hy - - # Distance to boundary: D[i,j] for i=0..nx+1, j=0..ny+1 - D = [min(min(i, nx-i+1)*hx, min(j, ny-j+1)*hy) for i = 0:(nx+1), j = 0:(ny+1)] - - # Variables: v[i,j] for i=0..nx+1, j=0..ny+1 → (nx+2)*(ny+2) variables - # Layout: v[i,j] → y[(nx+2)*j + i + 1] (column-major, 0-indexed i,j) - nv = (nx + 2) * (ny + 2) - idx_v = (i, j) -> (nx + 2) * j + i + 1 # i=0..nx+1, j=0..ny+1 - - function f(y) - Ti = eltype(y) - linLower = sum(y[idx_v(i+1,j)] + y[idx_v(i,j)] + y[idx_v(i,j+1)] for i=0:nx, j=0:ny) - linUpper = sum(y[idx_v(i,j)] + y[idx_v(i-1,j)] + y[idx_v(i,j-1)] for i=1:(nx+1), j=1:(ny+1)) - quadLower = sum(((y[idx_v(i+1,j)] - y[idx_v(i,j)])/hx)^2 + ((y[idx_v(i,j+1)] - y[idx_v(i,j)])/hy)^2 for i=0:nx, j=0:ny) - quadUpper = sum(((y[idx_v(i,j)] - y[idx_v(i-1,j)])/hx)^2 + ((y[idx_v(i,j)] - y[idx_v(i,j-1)])/hy)^2 for i=1:(nx+1), j=1:(ny+1)) - return Ti(area) * ((quadLower + quadUpper) / 2 - Ti(c) * (linLower + linUpper) / 3) - end - - # No nonlinear constraints — only box constraints on v - # Use an empty c! (ncon = 0) - - lvar = T(-Inf) * ones(T, nv) - uvar = T( Inf) * ones(T, nv) - for i = 0:(nx+1), j = 0:(ny+1) - d = D[i+1, j+1] - lvar[idx_v(i,j)] = -T(d) - uvar[idx_v(i,j)] = T(d) - end - - x0 = zeros(T, nv) - for i = 0:(nx+1), j = 0:(ny+1) - x0[idx_v(i,j)] = T(D[i+1, j+1]) - end - - return ADNLPModels.ADNLPModel(f, x0, lvar, uvar, name = "torsion"; kwargs...) -end \ No newline at end of file From adb5c2b75711755d3355c2742d19a22ef4dfdf2f Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU Date: Wed, 6 May 2026 16:47:16 -0400 Subject: [PATCH 5/7] format file --- src/Meta/catmix.jl | 2 +- src/Meta/curly10.jl | 2 +- src/Meta/curly20.jl | 2 +- src/Meta/curly30.jl | 2 +- src/Meta/gasoil.jl | 2 +- src/Meta/glider.jl | 2 +- src/Meta/methanol.jl | 2 +- src/Meta/minsurf.jl | 2 +- src/Meta/pinene.jl | 2 +- src/Meta/rocket.jl | 2 +- src/Meta/steering.jl | 2 +- src/Meta/torsion.jl | 2 +- src/PureJuMP/curly10.jl | 23 ----------------------- src/PureJuMP/curly20.jl | 23 ----------------------- src/PureJuMP/curly30.jl | 23 ----------------------- src/test.jl | 22 ---------------------- 16 files changed, 12 insertions(+), 103 deletions(-) delete mode 100644 src/PureJuMP/curly10.jl delete mode 100644 src/PureJuMP/curly20.jl delete mode 100644 src/PureJuMP/curly30.jl delete mode 100644 src/test.jl diff --git a/src/Meta/catmix.jl b/src/Meta/catmix.jl index ed9a4d538..4b9d929a4 100644 --- a/src/Meta/catmix.jl +++ b/src/Meta/catmix.jl @@ -16,7 +16,7 @@ catmix_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, - :implementation => :jump, + :implementation => :adnlpmodels, ) get_catmix_nvar(; n::Integer = default_nvar, kwargs...) = 23 * n + 2 get_catmix_ncon(; n::Integer = default_nvar, kwargs...) = 20 * n + 2 diff --git a/src/Meta/curly10.jl b/src/Meta/curly10.jl index 35b9d39eb..f485a9080 100644 --- a/src/Meta/curly10.jl +++ b/src/Meta/curly10.jl @@ -16,7 +16,7 @@ curly10_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, - :implementation => :both, + :implementation => :jump, ) get_curly10_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_curly10_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/curly20.jl b/src/Meta/curly20.jl index bee8fbf11..c660bf7fe 100644 --- a/src/Meta/curly20.jl +++ b/src/Meta/curly20.jl @@ -16,7 +16,7 @@ curly20_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, - :implementation => :both, + :implementation => :jump, ) get_curly20_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_curly20_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/curly30.jl b/src/Meta/curly30.jl index ba9c6a2ae..776d3a11b 100644 --- a/src/Meta/curly30.jl +++ b/src/Meta/curly30.jl @@ -16,7 +16,7 @@ curly30_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, - :implementation => :both, + :implementation => :jump, ) get_curly30_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 get_curly30_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/gasoil.jl b/src/Meta/gasoil.jl index 2e735db22..5cdf291c9 100644 --- a/src/Meta/gasoil.jl +++ b/src/Meta/gasoil.jl @@ -16,7 +16,7 @@ gasoil_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :jump, + :implementation => :adnlpmodels, ) get_gasoil_nvar(; n::Integer = default_nvar, kwargs...) = 26 * n + 3 get_gasoil_ncon(; n::Integer = default_nvar, kwargs...) = 26 * n + 0 diff --git a/src/Meta/glider.jl b/src/Meta/glider.jl index e0688df9a..845b4e19e 100644 --- a/src/Meta/glider.jl +++ b/src/Meta/glider.jl @@ -16,7 +16,7 @@ glider_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :jump, + :implementation => :adnlpmodels, ) get_glider_nvar(; n::Integer = default_nvar, kwargs...) = 5 * n + 6 get_glider_ncon(; n::Integer = default_nvar, kwargs...) = 4 * n + 7 diff --git a/src/Meta/methanol.jl b/src/Meta/methanol.jl index 8f255c124..ed8aea2a1 100644 --- a/src/Meta/methanol.jl +++ b/src/Meta/methanol.jl @@ -16,7 +16,7 @@ methanol_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :jump, + :implementation => :adnlpmodels, ) get_methanol_nvar(; n::Integer = default_nvar, kwargs...) = 30 * n + 5 get_methanol_ncon(; n::Integer = default_nvar, kwargs...) = 30 * n + 0 diff --git a/src/Meta/minsurf.jl b/src/Meta/minsurf.jl index 3d43a7989..083ad80d4 100644 --- a/src/Meta/minsurf.jl +++ b/src/Meta/minsurf.jl @@ -16,7 +16,7 @@ minsurf_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :jump, + :implementation => :adnlpmodels, ) get_minsurf_nvar(; n::Integer = default_nvar, diff --git a/src/Meta/pinene.jl b/src/Meta/pinene.jl index b75edfadf..743db007c 100644 --- a/src/Meta/pinene.jl +++ b/src/Meta/pinene.jl @@ -16,7 +16,7 @@ pinene_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :jump, + :implementation => :adnlpmodels, ) get_pinene_nvar(; n::Integer = default_nvar, kwargs...) = 50 * n + 5 get_pinene_ncon(; n::Integer = default_nvar, kwargs...) = 50 * n + 0 diff --git a/src/Meta/rocket.jl b/src/Meta/rocket.jl index 9cd41f237..5445c219d 100644 --- a/src/Meta/rocket.jl +++ b/src/Meta/rocket.jl @@ -16,7 +16,7 @@ rocket_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :jump, + :implementation => :adnlpmodels, ) get_rocket_nvar(; n::Integer = default_nvar, kwargs...) = 4 * n + 5 get_rocket_ncon(; n::Integer = default_nvar, kwargs...) = 3 * n + 4 diff --git a/src/Meta/steering.jl b/src/Meta/steering.jl index 3471ea999..c9ed0f4c3 100644 --- a/src/Meta/steering.jl +++ b/src/Meta/steering.jl @@ -16,7 +16,7 @@ steering_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, - :implementation => :jump, + :implementation => :adnlpmodels, ) get_steering_nvar(; n::Integer = default_nvar, kwargs...) = 5 * n + 6 get_steering_ncon(; n::Integer = default_nvar, kwargs...) = 4 * n + 8 diff --git a/src/Meta/torsion.jl b/src/Meta/torsion.jl index 6b63d26fa..454916a16 100644 --- a/src/Meta/torsion.jl +++ b/src/Meta/torsion.jl @@ -16,7 +16,7 @@ torsion_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, - :implementation => :jump, + :implementation => :adnlpmodels, ) get_torsion_nvar(; n::Integer = default_nvar, diff --git a/src/PureJuMP/curly10.jl b/src/PureJuMP/curly10.jl deleted file mode 100644 index 62a030572..000000000 --- a/src/PureJuMP/curly10.jl +++ /dev/null @@ -1,23 +0,0 @@ -export curly10 - -function curly10(; n::Int = default_nvar, kwargs...) - n < 2 && @warn("curly10: number of variables must be ≥ 2") - n = max(2, n) - b = 10 - - model = Model() - - @variable(model, x[i=1:n], start = 1.0e-4 * i / (n + 1)) - - @objective(model, Min, - sum( - sum(x[j] for j = i:min(i + b, n)) * ( - sum(x[j] for j = i:min(i + b, n)) * ( - (sum(x[j] for j = i:min(i + b, n)))^2 - 20 - ) - 1//10 - ) for i = 1:n - ) - ) - - return model -end \ No newline at end of file diff --git a/src/PureJuMP/curly20.jl b/src/PureJuMP/curly20.jl deleted file mode 100644 index 807fc5b2f..000000000 --- a/src/PureJuMP/curly20.jl +++ /dev/null @@ -1,23 +0,0 @@ -export curly20 - -function curly20(; n::Int = default_nvar, kwargs...) - n < 2 && @warn("curly20: number of variables must be ≥ 2") - n = max(2, n) - b = 20 - - model = Model() - - @variable(model, x[i=1:n], start = 1.0e-4 * i / (n + 1)) - - @objective(model, Min, - sum( - sum(x[j] for j = i:min(i + b, n)) * ( - sum(x[j] for j = i:min(i + b, n)) * ( - (sum(x[j] for j = i:min(i + b, n)))^2 - 20 - ) - 1//10 - ) for i = 1:n - ) - ) - - return model -end \ No newline at end of file diff --git a/src/PureJuMP/curly30.jl b/src/PureJuMP/curly30.jl deleted file mode 100644 index 6da9285e9..000000000 --- a/src/PureJuMP/curly30.jl +++ /dev/null @@ -1,23 +0,0 @@ -export curly30 - -function curly30(; n::Int = default_nvar, kwargs...) - n < 2 && @warn("curly30: number of variables must be ≥ 2") - n = max(2, n) - b = 30 - - model = Model() - - @variable(model, x[i=1:n], start = 1.0e-4 * i / (n + 1)) - - @objective(model, Min, - sum( - sum(x[j] for j = i:min(i + b, n)) * ( - sum(x[j] for j = i:min(i + b, n)) * ( - (sum(x[j] for j = i:min(i + b, n)))^2 - 20 - ) - 1//10 - ) for i = 1:n - ) - ) - - return model -end \ No newline at end of file diff --git a/src/test.jl b/src/test.jl deleted file mode 100644 index 035323178..000000000 --- a/src/test.jl +++ /dev/null @@ -1,22 +0,0 @@ -using NLPModels, NLPModelsJuMP, OptimizationProblems, Test - -# meta_dir = "src/Meta" - -# for filename in readdir(meta_dir) -# endswith(filename, ".jl") || continue -# filepath = joinpath(meta_dir, filename) -# content = read(filepath, String) - -# if occursin(":implementation", content) -# println("✅ $(filename)") -# else -# println("❌ $(filename)") -# end -# end - -function defined_names(mod::Module) - # Exported only (default) + actually defined. Adjust all=true if you prefer. - [n for n in names(mod) if isdefined(mod, n)] -end - -const list_problems = setdiff(union(defined_names(ADNLPProblems), defined_names(PureJuMP)), [:PureJuMP, :ADNLPProblems]) From bd5f184ecf375822d878ae612cfe777cc479bed4 Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU Date: Wed, 6 May 2026 18:04:43 -0400 Subject: [PATCH 6/7] format file --- .DS_Store | Bin 6148 -> 6148 bytes test/runtests.jl | 6 ++++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.DS_Store b/.DS_Store index f4e7aec05b17b597625bac7096eb34a0d611110d..916adcc3a5dd63dea89e384b93fe73cb352713c3 100644 GIT binary patch delta 15 WcmZoMXffC@osr4NVDn7IY%u^TJ_O?c delta 15 WcmZoMXffC@osr4Rbn{HcY%u^Tcm(VK diff --git a/test/runtests.jl b/test/runtests.jl index 1880e6d69..22ce11bfe 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -24,8 +24,10 @@ end # The problems included should be carefully argumented and issues # to create them added. # TODO: tests are limited for JuMP-only problems -@everywhere const list_problems_not_ADNLPProblems = Symbol[] -@everywhere const list_problems_ADNLPProblems = setdiff(list_problems, list_problems_not_ADNLPProblems) +@everywhere const list_problems_not_ADNLPProblems = + Symbol[:catmix, :gasoil, :glider, :methanol, :minsurf, :pinene, :rocket, :steering, :torsion] +@everywhere const list_problems_ADNLPProblems = + setdiff(list_problems, list_problems_not_ADNLPProblems) @everywhere const list_problems_not_PureJuMP = Symbol[] @everywhere const list_problems_PureJuMP = setdiff(list_problems, list_problems_not_PureJuMP) From bd2e74e37e5f1f1dff49e8d366593fdb33213a49 Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU Date: Sun, 10 May 2026 11:12:07 -0400 Subject: [PATCH 7/7] initial Project.toml --- Project.toml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Project.toml b/Project.toml index e0267fde7..7f6e173be 100644 --- a/Project.toml +++ b/Project.toml @@ -7,8 +7,6 @@ DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" JuMP = "4076af6c-e467-56ae-b986-b466b2749572" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" -NLPModels = "a4795742-8479-5a88-8948-cc11e1c8c1a6" -NLPModelsJuMP = "792afdf1-32c1-5681-94e0-d7bf7a5df49e" Requires = "ae029012-a4dd-5104-9daa-d747884805df" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" @@ -17,8 +15,6 @@ SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" DataFrames = "1" JLD2 = "0.5, 0.6" JuMP = "^1.15" -NLPModels = "0.21.12" -NLPModelsJuMP = "0.13.5" Requires = "1" SpecialFunctions = "2" julia = "1.6" @@ -31,4 +27,4 @@ NLPModelsJuMP = "792afdf1-32c1-5681-94e0-d7bf7a5df49e" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["ADNLPModels", "Distributed", "NLPModels", "NLPModelsJuMP", "Test"] +test = ["ADNLPModels", "Distributed", "NLPModels", "NLPModelsJuMP", "Test"] \ No newline at end of file