From 362c0d04da91a662c5b5575aed91c8a0a55b3af0 Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU Date: Tue, 5 May 2026 12:00:57 -0400 Subject: [PATCH 01/21] 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 02/21] 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 03/21] :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 04/21] 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 05/21] 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 06/21] 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 07/21] 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 From 1790f8ebd4fad857f13ada4dfc5f1769fb295545 Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU Date: Tue, 26 May 2026 11:11:59 -0400 Subject: [PATCH 08/21] add unit test for :implementation consistency --- .gitignore | 1 + 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 +- test/test-utils.jl | 22 ++++++++++++++++++++++ 14 files changed, 35 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 3f02ca741..4152d855f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.jl.*.cov *.jl.mem Manifest.toml +.DS_Store \ No newline at end of file diff --git a/src/Meta/catmix.jl b/src/Meta/catmix.jl index 4b9d929a4..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 => :adnlpmodels, + :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/curly10.jl b/src/Meta/curly10.jl index f485a9080..35b9d39eb 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 => :jump, + :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 c660bf7fe..bee8fbf11 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 => :jump, + :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 776d3a11b..ba9c6a2ae 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 => :jump, + :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/gasoil.jl b/src/Meta/gasoil.jl index 5cdf291c9..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 => :adnlpmodels, + :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 845b4e19e..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 => :adnlpmodels, + :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 ed8aea2a1..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 => :adnlpmodels, + :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 083ad80d4..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 => :adnlpmodels, + :implementation => :jump, ) get_minsurf_nvar(; n::Integer = default_nvar, diff --git a/src/Meta/pinene.jl b/src/Meta/pinene.jl index 743db007c..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 => :adnlpmodels, + :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 5445c219d..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 => :adnlpmodels, + :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 c9ed0f4c3..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 => :adnlpmodels, + :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 454916a16..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 => :adnlpmodels, + :implementation => :jump, ) get_torsion_nvar(; n::Integer = default_nvar, diff --git a/test/test-utils.jl b/test/test-utils.jl index b5ff1829d..b95fb62ad 100644 --- a/test/test-utils.jl +++ b/test/test-utils.jl @@ -28,6 +28,28 @@ @test meta[:has_fixed_variables] == (get_ifix(nlp) != []) end +@testset "Test :implementation consistency with source files" begin + for row in eachrow(meta) + name = row[:name] + impl = row[:implementation] + sym = Symbol(name) + + in_jump = isdefined(PureJuMP, sym) + in_adnlp = isdefined(ADNLPProblems, sym) + + if impl == :both + @test in_jump || @error "$name has :implementation => :both but is missing from PureJuMP" + @test in_adnlp || @error "$name has :implementation => :both but is missing from ADNLPProblems" + elseif impl == :jump + @test in_jump || @error "$name has :implementation => :jump but is missing from PureJuMP" + @test !in_adnlp || @error "$name has :implementation => :jump but is also present in ADNLPProblems" + elseif impl == :adnlpmodels + @test in_adnlp || @error "$name has :implementation => :adnlpmodels but is missing from ADNLPProblems" + @test !in_jump || @error "$name has :implementation => :adnlpmodels but is also present in PureJuMP" + end + end +end + @everywhere function test_in_place_constraints(prob::Symbol) nlp = OptimizationProblems.ADNLPProblems.eval(prob)() return test_in_place_constraints(prob, nlp) From 09c1bccdb2788f4e70cc5e1ee2e70a64fce2a51a Mon Sep 17 00:00:00 2001 From: Arnav Kapoor Date: Sun, 10 May 2026 22:18:05 +0530 Subject: [PATCH 09/21] Documentation for adding new problems in contributing.md (#410) * Improve contributing.md: clarify requirements for adding new problems, including constraints, compatibility, meta fields, allocation, and scalability * Clarify meta field completeness and validation requirements in meta.md, as suggested by validation analysis PDF * Add note to benchmark.md about compatibility and meta field validation requirements for benchmarking, as suggested by validation analysis PDF * Update meta.md for improved clarity on meta fields Clarified requirements for meta field completeness and validation. * Apply suggestions from code review Co-authored-by: Tangi Migot * addressing review comments * Update contributing.md * Fix punctuation and formatting in contributing.md Corrected punctuation and formatting in the contributing guidelines. * Apply suggestions from code review Co-authored-by: Tangi Migot * Enhance contributing.md with NLS problem guidelines Added guidelines for handling Nonlinear Least Squares (NLS) problems in contributing documentation. * Apply suggestions from code review Co-authored-by: Tangi Migot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * addressing review comments * Apply suggestions from code review Co-authored-by: Tangi Migot * addressing review comments * Apply suggestions from code review Co-authored-by: Tangi Migot * Update contributing.md * Apply suggestions from code review Co-authored-by: Tangi Migot --------- Co-authored-by: Tangi Migot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/src/contributing.md | 83 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 80 insertions(+), 3 deletions(-) diff --git a/docs/src/contributing.md b/docs/src/contributing.md index 1fc1c9b2f..d803b0bae 100644 --- a/docs/src/contributing.md +++ b/docs/src/contributing.md @@ -20,9 +20,10 @@ Here is a to-do list, to help you add new problems: - `src/PureJuMP/problem_name.jl` - `src/Meta/problem_name.jl` In both cases, the function must have the same name `problem_name` as the file. +The function should be only exported from `src/ADNLPProblems/problem_name.jl` and `src/PureJuMP/problem_name.jl`. * When submitting a problem, please pay particular attention to the documentation. We would like to gather as much information as possible on the provenance of problems, other problem sets where the problems are present, and general information on the problem. The documentation should be added to the file in the `PureJuMP` folder. -* New problems can be scalable, see [ADNLPProblems/arglina.jl](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/ADNLPProblems/arglina.jl) and [PureJuMP/arglina.jl](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/PureJuMP/arglina.jl) for examples. In that case, the first keyword parameter should be the number of variables `n::Int` and have the default value `default_nvar` (constant predefined in the module). If your problem has restrictions on the number of variables, e.g., `n` should be odd, or `n` should have the form `4k + 3`, then, instead of throwing errors when the restrictions are not satisfied, you should instead use the number of variables to be as close to `n` as possible. For example, if you want `n` odd and `n = 100` is passed, you can internally convert to `n = 99`. If you want `n = 4k + 3`, and `n = 100` is passed, then compute `k = round(Int, (n - 3) / 4)` and update `n`. +* New problems can be scalable, see [ADNLPProblems/arglina.jl](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/ADNLPProblems/arglina.jl) and [PureJuMP/arglina.jl](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/PureJuMP/arglina.jl) for examples. In that case, the first keyword parameter should be the number of variables `n::Int` and have the default value `default_nvar` (constant predefined in the module). If your problem has restrictions on the number of variables, e.g., `n` should be odd, or `n` should have the form `4k + 3`, then, instead of throwing errors when the restrictions are not satisfied, you should instead use the number of variables to be as close to `n` as possible. For example, if you want `n` odd and `n = 100` is passed, you can internally convert to `n = 99`. If you want `n = 4k + 3`, and `n = 100` is passed, then compute `k = round(Int, (n - 3) / 4)` and update `n`. When such an internal adjustment is made, emit a warning indicating the requested `n` and the effective value used. * A first version of the `meta` can be generated using `generate_meta`. A `String` is returned that can be copy-pasted into the `Meta` folder, and then edited. ```julia @@ -34,6 +35,7 @@ The documentation should be added to the file in the `PureJuMP` folder. ``` * Problems modeled with `ADNLPModels` should be type-stable, i.e. they should all have keyword argument `type::Type{T} = Float64` where `T` is the type of the initial guess and the type used by the `NLPModel` API. +* The `name` keyword should be passed to `ADNLPModel`/`ADNLSModel` with a meaningful problem name. ## Templates for the new functions @@ -66,9 +68,84 @@ Next, we describe the `ADNLPProblems` file `function_name.jl`. export function_name function function_name(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - # define f - # define x0 + # define f (ensure f(x0) is of type T) + # define x0 (ensure x0 isa Vector{T}) # nlp = ADNLPModels.ADNLPModel(f, x0, name = "function_name"; kwargs...) return nlp end ``` + +## Validating new problems + +* Ensure all meta fields are accurate and complete, e.g. `:origin`, `:objtype`, and `:name` in [`src/Meta/arglina.jl`](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/Meta/arglina.jl). +* Implementations in `ADNLPProblems` and `PureJuMP` must use the same initial point, variable bounds, and constraint bounds; compare `arglina` in [`src/ADNLPProblems/arglina.jl`](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/ADNLPProblems/arglina.jl) and [`src/PureJuMP/arglina.jl`](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/PureJuMP/arglina.jl). +* The implemented objective function must be callable at the starting point. +* For `ADNLPModels` problems, the objective should return values of type `T` from `type::Type{T}` and the initial point should be typed consistently (`x0::Vector{T}`). +* Pass a meaningful `name` keyword to `ADNLPModel` constructors, for example `name = "arglina"` in [`src/ADNLPProblems/arglina.jl`](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/ADNLPProblems/arglina.jl). +* For constrained problems, ensure in-place constraint evaluations (e.g., `cons_nln!`) are allocation-free, for example the checks in [`test/test-utils.jl`](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/test/test-utils.jl). +* Objective function evaluations should have minimal allocations. +* For variable-size problems, validate at multiple sizes (for example `n = 5`, `n = default_nvar`, and a larger `n`) and check all of the following, e.g. [`arglina`](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/ADNLPProblems/arglina.jl) and [`test/test-scalable.jl`](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/test/test-scalable.jl): + - model instantiation succeeds for each tested `n`; + - effective `nvar` matches the intended rule (including any internal adjustment such as odd `n` or `4k + 3` constraints); + - if `n` is internally adjusted, the effective value is the closest feasible one to the requested `n`, and a warning is emitted; + - metadata formulas (`nvar`, `nnzh`, `nnzj`, etc.) match the instantiated model values. +* Optional (recommended): provide in the PR a local solver sanity check showing that a standard solver can solve the model from the provided starting point, see example below. + +```julia +using OptimizationProblems, OptimizationProblems.ADNLPProblems +using NLPModelsIpopt + +nlp = problem_name() +stats = ipopt(nlp) +stats.status +``` +### Nonlinear Least Squares (NLS) Problems + +If your problem is a nonlinear least squares (NLS), please follow these guidelines: +* Set the `:objtype` entry in the meta file to `:least_squares`. +* Add a getter for the number of NLS equations, named `get_problemname_nls_nequ`. +* Support the `use_nls=true/false` keyword to allow both `ADNLPModel` and `ADNLSModel` instantiation from the same problem. +* Instantiate both `ADNLPModel` and `ADNLSModel`, ensure `residual!(nls, x, Fx)` is allocation-free, and check that objectives agree (or differ by a factor of 2 for LS). +* In the `PureJuMP` file, clearly document that the problem is a nonlinear least squares (NLS) problem and explain how users can construct both the standard and NLS variants. +* Explicitly state that the NLS variant can be accessed by passing the keyword argument `use_nls=true` when constructing the problem. +* Make sure this information is also reflected in the meta file, so users and tools can easily discover the NLS capability. +* In validation, also run the local solver sanity check with `problem_name(use_nls=true)`. +See existing NLS problems (e.g., [`lanczos1`](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/ADNLPProblems/lanczos1.jl), [`lanczos2`](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/ADNLPProblems/lanczos2.jl), [`brownal`](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/ADNLPProblems/brownal.jl)) for templates. + +## Reviewer Checklist for New Problems + +- [ ] First check: the problem is added in exactly these three files with the same base name: `src/ADNLPProblems/problem_name.jl`, `src/PureJuMP/problem_name.jl`, and `src/Meta/problem_name.jl`. + Example: [`arglina` in ADNLPProblems](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/ADNLPProblems/arglina.jl), [`arglina` in PureJuMP](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/PureJuMP/arglina.jl), and [`arglina` in Meta](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/Meta/arglina.jl). + +**Meta** +- [ ] The corresponding meta file exists (`src/Meta/problem_name.jl`), the problem name matches the AD and JuMP files, and `OptimizationProblems.meta` contains the problem entry. +- [ ] All meta fields (origin, objtype, contype, bounds, best-known, etc.) are filled correctly. +- [ ] The problem origin/provenance is clearly documented and consistent between the `PureJuMP` problem documentation and the `:origin` meta entry. +- [ ] Meta formulas for variable sizes match actual model behavior. + +**Definition** +- [ ] No extra or spurious exports are introduced. +- [ ] The problem function is exported in `src/ADNLPProblems/problem_name.jl` and `src/PureJuMP/problem_name.jl`, and not exported in `src/Meta/problem_name.jl`. +- [ ] Model name matches the file and function name. +- [ ] The implemented objective, constraints, and bounds match the mathematical problem definition from the cited reference/documentation. + +**Implementation** +- [ ] Objective and constraint values agree (ADNLPProblems vs PureJuMP) within tolerance at test points. +- [ ] Number of variables and constraints match. +- [ ] For `type::Type{T}`, `x0 isa Vector{T}` and objective values are of type `T`. +- [ ] `ADNLPModel`/`ADNLSModel` constructors receive a meaningful `name` keyword. + +**Sanity** +- [ ] Objective is callable at the starting point and does not return NaN (unless documented). +- [ ] Model instantiates without error for different types, e.g. Float32 and Float64. +- [ ] For scalable problems, changing `n` updates `nvar` and all related meta fields, and the effective number of variables remains as close as possible to the requested `n` when internal adjustments are required. + +**Zero-Allocation** +- [ ] All in-place APIs (constraints, residuals) are allocation-free. +- [ ] No unnecessary allocations in tight loops or callbacks. +- [ ] Objective evaluation has minimal allocations (ideally allocation-free in performance-critical paths). + +**Least-Squares & In-Place APIs** +- [ ] If least squares, ADNLP constructor supports `nls=true/false` for both ADNLPModel and ADNLSModel. +- [ ] In-place nonlinear constraint evaluations (`cons_nln!(nlp, x, cx)`) and least squares residuals (`residual!`) are allocation-free. +- [ ] For least squares problems, objectives for NLP and NLS must agree (or differ by a factor of 2, as appropriate). From 8c151bafac231486a4571976b476b3a86d0d07f0 Mon Sep 17 00:00:00 2001 From: Tangi Migot Date: Fri, 15 May 2026 09:14:22 -0400 Subject: [PATCH 10/21] Add CLAUDE.md (#417) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add CLAUDE.md * Fix CLAUDE.md issues raised in PR review - Fix elementwise boolean operator (.&& → .&) in meta filter example - Soften three-file pattern to guideline, noting legacy exceptions - Generalize scalable n-adjustment guidance (not just max(2,n)) - Correct generate_meta() location to test/utils.jl Co-Authored-By: Claude Sonnet 4.6 --------- Co-authored-by: Claude Sonnet 4.6 --- CLAUDE.md | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 000000000..3d7bec6ff --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,201 @@ +# CLAUDE.md — OptimizationProblems.jl + +## Overview + +**OptimizationProblems.jl** (v0.9.3) is a Julia package providing ~680+ nonlinear programming (NLP) test problems for benchmarking and developing optimization solvers. It is part of the [JuliaSmoothOptimizers](https://github.com/JuliaSmoothOptimizers) ecosystem and integrates with NLPModels, ADNLPModels, and JuMP. + +**Central registry:** `OptimizationProblems.meta` is a `DataFrame` built at load time from `src/Meta/`. It gives instant access to metadata (nvar, ncon, objtype, origin, bounds, feasibility, …) for all problems **without instantiating any model** — extremely useful for filtering and analysis. + +```julia +using OptimizationProblems +# Filter unconstrained problems with ≤ 50 variables +df = OptimizationProblems.meta +df[(df.ncon .== 0) .& (df.nvar .≤ 50), :] +``` + +--- + +## Repository Structure + +``` +src/ + OptimizationProblems.jl # Main module — builds meta DataFrame + ADNLPProblems/ + ADNLPProblems.jl # Module loader (lazy, requires ADNLPModels) + .jl # One file per problem + PureJuMP/ + PureJuMP.jl # Module loader (always loaded) + .jl # One file per problem + Meta/ + .jl # One metadata file per problem +test/ # Julia unit test suite +docs/ # Documenter.jl docs (make.jl, src/) + src/contributing.md # Authoritative contributor guidelines +benchmark/ # BenchmarkTools suite (own Project.toml) +data/ # .jld2 data files for mesh-heavy problems +``` + +--- + +## Three-File Pattern + +New problems should provide exactly three files sharing the same base name. (Some existing problems are JuMP-only and lack an `ADNLPProblems` file; a few files also define multiple problems — see `triangle.jl` — but these are legacy exceptions.) + +### `src/ADNLPProblems/.jl` + +AD-based model. Lazy-loaded (only available when `ADNLPModels` is imported). + +```julia +export + +function (; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + # x0 must be Vector{T}, objective must return type T + f(x) = ... + x0 = ones(T, n) + return ADNLPModels.ADNLPModel(f, x0, name = ""; kwargs...) +end +``` + +### `src/PureJuMP/.jl` + +JuMP algebraic model. Always loaded. Short docstring above the function. + +```julia +export + +"Short description of the problem." +function (args...; n::Int = default_nvar, kwargs...) + nlp = Model() + # define variables, constraints, objective + return nlp +end +``` + +### `src/Meta/.jl` + +Metadata dictionary. Does **not** export the problem function. + +```julia +_meta = Dict( + :nvar => 10, + :variable_nvar => false, + :ncon => 0, + :variable_ncon => false, + :minimize => true, + :name => "", + :has_equalities_only => false, + :has_inequalities_only => false, + :has_bounds => false, + :has_fixed_variables => false, + :objtype => :other, # see valid values below + :contype => :unconstrained, # see valid values below + :best_known_lower_bound => -Inf, + :best_known_upper_bound => Inf, + :is_feasible => true, + :defined_everywhere => true, + :origin => :academic, # see valid values below + # Additional fields (branch move-docstring-to-metadata): + :url => "https://...", # must match ^https?:// + :notes => raw"""""", # problem description + :origin_notes => raw"""""", # provenance + :reference => raw"""@type{key, ...}""", # BibTeX, balanced braces + :lib => "CUTEst:NAME", # library codes, comma-separated +) +``` + +**Valid values:** +- `:objtype`: `:none`, `:constant`, `:linear`, `:quadratic`, `:sum_of_squares`, `:other`, `:least_squares` +- `:contype`: `:unconstrained`, `:linear`, `:quadratic`, `:general` +- `:origin`: `:academic`, `:modelling`, `:real`, `:unknown` + +--- + +## Scalable Problems + +Problems that accept a variable size use `n::Int = default_nvar` (default = 100). + +- Adjust invalid `n` to the closest valid value silently with `@warn`, never throw an error. The exact adjustment depends on the problem's constraints on `n` (minimum size, divisibility, parity, etc.). +- Export getter functions for the Meta file: `get__nvar`, `get__ncon`, `get__nlin`, `get__nnln`, `get__nequ`, `get__nineq` +- Reference: `src/ADNLPProblems/arglina.jl`, `src/PureJuMP/arglina.jl`, `src/Meta/arglina.jl` + +--- + +## Nonlinear Least-Squares (NLS) Problems + +- Set `:objtype => :least_squares` in the meta file +- Support `use_nls=true/false` keyword: returns `ADNLSModel` or `ADNLPModel` +- Export `get__nls_nequ` +- `residual!(nls, x, Fx)` must be allocation-free +- Reference: `src/ADNLPProblems/lanczos1.jl`, `src/ADNLPProblems/brownal.jl` + +--- + +## Code Formatting + +Uses [JuliaFormatter.jl](https://github.com/domluna/JuliaFormatter.jl). Config is in `.JuliaFormatter.toml`: + +| Setting | Value | +|---------|-------| +| `margin` | 100 | +| `indent` | 2 | +| `normalize_line_endings` | `"unix"` | + +Format the codebase locally: + +```julia +using JuliaFormatter +format(".") +``` + +--- + +## Testing + +The test suite uses Julia's `Test` stdlib with `Distributed` for parallel execution. + +``` +julia --project test/runtests.jl +``` + +Key test files: + +| File | Purpose | +|------|---------| +| `test/test-defined-problems.jl` | Verifies all meta entries have working implementations | +| `test/test-scalable.jl` | Validates scalable problem sizing and getter formulas | +| `test/test-in-place-residual.jl` | Allocation checks for NLS residuals | +| `test/utils.jl` | Helpers: `generate_meta()`, `test_multi_precision()` | + +**Always test:** +- Multiple sizes for scalable problems: `n = 5`, `n = default_nvar`, large `n` +- Both `Float32` and `Float64` +- Allocation-free in-place APIs (`cons_nln!`, `residual!`) + +--- + +## Good Reference Problems + +| Category | Examples | +|----------|---------| +| Unconstrained, scalable | `arwhead`, `arglina` | +| Constrained | `hs100`, `catmix` | +| Least squares (NLS) | `lanczos1`, `brownal` | +| With data files | `catmix`, `rocket` | + +--- + +## Benchmarks + +The `benchmark/` directory has its own Julia environment. Run locally: + +``` +julia benchmark/run_local.jl +``` + +Benchmarks cover constructor time and objective evaluation for both `ADNLPProblems` and `PureJuMP`, using `BenchmarkTools.jl`. + +--- + +## Full Contributor Guidelines + +See [`docs/src/contributing.md`](docs/src/contributing.md) for the complete checklist when adding or modifying problems, including the full reviewer checklist for meta fields, implementation consistency, type stability, and allocation requirements. From a06408f90381f6ec62a3501799485ca108b7c499 Mon Sep 17 00:00:00 2001 From: Arnav Kapoor Date: Fri, 15 May 2026 18:45:40 +0530 Subject: [PATCH 11/21] Add warnings when dimension is modified (#406) * Fix #354: Add warnings when dimension is modified on NZF1, spmsrtls, and bearing - NZF1: Warn when n is not a multiple of 13 (adjusted to nearest multiple) - spmsrtls: Warn when n is adjusted due to minimum dimension requirement (n >= 100) - bearing: Warn when grid dimensions are adjusted to ensure nx > 0 and ny > 0 These warnings follow the pattern already established in dixmaan* problems. * Update src/ADNLPProblems/bearing.jl Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * n%13 removal * Add @adjust_nvar_warn macro and update all dimension adjustment warnings - Created @adjust_nvar_warn macro in ADNLPProblems module to standardize dimension adjustment warnings across all problems - Updated warning messages to consistently show both original and adjusted values following pattern: 'problem_name: number of variables adjusted from {n_orig} to {n}' - Applied macro to all problems with dimension adjustments: - NZF1 (multiple of 13) - spmsrtls (adjusted formula) - chainwoo (multiple of 4, both :nlp and :nls variants) - woods (multiple of 4) - srosenbr (multiple of 2) - catenary (multiple of 3, minimum 6) - clplatea, clplateb, clplatec (perfect squares) - fminsrf2 (minimum 4, then perfect square) - powellsg (multiple of 4, both :nlp and :nls variants) - watson (clamped between 2 and 31, both :nlp and :nls variants) Addresses issue #354 * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update powellsg :nls variant to use @adjust_nvar_warn macro Ensures consistent warning messages between :nlp and :nls variants, showing both original and adjusted dimension values. * PureJuMP implementations * Update src/PureJuMP/PureJuMP.jl Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add regression tests for dimension-adjustment warnings * unifying macros for defining problems and dimensions, and added warnings for dimension mismatches in the defined problems. * adding copilot suggestions to fix dimension warnings in ADNLPProblems and PureJuMP * Update OptimizationProblems.jl * final changes * Update src/OptimizationProblems.jl Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * addressing review comments * addressing review comments * format * addressing review comments * further macro additions * addressing review comments * missing macro * fixing failing checks * reverting elec.jl to the version before the dimension warnings were added. The changes in this commit are to fix the dimension warnings that were introduced in the previous commit. The changes include changing the bounds on the constraints, building a feasible x0, and changing the number of variables and constraints in the model. The changes are made in both the ADNLPProblems and PureJuMP versions of elec.jl. * passing elec.jl macro * Update elec.jl * PureJuMP changes * Update catenary.jl * Apply suggestions from code review Co-authored-by: Tangi Migot * ADNLProblems changes * Update powellsg.jl * updating fminsrf2.jl to remove dimension warnings --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Tangi Migot --- src/ADNLPProblems/ADNLPProblems.jl | 1 + src/ADNLPProblems/NZF1.jl | 4 ++++ src/ADNLPProblems/bearing.jl | 4 ++++ src/ADNLPProblems/broydn7d.jl | 3 ++- src/ADNLPProblems/catenary.jl | 4 ++-- src/ADNLPProblems/chain.jl | 1 + src/ADNLPProblems/chainwoo.jl | 6 ++++-- src/ADNLPProblems/channel.jl | 1 + src/ADNLPProblems/clnlbeam.jl | 1 + src/ADNLPProblems/clplatea.jl | 3 ++- src/ADNLPProblems/clplateb.jl | 3 ++- src/ADNLPProblems/clplatec.jl | 3 ++- src/ADNLPProblems/dixmaan_efgh.jl | 3 ++- src/ADNLPProblems/dixmaan_ijkl.jl | 3 ++- src/ADNLPProblems/dixmaan_mnop.jl | 3 ++- src/ADNLPProblems/elec.jl | 2 ++ src/ADNLPProblems/fminsrf2.jl | 4 ++-- src/ADNLPProblems/hovercraft1d.jl | 2 ++ src/ADNLPProblems/marine.jl | 2 ++ src/ADNLPProblems/powellsg.jl | 8 +++++--- src/ADNLPProblems/robotarm.jl | 2 ++ src/ADNLPProblems/spmsrtls.jl | 4 ++++ src/ADNLPProblems/srosenbr.jl | 3 ++- src/ADNLPProblems/structural.jl | 2 ++ src/ADNLPProblems/watson.jl | 4 ++++ src/ADNLPProblems/woods.jl | 3 ++- src/OptimizationProblems.jl | 15 +++++++++++++++ src/PureJuMP/NZF1.jl | 3 ++- src/PureJuMP/PureJuMP.jl | 1 + src/PureJuMP/bearing.jl | 3 +++ src/PureJuMP/broydn7d.jl | 3 ++- src/PureJuMP/catenary.jl | 4 ++-- src/PureJuMP/catmix.jl | 1 + src/PureJuMP/chain.jl | 1 + src/PureJuMP/chainwoo.jl | 3 ++- src/PureJuMP/channel.jl | 1 + src/PureJuMP/clnlbeam.jl | 1 + src/PureJuMP/clplatea.jl | 3 ++- src/PureJuMP/clplateb.jl | 3 ++- src/PureJuMP/clplatec.jl | 3 ++- src/PureJuMP/dixmaan_efgh.jl | 3 ++- src/PureJuMP/dixmaan_ijkl.jl | 3 ++- src/PureJuMP/dixmaan_mnop.jl | 3 ++- src/PureJuMP/elec.jl | 2 ++ src/PureJuMP/fminsrf2.jl | 4 ++-- src/PureJuMP/gasoil.jl | 1 + src/PureJuMP/glider.jl | 1 + src/PureJuMP/hovercraft1d.jl | 1 + src/PureJuMP/marine.jl | 2 ++ src/PureJuMP/methanol.jl | 1 + src/PureJuMP/minsurf.jl | 1 + src/PureJuMP/pinene.jl | 1 + src/PureJuMP/powellsg.jl | 3 ++- src/PureJuMP/robotarm.jl | 2 ++ src/PureJuMP/rocket.jl | 1 + src/PureJuMP/spmsrtls.jl | 2 ++ src/PureJuMP/srosenbr.jl | 3 ++- src/PureJuMP/steering.jl | 1 + src/PureJuMP/structural.jl | 2 ++ src/PureJuMP/torsion.jl | 1 + src/PureJuMP/watson.jl | 2 ++ src/PureJuMP/woods.jl | 3 ++- test/test-defined-problems.jl | 25 +++++++++++++++++++++++++ 63 files changed, 158 insertions(+), 34 deletions(-) diff --git a/src/ADNLPProblems/ADNLPProblems.jl b/src/ADNLPProblems/ADNLPProblems.jl index 824468a1f..23c40a033 100644 --- a/src/ADNLPProblems/ADNLPProblems.jl +++ b/src/ADNLPProblems/ADNLPProblems.jl @@ -1,6 +1,7 @@ module ADNLPProblems using Requires +import ..OptimizationProblems: @adjust_nvar_warn const default_nvar = 100 const data_path = joinpath(@__DIR__, "..", "..", "data") diff --git a/src/ADNLPProblems/NZF1.jl b/src/ADNLPProblems/NZF1.jl index e56c47ea0..1dcf962d7 100644 --- a/src/ADNLPProblems/NZF1.jl +++ b/src/ADNLPProblems/NZF1.jl @@ -6,8 +6,10 @@ function NZF1(; use_nls::Bool = false, kwargs...) end function NZF1(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + n_org = n nbis = max(2, div(n, 13)) n = 13 * nbis + @adjust_nvar_warn("NZF1", n_org, n) l = div(n, 13) function f(x; l = l) return sum( @@ -29,8 +31,10 @@ function NZF1(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, kwarg end function NZF1(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + n_org = n nbis = max(2, div(n, 13)) n = 13 * nbis + @adjust_nvar_warn("NZF1", n_org, n) l = div(n, 13) function F!(r, x; l = l) for i = 1:l diff --git a/src/ADNLPProblems/bearing.jl b/src/ADNLPProblems/bearing.jl index 40ab56ca9..95d0d3b4f 100644 --- a/src/ADNLPProblems/bearing.jl +++ b/src/ADNLPProblems/bearing.jl @@ -10,6 +10,10 @@ function bearing(; # nx > 0 # grid points in 1st direction # ny > 0 # grid points in 2nd direction + nx = max(1, nx) + ny = max(1, ny) + @adjust_nvar_warn("bearing", n, (nx + 2) * (ny + 2)) + b = 10 # grid is (0,2*pi)x(0,2*b) e = 1 // 10 # eccentricity diff --git a/src/ADNLPProblems/broydn7d.jl b/src/ADNLPProblems/broydn7d.jl index 0ca69b21d..8a2f74e80 100644 --- a/src/ADNLPProblems/broydn7d.jl +++ b/src/ADNLPProblems/broydn7d.jl @@ -1,9 +1,10 @@ export broydn7d function broydn7d(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - mod(n, 2) > 0 && @warn("broydn7d: number of variables adjusted to be even") + n_org = n n2 = max(1, div(n, 2)) n = 2 * n2 + @adjust_nvar_warn("broydn7d", n_org, n) function f(x; n = length(x), n2 = n2) p = 7 // 3 return abs(1 - 2 * x[2] + (3 - x[1] / 2) * x[1])^p + diff --git a/src/ADNLPProblems/catenary.jl b/src/ADNLPProblems/catenary.jl index 0c4756f65..bd96b25fb 100644 --- a/src/ADNLPProblems/catenary.jl +++ b/src/ADNLPProblems/catenary.jl @@ -8,10 +8,10 @@ function catenary( FRACT = 0.6, kwargs..., ) where {T} - (n % 3 == 0) || @warn("catenary: number of variables adjusted to be a multiple of 3") + n_org = n n = 3 * max(1, div(n, 3)) - (n < 6) || @warn("catenary: number of variables adjusted to be greater or equal to 6") n = max(n, 6) + @adjust_nvar_warn("catenary", n_org, n) ## Model Parameters N = div(n, 3) - 2 diff --git a/src/ADNLPProblems/chain.jl b/src/ADNLPProblems/chain.jl index f92a59202..9ebea3ed6 100644 --- a/src/ADNLPProblems/chain.jl +++ b/src/ADNLPProblems/chain.jl @@ -2,6 +2,7 @@ export chain function chain(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} nh = max(2, div(n - 4, 4)) + @adjust_nvar_warn("chain", n, 4 * nh + 4) L = 4 a = 1 diff --git a/src/ADNLPProblems/chainwoo.jl b/src/ADNLPProblems/chainwoo.jl index 9d1520fe8..63c8e5345 100644 --- a/src/ADNLPProblems/chainwoo.jl +++ b/src/ADNLPProblems/chainwoo.jl @@ -6,8 +6,9 @@ function chainwoo(; use_nls::Bool = false, kwargs...) end function chainwoo(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - (n % 4 == 0) || @warn("chainwoo: number of variables adjusted to be a multiple of 4") + n_org = n n = 4 * max(1, div(n, 4)) + @adjust_nvar_warn("chainwoo", n_org, n) function f(x; n = length(x)) return 1 + sum( 100 * (x[2 * i] - x[2 * i - 1]^2)^2 + @@ -23,8 +24,9 @@ function chainwoo(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, k end function chainwoo(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - (n % 4 == 0) || @warn("chainwoo: number of variables adjusted to be a multiple of 4") + n_org = n n = 4 * max(1, div(n, 4)) + @adjust_nvar_warn("chainwoo", n_org, n) function F!(r, x; n = length(x)) nb = div(n, 2) - 1 r[1] = 1 diff --git a/src/ADNLPProblems/channel.jl b/src/ADNLPProblems/channel.jl index 154f6ebd5..69bdc1644 100644 --- a/src/ADNLPProblems/channel.jl +++ b/src/ADNLPProblems/channel.jl @@ -2,6 +2,7 @@ export channel function channel(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} nh = max(2, div(n, 8)) + @adjust_nvar_warn("channel", n, 8 * nh) nc = 4 nd = 4 diff --git a/src/ADNLPProblems/clnlbeam.jl b/src/ADNLPProblems/clnlbeam.jl index fc46d8e97..cf4f63cfb 100644 --- a/src/ADNLPProblems/clnlbeam.jl +++ b/src/ADNLPProblems/clnlbeam.jl @@ -2,6 +2,7 @@ export clnlbeam function clnlbeam(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} N = div(n - 3, 3) + @adjust_nvar_warn("clnlbeam", n, 3 * N + 3) h = 1 // N alpha = 350 function f(y; N = N, h = h, alpha = alpha) diff --git a/src/ADNLPProblems/clplatea.jl b/src/ADNLPProblems/clplatea.jl index a54e08ade..828eaba0a 100644 --- a/src/ADNLPProblems/clplatea.jl +++ b/src/ADNLPProblems/clplatea.jl @@ -6,9 +6,10 @@ function clplatea(; wght = -0.1, kwargs..., ) where {T} + n_org = n p = max(floor(Int, sqrt(n)), 3) - p * p != n && @warn("clplatea: number of variables adjusted from $n to $(p*p)") n = p * p + @adjust_nvar_warn("clplatea", n_org, n) hp2 = (1 // 2) * p^2 function f(x; p = p, hp2 = hp2, wght = wght) return (eltype(x)(wght) * x[p + (p - 1) * p]) + diff --git a/src/ADNLPProblems/clplateb.jl b/src/ADNLPProblems/clplateb.jl index a732e4311..5f2d449cb 100644 --- a/src/ADNLPProblems/clplateb.jl +++ b/src/ADNLPProblems/clplateb.jl @@ -6,9 +6,10 @@ function clplateb(; wght = -0.1, kwargs..., ) where {T} + n_org = n p = max(floor(Int, sqrt(n)), 3) - p * p != n && @warn("clplateb: number of variables adjusted from $n to $(p*p)") n = p * p + @adjust_nvar_warn("clplateb", n_org, n) hp2 = 1 // 2 * p^2 function f(x; p = p, hp2 = hp2, wght = wght) return sum(eltype(x)(wght) / (p - 1) * x[p + (j - 1) * p] for j = 1:p) + diff --git a/src/ADNLPProblems/clplatec.jl b/src/ADNLPProblems/clplatec.jl index 5d77a3f36..03d71267f 100644 --- a/src/ADNLPProblems/clplatec.jl +++ b/src/ADNLPProblems/clplatec.jl @@ -8,9 +8,10 @@ function clplatec(; l = 0.01, kwargs..., ) where {T} + n_org = n p = max(floor(Int, sqrt(n)), 3) - p * p != n && @warn("clplatec: number of variables adjusted from $n to $(p*p)") n = p * p + @adjust_nvar_warn("clplatec", n_org, n) hp2 = 1 // 2 * p^2 function f(x; p = p, hp2 = hp2, wght = wght, r = r, l = l) diff --git a/src/ADNLPProblems/dixmaan_efgh.jl b/src/ADNLPProblems/dixmaan_efgh.jl index 325a3c089..dddd4f371 100644 --- a/src/ADNLPProblems/dixmaan_efgh.jl +++ b/src/ADNLPProblems/dixmaan_efgh.jl @@ -9,9 +9,10 @@ function dixmaane(; δ = 125 // 1000, kwargs..., ) where {T} - (n % 3 == 0) || @warn("dixmaan: number of variables adjusted to be a multiple of 3") + n_org = n m = max(1, div(n, 3)) n = 3 * m + @adjust_nvar_warn("dixmaane", n_org, n) function f(x; n = length(x), α = α, β = β, γ = γ, δ = δ) return 1 + sum(i // n * α * x[i]^2 for i = 1:n) + diff --git a/src/ADNLPProblems/dixmaan_ijkl.jl b/src/ADNLPProblems/dixmaan_ijkl.jl index f1d86948b..c3985b14e 100644 --- a/src/ADNLPProblems/dixmaan_ijkl.jl +++ b/src/ADNLPProblems/dixmaan_ijkl.jl @@ -9,9 +9,10 @@ function dixmaani(; δ = 125 // 1000, kwargs..., ) where {T} - (n % 3 == 0) || @warn("dixmaan: number of variables adjusted to be a multiple of 3") + n_org = n m = max(1, div(n, 3)) n = 3 * m + @adjust_nvar_warn("dixmaani", n_org, n) function f(x; n = length(x), α = α, β = β, γ = γ, δ = δ) return 1 + sum((i // n)^2 * α * x[i]^2 for i = 1:n) + diff --git a/src/ADNLPProblems/dixmaan_mnop.jl b/src/ADNLPProblems/dixmaan_mnop.jl index e62e449e4..ea5d0a247 100644 --- a/src/ADNLPProblems/dixmaan_mnop.jl +++ b/src/ADNLPProblems/dixmaan_mnop.jl @@ -9,9 +9,10 @@ function dixmaanm(; δ = 125 // 1000, kwargs..., ) where {T} - (n % 3 == 0) || @warn("dixmaan: number of variables adjusted to be a multiple of 3") + n_org = n m = max(1, div(n, 3)) n = 3 * m + @adjust_nvar_warn("dixmaanm", n_org, n) function f(x; n = length(x), α = α, β = β, γ = γ, δ = δ) return 1 + sum((i // n)^2 * α * x[i]^2 for i = 1:n) + diff --git a/src/ADNLPProblems/elec.jl b/src/ADNLPProblems/elec.jl index 058d7f771..92269bbd8 100644 --- a/src/ADNLPProblems/elec.jl +++ b/src/ADNLPProblems/elec.jl @@ -1,7 +1,9 @@ export elec function elec(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + n_orig = n n = max(2, div(n, 3)) + @adjust_nvar_warn("elec", n_orig, 3 * n) # Define the objective function to minimize function f(x; n = n) return sum( diff --git a/src/ADNLPProblems/fminsrf2.jl b/src/ADNLPProblems/fminsrf2.jl index c7fe806ea..b56808384 100644 --- a/src/ADNLPProblems/fminsrf2.jl +++ b/src/ADNLPProblems/fminsrf2.jl @@ -1,12 +1,12 @@ export fminsrf2 function fminsrf2(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - n < 4 && @warn("fminsrf2: number of variables must be ≥ 4") + n_org = n n = max(4, n) p = floor(Int, sqrt(n)) - p * p != n && @warn("fminsrf2: number of variables adjusted from $n down to $(p*p)") n = p * p + @adjust_nvar_warn("fminsrf2", n_org, n) h00 = 1 slopej = 4 diff --git a/src/ADNLPProblems/hovercraft1d.jl b/src/ADNLPProblems/hovercraft1d.jl index e2e1f30c4..09e2aa4a0 100644 --- a/src/ADNLPProblems/hovercraft1d.jl +++ b/src/ADNLPProblems/hovercraft1d.jl @@ -12,6 +12,7 @@ function hovercraft1d( kwargs..., ) where {T} N = div(n, 3) + @adjust_nvar_warn("hovercraft1d", n, 3 * N - 1) function f(y; N = N) @views x, v, u = y[1:N], y[(N + 1):(2 * N)], y[(2 * N + 1):end] return 1 // 2 * sum(u .^ 2) @@ -73,6 +74,7 @@ function hovercraft1d( kwargs..., ) where {T} N = div(n, 3) + @adjust_nvar_warn("hovercraft1d", n, 3 * N - 1) function F!(r, y; N = N) @views x, v, u = y[1:N], y[(N + 1):(2 * N)], y[(2 * N + 1):end] r .= u diff --git a/src/ADNLPProblems/marine.jl b/src/ADNLPProblems/marine.jl index aa96414d9..5b01f2b1e 100644 --- a/src/ADNLPProblems/marine.jl +++ b/src/ADNLPProblems/marine.jl @@ -1,12 +1,14 @@ export marine function marine(; n::Int = default_nvar, nc::Int = 1, type::Type{T} = Float64, kwargs...) where {T} + n_orig = n nc = max(min(nc, 4), 1) # number of collocation points ne = 8 # number of differential equations nm = 21 # number of measurements n = max(n, 3 * ne * nc + ne + 2 * ne) nh = Int(round((n - 2 * ne + 1) / (3 * ne * nc + ne))) # number of partition intervals + @adjust_nvar_warn("marine", n_orig, 8 + 7 + nh * (8 + 3 * 8 * nc)) # roots of k-th degree Legendre polynomial rho = if nc == 1 diff --git a/src/ADNLPProblems/powellsg.jl b/src/ADNLPProblems/powellsg.jl index 38ac7db65..0c6d99280 100644 --- a/src/ADNLPProblems/powellsg.jl +++ b/src/ADNLPProblems/powellsg.jl @@ -6,8 +6,9 @@ function powellsg(; use_nls::Bool = false, kwargs...) end function powellsg(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - (n % 4 == 0) || @warn("powellsg: number of variables adjusted to be a multiple of 4") - n = 4 * max(1, div(n, 4)) # number of variables adjusted to be a multiple of 4 + n_org = n + n = 4 * max(1, div(n, 4)) + @adjust_nvar_warn("powellsg", n_org, n) function f(x; n = length(x)) return sum( (x[j] + 10 * x[j + 1])^2 + @@ -24,8 +25,9 @@ function powellsg(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, k end function powellsg(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - (n % 4 == 0) || @warn("powellsg: number of variables adjusted to be a multiple of 4") + n_org = n n = 4 * max(1, div(n, 4)) + @adjust_nvar_warn("powellsg", n_org, n) function F!(r, x; n = length(x)) @inbounds for j = 1:4:n r[j] = x[j] + 10 * x[j + 1] diff --git a/src/ADNLPProblems/robotarm.jl b/src/ADNLPProblems/robotarm.jl index a1264eebd..cd41e9cce 100644 --- a/src/ADNLPProblems/robotarm.jl +++ b/src/ADNLPProblems/robotarm.jl @@ -10,8 +10,10 @@ export robotarm # classification OOR2-AN-V-V function robotarm(; n::Int = default_nvar, L = 4.5, type::Type{T} = Float64, kwargs...) where {T} + n_orig = n N = max(2, div(n, 9)) n = N + 1 + @adjust_nvar_warn("robotarm", n_orig, 9 * n + 1) L = T(L) # x : vector of variables, of the form : [ρ(t=t1); ρ(t=t2); ... ρ(t=tf), θ(t=t1), ..., then ρ_dot, ..., then ρ_acc, .. ϕ_acc, tf] diff --git a/src/ADNLPProblems/spmsrtls.jl b/src/ADNLPProblems/spmsrtls.jl index d55161026..cfcc190b4 100644 --- a/src/ADNLPProblems/spmsrtls.jl +++ b/src/ADNLPProblems/spmsrtls.jl @@ -6,8 +6,10 @@ function spmsrtls(; use_nls::Bool = false, kwargs...) end function spmsrtls(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + n_org = n m = max(Int(round((n + 2) / 3)), 34) n = m * 3 - 2 + @adjust_nvar_warn("spmsrtls", n_org, n) p = [sin(i^2) for i = 1:n] x0 = T[p[i] / 5 for i = 1:n] @@ -59,8 +61,10 @@ function spmsrtls(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, k end function spmsrtls(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + n_org = n m = max(Int(round((n + 2) / 3)), 34) n = m * 3 - 2 + @adjust_nvar_warn("spmsrtls", n_org, n) p = [sin(i^2) for i = 1:n] x0 = T[p[i] / 5 for i = 1:n] diff --git a/src/ADNLPProblems/srosenbr.jl b/src/ADNLPProblems/srosenbr.jl index 451d0a6e7..a3d42b4b9 100644 --- a/src/ADNLPProblems/srosenbr.jl +++ b/src/ADNLPProblems/srosenbr.jl @@ -1,8 +1,9 @@ export srosenbr function srosenbr(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - (n % 2 == 0) || @warn("srosenbr: number of variables adjusted to be even") + n_org = n n = 2 * max(1, div(n, 2)) + @adjust_nvar_warn("srosenbr", n_org, n) function f(x; n = length(x)) return sum(100 * (x[2 * i] - x[2 * i - 1]^2)^2 + (x[2 * i - 1] - 1)^2 for i = 1:div(n, 2)) end diff --git a/src/ADNLPProblems/structural.jl b/src/ADNLPProblems/structural.jl index 0793f199b..1f8742b1c 100644 --- a/src/ADNLPProblems/structural.jl +++ b/src/ADNLPProblems/structural.jl @@ -1,6 +1,7 @@ export structural function structural(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + n_orig = n n = max(n, 100) sub2ind(shape, a, b) = LinearIndices(shape)[CartesianIndex.(a, b)] @@ -23,6 +24,7 @@ function structural(args...; n::Int = default_nvar, type::Type{T} = Float64, kwa M = Int(N * (N - 1) / 2) # number of edges + @adjust_nvar_warn("structural", n_orig, 2 * M) # EDGES: columns are the indices of the nodes at either end edges = Array{Int}(zeros(M, 2)) diff --git a/src/ADNLPProblems/watson.jl b/src/ADNLPProblems/watson.jl index 56e1f2757..ef4900795 100644 --- a/src/ADNLPProblems/watson.jl +++ b/src/ADNLPProblems/watson.jl @@ -6,7 +6,9 @@ function watson(; use_nls::Bool = false, kwargs...) end function watson(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + n_org = n n = min(max(n, 2), 31) + @adjust_nvar_warn("watson", n_org, n) function f(x; n = n) Ti = eltype(x) return 1 // 2 * sum( @@ -31,7 +33,9 @@ function watson(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, kwa end function watson(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} + n_org = n n = min(max(n, 2), 31) + @adjust_nvar_warn("watson", n_org, n) function F!(r, x; n = n) Ti = eltype(x) for i = 1:29 diff --git a/src/ADNLPProblems/woods.jl b/src/ADNLPProblems/woods.jl index 426166561..7c7934d39 100644 --- a/src/ADNLPProblems/woods.jl +++ b/src/ADNLPProblems/woods.jl @@ -1,8 +1,9 @@ export woods function woods(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T} - (n % 4 == 0) || @warn("woods: number of variables adjusted to be a multiple of 4") + n_org = n n = 4 * max(1, div(n, 4)) + @adjust_nvar_warn("woods", n_org, n) function f(x; n = length(x)) return sum( 100 * (x[4 * i - 2] - x[4 * i - 3]^2)^2 + diff --git a/src/OptimizationProblems.jl b/src/OptimizationProblems.jl index 0f0ad5088..f8068f0df 100644 --- a/src/OptimizationProblems.jl +++ b/src/OptimizationProblems.jl @@ -2,6 +2,21 @@ module OptimizationProblems using DataFrames +""" + @adjust_nvar_warn(problem_name, n_orig, n) + +Issue a warning if the number of variables was adjusted, showing both original and adjusted values. +""" +macro adjust_nvar_warn(problem_name, n_orig, n) + return quote + local _n_orig = $(esc(n_orig)) + local _n = $(esc(n)) + (_n == _n_orig) || @warn( + string($(esc(problem_name)), ": number of variables adjusted from ", _n_orig, " to ", _n) + ) + end +end + include("ADNLPProblems/ADNLPProblems.jl") include("PureJuMP/PureJuMP.jl") diff --git a/src/PureJuMP/NZF1.jl b/src/PureJuMP/NZF1.jl index f0eb746c5..9451f482f 100644 --- a/src/PureJuMP/NZF1.jl +++ b/src/PureJuMP/NZF1.jl @@ -7,9 +7,10 @@ export NZF1 function NZF1(args...; n::Int = default_nvar, kwargs...) - mod(n, 13) != 0 && @warn("NZF1: number of variables adjusted to be divisible by 13 and ≥ 26") + n_org = n nbis = max(2, div(n, 13)) n = 13 * nbis + @adjust_nvar_warn("NZF1", n_org, n) l = div(n, 13) diff --git a/src/PureJuMP/PureJuMP.jl b/src/PureJuMP/PureJuMP.jl index a855ee252..ae7418db0 100644 --- a/src/PureJuMP/PureJuMP.jl +++ b/src/PureJuMP/PureJuMP.jl @@ -19,6 +19,7 @@ function _ensure_data!(key::Symbol, relpath::AbstractString) end using JuMP, LinearAlgebra, SpecialFunctions +import ..OptimizationProblems: @adjust_nvar_warn path = dirname(@__FILE__) files = filter(x -> x[(end - 2):end] == ".jl", readdir(path)) diff --git a/src/PureJuMP/bearing.jl b/src/PureJuMP/bearing.jl index 86a3d47bc..64b0214c5 100644 --- a/src/PureJuMP/bearing.jl +++ b/src/PureJuMP/bearing.jl @@ -27,6 +27,9 @@ function bearing( # nx > 0 # grid points in 1st direction # ny > 0 # grid points in 2nd direction + nx = max(1, nx) + ny = max(1, ny) + @adjust_nvar_warn("bearing", n, (nx + 2) * (ny + 2)) b = 10 # grid is (0,2*pi)x(0,2*b) e = 0.1 # eccentricity diff --git a/src/PureJuMP/broydn7d.jl b/src/PureJuMP/broydn7d.jl index 5778efbcc..87b2da64c 100644 --- a/src/PureJuMP/broydn7d.jl +++ b/src/PureJuMP/broydn7d.jl @@ -46,9 +46,10 @@ export broydn7d "Broyden 7-diagonal model in size `n`" function broydn7d(args...; n::Int = default_nvar, p::Float64 = 7 / 3, kwargs...) - mod(n, 2) > 0 && @warn("broydn7d: number of variables adjusted to be even") + n_org = n n2 = max(1, div(n, 2)) n = 2 * n2 + @adjust_nvar_warn("broydn7d", n_org, n) nlp = Model() diff --git a/src/PureJuMP/catenary.jl b/src/PureJuMP/catenary.jl index 4da81b57f..d25daaa0c 100644 --- a/src/PureJuMP/catenary.jl +++ b/src/PureJuMP/catenary.jl @@ -17,10 +17,10 @@ export catenary function catenary(args...; n::Int = default_nvar, Bl = 1.0, FRACT = 0.6, kwargs...) - (n % 3 == 0) || @warn("catenary: number of variables adjusted to be a multiple of 3") + n_org = n n = 3 * max(1, div(n, 3)) - (n < 6) || @warn("catenary: number of variables adjusted to be greater or equal to 6") n = max(n, 6) + @adjust_nvar_warn("catenary", n_org, n) ## Model Parameters diff --git a/src/PureJuMP/catmix.jl b/src/PureJuMP/catmix.jl index 580f2db7c..4d010bb18 100644 --- a/src/PureJuMP/catmix.jl +++ b/src/PureJuMP/catmix.jl @@ -8,6 +8,7 @@ export catmix function catmix(args...; n::Int = default_nvar, kwargs...) ne = 2 nc = 3 + @adjust_nvar_warn("catmix", n, 23 * n + 2) tf = 1 h = tf / n # Final time diff --git a/src/PureJuMP/chain.jl b/src/PureJuMP/chain.jl index befb5f6cd..c3b2d23a5 100644 --- a/src/PureJuMP/chain.jl +++ b/src/PureJuMP/chain.jl @@ -14,6 +14,7 @@ export chain function chain(args...; n::Int = default_nvar, kwargs...) nh = max(2, div(n - 4, 4)) + @adjust_nvar_warn("chain", n, 4 * nh + 4) L = 4 a = 1 diff --git a/src/PureJuMP/chainwoo.jl b/src/PureJuMP/chainwoo.jl index 0fc8cb893..43b948c5a 100644 --- a/src/PureJuMP/chainwoo.jl +++ b/src/PureJuMP/chainwoo.jl @@ -35,8 +35,9 @@ export chainwoo "The chained Woods function in size `n`, a variant on the Woods function" function chainwoo(args...; n::Int = default_nvar, kwargs...) - (n % 4 == 0) || @warn("chainwoo: number of variables adjusted to be a multiple of 4") + n_org = n n = 4 * max(1, div(n, 4)) + @adjust_nvar_warn("chainwoo", n_org, n) nlp = Model() diff --git a/src/PureJuMP/channel.jl b/src/PureJuMP/channel.jl index cce634660..f21beeeee 100644 --- a/src/PureJuMP/channel.jl +++ b/src/PureJuMP/channel.jl @@ -13,6 +13,7 @@ export channel function channel(args...; n::Int = default_nvar, kwargs...) nh = max(2, div(n, 8)) + @adjust_nvar_warn("channel", n, 8 * nh) nc = 4 nd = 4 diff --git a/src/PureJuMP/clnlbeam.jl b/src/PureJuMP/clnlbeam.jl index 3849c7fe8..d0036e288 100644 --- a/src/PureJuMP/clnlbeam.jl +++ b/src/PureJuMP/clnlbeam.jl @@ -15,6 +15,7 @@ export clnlbeam "The clnlbeam problem in size `n`" function clnlbeam(args...; n::Int = default_nvar, kwargs...) N = div(n - 3, 3) + @adjust_nvar_warn("clnlbeam", n, 3 * N + 3) h = 1 / N alpha = 350 model = Model() diff --git a/src/PureJuMP/clplatea.jl b/src/PureJuMP/clplatea.jl index 011e0db9a..4076cc932 100644 --- a/src/PureJuMP/clplatea.jl +++ b/src/PureJuMP/clplatea.jl @@ -26,9 +26,10 @@ export clplatea "The clamped plate problem (Strang, Nocedal, Dax)." function clplatea(args...; n::Int = default_nvar, wght::Float64 = -0.1, kwargs...) + n_org = n p = floor(Int, sqrt(n)) - p * p != n && @warn("clplatea: number of variables adjusted from $n down to $(p*p)") n = p * p + @adjust_nvar_warn("clplatea", n_org, n) nlp = Model() diff --git a/src/PureJuMP/clplateb.jl b/src/PureJuMP/clplateb.jl index 575e9fe5d..c8314729c 100644 --- a/src/PureJuMP/clplateb.jl +++ b/src/PureJuMP/clplateb.jl @@ -27,9 +27,10 @@ export clplateb "The clamped plate problem (Strang, Nocedal, Dax)." function clplateb(args...; n::Int = default_nvar, wght::Float64 = -0.1, kwargs...) + n_org = n p = floor(Int, sqrt(n)) - p * p != n && @warn("clplateb: number of variables adjusted from $n down to $(p*p)") n = p * p + @adjust_nvar_warn("clplateb", n_org, n) nlp = Model() diff --git a/src/PureJuMP/clplatec.jl b/src/PureJuMP/clplatec.jl index 274feda44..1b6a70b84 100644 --- a/src/PureJuMP/clplatec.jl +++ b/src/PureJuMP/clplatec.jl @@ -33,9 +33,10 @@ function clplatec( l::Float64 = 0.01, kwargs..., ) + n_org = n p = floor(Int, sqrt(n)) - p * p != n && @warn("clplatec: number of variables adjusted from $n down to $(p*p)") n = p * p + @adjust_nvar_warn("clplatec", n_org, n) nlp = Model() diff --git a/src/PureJuMP/dixmaan_efgh.jl b/src/PureJuMP/dixmaan_efgh.jl index 39e2c5976..5cea0bf79 100644 --- a/src/PureJuMP/dixmaan_efgh.jl +++ b/src/PureJuMP/dixmaan_efgh.jl @@ -33,9 +33,10 @@ function dixmaane( δ::Float64 = 0.125, kwargs..., ) - (n % 3 == 0) || @warn("dixmaan: number of variables adjusted to be a multiple of 3") + n_org = n m = max(1, div(n, 3)) n = 3 * m + @adjust_nvar_warn("dixmaane", n_org, n) nlp = Model() diff --git a/src/PureJuMP/dixmaan_ijkl.jl b/src/PureJuMP/dixmaan_ijkl.jl index 11f291714..0dcac5508 100644 --- a/src/PureJuMP/dixmaan_ijkl.jl +++ b/src/PureJuMP/dixmaan_ijkl.jl @@ -33,9 +33,10 @@ function dixmaani( δ::Float64 = 0.125, kwargs..., ) - (n % 3 == 0) || @warn("dixmaan: number of variables adjusted to be a multiple of 3") + n_org = n m = max(1, div(n, 3)) n = 3 * m + @adjust_nvar_warn("dixmaani", n_org, n) nlp = Model() diff --git a/src/PureJuMP/dixmaan_mnop.jl b/src/PureJuMP/dixmaan_mnop.jl index c4537bcd5..d25574bbf 100644 --- a/src/PureJuMP/dixmaan_mnop.jl +++ b/src/PureJuMP/dixmaan_mnop.jl @@ -31,9 +31,10 @@ function dixmaanm( δ::Float64 = 0.125, kwargs..., ) - (n % 3 == 0) || @warn("dixmaan: number of variables adjusted to be a multiple of 3") + n_org = n m = max(1, div(n, 3)) n = 3 * m + @adjust_nvar_warn("dixmaanm", n_org, n) nlp = Model() diff --git a/src/PureJuMP/elec.jl b/src/PureJuMP/elec.jl index a1f0ca3db..032d27a05 100644 --- a/src/PureJuMP/elec.jl +++ b/src/PureJuMP/elec.jl @@ -11,7 +11,9 @@ export elec function elec(args...; n::Int = default_nvar, kwargs...) + n_orig = n n = max(2, div(n, 3)) + @adjust_nvar_warn("elec", n_orig, 3 * n) nlp = Model() diff --git a/src/PureJuMP/fminsrf2.jl b/src/PureJuMP/fminsrf2.jl index b6acb5a8f..05da94823 100644 --- a/src/PureJuMP/fminsrf2.jl +++ b/src/PureJuMP/fminsrf2.jl @@ -21,12 +21,12 @@ export fminsrf2 function fminsrf2(args...; n::Int = default_nvar, kwargs...) - n < 4 && @warn("fminsrf2: number of variables must be ≥ 4") + n_org = n n = max(4, n) p = floor(Int, sqrt(n)) - p * p != n && @warn("fminsrf2: number of variables adjusted from $n down to $(p*p)") n = p * p + @adjust_nvar_warn("fminsrf2", n_org, n) h00 = 1.0 slopej = 4.0 diff --git a/src/PureJuMP/gasoil.jl b/src/PureJuMP/gasoil.jl index c39531f3c..1213e5d2b 100644 --- a/src/PureJuMP/gasoil.jl +++ b/src/PureJuMP/gasoil.jl @@ -9,6 +9,7 @@ export gasoil function gasoil(; n::Int = default_nvar, kwargs...) nc = 4 # number of collocation points + @adjust_nvar_warn("gasoil", n, 26 * n + 3) ne = 2 # number of differential equations np = 3 # number of ODE parameters nm = 21 # number of measurements diff --git a/src/PureJuMP/glider.jl b/src/PureJuMP/glider.jl index 9d217b716..66ca5c79e 100644 --- a/src/PureJuMP/glider.jl +++ b/src/PureJuMP/glider.jl @@ -9,6 +9,7 @@ export glider function glider(; n::Int = default_nvar, kwargs...) # Design parameters + @adjust_nvar_warn("glider", n, 5 * n + 6) x_0 = 0.0 y_0 = 1000.0 y_f = 900.0 diff --git a/src/PureJuMP/hovercraft1d.jl b/src/PureJuMP/hovercraft1d.jl index 0ddce6c3f..ab683f844 100644 --- a/src/PureJuMP/hovercraft1d.jl +++ b/src/PureJuMP/hovercraft1d.jl @@ -9,6 +9,7 @@ function hovercraft1d(args...; n::Int = default_nvar, kwargs...) nlp = Model() T = div(n, 3) # length of time horizon + @adjust_nvar_warn("hovercraft1d", n, 3 * T - 1) @variable(nlp, x[1:T]) # resulting position @variable(nlp, v[1:T]) # resulting velocity @variable(nlp, u[1:(T - 1)]) # thruster input diff --git a/src/PureJuMP/marine.jl b/src/PureJuMP/marine.jl index afd07b22d..c28a86b1a 100644 --- a/src/PureJuMP/marine.jl +++ b/src/PureJuMP/marine.jl @@ -20,12 +20,14 @@ export marine function marine(args...; n::Int = default_nvar, nc::Int = 1, kwargs...) nlp = Model() + n_orig = n nc = max(min(nc, 4), 1) # number of collocation points ne = 8 # number of differential equations nm = 21 # number of measurements n = max(n, 3 * ne * nc + ne + 2 * ne) nh = Int(round((n - 2 * ne + 1) / (3 * ne * nc + ne))) # number of partition intervals + @adjust_nvar_warn("marine", n_orig, 8 + 7 + nh * (8 + 3 * 8 * nc)) # roots of k-th degree Legendre polynomial rho = if nc == 1 diff --git a/src/PureJuMP/methanol.jl b/src/PureJuMP/methanol.jl index f27f055ca..bbf0f671a 100644 --- a/src/PureJuMP/methanol.jl +++ b/src/PureJuMP/methanol.jl @@ -35,6 +35,7 @@ function methanol(args...; n::Int = default_nvar, kwargs...) 1.122, ] tf = tau[nm] # ODEs defined in [0,tf] + @adjust_nvar_warn("methanol", n, 30 * n + 5) h = tf / n # uniform interval length t = [(i-1)*h for i = 1:(n + 1)] # partition fact = [factorial(k) for k = 0:nc] diff --git a/src/PureJuMP/minsurf.jl b/src/PureJuMP/minsurf.jl index a50e97f15..852beaeff 100644 --- a/src/PureJuMP/minsurf.jl +++ b/src/PureJuMP/minsurf.jl @@ -16,6 +16,7 @@ function minsurf(args...; n = default_nvar, kwargs...) if !((:nx in keys(kwargs)) & (:ny in keys(kwargs))) nx, ny = Int(round(sqrt(max(1, n - 2)))), Int(round(sqrt(max(1, n - 2)))) end + @adjust_nvar_warn("minsurf", n, (nx + 2) * (ny + 2)) x_mesh = LinRange(0, 1, nx + 2) # coordinates of the mesh points x v0 = zeros(nx + 2, ny + 2) # Surface matrix initialization diff --git a/src/PureJuMP/pinene.jl b/src/PureJuMP/pinene.jl index 347fa83d5..49f5a3137 100644 --- a/src/PureJuMP/pinene.jl +++ b/src/PureJuMP/pinene.jl @@ -25,6 +25,7 @@ function pinene(; n::Int = default_nvar, kwargs...) # times at which observations made tau = [1230.0, 3060.0, 4920.0, 7800.0, 10680.0, 15030.0, 22620.0, 36420.0] tf = tau[nm] # ODEs defined in [0,tf] + @adjust_nvar_warn("pinene", n, 50 * n + 5) h = tf / n # uniform interval length t = [(i-1)*h for i = 1:(n + 1)] # partition diff --git a/src/PureJuMP/powellsg.jl b/src/PureJuMP/powellsg.jl index bcb9f7deb..31b9dcf60 100644 --- a/src/PureJuMP/powellsg.jl +++ b/src/PureJuMP/powellsg.jl @@ -37,8 +37,9 @@ export powellsg "The extended Powell singular problem in size 'n' " function powellsg(args...; n::Int = default_nvar, kwargs...) - (n % 4 == 0) || @warn("powellsg: number of variables adjusted to be a multiple of 4") + n_org = n n = 4 * max(1, div(n, 4)) + @adjust_nvar_warn("powellsg", n_org, n) x0 = zeros(n) x0[4 * (collect(1:div(n, 4))) .- 3] .= 3.0 diff --git a/src/PureJuMP/robotarm.jl b/src/PureJuMP/robotarm.jl index b6252bd90..ff1a76a8a 100644 --- a/src/PureJuMP/robotarm.jl +++ b/src/PureJuMP/robotarm.jl @@ -14,8 +14,10 @@ export robotarm function robotarm(; n::Int = default_nvar, L = 4.5, kwargs...) + n_orig = n N = max(2, div(n, 9)) n = N + 1 + @adjust_nvar_warn("robotarm", n_orig, 9 * n + 1) nlp = Model() diff --git a/src/PureJuMP/rocket.jl b/src/PureJuMP/rocket.jl index 56ab5a499..0d71255ee 100644 --- a/src/PureJuMP/rocket.jl +++ b/src/PureJuMP/rocket.jl @@ -8,6 +8,7 @@ export rocket function rocket(; n::Int = default_nvar, kwargs...) h_0 = 1.0 + @adjust_nvar_warn("rocket", n, 4 * n + 5) v_0 = 0.0 m_0 = 1.0 g_0 = 1.0 diff --git a/src/PureJuMP/spmsrtls.jl b/src/PureJuMP/spmsrtls.jl index 98ae91cc2..57a96a868 100644 --- a/src/PureJuMP/spmsrtls.jl +++ b/src/PureJuMP/spmsrtls.jl @@ -21,8 +21,10 @@ export spmsrtls function spmsrtls(args...; n::Int = default_nvar, kwargs...) + n_org = n m = max(Int(round((n + 2) / 3)), 34) n = m * 3 - 2 + @adjust_nvar_warn("spmsrtls", n_org, n) p = [sin(i^2) for i = 1:n] x0 = [p[i] / 5 for i = 1:n] diff --git a/src/PureJuMP/srosenbr.jl b/src/PureJuMP/srosenbr.jl index fc971e61d..7333bf636 100644 --- a/src/PureJuMP/srosenbr.jl +++ b/src/PureJuMP/srosenbr.jl @@ -21,8 +21,9 @@ export srosenbr "The separable extension of Rosenbrock's function 'n' " function srosenbr(args...; n::Int = default_nvar, kwargs...) - (n % 2 == 0) || @warn("srosenbr: number of variables adjusted to be even") + n_org = n n = 2 * max(1, div(n, 2)) + @adjust_nvar_warn("srosenbr", n_org, n) x0 = ones(n) x0[2 * (collect(1:div(n, 2))) .- 1] .= -1.2 diff --git a/src/PureJuMP/steering.jl b/src/PureJuMP/steering.jl index 353be640b..fae18b753 100644 --- a/src/PureJuMP/steering.jl +++ b/src/PureJuMP/steering.jl @@ -8,6 +8,7 @@ export steering function steering(; n::Int = default_nvar, kwargs...) a = 100.0 # Magnitude of force. + @adjust_nvar_warn("steering", n, 5 * n + 6) # Bounds on the control u_min, u_max = -pi/2.0, pi/2.0 xs = zeros(4) diff --git a/src/PureJuMP/structural.jl b/src/PureJuMP/structural.jl index 65ba54d47..474f4ff3b 100644 --- a/src/PureJuMP/structural.jl +++ b/src/PureJuMP/structural.jl @@ -6,6 +6,7 @@ export structural function structural(args...; n::Int = default_nvar, kwargs...) + n_orig = n n = max(n, 100) sub2ind(shape, a, b) = LinearIndices(shape)[CartesianIndex.(a, b)] @@ -29,6 +30,7 @@ function structural(args...; n::Int = default_nvar, kwargs...) M = Int(N * (N - 1) / 2) # number of edges + @adjust_nvar_warn("structural", n_orig, 2 * M) # EDGES: columns are the indices of the nodes at either end edges = Array{Int}(zeros(M, 2)) diff --git a/src/PureJuMP/torsion.jl b/src/PureJuMP/torsion.jl index 926d1e456..6ea03cec2 100644 --- a/src/PureJuMP/torsion.jl +++ b/src/PureJuMP/torsion.jl @@ -10,6 +10,7 @@ function torsion(args...; n = default_nvar, kwargs...) if !((:nx in keys(kwargs)) & (:ny in keys(kwargs))) nx, ny = Int(round(sqrt(max(1, n - 2)))), Int(round(sqrt(max(1, n - 2)))) end + @adjust_nvar_warn("torsion", n, (nx + 2) * (ny + 2)) c = 5.0 hx = 1.0 / (nx + 1.0) # grid spacing hy = 1.0 / (ny + 1.0) # grid spacing diff --git a/src/PureJuMP/watson.jl b/src/PureJuMP/watson.jl index 6dc9def6e..4dcca0612 100644 --- a/src/PureJuMP/watson.jl +++ b/src/PureJuMP/watson.jl @@ -17,7 +17,9 @@ export watson function watson(args...; n::Int = default_nvar, kwargs...) + n_org = n n = min(max(n, 2), 31) + @adjust_nvar_warn("watson", n_org, n) m = 31 nlp = Model() diff --git a/src/PureJuMP/woods.jl b/src/PureJuMP/woods.jl index 8127b51ab..253de4349 100644 --- a/src/PureJuMP/woods.jl +++ b/src/PureJuMP/woods.jl @@ -39,8 +39,9 @@ export woods "The extended Woods problem `n` " function woods(args...; n::Int = default_nvar, kwargs...) - (n % 4 == 0) || @warn("woods: number of variables adjusted to be a multiple of 4") + n_org = n n = 4 * max(1, div(n, 4)) + @adjust_nvar_warn("woods", n_org, n) nlp = Model() diff --git a/test/test-defined-problems.jl b/test/test-defined-problems.jl index 0007a346b..c99ca714e 100644 --- a/test/test-defined-problems.jl +++ b/test/test-defined-problems.jl @@ -22,6 +22,31 @@ probes = @sync begin end @info "PureJuMP missing per worker" probes +@testset "Adjusted dimension warnings" begin + var_probs = OptimizationProblems.meta[OptimizationProblems.meta.variable_nvar, :name] + + for prob_name in var_probs + prob_sym = Symbol(prob_name) + + get_nvar_func = getfield(OptimizationProblems, Symbol("get_", prob_name, "_nvar")) + + for n in (50, 100) + n_adjusted = get_nvar_func(; n = n) + n_adjusted == n && continue # Skip if no adjustment for this n + + msg_re = Regex("number of variables adjusted from $(n) to $(n_adjusted)") + + for mod in (ADNLPProblems, PureJuMP) + isdefined(mod, prob_sym) || continue + constructor = getfield(mod, prob_sym) + @test_logs (:warn, msg_re) constructor(; n = n) + end + + break + end + end +end + @test setdiff(union(names(ADNLPProblems), list_problems_not_ADNLPProblems), list_problems) == [:ADNLPProblems] @test setdiff(union(names(PureJuMP), list_problems_not_PureJuMP), list_problems) == [:PureJuMP] From 14d09eb989d062e10c5c4ace8f33c2eeba25066b Mon Sep 17 00:00:00 2001 From: Tangi Migot Date: Fri, 15 May 2026 12:29:15 -0400 Subject: [PATCH 12/21] Move doc from comments to meta (#407) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Move doc from comments to meta (aircrfta) * up * do not move license * add new fields in Meta * Move comments to META * fix * add refs * move things around hs * add doc * Add a bib creator * fix * fix conflict * allow multiple URL * fill-in meta * up some refs * clean COPS test problems * clean HS2 * Fix split :origin and :origin_notes * Add missing bibtex and links * Add lib ref * small fixes * 59 files with http://dx.doi.org/ → https://doi.org/ * Update SKILL * uniform bib --- .claude/skills/find-bib/SKILL.md | 162 ++++++++++++++++++++++++++++++ .gitignore | 2 + docs/src/contributing.md | 4 +- docs/src/meta.md | 50 ++++++++- src/Meta/AMPGO02.jl | 20 ++++ src/Meta/AMPGO03.jl | 20 ++++ src/Meta/AMPGO04.jl | 20 ++++ src/Meta/AMPGO05.jl | 20 ++++ src/Meta/AMPGO06.jl | 20 ++++ src/Meta/AMPGO07.jl | 20 ++++ src/Meta/AMPGO08.jl | 20 ++++ src/Meta/AMPGO09.jl | 20 ++++ src/Meta/AMPGO10.jl | 20 ++++ src/Meta/AMPGO11.jl | 20 ++++ src/Meta/AMPGO12.jl | 20 ++++ src/Meta/AMPGO13.jl | 20 ++++ src/Meta/AMPGO14.jl | 20 ++++ src/Meta/AMPGO15.jl | 20 ++++ src/Meta/AMPGO18.jl | 20 ++++ src/Meta/AMPGO20.jl | 20 ++++ src/Meta/AMPGO21.jl | 20 ++++ src/Meta/AMPGO22.jl | 20 ++++ src/Meta/BOX2.jl | 27 +++++ src/Meta/BOX3.jl | 30 ++++++ src/Meta/Dus2_1.jl | 21 ++++ src/Meta/Dus2_3.jl | 21 ++++ src/Meta/Dus2_9.jl | 21 ++++ src/Meta/Duscube.jl | 21 ++++ src/Meta/NZF1.jl | 28 ++++++ src/Meta/Shpak1.jl | 30 ++++++ src/Meta/Shpak2.jl | 31 ++++++ src/Meta/Shpak3.jl | 31 ++++++ src/Meta/Shpak4.jl | 32 ++++++ src/Meta/Shpak5.jl | 32 ++++++ src/Meta/Shpak6.jl | 32 ++++++ src/Meta/aircrfta.jl | 28 ++++++ src/Meta/allinit.jl | 25 +++++ src/Meta/allinitc.jl | 25 +++++ src/Meta/allinitu.jl | 25 +++++ src/Meta/alsotame.jl | 23 +++++ src/Meta/argauss.jl | 30 ++++++ src/Meta/arglina.jl | 28 ++++++ src/Meta/arglinb.jl | 28 ++++++ src/Meta/arglinc.jl | 28 ++++++ src/Meta/argtrig.jl | 35 +++++++ src/Meta/arwhead.jl | 38 +++++++ src/Meta/auglag.jl | 29 ++++++ src/Meta/avion2.jl | 22 ++++ src/Meta/bard.jl | 35 +++++++ src/Meta/bdqrtic.jl | 40 ++++++++ src/Meta/beale.jl | 30 ++++++ src/Meta/bearing.jl | 31 ++++++ src/Meta/bennett5.jl | 58 +++++++++++ src/Meta/biggs5.jl | 37 +++++++ src/Meta/biggs6.jl | 33 ++++++ src/Meta/booth.jl | 29 ++++++ src/Meta/boundary.jl | 25 +++++ src/Meta/boxbod.jl | 59 +++++++++++ src/Meta/bqp1var.jl | 22 ++++ src/Meta/britgas.jl | 26 +++++ src/Meta/brownal.jl | 29 ++++++ src/Meta/brownbs.jl | 33 ++++++ src/Meta/brownden.jl | 28 ++++++ src/Meta/browngen1.jl | 29 ++++++ src/Meta/browngen2.jl | 29 ++++++ src/Meta/broyden3d.jl | 29 ++++++ src/Meta/broyden7d.jl | 29 ++++++ src/Meta/broydn7d.jl | 62 ++++++++++++ src/Meta/brybnd.jl | 33 ++++++ src/Meta/bt1.jl | 35 +++++++ src/Meta/camshape.jl | 27 +++++ src/Meta/catenary.jl | 30 ++++++ src/Meta/catmix.jl | 32 ++++++ src/Meta/chain.jl | 29 ++++++ src/Meta/chainwoo.jl | 48 +++++++++ src/Meta/channel.jl | 33 ++++++ src/Meta/chnrosnb_mod.jl | 33 ++++++ src/Meta/chwirut1.jl | 57 +++++++++++ src/Meta/chwirut2.jl | 57 +++++++++++ src/Meta/cliff.jl | 27 +++++ src/Meta/clnlbeam.jl | 32 ++++++ src/Meta/clplatea.jl | 39 +++++++ src/Meta/clplateb.jl | 40 ++++++++ src/Meta/clplatec.jl | 39 +++++++ src/Meta/controlinvestment.jl | 16 +++ src/Meta/cosine.jl | 38 +++++++ src/Meta/cragglvy.jl | 41 ++++++++ src/Meta/cragglvy2.jl | 38 +++++++ src/Meta/curly.jl | 40 ++++++++ src/Meta/curly10.jl | 47 +++++++++ src/Meta/curly20.jl | 47 +++++++++ src/Meta/curly30.jl | 47 +++++++++ src/Meta/danwood.jl | 66 ++++++++++++ src/Meta/dixmaane.jl | 34 +++++++ src/Meta/dixmaanf.jl | 35 +++++++ src/Meta/dixmaang.jl | 35 +++++++ src/Meta/dixmaanh.jl | 35 +++++++ src/Meta/dixmaani.jl | 34 +++++++ src/Meta/dixmaanj.jl | 35 +++++++ src/Meta/dixmaank.jl | 35 +++++++ src/Meta/dixmaanl.jl | 35 +++++++ src/Meta/dixmaanm.jl | 32 ++++++ src/Meta/dixmaann.jl | 35 +++++++ src/Meta/dixmaano.jl | 35 +++++++ src/Meta/dixmaanp.jl | 35 +++++++ src/Meta/dixon3dq.jl | 27 +++++ src/Meta/dqdrtic.jl | 25 +++++ src/Meta/dqrtic.jl | 38 +++++++ src/Meta/eckerle4.jl | 55 ++++++++++ src/Meta/edensch.jl | 42 ++++++++ src/Meta/eg2.jl | 44 ++++++++ src/Meta/elec.jl | 27 +++++ src/Meta/engval1.jl | 43 ++++++++ src/Meta/enso.jl | 68 +++++++++++++ src/Meta/errinros_mod.jl | 33 ++++++ src/Meta/extrosnb.jl | 38 +++++++ src/Meta/fletcbv2.jl | 46 +++++++++ src/Meta/fletcbv3_mod.jl | 38 +++++++ src/Meta/fletchcr.jl | 48 +++++++++ src/Meta/fminsrf2.jl | 54 ++++++++++ src/Meta/freuroth.jl | 36 +++++++ src/Meta/gasoil.jl | 40 ++++++++ src/Meta/gauss1.jl | 56 +++++++++++ src/Meta/gauss2.jl | 56 +++++++++++ src/Meta/gauss3.jl | 56 +++++++++++ src/Meta/gaussian.jl | 29 ++++++ src/Meta/genbroydenb.jl | 25 +++++ src/Meta/genbroydentri.jl | 26 +++++ src/Meta/genhumps.jl | 36 +++++++ src/Meta/genrose.jl | 35 +++++++ src/Meta/genrose_nash.jl | 72 +++++++++++++ src/Meta/glider.jl | 35 +++++++ src/Meta/gulf.jl | 41 ++++++++ src/Meta/hahn1.jl | 58 +++++++++++ src/Meta/helical.jl | 23 +++++ src/Meta/hovercraft1d.jl | 21 ++++ src/Meta/hs1.jl | 35 ++++++- src/Meta/hs10.jl | 32 +++++- src/Meta/hs100.jl | 34 ++++++- src/Meta/hs101.jl | 34 ++++++- src/Meta/hs102.jl | 34 ++++++- src/Meta/hs103.jl | 34 ++++++- src/Meta/hs104.jl | 34 ++++++- src/Meta/hs105.jl | 34 ++++++- src/Meta/hs106.jl | 36 ++++++- src/Meta/hs107.jl | 39 ++++++- src/Meta/hs108.jl | 34 ++++++- src/Meta/hs109.jl | 40 +++++++- src/Meta/hs11.jl | 32 +++++- src/Meta/hs110.jl | 37 ++++++- src/Meta/hs111.jl | 35 ++++++- src/Meta/hs112.jl | 41 +++++++- src/Meta/hs113.jl | 40 +++++++- src/Meta/hs114.jl | 36 ++++++- src/Meta/hs116.jl | 36 ++++++- src/Meta/hs117.jl | 34 ++++++- src/Meta/hs118.jl | 34 ++++++- src/Meta/hs119.jl | 38 ++++++- src/Meta/hs12.jl | 32 +++++- src/Meta/hs13.jl | 37 ++++++- src/Meta/hs14.jl | 32 +++++- src/Meta/hs15.jl | 32 +++++- src/Meta/hs16.jl | 32 +++++- src/Meta/hs17.jl | 32 +++++- src/Meta/hs18.jl | 32 +++++- src/Meta/hs19.jl | 34 ++++++- src/Meta/hs2.jl | 37 ++++++- src/Meta/hs20.jl | 32 +++++- src/Meta/hs201.jl | 24 +++++ src/Meta/hs21.jl | 32 +++++- src/Meta/hs211.jl | 24 +++++ src/Meta/hs219.jl | 30 +++++- src/Meta/hs22.jl | 32 +++++- src/Meta/hs220.jl | 24 +++++ src/Meta/hs221.jl | 24 +++++ src/Meta/hs222.jl | 24 +++++ src/Meta/hs223.jl | 24 +++++ src/Meta/hs224.jl | 24 +++++ src/Meta/hs225.jl | 24 +++++ src/Meta/hs226.jl | 24 +++++ src/Meta/hs227.jl | 24 +++++ src/Meta/hs228.jl | 24 +++++ src/Meta/hs229.jl | 24 +++++ src/Meta/hs23.jl | 32 +++++- src/Meta/hs230.jl | 24 +++++ src/Meta/hs231.jl | 24 +++++ src/Meta/hs232.jl | 24 +++++ src/Meta/hs233.jl | 24 +++++ src/Meta/hs234.jl | 24 +++++ src/Meta/hs235.jl | 24 +++++ src/Meta/hs236.jl | 24 +++++ src/Meta/hs237.jl | 24 +++++ src/Meta/hs238.jl | 24 +++++ src/Meta/hs239.jl | 24 +++++ src/Meta/hs24.jl | 34 ++++++- src/Meta/hs240.jl | 24 +++++ src/Meta/hs241.jl | 24 +++++ src/Meta/hs242.jl | 24 +++++ src/Meta/hs243.jl | 24 +++++ src/Meta/hs244.jl | 24 +++++ src/Meta/hs245.jl | 24 +++++ src/Meta/hs246.jl | 24 +++++ src/Meta/hs248.jl | 24 +++++ src/Meta/hs249.jl | 24 +++++ src/Meta/hs25.jl | 34 ++++++- src/Meta/hs250.jl | 24 +++++ src/Meta/hs251.jl | 24 +++++ src/Meta/hs252.jl | 24 +++++ src/Meta/hs253.jl | 24 +++++ src/Meta/hs254.jl | 24 +++++ src/Meta/hs255.jl | 24 +++++ src/Meta/hs256.jl | 24 +++++ src/Meta/hs257.jl | 24 +++++ src/Meta/hs258.jl | 24 +++++ src/Meta/hs259.jl | 24 +++++ src/Meta/hs26.jl | 32 +++++- src/Meta/hs260.jl | 24 +++++ src/Meta/hs261.jl | 24 +++++ src/Meta/hs262.jl | 24 +++++ src/Meta/hs263.jl | 24 +++++ src/Meta/hs264.jl | 24 +++++ src/Meta/hs265.jl | 24 +++++ src/Meta/hs27.jl | 32 +++++- src/Meta/hs28.jl | 34 ++++++- src/Meta/hs29.jl | 34 ++++++- src/Meta/hs3.jl | 32 +++++- src/Meta/hs30.jl | 32 +++++- src/Meta/hs31.jl | 32 +++++- src/Meta/hs316.jl | 29 +++++- src/Meta/hs317.jl | 30 +++++- src/Meta/hs318.jl | 30 +++++- src/Meta/hs319.jl | 30 +++++- src/Meta/hs32.jl | 34 ++++++- src/Meta/hs320.jl | 30 +++++- src/Meta/hs321.jl | 30 +++++- src/Meta/hs322.jl | 30 +++++- src/Meta/hs33.jl | 34 ++++++- src/Meta/hs34.jl | 34 ++++++- src/Meta/hs35.jl | 32 +++++- src/Meta/hs36.jl | 34 ++++++- src/Meta/hs37.jl | 34 ++++++- src/Meta/hs378.jl | 30 +++++- src/Meta/hs38.jl | 36 ++++++- src/Meta/hs39.jl | 32 +++++- src/Meta/hs4.jl | 32 +++++- src/Meta/hs40.jl | 32 +++++- src/Meta/hs41.jl | 34 ++++++- src/Meta/hs42.jl | 34 ++++++- src/Meta/hs43.jl | 34 ++++++- src/Meta/hs44.jl | 32 +++++- src/Meta/hs45.jl | 34 ++++++- src/Meta/hs46.jl | 34 ++++++- src/Meta/hs47.jl | 34 ++++++- src/Meta/hs48.jl | 34 ++++++- src/Meta/hs49.jl | 34 ++++++- src/Meta/hs5.jl | 32 +++++- src/Meta/hs50.jl | 34 ++++++- src/Meta/hs51.jl | 34 ++++++- src/Meta/hs52.jl | 34 ++++++- src/Meta/hs53.jl | 34 ++++++- src/Meta/hs54.jl | 35 ++++++- src/Meta/hs55.jl | 34 ++++++- src/Meta/hs56.jl | 31 ++++++ src/Meta/hs57.jl | 30 ++++++ src/Meta/hs59.jl | 34 ++++++- src/Meta/hs6.jl | 28 ++++++ src/Meta/hs60.jl | 33 ++++++ src/Meta/hs61.jl | 29 ++++++ src/Meta/hs62.jl | 31 ++++++ src/Meta/hs63.jl | 31 ++++++ src/Meta/hs64.jl | 34 ++++++- src/Meta/hs65.jl | 32 +++++- src/Meta/hs66.jl | 34 ++++++- src/Meta/hs68.jl | 39 ++++++- src/Meta/hs69.jl | 39 ++++++- src/Meta/hs7.jl | 32 +++++- src/Meta/hs70.jl | 36 ++++++- src/Meta/hs71.jl | 34 ++++++- src/Meta/hs72.jl | 36 ++++++- src/Meta/hs73.jl | 36 ++++++- src/Meta/hs74.jl | 34 ++++++- src/Meta/hs75.jl | 34 ++++++- src/Meta/hs76.jl | 34 ++++++- src/Meta/hs77.jl | 34 ++++++- src/Meta/hs78.jl | 34 ++++++- src/Meta/hs79.jl | 34 ++++++- src/Meta/hs8.jl | 34 ++++++- src/Meta/hs80.jl | 34 ++++++- src/Meta/hs81.jl | 40 +++++++- src/Meta/hs83.jl | 34 ++++++- src/Meta/hs84.jl | 34 ++++++- src/Meta/hs86.jl | 34 ++++++- src/Meta/hs87.jl | 40 +++++++- src/Meta/hs9.jl | 32 +++++- src/Meta/hs93.jl | 36 ++++++- src/Meta/hs95.jl | 34 ++++++- src/Meta/hs96.jl | 34 ++++++- src/Meta/hs97.jl | 34 ++++++- src/Meta/hs98.jl | 34 ++++++- src/Meta/hs99.jl | 32 +++++- src/Meta/indef_mod.jl | 31 ++++++ src/Meta/integreq.jl | 33 ++++++ src/Meta/jennrichsampson.jl | 23 +++++ src/Meta/kirby2.jl | 57 +++++++++++ src/Meta/kowosb.jl | 29 ++++++ src/Meta/lanczos1.jl | 58 +++++++++++ src/Meta/lanczos2.jl | 59 +++++++++++ src/Meta/lanczos3.jl | 60 +++++++++++ src/Meta/liarwhd.jl | 47 +++++++++ src/Meta/lincon.jl | 16 +++ src/Meta/linsv.jl | 16 +++ src/Meta/marine.jl | 35 +++++++ src/Meta/methanol.jl | 42 ++++++++ src/Meta/meyer3.jl | 28 ++++++ src/Meta/mgh01feas.jl | 16 +++ src/Meta/mgh09.jl | 68 +++++++++++++ src/Meta/mgh10.jl | 70 +++++++++++++ src/Meta/mgh17.jl | 69 +++++++++++++ src/Meta/minsurf.jl | 35 +++++++ src/Meta/misra1a.jl | 58 +++++++++++ src/Meta/misra1b.jl | 58 +++++++++++ src/Meta/misra1c.jl | 57 +++++++++++ src/Meta/misra1d.jl | 54 ++++++++++ src/Meta/morebv.jl | 39 +++++++ src/Meta/nasty.jl | 11 ++ src/Meta/nazareth.jl | 27 +++++ src/Meta/ncb20.jl | 33 ++++++ src/Meta/ncb20b.jl | 34 +++++++ src/Meta/nelson.jl | 68 +++++++++++++ src/Meta/noncvxu2.jl | 31 ++++++ src/Meta/noncvxun.jl | 34 +++++++ src/Meta/nondia.jl | 40 ++++++++ src/Meta/nondquar.jl | 40 ++++++++ src/Meta/osborne1.jl | 31 ++++++ src/Meta/osborne2.jl | 31 ++++++ src/Meta/palmer1c.jl | 28 ++++++ src/Meta/palmer1d.jl | 28 ++++++ src/Meta/palmer2c.jl | 28 ++++++ src/Meta/palmer3c.jl | 28 ++++++ src/Meta/palmer4c.jl | 28 ++++++ src/Meta/palmer5c.jl | 29 ++++++ src/Meta/palmer5d.jl | 27 +++++ src/Meta/palmer6c.jl | 30 ++++++ src/Meta/palmer7c.jl | 28 ++++++ src/Meta/palmer8c.jl | 28 ++++++ src/Meta/penalty1.jl | 35 +++++++ src/Meta/penalty2.jl | 35 +++++++ src/Meta/penalty3.jl | 37 +++++++ src/Meta/pinene.jl | 43 ++++++++ src/Meta/polygon.jl | 30 ++++++ src/Meta/polygon1.jl | 29 ++++++ src/Meta/polygon2.jl | 18 ++++ src/Meta/polygon3.jl | 18 ++++ src/Meta/powellbs.jl | 31 ++++++ src/Meta/powellsg.jl | 33 ++++++ src/Meta/power.jl | 31 ++++++ src/Meta/quartc.jl | 27 +++++ src/Meta/rat42.jl | 61 +++++++++++ src/Meta/rat43.jl | 61 +++++++++++ src/Meta/robotarm.jl | 24 +++++ src/Meta/rocket.jl | 35 +++++++ src/Meta/rosenbrock.jl | 20 ++++ src/Meta/rozman1.jl | 47 +++++++++ src/Meta/sbrybnd.jl | 35 +++++++ src/Meta/schmvett.jl | 41 ++++++++ src/Meta/scosine.jl | 39 +++++++ src/Meta/sinquad.jl | 35 +++++++ src/Meta/sparsine.jl | 32 ++++++ src/Meta/sparsqur.jl | 32 ++++++ src/Meta/spmsrtls.jl | 28 ++++++ src/Meta/srosenbr.jl | 49 +++++++++ src/Meta/steering.jl | 35 +++++++ src/Meta/structural.jl | 17 ++++ src/Meta/tetra.jl | 23 +++++ src/Meta/tetra_duct12.jl | 18 ++++ src/Meta/tetra_duct15.jl | 18 ++++ src/Meta/tetra_duct20.jl | 18 ++++ src/Meta/tetra_foam5.jl | 18 ++++ src/Meta/tetra_gear.jl | 18 ++++ src/Meta/tetra_hook.jl | 18 ++++ src/Meta/threepk.jl | 32 ++++++ src/Meta/thurber.jl | 59 +++++++++++ src/Meta/toint.jl | 24 +++++ src/Meta/tointgss.jl | 39 +++++++ src/Meta/torsion.jl | 20 ++++ src/Meta/tquartic.jl | 35 +++++++ src/Meta/triangle.jl | 22 ++++ src/Meta/triangle_deer.jl | 18 ++++ src/Meta/triangle_pacman.jl | 18 ++++ src/Meta/triangle_turtle.jl | 18 ++++ src/Meta/tridia.jl | 28 ++++++ src/Meta/trig.jl | 24 +++++ src/Meta/trigb.jl | 24 +++++ src/Meta/vardim.jl | 30 ++++++ src/Meta/variational.jl | 29 ++++++ src/Meta/vibrbeam.jl | 39 +++++++ src/Meta/watson.jl | 29 ++++++ src/Meta/woods.jl | 54 ++++++++++ src/Meta/zangwil3.jl | 38 +++++++ src/OptimizationProblems.jl | 19 ++++ src/PureJuMP/AMPGO02.jl | 8 -- src/PureJuMP/AMPGO03.jl | 8 -- src/PureJuMP/AMPGO04.jl | 8 -- src/PureJuMP/AMPGO05.jl | 7 -- src/PureJuMP/AMPGO06.jl | 8 -- src/PureJuMP/AMPGO07.jl | 8 -- src/PureJuMP/AMPGO08.jl | 7 -- src/PureJuMP/AMPGO09.jl | 8 -- src/PureJuMP/AMPGO10.jl | 8 -- src/PureJuMP/AMPGO11.jl | 8 -- src/PureJuMP/AMPGO12.jl | 8 -- src/PureJuMP/AMPGO13.jl | 8 -- src/PureJuMP/AMPGO14.jl | 8 -- src/PureJuMP/AMPGO15.jl | 8 -- src/PureJuMP/AMPGO18.jl | 8 -- src/PureJuMP/AMPGO20.jl | 8 -- src/PureJuMP/AMPGO21.jl | 8 -- src/PureJuMP/AMPGO22.jl | 8 -- src/PureJuMP/BOX2.jl | 9 -- src/PureJuMP/BOX3.jl | 14 --- src/PureJuMP/Dus2_1.jl | 8 -- src/PureJuMP/Dus2_3.jl | 7 -- src/PureJuMP/Dus2_9.jl | 7 -- src/PureJuMP/Duscube.jl | 7 -- src/PureJuMP/NZF1.jl | 6 -- src/PureJuMP/aircrfta.jl | 8 +- src/PureJuMP/allinit.jl | 5 +- src/PureJuMP/allinitc.jl | 5 +- src/PureJuMP/allinitu.jl | 5 +- src/PureJuMP/alsotame.jl | 7 +- src/PureJuMP/argauss.jl | 7 -- src/PureJuMP/arglina.jl | 11 -- src/PureJuMP/arglinb.jl | 11 -- src/PureJuMP/arglinc.jl | 11 -- src/PureJuMP/argtrig.jl | 17 ---- src/PureJuMP/arwhead.jl | 26 ----- src/PureJuMP/auglag.jl | 11 -- src/PureJuMP/avion2.jl | 1 - src/PureJuMP/bard.jl | 13 --- src/PureJuMP/bdqrtic.jl | 24 ----- src/PureJuMP/beale.jl | 12 --- src/PureJuMP/bearing.jl | 16 --- src/PureJuMP/bennett5.jl | 36 ------- src/PureJuMP/biggs5.jl | 15 --- src/PureJuMP/biggs6.jl | 12 --- src/PureJuMP/booth.jl | 8 +- src/PureJuMP/boundary.jl | 10 -- src/PureJuMP/boxbod.jl | 36 ------- src/PureJuMP/bqp1var.jl | 3 - src/PureJuMP/brownal.jl | 13 --- src/PureJuMP/brownbs.jl | 12 --- src/PureJuMP/brownden.jl | 11 -- src/PureJuMP/browngen1.jl | 10 -- src/PureJuMP/browngen2.jl | 10 -- src/PureJuMP/broyden3d.jl | 13 --- src/PureJuMP/broyden7d.jl | 10 -- src/PureJuMP/broydn7d.jl | 44 -------- src/PureJuMP/brybnd.jl | 42 -------- src/PureJuMP/bt1.jl | 12 --- src/PureJuMP/camshape.jl | 10 -- src/PureJuMP/catenary.jl | 16 --- src/PureJuMP/catmix.jl | 5 - src/PureJuMP/chain.jl | 12 --- src/PureJuMP/chainwoo.jl | 33 ------ src/PureJuMP/channel.jl | 11 -- src/PureJuMP/chnrosnb_mod.jl | 15 --- src/PureJuMP/chwirut1.jl | 35 ------- src/PureJuMP/chwirut2.jl | 36 ------- src/PureJuMP/cliff.jl | 10 -- src/PureJuMP/clnlbeam.jl | 14 +-- src/PureJuMP/clplatea.jl | 24 ----- src/PureJuMP/clplateb.jl | 25 ----- src/PureJuMP/clplatec.jl | 24 ----- src/PureJuMP/controlinvestment.jl | 3 - src/PureJuMP/cosine.jl | 15 --- src/PureJuMP/cragglvy.jl | 24 ----- src/PureJuMP/cragglvy2.jl | 22 ---- src/PureJuMP/curly.jl | 22 ---- src/PureJuMP/danwood.jl | 40 -------- src/PureJuMP/dixmaan_efgh.jl | 23 ----- src/PureJuMP/dixmaan_ijkl.jl | 23 ----- src/PureJuMP/dixmaan_mnop.jl | 21 ---- src/PureJuMP/dixon3dq.jl | 10 -- src/PureJuMP/dqdrtic.jl | 10 -- src/PureJuMP/dqrtic.jl | 23 ----- src/PureJuMP/eckerle4.jl | 35 ------- src/PureJuMP/edensch.jl | 23 ----- src/PureJuMP/eg2.jl | 23 ----- src/PureJuMP/elec.jl | 10 -- src/PureJuMP/engval1.jl | 23 ----- src/PureJuMP/enso.jl | 42 -------- src/PureJuMP/errinros_mod.jl | 15 --- src/PureJuMP/extrosnb.jl | 22 ---- src/PureJuMP/fletcbv2.jl | 22 ---- src/PureJuMP/fletcbv3_mod.jl | 22 ---- src/PureJuMP/fletchcr.jl | 32 ------ src/PureJuMP/fminsrf2.jl | 20 ---- src/PureJuMP/freuroth.jl | 22 ---- src/PureJuMP/gasoil.jl | 7 -- src/PureJuMP/gauss1.jl | 35 ------- src/PureJuMP/gauss2.jl | 34 ------- src/PureJuMP/gauss3.jl | 34 ------- src/PureJuMP/gaussian.jl | 8 -- src/PureJuMP/genbroydenb.jl | 10 -- src/PureJuMP/genbroydentri.jl | 10 -- src/PureJuMP/genhumps.jl | 18 ---- src/PureJuMP/genrose.jl | 65 ------------ src/PureJuMP/genrose_nash.jl | 31 ------ src/PureJuMP/glider.jl | 7 -- src/PureJuMP/gulf.jl | 14 --- src/PureJuMP/hahn1.jl | 37 ------- src/PureJuMP/helical.jl | 5 - src/PureJuMP/hovercraft1d.jl | 5 - src/PureJuMP/hs1.jl | 13 --- src/PureJuMP/hs10.jl | 13 --- src/PureJuMP/hs100.jl | 13 --- src/PureJuMP/hs101.jl | 13 --- src/PureJuMP/hs102.jl | 13 --- src/PureJuMP/hs103.jl | 13 --- src/PureJuMP/hs104.jl | 13 --- src/PureJuMP/hs105.jl | 13 --- src/PureJuMP/hs106.jl | 13 --- src/PureJuMP/hs107.jl | 13 --- src/PureJuMP/hs108.jl | 13 --- src/PureJuMP/hs109.jl | 13 --- src/PureJuMP/hs11.jl | 13 --- src/PureJuMP/hs110.jl | 13 --- src/PureJuMP/hs111.jl | 13 --- src/PureJuMP/hs112.jl | 13 --- src/PureJuMP/hs113.jl | 13 --- src/PureJuMP/hs114.jl | 13 --- src/PureJuMP/hs116.jl | 13 --- src/PureJuMP/hs117.jl | 13 --- src/PureJuMP/hs118.jl | 13 --- src/PureJuMP/hs119.jl | 13 --- src/PureJuMP/hs12.jl | 13 --- src/PureJuMP/hs13.jl | 13 --- src/PureJuMP/hs14.jl | 13 --- src/PureJuMP/hs15.jl | 13 --- src/PureJuMP/hs16.jl | 13 --- src/PureJuMP/hs17.jl | 13 --- src/PureJuMP/hs18.jl | 13 --- src/PureJuMP/hs19.jl | 13 --- src/PureJuMP/hs2.jl | 13 --- src/PureJuMP/hs20.jl | 13 --- src/PureJuMP/hs201.jl | 9 -- src/PureJuMP/hs21.jl | 13 --- src/PureJuMP/hs211.jl | 9 -- src/PureJuMP/hs219.jl | 13 --- src/PureJuMP/hs22.jl | 13 --- src/PureJuMP/hs220.jl | 13 --- src/PureJuMP/hs221.jl | 13 --- src/PureJuMP/hs222.jl | 13 --- src/PureJuMP/hs223.jl | 13 --- src/PureJuMP/hs224.jl | 13 --- src/PureJuMP/hs225.jl | 13 --- src/PureJuMP/hs226.jl | 13 --- src/PureJuMP/hs227.jl | 13 --- src/PureJuMP/hs228.jl | 13 --- src/PureJuMP/hs229.jl | 13 --- src/PureJuMP/hs23.jl | 13 --- src/PureJuMP/hs230.jl | 13 --- src/PureJuMP/hs231.jl | 13 --- src/PureJuMP/hs232.jl | 13 --- src/PureJuMP/hs233.jl | 13 --- src/PureJuMP/hs234.jl | 13 --- src/PureJuMP/hs235.jl | 13 --- src/PureJuMP/hs236.jl | 13 --- src/PureJuMP/hs237.jl | 13 --- src/PureJuMP/hs238.jl | 13 --- src/PureJuMP/hs239.jl | 13 --- src/PureJuMP/hs24.jl | 13 --- src/PureJuMP/hs240.jl | 13 --- src/PureJuMP/hs241.jl | 13 --- src/PureJuMP/hs242.jl | 13 --- src/PureJuMP/hs243.jl | 13 --- src/PureJuMP/hs244.jl | 13 --- src/PureJuMP/hs245.jl | 13 --- src/PureJuMP/hs246.jl | 13 --- src/PureJuMP/hs248.jl | 13 --- src/PureJuMP/hs249.jl | 13 --- src/PureJuMP/hs25.jl | 13 --- src/PureJuMP/hs250.jl | 13 --- src/PureJuMP/hs251.jl | 13 --- src/PureJuMP/hs252.jl | 13 --- src/PureJuMP/hs253.jl | 13 --- src/PureJuMP/hs254.jl | 13 --- src/PureJuMP/hs255.jl | 13 --- src/PureJuMP/hs256.jl | 13 --- src/PureJuMP/hs257.jl | 13 --- src/PureJuMP/hs258.jl | 13 --- src/PureJuMP/hs259.jl | 13 --- src/PureJuMP/hs26.jl | 13 --- src/PureJuMP/hs260.jl | 13 --- src/PureJuMP/hs261.jl | 13 --- src/PureJuMP/hs262.jl | 13 --- src/PureJuMP/hs263.jl | 13 --- src/PureJuMP/hs264.jl | 13 --- src/PureJuMP/hs265.jl | 13 --- src/PureJuMP/hs27.jl | 13 --- src/PureJuMP/hs28.jl | 13 --- src/PureJuMP/hs29.jl | 13 --- src/PureJuMP/hs3.jl | 13 --- src/PureJuMP/hs30.jl | 13 --- src/PureJuMP/hs31.jl | 13 --- src/PureJuMP/hs316.jl | 12 --- src/PureJuMP/hs317.jl | 12 --- src/PureJuMP/hs318.jl | 12 --- src/PureJuMP/hs319.jl | 12 --- src/PureJuMP/hs32.jl | 13 --- src/PureJuMP/hs320.jl | 12 --- src/PureJuMP/hs321.jl | 12 --- src/PureJuMP/hs322.jl | 12 --- src/PureJuMP/hs33.jl | 13 --- src/PureJuMP/hs34.jl | 13 --- src/PureJuMP/hs35.jl | 13 --- src/PureJuMP/hs36.jl | 13 --- src/PureJuMP/hs37.jl | 13 --- src/PureJuMP/hs378.jl | 12 --- src/PureJuMP/hs38.jl | 13 --- src/PureJuMP/hs39.jl | 13 --- src/PureJuMP/hs4.jl | 13 --- src/PureJuMP/hs40.jl | 13 --- src/PureJuMP/hs41.jl | 13 --- src/PureJuMP/hs42.jl | 13 --- src/PureJuMP/hs43.jl | 13 --- src/PureJuMP/hs44.jl | 13 --- src/PureJuMP/hs45.jl | 13 --- src/PureJuMP/hs46.jl | 13 --- src/PureJuMP/hs47.jl | 13 --- src/PureJuMP/hs48.jl | 13 --- src/PureJuMP/hs49.jl | 13 --- src/PureJuMP/hs5.jl | 13 --- src/PureJuMP/hs50.jl | 13 --- src/PureJuMP/hs51.jl | 13 --- src/PureJuMP/hs52.jl | 13 --- src/PureJuMP/hs53.jl | 13 --- src/PureJuMP/hs54.jl | 13 --- src/PureJuMP/hs55.jl | 13 --- src/PureJuMP/hs56.jl | 13 --- src/PureJuMP/hs57.jl | 13 --- src/PureJuMP/hs59.jl | 13 --- src/PureJuMP/hs6.jl | 13 --- src/PureJuMP/hs60.jl | 13 --- src/PureJuMP/hs61.jl | 13 --- src/PureJuMP/hs62.jl | 13 --- src/PureJuMP/hs63.jl | 13 --- src/PureJuMP/hs64.jl | 13 --- src/PureJuMP/hs65.jl | 13 --- src/PureJuMP/hs66.jl | 13 --- src/PureJuMP/hs68.jl | 16 --- src/PureJuMP/hs69.jl | 16 --- src/PureJuMP/hs7.jl | 13 --- src/PureJuMP/hs70.jl | 13 --- src/PureJuMP/hs71.jl | 13 --- src/PureJuMP/hs72.jl | 13 --- src/PureJuMP/hs73.jl | 13 --- src/PureJuMP/hs74.jl | 13 --- src/PureJuMP/hs75.jl | 13 --- src/PureJuMP/hs76.jl | 13 --- src/PureJuMP/hs77.jl | 13 --- src/PureJuMP/hs78.jl | 13 --- src/PureJuMP/hs79.jl | 13 --- src/PureJuMP/hs8.jl | 13 --- src/PureJuMP/hs80.jl | 13 --- src/PureJuMP/hs81.jl | 13 --- src/PureJuMP/hs83.jl | 13 --- src/PureJuMP/hs84.jl | 13 --- src/PureJuMP/hs86.jl | 13 --- src/PureJuMP/hs87.jl | 11 -- src/PureJuMP/hs9.jl | 13 --- src/PureJuMP/hs93.jl | 13 --- src/PureJuMP/hs95.jl | 13 --- src/PureJuMP/hs96.jl | 13 --- src/PureJuMP/hs97.jl | 13 --- src/PureJuMP/hs98.jl | 13 --- src/PureJuMP/hs99.jl | 12 --- src/PureJuMP/indef_mod.jl | 14 --- src/PureJuMP/integreq.jl | 14 --- src/PureJuMP/jennrichsampson.jl | 5 - src/PureJuMP/kirby2.jl | 34 ------- src/PureJuMP/kowosb.jl | 6 -- src/PureJuMP/lanczos1.jl | 35 ------- src/PureJuMP/lanczos2.jl | 36 ------- src/PureJuMP/lanczos3.jl | 38 ------- src/PureJuMP/liarwhd.jl | 23 ----- src/PureJuMP/marine.jl | 17 ---- src/PureJuMP/methanol.jl | 7 -- src/PureJuMP/meyer3.jl | 11 -- src/PureJuMP/mgh09.jl | 40 -------- src/PureJuMP/mgh10.jl | 40 -------- src/PureJuMP/mgh17.jl | 41 -------- src/PureJuMP/minsurf.jl | 11 -- src/PureJuMP/misra1a.jl | 35 ------- src/PureJuMP/misra1b.jl | 36 ------- src/PureJuMP/misra1c.jl | 35 ------- src/PureJuMP/misra1d.jl | 32 ------ src/PureJuMP/morebv.jl | 22 ---- src/PureJuMP/nasty.jl | 6 -- src/PureJuMP/nazareth.jl | 10 -- src/PureJuMP/ncb20.jl | 18 ---- src/PureJuMP/ncb20b.jl | 19 ---- src/PureJuMP/nelson.jl | 40 -------- src/PureJuMP/noncvxu2.jl | 14 --- src/PureJuMP/noncvxun.jl | 15 --- src/PureJuMP/nondia.jl | 25 ----- src/PureJuMP/nondquar.jl | 24 ----- src/PureJuMP/osborne1.jl | 8 -- src/PureJuMP/osborne2.jl | 8 -- src/PureJuMP/palmer1c.jl | 12 --- src/PureJuMP/palmer1d.jl | 12 --- src/PureJuMP/palmer2c.jl | 12 --- src/PureJuMP/palmer3c.jl | 12 --- src/PureJuMP/palmer4c.jl | 12 --- src/PureJuMP/palmer5c.jl | 13 --- src/PureJuMP/palmer5d.jl | 11 -- src/PureJuMP/palmer6c.jl | 12 --- src/PureJuMP/palmer7c.jl | 12 --- src/PureJuMP/palmer8c.jl | 12 --- src/PureJuMP/penalty1.jl | 14 --- src/PureJuMP/penalty2.jl | 10 -- src/PureJuMP/penalty3.jl | 21 ---- src/PureJuMP/pinene.jl | 12 --- src/PureJuMP/polygon.jl | 14 --- src/PureJuMP/polygon1.jl | 13 --- src/PureJuMP/polygon2.jl | 8 -- src/PureJuMP/polygon3.jl | 8 -- src/PureJuMP/powellbs.jl | 9 -- src/PureJuMP/powellsg.jl | 35 ------- src/PureJuMP/power.jl | 11 -- src/PureJuMP/quartc.jl | 10 -- src/PureJuMP/rat42.jl | 36 ------- src/PureJuMP/rat43.jl | 36 ------- src/PureJuMP/robotarm.jl | 13 --- src/PureJuMP/rocket.jl | 6 -- src/PureJuMP/rozman1.jl | 36 ------- src/PureJuMP/sbrybnd.jl | 26 ----- src/PureJuMP/schmvett.jl | 24 ----- src/PureJuMP/scosine.jl | 22 ---- src/PureJuMP/shpak1.jl | 9 -- src/PureJuMP/shpak2.jl | 10 -- src/PureJuMP/shpak3.jl | 10 -- src/PureJuMP/shpak4.jl | 11 -- src/PureJuMP/shpak5.jl | 11 -- src/PureJuMP/shpak6.jl | 11 -- src/PureJuMP/sinquad.jl | 18 ---- src/PureJuMP/sparsine.jl | 14 --- src/PureJuMP/sparsqur.jl | 14 --- src/PureJuMP/spmsrtls.jl | 20 ---- src/PureJuMP/srosenbr.jl | 19 ---- src/PureJuMP/steering.jl | 6 -- src/PureJuMP/structural.jl | 5 - src/PureJuMP/tetra.jl | 8 -- src/PureJuMP/threepk.jl | 70 ------------- src/PureJuMP/thurber.jl | 36 ------- src/PureJuMP/toint.jl | 11 -- src/PureJuMP/tointgss.jl | 23 ----- src/PureJuMP/torsion.jl | 5 - src/PureJuMP/tquartic.jl | 18 ---- src/PureJuMP/triangle.jl | 7 -- src/PureJuMP/tridia.jl | 15 --- src/PureJuMP/trig.jl | 11 -- src/PureJuMP/trigb.jl | 11 -- src/PureJuMP/vardim.jl | 14 --- src/PureJuMP/variational.jl | 10 -- src/PureJuMP/vibrbeam.jl | 26 ----- src/PureJuMP/watson.jl | 16 --- src/PureJuMP/woods.jl | 37 ------- src/PureJuMP/zangwil3.jl | 12 --- src/utils.jl | 160 +++++++++++++++++++++++++++++ test/runtests.jl | 1 + test/test-meta-fields.jl | 78 ++++++++++++++ test/utils.jl | 33 ++++++ 773 files changed, 13293 insertions(+), 5738 deletions(-) create mode 100644 .claude/skills/find-bib/SKILL.md create mode 100644 src/utils.jl create mode 100644 test/test-meta-fields.jl diff --git a/.claude/skills/find-bib/SKILL.md b/.claude/skills/find-bib/SKILL.md new file mode 100644 index 000000000..a80e9d196 --- /dev/null +++ b/.claude/skills/find-bib/SKILL.md @@ -0,0 +1,162 @@ +--- +name: find-bib +description: Find or construct a BibTeX reference for an OptimizationProblems.jl meta file. Given a DOI, problem name, or free-form reference text, searches for the DOI online, fetches BibTeX from doi2bib.org, and formats the result as a Julia raw string ready to paste into src/Meta/.jl. +argument-hint: +allowed-tools: [Read, Glob, Grep, WebSearch, WebFetch] +--- + +# find-bib + +Find or construct a BibTeX reference and format it as a Julia raw string for `src/Meta/.jl`. + +## Arguments + +The user invoked this skill with: $ARGUMENTS + +This can be: +- A **problem name** from `src/Meta/` (e.g. `zangwil3`, `hs1`) — skill will read the file and extract context +- A **DOI** (e.g. `10.1145/355934.355936` or `https://doi.org/10.1145/355934.355356`) +- **Free-form reference text** (title, authors, journal, year — quoted or unquoted) +- **Empty** — if no argument is given, ask the user to specify a problem name or reference + +--- + +## Instructions + +Follow these steps in order. + +### Step 1 — Gather source material + +If `$ARGUMENTS` looks like a problem name (no spaces, no slashes, exists as `src/Meta/.jl`): +- Read `src/Meta/$ARGUMENTS.jl` +- Extract `:url`, `:notes`, `:origin_notes`, and the existing `:reference` field (may be empty) +- Use this text as the source for Steps 2–4 + +Otherwise, treat `$ARGUMENTS` directly as a DOI or free-form reference text. + +### Step 2 — Extract or find a DOI + +1. Regex-scan all gathered text for a DOI pattern: `10\.\d{4,}/\S+` + - DOIs appear in `:url`, `:notes`, `:origin_notes`, or in the argument itself +2. If no DOI is found, run a **WebSearch** to locate one: + - Try: `"" "<first author>" DOI` + - Try: `site:doi.org "<title or key terms>"` + - Try CrossRef: `site:search.crossref.org "<title or key terms>"` +3. Extract the DOI string from any search result that contains one. + +### Step 3 — Fetch BibTeX + +If a DOI was found (say `10.1145/355934.355936`), try these endpoints in order: + +1. **CrossRef** (primary): `https://api.crossref.org/works/10.1145/355934.355936/transform/application/x-bibtex` +2. **doi2bib.org** (fallback): `https://www.doi2bib.org/bib/10.1145/355934.355936` + +The response is plain-text BibTeX — clean up whitespace if needed, then apply these normalizations: + +- **Citation key**: CrossRef often returns auto-generated keys like `More_1981` or `more1981testingunconstrained`. Always rename the key to the `Author1Author2YYYY` format described in Step 4 (e.g. `MoreGarbowHillstrom1981`). +- **`pages` field**: normalize to BibTeX double-hyphen. Replace Unicode en-dash `–` or a single hyphen `-` between page numbers with `--` (e.g. `175--184`). + +If both endpoints fail or return an error, fall through to Step 4. + +### Step 4 — Construct BibTeX manually (fallback) + +If no DOI was found or doi2bib.org failed, construct the best possible BibTeX from all available information. + +Choose the entry type: + +| Type | Use when | +|---|---| +| `@article` | journal or conference paper | +| `@book` | book or edited volume | +| `@techreport` | institutional or technical report | +| `@misc` | dataset, software, website, or unclear | + +**Citation key format:** `Author1Author2YYYY` using last names only (e.g. `MoreGarbowHillstrom1981`, `HockSchittkowski1981`). For a single author: `AuthorYYYY`. For institutional authors use a compact CamelCase form (e.g. `NISTStRD`). + +**`pages` field:** always use double-hyphen: `175--184`. Convert Unicode en-dash `–`, em-dash `—`, or single hyphen `-` between page numbers to `--`. + +**LaTeX encoding for special characters:** `Mor{\'e}`, `{\'E}`, etc. + +**Flag uncertain fields** with a trailing `% UNVERIFIED` comment on that line. + +### Step 5 — Present the result + +Show three things: + +**1. Status line** — one sentence: whether the DOI was found, and from where. + +**2. The BibTeX entry** in a code block: +```bibtex +@article{AuthorYear, + author = {Last, First and Last2, First2}, + title = {Title of the Article}, + journal = {Journal Name}, + year = {YYYY}, + volume = {V}, + number = {N}, + pages = {P1--P2}, + doi = {10.xxxx/xxxxx} +} +``` + +**3. The Julia snippet** ready to paste into `src/Meta/<name>.jl`: +```julia +:reference => raw""" +@article{AuthorYear, + author = {Last, First and Last2, First2}, + title = {Title of the Article}, + journal = {Journal Name}, + year = {YYYY}, + volume = {V}, + number = {N}, + pages = {P1--P2}, + doi = {10.xxxx/xxxxx} +} +""", +``` + +### Step 6 — Suggest next steps + +- List any fields marked `% UNVERIFIED` that the user should check manually. +- If a DOI was found and the file's `:url` field does not already contain it, suggest adding `https://doi.org/<DOI>` to `:url`. The `:url` field supports multiple URLs as a **comma-separated string**. If a URL is already present, append the new one: `"https://existing.url, https://doi.org/<DOI>"`. +- If the problem name was given, name the exact file to edit: `src/Meta/<name>.jl`. + +--- + +## BibTeX type templates (reference) + +```bibtex +@article{AuthorYear, + author = {Last, First}, + title = {Title}, + journal = {Journal}, + year = {YYYY}, + volume = {V}, + number = {N}, + pages = {P1--P2}, + doi = {10.xxxx/xxxxx} +} + +@book{AuthorYear, + author = {Last, First}, + title = {Book Title}, + publisher = {Publisher}, + address = {City}, + year = {YYYY} +} + +@techreport{AuthorYear, + author = {Last, First}, + title = {Report Title}, + institution = {Institution}, + number = {Report Number}, + year = {YYYY} +} + +@misc{AuthorYear, + author = {Last, First}, + title = {Title}, + year = {YYYY}, + howpublished = {\url{https://...}} +} +``` diff --git a/.gitignore b/.gitignore index 4152d855f..15a83781f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,6 @@ *.jl.*.cov *.jl.mem Manifest.toml +*.bib +*/settings.local.json .DS_Store \ No newline at end of file diff --git a/docs/src/contributing.md b/docs/src/contributing.md index d803b0bae..d252b9bed 100644 --- a/docs/src/contributing.md +++ b/docs/src/contributing.md @@ -22,8 +22,8 @@ Here is a to-do list, to help you add new problems: In both cases, the function must have the same name `problem_name` as the file. The function should be only exported from `src/ADNLPProblems/problem_name.jl` and `src/PureJuMP/problem_name.jl`. * When submitting a problem, please pay particular attention to the documentation. We would like to gather as much information as possible on the provenance of problems, other problem sets where the problems are present, and general information on the problem. -The documentation should be added to the file in the `PureJuMP` folder. -* New problems can be scalable, see [ADNLPProblems/arglina.jl](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/ADNLPProblems/arglina.jl) and [PureJuMP/arglina.jl](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/PureJuMP/arglina.jl) for examples. In that case, the first keyword parameter should be the number of variables `n::Int` and have the default value `default_nvar` (constant predefined in the module). If your problem has restrictions on the number of variables, e.g., `n` should be odd, or `n` should have the form `4k + 3`, then, instead of throwing errors when the restrictions are not satisfied, you should instead use the number of variables to be as close to `n` as possible. For example, if you want `n` odd and `n = 100` is passed, you can internally convert to `n = 99`. If you want `n = 4k + 3`, and `n = 100` is passed, then compute `k = round(Int, (n - 3) / 4)` and update `n`. When such an internal adjustment is made, emit a warning indicating the requested `n` and the effective value used. +The documentation should be added to the corresponding fields in the `Meta` folder. +* New problems can be scalable, see [ADNLPProblems/arglina.jl](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/ADNLPProblems/arglina.jl) and [PureJuMP/arglina.jl](https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/PureJuMP/arglina.jl) for examples. In that case, the first keyword parameter should be the number of variables `n::Int` and have the default value `default_nvar` (constant predefined in the module). If your problem has restrictions on the number of variables, e.g., `n` should be odd, or `n` should have the form `4k + 3`, then, instead of throwing errors when the restrictions are not satisfied, you should instead use the number of variables to be as close to `n` as possible. For example, if you want `n` odd and `n = 100` is passed, you can internally convert to `n = 99`. If you want `n = 4k + 3`, and `n = 100` is passed, then compute `k = round(Int, (n - 3) / 4)` and update `n`. * A first version of the `meta` can be generated using `generate_meta`. A `String` is returned that can be copy-pasted into the `Meta` folder, and then edited. ```julia diff --git a/docs/src/meta.md b/docs/src/meta.md index 2b4112af9..c4600d7fa 100644 --- a/docs/src/meta.md +++ b/docs/src/meta.md @@ -59,4 +59,52 @@ OptimizationProblems.get_lanczos1_nls_nequ() To filter all NLS problems in the metadata DataFrame: ```@example 1 nls_problems = OptimizationProblems.meta[OptimizationProblems.meta.objtype .== :least_squares, :name] -``` \ No newline at end of file +``` + +### Test-set membership (`:lib`) + +The `:lib` column records membership in named optimization test-set collections. +Each entry is a comma-separated list of `"Collection:ID"` pairs; an empty string +means the problem has no known test-set membership. + +```@example 1 +OptimizationProblems.hs1_meta[:lib] # "CUTEst:HS1, HS:1" +``` + +Known collections (keys of `OptimizationProblems.LIB_REFERENCES`): + +| Key | Description | +|-----|-------------| +| `AMPGO` | Gavana's Global Optimization benchmark suite | +| `COPS` | COPS 3.0 collection (Dolan & Moré, 2004) | +| `CUTEst` | CUTEst testing environment (Gould et al., 2015) | +| `HS` | Hock & Schittkowski (1981), Vol. 187 | +| `HS2` | Schittkowski (1987), Vol. 282 | +| `Luksan` | Luksan, Matonoha & Vlček (2003) — Modified CUTE problems | +| `LuksanSparse` | Luksan, Matonoha & Vlček (2010) — Sparse test problems | +| `MGH` | Moré, Garbow & Hillstrom (1981) | +| `NIST` | NIST/ITL Statistical Reference Datasets | + +To filter by collection, use Julia's `contains` function: + +```@example 1 +meta = OptimizationProblems.meta +cops_problems = meta[contains.(meta.lib, "COPS"), [:name, :lib]] +``` + +```@example 1 +cutest_problems = meta[contains.(meta.lib, "CUTEst"), [:name, :lib]] +``` + +`OptimizationProblems.LIB_REFERENCES` provides the canonical BibTeX entry for +each collection, and [`export_bibtex`](@ref) automatically appends them when +`include_lib_refs = true` (the default). + +## Problem'source information + +The following code will create a .bib file regrouping all the BibTex citations. +```julia +using OptimizationProblems +export_bibtex() +``` +Fields documenting the origin of the problem may be incomplete and any help is welcome. diff --git a/src/Meta/AMPGO02.jl b/src/Meta/AMPGO02.jl index d00de5791..a6299bcc3 100644 --- a/src/Meta/AMPGO02.jl +++ b/src/Meta/AMPGO02.jl @@ -17,6 +17,26 @@ AMPGO02_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 2 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:2", ) 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 0d95a5543..8989011ab 100644 --- a/src/Meta/AMPGO03.jl +++ b/src/Meta/AMPGO03.jl @@ -17,6 +17,26 @@ AMPGO03_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 3 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:3", ) 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 568efc286..f68a03ed3 100644 --- a/src/Meta/AMPGO04.jl +++ b/src/Meta/AMPGO04.jl @@ -17,6 +17,26 @@ AMPGO04_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 4 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:4", ) 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 4b608e6e0..dee2c0dc5 100644 --- a/src/Meta/AMPGO05.jl +++ b/src/Meta/AMPGO05.jl @@ -17,6 +17,26 @@ AMPGO05_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 5 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:5", ) 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 a9696e4f4..2a0316efd 100644 --- a/src/Meta/AMPGO06.jl +++ b/src/Meta/AMPGO06.jl @@ -17,6 +17,26 @@ AMPGO06_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 6 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:6", ) 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 ade4a7eda..843e93973 100644 --- a/src/Meta/AMPGO07.jl +++ b/src/Meta/AMPGO07.jl @@ -17,6 +17,26 @@ AMPGO07_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 7 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:7", ) 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 1c9b5ac33..be1c6af93 100644 --- a/src/Meta/AMPGO08.jl +++ b/src/Meta/AMPGO08.jl @@ -17,6 +17,26 @@ AMPGO08_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 8 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:8", ) 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 c9604148a..e23e5665a 100644 --- a/src/Meta/AMPGO09.jl +++ b/src/Meta/AMPGO09.jl @@ -17,6 +17,26 @@ AMPGO09_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 9 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:9", ) 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 ea35f5122..85b257b9b 100644 --- a/src/Meta/AMPGO10.jl +++ b/src/Meta/AMPGO10.jl @@ -17,6 +17,26 @@ AMPGO10_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 10 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:10", ) 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 738ea9235..46260adec 100644 --- a/src/Meta/AMPGO11.jl +++ b/src/Meta/AMPGO11.jl @@ -17,6 +17,26 @@ AMPGO11_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 11 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:11", ) 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 350e65f92..0e92d8f00 100644 --- a/src/Meta/AMPGO12.jl +++ b/src/Meta/AMPGO12.jl @@ -17,6 +17,26 @@ AMPGO12_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 12 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:12", ) 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 baa0b133c..63873e9ed 100644 --- a/src/Meta/AMPGO13.jl +++ b/src/Meta/AMPGO13.jl @@ -17,6 +17,26 @@ AMPGO13_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 13 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:13", ) 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 78f6a30d7..73a15fd53 100644 --- a/src/Meta/AMPGO14.jl +++ b/src/Meta/AMPGO14.jl @@ -17,6 +17,26 @@ AMPGO14_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 14 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:14", ) 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 36aa5574d..31d3f6311 100644 --- a/src/Meta/AMPGO15.jl +++ b/src/Meta/AMPGO15.jl @@ -17,6 +17,26 @@ AMPGO15_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 15 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:15", ) 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 887f49c3f..dc23d0c99 100644 --- a/src/Meta/AMPGO18.jl +++ b/src/Meta/AMPGO18.jl @@ -17,6 +17,26 @@ AMPGO18_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 18 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:18", ) 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 0570e49c1..b7e6abdec 100644 --- a/src/Meta/AMPGO20.jl +++ b/src/Meta/AMPGO20.jl @@ -17,6 +17,26 @@ AMPGO20_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 20 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:20", ) 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 54951bb67..6d74b3f2b 100644 --- a/src/Meta/AMPGO21.jl +++ b/src/Meta/AMPGO21.jl @@ -17,6 +17,26 @@ AMPGO21_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 21 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:21", ) 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 335548f42..6e48dd771 100644 --- a/src/Meta/AMPGO22.jl +++ b/src/Meta/AMPGO22.jl @@ -17,6 +17,26 @@ AMPGO22_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions", + :notes => raw""" +A one dimensional optimization problem +""", + :origin_notes => raw""" +Problem 22 in +http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions +Andrea Gavana +S. Goyette, Sherbrooke 2016/2017 +""", + :reference => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + :lib => "AMPGO:22", ) 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 49ae04c9c..749e32bbd 100644 --- a/src/Meta/BOX2.jl +++ b/src/Meta/BOX2.jl @@ -17,6 +17,33 @@ BOX2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BOX2.SIF", + :notes => raw""" +Box problem in 2 variables, obtained by fixing X3 = 1 in BOX2. + +classification SXR2-AN-3-0 +""", + :origin_notes => raw""" +Problem 11 in +A.R. Buckley, +"Test functions for unconstrained minimization", +TR 1989CS-3, Mathematics, statistics and computing centre, +Dalhousie University, Halifax (CDN), 1989. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{Buckley1989, + author = {Buckley, A. R.}, + title = {Test Functions for Unconstrained Minimization}, + institution = {Mathematics, Statistics and Computing Centre, Dalhousie University}, + number = {TR 1989CS-3}, + year = {1989}, + address = {Halifax, Canada} +} + """, + + :lib => "CUTEst:BOX2", ) 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 6bbe31c08..c2b8b74e8 100644 --- a/src/Meta/BOX3.jl +++ b/src/Meta/BOX3.jl @@ -17,6 +17,36 @@ BOX3_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BOX3.SIF", + :notes => raw""" +SIF input: Ph. Toint, Dec 1989. + +Box problem in 3 variables. + +classification SUR2-AN-3-0 +""", + :origin_notes => raw""" +Problem 12 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#BOX663 + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:BOX3", ) 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 8f8609cf7..39f3b6f11 100644 --- a/src/Meta/Dus2_1.jl +++ b/src/Meta/Dus2_1.jl @@ -17,6 +17,27 @@ Dus2_1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.dmi.usherb.ca/~dussault/ROP630E17/", + :notes => raw""" +A one dimensional optimization problem + +S. Goyette, Sherbrooke 2016/2017 +""", + :origin_notes => raw""" +Problem found in +http://www.dmi.usherb.ca/~dussault/ROP630E17/ +Jean_pierre Dussault +""", + :reference => raw""" +@misc{Dussault2017, + author = {Dussault, Jean-Pierre}, + title = {Optimization Test Problems}, + howpublished = {\url{http://www.dmi.usherb.ca/~dussault/ROP630E17/}}, + year = {2017}, + note = {Universit{\'e} de Sherbrooke} +} +""", + :lib => "", ) 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 a8ae13cb2..faa3aafa2 100644 --- a/src/Meta/Dus2_3.jl +++ b/src/Meta/Dus2_3.jl @@ -17,6 +17,27 @@ Dus2_3_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.dmi.usherb.ca/~dussault/ROP630E17/", + :notes => raw""" +A one dimensional optimization problem + +S. Goyette, Sherbrooke 2016/2017 +""", + :origin_notes => raw""" +Problem found in +http://www.dmi.usherb.ca/~dussault/ROP630E17/ +Jean_pierre Dussault +""", + :reference => raw""" +@misc{Dussault2017, + author = {Dussault, Jean-Pierre}, + title = {Optimization Test Problems}, + howpublished = {\url{http://www.dmi.usherb.ca/~dussault/ROP630E17/}}, + year = {2017}, + note = {Universit{\'e} de Sherbrooke} +} +""", + :lib => "", ) 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 200994ad0..829082be2 100644 --- a/src/Meta/Dus2_9.jl +++ b/src/Meta/Dus2_9.jl @@ -17,6 +17,27 @@ Dus2_9_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.dmi.usherb.ca/~dussault/ROP630E17/", + :notes => raw""" +A one dimensional optimization problem + +S. Goyette, Sherbrooke 2016/2017 +""", + :origin_notes => raw""" +Problem found in +http://www.dmi.usherb.ca/~dussault/ROP630E17/ +Jean_pierre Dussault +""", + :reference => raw""" +@misc{Dussault2017, + author = {Dussault, Jean-Pierre}, + title = {Optimization Test Problems}, + howpublished = {\url{http://www.dmi.usherb.ca/~dussault/ROP630E17/}}, + year = {2017}, + note = {Universit{\'e} de Sherbrooke} +} +""", + :lib => "", ) 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 0de353db8..e45fbe7e7 100644 --- a/src/Meta/Duscube.jl +++ b/src/Meta/Duscube.jl @@ -17,6 +17,27 @@ Duscube_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.dmi.usherb.ca/~dussault/ROP630E17/", + :notes => raw""" +A one dimensional optimization problem + +S. Goyette, Sherbrooke 2016/2017 +""", + :origin_notes => raw""" +Problem found in +http://www.dmi.usherb.ca/~dussault/ROP630E17/ +Jean_pierre Dussault +""", + :reference => raw""" +@misc{Dussault2017, + author = {Dussault, Jean-Pierre}, + title = {Optimization Test Problems}, + howpublished = {\url{http://www.dmi.usherb.ca/~dussault/ROP630E17/}}, + year = {2017}, + note = {Universit{\'e} de Sherbrooke} +} +""", + :lib => "", ) 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 268ba2cf0..fc4b358da 100644 --- a/src/Meta/NZF1.jl +++ b/src/Meta/NZF1.jl @@ -17,6 +17,34 @@ NZF1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1080/10556780500137116", + :notes => raw""" +"Philippe Toint (private communication)" + +classification SUR2-AN-V-0 + +A. Montoison, Montreal, 05/2018. +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@article{Price2006, + title = {Exploiting problem structure in pattern search methods for unconstrained optimization}, + volume = {21}, + ISSN = {1029-4937}, + url = {https://doi.org/10.1080/10556780500137116}, + DOI = {10.1080/10556780500137116}, + number = {3}, + journal = {Optimization Methods and Software}, + publisher = {Informa UK Limited}, + author = {Price, C. J. and Toint, PH. L.}, + year = {2006}, + month = June, + pages = {479--491} +} + """, + :lib => "", ) 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 4d74f0e8a..02303cc9f 100644 --- a/src/Meta/Shpak1.jl +++ b/src/Meta/Shpak1.jl @@ -16,7 +16,37 @@ shpak1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, +<<<<<<< HEAD :implementation => :both, +======= + :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", + :notes => raw""" +first problem of + Global optimization in one-dimensional case + using analytically defined derivatives of + objective function + +A.Shpak + +Computer Science Journal of Moldova, vol.3, no.2(8), 1995 +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@article{Shpak1995, + author = {Shpak, Alexander}, + title = {Global Optimization in One-Dimensional Case Using Analytically Defined Derivatives of Objective Function}, + journal = {Computer Science Journal of Moldova}, + year = {1995}, + volume = {3}, + number = {2}, + pages = {168--184}, + url = {http://www.math.md/publications/csjm/issues/v3-n2/7902/} +} +""", + :lib => "", +>>>>>>> eb8362af (Move doc from comments to meta (#407)) ) 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 a5d7c6d23..4bb3a8fbb 100644 --- a/src/Meta/Shpak2.jl +++ b/src/Meta/Shpak2.jl @@ -16,7 +16,38 @@ shpak2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, +<<<<<<< HEAD :implementation => :both, +======= + :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", + :notes => raw""" +Second problem of + Global optimization in one-dimensional case + using analytically defined derivatives of + objective function + + A.Shpak + + Computer Science Journal of Moldova, vol.3, no.2(8), 1995 + S. Goyette, Sherbrooke 2016/2017 +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@article{Shpak1995, + author = {Shpak, Alexander}, + title = {Global Optimization in One-Dimensional Case Using Analytically Defined Derivatives of Objective Function}, + journal = {Computer Science Journal of Moldova}, + year = {1995}, + volume = {3}, + number = {2}, + pages = {168--184}, + url = {http://www.math.md/publications/csjm/issues/v3-n2/7902/} +} +""", + :lib => "", +>>>>>>> eb8362af (Move doc from comments to meta (#407)) ) 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 88689df96..47765a088 100644 --- a/src/Meta/Shpak3.jl +++ b/src/Meta/Shpak3.jl @@ -16,7 +16,38 @@ shpak3_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, +<<<<<<< HEAD :implementation => :both, +======= + :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", + :notes => raw""" +third problem of +Global optimization in one-dimensional case +using analytically defined derivatives of +objective function + +A.Shpak + +Computer Science Journal of Moldova, vol.3, no.2(8), 1995 + S. Goyette, Sherbrooke 2016/2017 +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@article{Shpak1995, + author = {Shpak, Alexander}, + title = {Global Optimization in One-Dimensional Case Using Analytically Defined Derivatives of Objective Function}, + journal = {Computer Science Journal of Moldova}, + year = {1995}, + volume = {3}, + number = {2}, + pages = {168--184}, + url = {http://www.math.md/publications/csjm/issues/v3-n2/7902/} +} +""", + :lib => "", +>>>>>>> eb8362af (Move doc from comments to meta (#407)) ) 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 2d6e1487d..420da1c18 100644 --- a/src/Meta/Shpak4.jl +++ b/src/Meta/Shpak4.jl @@ -16,7 +16,39 @@ shpak4_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, +<<<<<<< HEAD :implementation => :both, +======= + :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", + :notes => raw""" +4th problem of + Global optimization in one-dimensional case + using analytically defined derivatives of + objective function + + A.Shpak + + Computer Science Journal of Moldova, vol.3, no.2(8), 1995 + + S. Goyette, Sherbrooke 2016/2017 +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@article{Shpak1995, + author = {Shpak, Alexander}, + title = {Global Optimization in One-Dimensional Case Using Analytically Defined Derivatives of Objective Function}, + journal = {Computer Science Journal of Moldova}, + year = {1995}, + volume = {3}, + number = {2}, + pages = {168--184}, + url = {http://www.math.md/publications/csjm/issues/v3-n2/7902/} +} +""", + :lib => "", +>>>>>>> eb8362af (Move doc from comments to meta (#407)) ) 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 ff72019aa..64eea9936 100644 --- a/src/Meta/Shpak5.jl +++ b/src/Meta/Shpak5.jl @@ -16,7 +16,39 @@ shpak5_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, +<<<<<<< HEAD :implementation => :both, +======= + :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", + :notes => raw""" +fifth problem of + Global optimization in one-dimensional case + using analytically defined derivatives of + objective function + + A.Shpak + + Computer Science Journal of Moldova, vol.3, no.2(8), 1995 + + S. Goyette, Sherbrooke 2016/2017 +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@article{Shpak1995, + author = {Shpak, Alexander}, + title = {Global Optimization in One-Dimensional Case Using Analytically Defined Derivatives of Objective Function}, + journal = {Computer Science Journal of Moldova}, + year = {1995}, + volume = {3}, + number = {2}, + pages = {168--184}, + url = {http://www.math.md/publications/csjm/issues/v3-n2/7902/} +} +""", + :lib => "", +>>>>>>> eb8362af (Move doc from comments to meta (#407)) ) 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 36423af62..c7103aa8e 100644 --- a/src/Meta/Shpak6.jl +++ b/src/Meta/Shpak6.jl @@ -16,7 +16,39 @@ shpak6_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, +<<<<<<< HEAD :implementation => :both, +======= + :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", + :notes => raw""" +6th problem of + Global optimization in one-dimensional case + using analytically defined derivatives of + objective function + + A.Shpak + +Computer Science Journal of Moldova, vol.3, no.2(8), 1995 + + S. Goyette, Sherbrooke 2016/2017 +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@article{Shpak1995, + author = {Shpak, Alexander}, + title = {Global Optimization in One-Dimensional Case Using Analytically Defined Derivatives of Objective Function}, + journal = {Computer Science Journal of Moldova}, + year = {1995}, + volume = {3}, + number = {2}, + pages = {168--184}, + url = {http://www.math.md/publications/csjm/issues/v3-n2/7902/} +} +""", + :lib => "", +>>>>>>> eb8362af (Move doc from comments to meta (#407)) ) 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 4403ba464..051f94401 100644 --- a/src/Meta/aircrfta.jl +++ b/src/Meta/aircrfta.jl @@ -17,6 +17,34 @@ aircrfta_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://www.osti.gov/biblio/6449249, https://bitbucket.org/optrove/sif/src/master/AIRCRFTA.SIF", + :notes => raw""" +The aircraft stability problem by Rheinboldt, as a function +of the elevator, aileron and rudder deflection controls. + +classification NOR2-RN-8-5 +""", + :origin_notes => raw""" +Problem 9 in +J.J. More',"A collection of nonlinear model problems" +Proceedings of the AMS-SIAM Summer Seminar on the Computational +Solution of Nonlinear Systems of Equations, Colorado, 1988. +Argonne National Laboratory MCS-P60-0289, 1989. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{More1990, + title = {A collection of nonlinear model problems. Computational Solution of Nonlinear Systems of Equations}, + author = {Mor{\'e}, Jorge J.}, + journal = {Lectures in Applied Mathematics}, + volume = {26}, + pages = {723--762}, + year = {1990}, + publisher = {American Mathematical Society} +} +""", + :lib => "CUTEst:AIRCRFTA", ) 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 2928fbee6..29ff45333 100644 --- a/src/Meta/allinit.jl +++ b/src/Meta/allinit.jl @@ -17,6 +17,31 @@ allinit_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/ALLINIT.SIF", + :notes => raw""" +A problem with "all in it". Intended to verify that changes +to LANCELOT are safe. + +classification OBR2-AY-4-0 +""", + :origin_notes => raw""" +N. Gould, private communication. + +SIF input: Nick Gould, June 1990. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:ALLINIT", ) 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 94f48d531..28b112263 100644 --- a/src/Meta/allinitc.jl +++ b/src/Meta/allinitc.jl @@ -17,6 +17,31 @@ allinitc_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/ALLINITC.SIF", + :notes => raw""" +A problem with "all in it". Intended to verify that changes +to LANCELOT are safe. + +classification OOR2-AY-4-1 +""", + :origin_notes => raw""" +N. Gould: private communication. + +SIF input: Nick Gould, June 1990. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:ALLINITC", ) 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 98d20f67c..b56a01125 100644 --- a/src/Meta/allinitu.jl +++ b/src/Meta/allinitu.jl @@ -17,6 +17,31 @@ allinitu_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/ALLINITU.SIF", + :notes => raw""" +A problem with "all in it". Intended to verify that changes +to LANCELOT are safe. + +classification OUR2-AY-4-0 +""", + :origin_notes => raw""" +N. Gould, private communication. + +SIF input: Nick Gould, June 1990. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:ALLINITU", ) 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 e7aa0c355..d3343d610 100644 --- a/src/Meta/alsotame.jl +++ b/src/Meta/alsotame.jl @@ -17,6 +17,29 @@ alsotame_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/ALSOTAME.SIF", + :notes => raw""" +Another simple constrained problem + +classification OOR2-AN-2-1 +""", + :origin_notes => raw""" +A.R. Conn, N. Gould and Ph.L. Toint, +"The LANCELOT User's Manual", +Dept of Maths, FUNDP, 1991. + +SIF input: Ph. Toint, Jan 1991. +""", + :reference => raw""" +@techreport{ConnGouldToint1991, + author = {Conn, A. R. and Gould, N. I. M. and Toint, Ph. L.}, + title = {{The LANCELOT User's Manual}}, + institution = {Department of Mathematics, FUNDP}, + year = {1991}, + address = {Namur, Belgium}, + note = {Technical report} +}""", + :lib => "CUTEst:ALSOTAME", ) 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 164483adb..34c3c0d30 100644 --- a/src/Meta/argauss.jl +++ b/src/Meta/argauss.jl @@ -17,6 +17,36 @@ argauss_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1145/355934.355936, https://bitbucket.org/optrove/sif/src/master/ARGAUSS.SIF", + :notes => raw""" +SIF input: Ph. Toint, Dec 1989. + +More''s gaussian problem in 3 variables + +classification NOR2-AN-3-15 +""", + :origin_notes => raw""" +Problem 9 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#28 + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} +""", + :lib => "CUTEst:ARGAUSS", ) 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 bd2485421..43b0423ab 100644 --- a/src/Meta/arglina.jl +++ b/src/Meta/arglina.jl @@ -17,6 +17,34 @@ arglina_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1145/355934.355936, https://bitbucket.org/optrove/sif/src/master/ARGLINA.SIF", + :notes => raw""" +Linear function - full rank + +classification SUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 32 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#80 (with different N and M) + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} +""", + :lib => "CUTEst:ARGLINA", ) 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 a996d18e5..1687a055b 100644 --- a/src/Meta/arglinb.jl +++ b/src/Meta/arglinb.jl @@ -17,6 +17,34 @@ arglinb_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1145/355934.355936, https://bitbucket.org/optrove/sif/src/master/ARGLINB.SIF", + :notes => raw""" +Linear function - rank 1 + +classification SUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 33 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#93 (with different N and M) + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} +""", + :lib => "CUTEst:ARGLINB", ) 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 88ca787b7..24682f093 100644 --- a/src/Meta/arglinc.jl +++ b/src/Meta/arglinc.jl @@ -17,6 +17,34 @@ arglinc_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1145/355934.355936, https://bitbucket.org/optrove/sif/src/master/ARGLINC.SIF", + :notes => raw""" +Linear function - rank 1, zero columns and rows + +classification SUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 34 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#101 (with different N and M) + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} +""", + :lib => "CUTEst:ARGLINC", ) 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 c8435e2df..a6dfa5540 100644 --- a/src/Meta/argtrig.jl +++ b/src/Meta/argtrig.jl @@ -17,6 +17,41 @@ argtrig_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1145/355934.355936, https://bitbucket.org/optrove/sif/src/master/ARGTRIG.SIF", + :notes => raw""" +Variable dimension trigonometric problem +This problem is a sum of n least-squares groups, each of +which has n+1 nonlinear elements. Its Hessian matrix is dense. + +classification NOR2-AN-V-V +""", + :origin_notes => raw""" +problem 101 in + A.R. Buckley, + "Test functions for unconstrained minimization", + TR 1989CS-3, Mathematics, statistics and computing centre, + Dalhousie University, Halifax (CDN), 1989. + +Problem 26 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} +""", + :lib => "CUTEst:ARGTRIG", ) 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 093fd0c3f..f3f9ec013 100644 --- a/src/Meta/arwhead.jl +++ b/src/Meta/arwhead.jl @@ -17,6 +17,44 @@ arwhead_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/ARWHEAD.SIF", + :notes => raw""" +Arrow head problem. +A quartic problem whose Hessian is an arrow-head (downwards) with +diagonal central part and border-width of 1. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 55 in +A.R. Conn, N.I.M. Gould, M. Lescrenier and Ph.L. Toint, +Performance of a multifrontal scheme for partially separable +optimization, +Report 88/4, Dept of Mathematics, FUNDP (Namur, B), 1988. +SIF input: Ph. Toint, Dec 1989. + +See also + +problem 1 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +D. Orban, Montreal, 08/2015. +""", + :reference => raw""" +@techreport{ConnGouldLescrenierToint1988, + author = {Conn, A. R. and Gould, N. I. M. and Lescrenier, M. and Toint, Ph. L.}, + title = {Performance of a multifrontal scheme for partially separable optimization}, + institution = {Department of Mathematics, FUNDP}, + address = {Namur, Belgium}, + number = {Report 88/4}, + year = {1988} +} +""", + :lib => "CUTEst:ARWHEAD, Luksan:1", ) 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 efba7545c..312819c46 100644 --- a/src/Meta/auglag.jl +++ b/src/Meta/auglag.jl @@ -17,6 +17,35 @@ auglag_meta = Dict( :defined_everywhere => missing, :origin => :literature, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization", + :notes => raw""" +Augmented Lagrangian function + +Problem 11 in +L. Luksan, C. Matonoha and J. Vlcek +Sparse Test Problems for Unconstrained Optimization, +Technical Report 1064, +Institute of Computer Science, +Academy of Science of the Czech Republic + +https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} + } + """, + + :lib => "LuksanSparse:11", ) get_auglag_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/avion2.jl b/src/Meta/avion2.jl index 1e78b23e8..139284490 100644 --- a/src/Meta/avion2.jl +++ b/src/Meta/avion2.jl @@ -17,6 +17,28 @@ avion2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/AVION2.SIF", + :notes => raw""" +Dassault France avion (airplane design) problem + +classification OLR2-RN-49-15 +""", + :origin_notes => raw""" +SIF input: A. R. Conn, June 1993. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:AVION2", ) 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 1c841150f..b9b4b9d74 100644 --- a/src/Meta/bard.jl +++ b/src/Meta/bard.jl @@ -17,6 +17,41 @@ bard_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BARD.SIF", + :notes => raw""" +Bard problem in 3 variables. +This function is a nonlinear least squares with 15 groups. +Each group has a linear and a nonlinear element. + +classification SUR2-AN-3-0 +""", + :origin_notes => raw""" +Problem 8 in + J.J. More', B.S. Garbow and K.E. Hillstrom, + "Testing Unconstrained Optimization Software", + ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. + +Problem 3 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#16. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:BARD", ) 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 16aecd6a5..b33e2cbf0 100644 --- a/src/Meta/bdqrtic.jl +++ b/src/Meta/bdqrtic.jl @@ -17,6 +17,46 @@ bdqrtic_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BDQRTIC.SIF", + :notes => raw""" +This problem is quartic and has a banded Hessian with bandwidth = 9 + +classification SUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 61 in +A.R. Conn, N.I.M. Gould, M. Lescrenier and Ph.L. Toint, +Performance of a multifrontal scheme for partially separable +optimization, +Report 88/4, Dept of Mathematics, FUNDP (Namur, B), 1988. + +See also + +problem 2 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +SIF input: Ph. Toint, Dec 1989. + +D. Orban, Montreal, 08/2015. +""", + :reference => raw""" +@techreport{ConnGouldLescrenierToint1988, + author = {Conn, A. R. and Gould, N. I. M. and Lescrenier, M. and Toint, Ph. L.}, + title = {Performance of a multifrontal scheme for partially separable optimization}, + institution = {Department of Mathematics, FUNDP}, + address = {Namur, Belgium}, + number = {Report 88/4}, + year = {1988} +} + """, + + :lib => "CUTEst:BDQRTIC, Luksan:2", ) 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 f14c4c0f6..3bcdc1680 100644 --- a/src/Meta/beale.jl +++ b/src/Meta/beale.jl @@ -17,6 +17,36 @@ beale_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BEALE.SIF", + :notes => raw""" +Beale problem in 2 variables + +classification SUR2-AN-2-0 + +A. Cebola, Curitiba 10/2016. +""", + :origin_notes => raw""" +Problem 5 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#89. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:BEALE", ) 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 4212cc2b3..4b174bee7 100644 --- a/src/Meta/bearing.jl +++ b/src/Meta/bearing.jl @@ -17,6 +17,37 @@ bearing_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" +Given observations of ns stages of a bearing species over n timesteps, +minimize the loss between the observation and the computed law of paraneters : growth, mortality and number of specimens (g,m,x) + +classification OOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 16 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) + +Journal bearing problem +Michael Merritt - Summer 2000 +COPS 2.0 - September 2000 +COPS 3.0 - November 2002 +COPS 3.1 - March 2004 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "COPS:16", ) get_bearing_nvar(; n::Integer = default_nvar, diff --git a/src/Meta/bennett5.jl b/src/Meta/bennett5.jl index 0e2de775a..68d2f8813 100644 --- a/src/Meta/bennett5.jl +++ b/src/Meta/bennett5.jl @@ -17,6 +17,64 @@ bennett5_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BENNETT5.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/bennett5.dat + +NIST/ITL StRD +Dataset Name: Bennett5 (Bennett5.dat) + +File Format: ASCII + Starting Values (lines 41 to 43) + Certified Values (lines 41 to 48) + Data (lines 61 to 214) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study involving + superconductivity magnetization modeling. The + response variable is magnetism, and the predictor + variable is the log of time in minutes. + +Reference: Bennett, L., L. Swartzendruber, and H. Brown, + NIST (1994). + Superconductivity Magnetization Modeling. + +Data: 1 Response Variable (y = magnetism) + 1 Predictor Variable (x = log[time]) + 154 Observations + Higher Level of Difficulty + Observed Data + +Model: Miscellaneous Class + 3 Parameters (b1 to b3) + + y = b1 * (b2+x)**(-1/b3) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem BENNETT5 given as an inconsistent set of +nonlinear equations. +Fit: y = b1 * (b2+x)**(-1/b3) + e + +classification NOR2-MN-3-154 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Bennett, L., L. Swartzendruber, H. Brown, NIST (1994). +Superconductivity Magnetization Modeling. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:BENNETT5, NIST:Bennett5", ) 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 c0d0ff597..5bf58f505 100644 --- a/src/Meta/biggs5.jl +++ b/src/Meta/biggs5.jl @@ -17,6 +17,43 @@ biggs5_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BIGGS5.SIF", + :notes => raw""" +Biggs problem in 5 variables. +This function is a nonlinear least squares with 13 groups. It is a +variation on the biggs6 problem where the 6-th variable is fixed to 3. + +Biggs EXP problem in 5 variables + +classification SXR2-AN-6-0 +""", + :origin_notes => raw""" +Inspited by problem 18 in + J.J. More', B.S. Garbow and K.E. Hillstrom, + "Testing Unconstrained Optimization Software", + ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. + +Problem 74 in +A.R. Buckley, +"Test functions for unconstrained minimization", +TR 1989CS-3, Mathematics, statistics and computing centre, +Dalhousie University, Halifax (CDN), 1989. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:BIGGS5", ) 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 3dd84ec3e..95734e521 100644 --- a/src/Meta/biggs6.jl +++ b/src/Meta/biggs6.jl @@ -17,6 +17,39 @@ biggs6_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BIGGS6.SIF", + :notes => raw""" +Biggs EXP problem in 6 variables + +classification SUR2-AN-6-0 +""", + :origin_notes => raw""" +problem 18 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. + +Problem 21 in +A.R. Buckley, +"Test functions for unconstrained minimization", +TR 1989CS-3, Mathematics, statistics and computing centre, +Dalhousie University, Halifax (CDN), 1989. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:BIGGS6", ) 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 8c9965adf..a6babc9f9 100644 --- a/src/Meta/booth.jl +++ b/src/Meta/booth.jl @@ -17,6 +17,35 @@ booth_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BOOTH.SIF", + :notes => raw""" +SIF input: Ph. Toint, Dec 1989. + +Booth quadratic problem in 2 variables. + +classification NLR2-AN-2-2 +""", + :origin_notes => raw""" +Problem 36 in +A.R. Buckley, +"Test functions for unconstrained minimization", +TR 1989CS-3, Mathematics, statistics and computing centre, +Dalhousie University, Halifax (CDN), 1989. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{Buckley1989, + author = {Buckley, A. R.}, + title = {Test Functions for Unconstrained Minimization}, + institution = {Mathematics, Statistics and Computing Centre, Dalhousie University}, + number = {TR 1989CS-3}, + year = {1989}, + address = {Halifax, Canada} +} + """, + + :lib => "CUTEst:BOOTH", ) 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 0b9b3dffe..db6bd6916 100644 --- a/src/Meta/boundary.jl +++ b/src/Meta/boundary.jl @@ -17,6 +17,31 @@ boundary_meta = Dict( :defined_everywhere => missing, :origin => :academic, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization", + :notes => raw""" +Discrete boundary value problem +""", + :origin_notes => raw""" +Problem 14 in +L. Luksan, C. Matonoha and J. Vlcek +Sparse Test Problems for Unconstrained Optimization, +Technical Report 1064, +Institute of Computer Science, +Academy of Science of the Czech Republic +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} + } + """, + + :lib => "LuksanSparse:14", ) get_boundary_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/boxbod.jl b/src/Meta/boxbod.jl index 02052a296..1c47f994c 100644 --- a/src/Meta/boxbod.jl +++ b/src/Meta/boxbod.jl @@ -17,6 +17,65 @@ boxbod_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BOXBOD.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/boxbod.dat + +NIST/ITL StRD +Dataset Name: BoxBOD (BoxBOD.dat) + +File Format: ASCII + Starting Values (lines 41 to 42) + Certified Values (lines 41 to 47) + Data (lines 61 to 66) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are described in detail in Box, Hunter and + Hunter (1978). The response variable is biochemical + oxygen demand (BOD) in mg/l, and the predictor + variable is incubation time in days. + +Reference: Box, G. P., W. G. Hunter, and J. S. Hunter (1978). + Statistics for Experimenters. + New York, NY: Wiley, pp. 483-487. + +Data: 1 Response (y = biochemical oxygen demand) + 1 Predictor (x = incubation time) + 6 Observations + Higher Level of Difficulty + Observed Data + +Model: Exponential Class + 2 Parameters (b1 and b2) + + y = b1*(1-exp[-b2*x]) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem BOXBOD given as an inconsistent set of +nonlinear equations +Fit: y = b1*(1-exp[-b2*x]) + e + +classification NOR2-MN-2-6 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Box, G. P., W. G. Hunter, and J. S. Hunter (1978). +Statistics for Experimenters, New York, NY: Wiley, pp. 483-487. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@book{BoxHunterHunter1978, + author = {Box, George E. P. and Hunter, William G. and Hunter, J. Stuart}, + title = {Statistics for Experimenters: An Introduction to Design, Data Analysis, and Model Building}, + publisher = {John Wiley \& Sons}, + address = {New York}, + year = {1978} +} +""", + :lib => "CUTEst:BOXBOD, NIST:BoxBOD", ) 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 87f4cf177..abd94a312 100644 --- a/src/Meta/bqp1var.jl +++ b/src/Meta/bqp1var.jl @@ -17,6 +17,28 @@ bqp1var_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BQP1VAR.SIF", + :notes => raw""" +classification QBR2-AN-1-0 +""", + :origin_notes => raw""" +a one variable box-constrained quadratic + +SIF input: Nick Gould, March 1992 +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Nicholas I. M. Gould and Dominique Orban and Philippe L. Toint}, + title = {{CUTEst}: a constrained and unconstrained testing environment with safe threads for mathematical optimization}, + journal = {ACM Transactions on Mathematical Software}, + volume = {40}, + number = {3}, + year = {2015}, + pages = {1--25}, + doi = {10.1145/2786885} +} + """, + :lib => "CUTEst:BQP1VAR", ) 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 8019389bf..e42052708 100644 --- a/src/Meta/britgas.jl +++ b/src/Meta/britgas.jl @@ -17,6 +17,32 @@ britgas_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BRITGAS.SIF", + :notes => raw""" +A simple high pressure gas network problem for British Gas. +Invented Data, but real network. +23 node network, 8 hour operation. + +classification OOI2-RN-450-360 +""", + :origin_notes => raw""" +N. Gould, private communication,March 1990. + +SIF input: N. Gould, March 1990. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Nicholas I. M. Gould and Dominique Orban and Philippe L. Toint}, + title = {{CUTEst}: a constrained and unconstrained testing environment with safe threads for mathematical optimization}, + journal = {ACM Transactions on Mathematical Software}, + volume = {40}, + number = {3}, + year = {2015}, + pages = {1--25}, + doi = {10.1145/2786885} +} + """, + :lib => "CUTEst:BRITGAS", ) 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 17044e11c..09887d9cc 100644 --- a/src/Meta/brownal.jl +++ b/src/Meta/brownal.jl @@ -17,6 +17,35 @@ brownal_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BROWNAL.SIF", + :notes => raw""" +The Brown almost linear problem in variable dimension. This is a nonlinear +least-squares problems with n groups. + +classification SUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 27 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#79 + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:BROWNAL", ) 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 9731d14e6..181f094c8 100644 --- a/src/Meta/brownbs.jl +++ b/src/Meta/brownbs.jl @@ -17,6 +17,39 @@ brownbs_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BROWNBS.SIF", + :notes => raw""" +Brown badly scaled problem in 2 variables. +This problem is a sum of n-1 sets of 3 groups, one of then involving +a nonlinear element and all being of the least square type. +It Hessian matrix is tridiagonal. + +classification SUR2-AN-2-0 + +A. Cebola, Curitiba 10/2016. +""", + :origin_notes => raw""" +Problem 4 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#25 + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:BROWNBS", ) 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 039a6fe7e..dbbf6504d 100644 --- a/src/Meta/brownden.jl +++ b/src/Meta/brownden.jl @@ -17,6 +17,34 @@ brownden_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BROWNDEN.SIF", + :notes => raw""" +Brown and Dennis function + +classification SUR2-AN-4-0 +""", + :origin_notes => raw""" +Problem 16 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#30 + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:BROWNDEN", ) 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 118f6978a..2005d80f2 100644 --- a/src/Meta/browngen1.jl +++ b/src/Meta/browngen1.jl @@ -17,6 +17,35 @@ browngen1_meta = Dict( :defined_everywhere => missing, :origin => :literature, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization", + :notes => raw""" +Generalization of the Brown function 1 + +Problem 12 in +L. Luksan, C. Matonoha and J. Vlcek +Sparse Test Problems for Unconstrained Optimization, +Technical Report 1064, +Institute of Computer Science, +Academy of Science of the Czech Republic + +https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} + } + """, + + :lib => "LuksanSparse:12", ) get_browngen1_nvar(; n::Integer = default_nvar, kwargs...) = max(n, 2) diff --git a/src/Meta/browngen2.jl b/src/Meta/browngen2.jl index 246d06c51..4e458a1db 100644 --- a/src/Meta/browngen2.jl +++ b/src/Meta/browngen2.jl @@ -17,6 +17,35 @@ browngen2_meta = Dict( :defined_everywhere => missing, :origin => :literature, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization", + :notes => raw""" +Generalization of the Brown function 2 + +Problem 13 in +L. Luksan, C. Matonoha and J. Vlcek +Sparse Test Problems for Unconstrained Optimization, +Technical Report 1064, +Institute of Computer Science, +Academy of Science of the Czech Republic + +https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} + } + """, + + :lib => "LuksanSparse:13", ) get_browngen2_nvar(; n::Integer = default_nvar, kwargs...) = max(2, n) diff --git a/src/Meta/broyden3d.jl b/src/Meta/broyden3d.jl index 76740dfba..d96efbad0 100644 --- a/src/Meta/broyden3d.jl +++ b/src/Meta/broyden3d.jl @@ -17,6 +17,35 @@ broyden3d_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1145/355934.355936", + :notes => raw""" +Broyden tridiagonal problem in variable dimension. This is a nonlinear +least-squares problem with n groups. +""", + :origin_notes => raw""" +Problem 30 in + J.J. More', B.S. Garbow and K.E. Hillstrom, + "Testing Unconstrained Optimization Software", + ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +Also problem 78 in + A.R. Buckley, + "Test functions for unconstrained minimization", + TR 1989CS-3, Mathematics, statistics and computing centre, + Dalhousie University, Halifax (CDN), 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "MGH:30", ) 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 4f2e60a3a..0200c8e4f 100644 --- a/src/Meta/broyden7d.jl +++ b/src/Meta/broyden7d.jl @@ -17,6 +17,35 @@ broyden7d_meta = Dict( :defined_everywhere => missing, :origin => :literature, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization", + :notes => raw""" +Seven diagonal generalization of the Broyden tridiagonal function + +Problem 7 in +L. Luksan, C. Matonoha and J. Vlcek +Sparse Test Problems for Unconstrained Optimization, +Technical Report 1064, +Institute of Computer Science, +Academy of Science of the Czech Republic + +https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} + } + """, + + :lib => "LuksanSparse:7", ) get_broyden7d_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/broydn7d.jl b/src/Meta/broydn7d.jl index 2ff219ed7..71c1e8858 100644 --- a/src/Meta/broydn7d.jl +++ b/src/Meta/broydn7d.jl @@ -17,6 +17,68 @@ broydn7d_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BROYDN7D.SIF", + :notes => raw""" +A seven diagonal variant of the Broyden tridiagonal system, +featuring a band far away from the diagonal. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 3.4 in +Ph. L. Toint, +Some numerical results using a sparse matrix updating formula in +unconstrained optimization, +Mathematics of Computation, vol. 32(114), pp. 839-852, 1978. +https://doi.org/10.1090/S0025-5718-1978-0483452-7 + +From the paper, + +"This function was built from a nonlinear system of equations +suggested originally by Broyden ..." + +The system in question is described in + +L. K. Schubert, +Modification of a quasi-Newton method for nonlinear equations +with a sparse Jacobian, +Mathematics of Computation, vol. 24, pp. 27-30, 1970. +https://doi.org/10.1090/S0025-5718-1970-0258276-9#sthash.yOkQUwXA.dpuf + +See also, with a slight variation in the formulation, + +problem 3 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +See also Buckley#84 + +SIF input: Ph. Toint, Dec 1989. + +D. Orban, Montreal, 08/2015. + +# Note: discrepancy with CUTEst appears to be a bug in CUTEst, this matches the original paper +# (See issue #36) +""", + :reference => raw""" +@article{Toint1978MathComp, + author = {Toint, Ph. L.}, + title = {Some numerical results using a sparse matrix updating formula in unconstrained optimization}, + journal = {Mathematics of Computation}, + year = {1978}, + volume = {32}, + number = {143}, + pages = {839--851}, + doi = {10.1090/s0025-5718-1978-0483452-7} +} + """, + + :lib => "CUTEst:BROYDN7D, Luksan:3", ) 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 1b145e72c..5e6870358 100644 --- a/src/Meta/brybnd.jl +++ b/src/Meta/brybnd.jl @@ -17,6 +17,39 @@ brybnd_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BRYBND.SIF", + :notes => raw""" +Broyden banded system of nonlinear equations, considered in the +least square sense. + +classification SUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. + +# Note: discrepancy with CUTEst appears to be a bug in CUTEst, this matches the original paper +# (See issue #36) +""", + :origin_notes => raw""" +problem 31 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#73 (p. 41) and Toint#18 +SDIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:BRYBND, Luksan:4", ) 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 024ef4e82..d9b2920eb 100644 --- a/src/Meta/bt1.jl +++ b/src/Meta/bt1.jl @@ -17,6 +17,41 @@ bt1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/BT1.SIF", + :notes => raw""" +classification QQR2-AN-2-1 + +A. Cebola, Curitiba 10/2016. +""", + :origin_notes => raw""" +problem 13 (p. 103) in +A.R. Buckley, +"Test functions for unconstrained minimization", +TR 1989CS-3, Mathematics, statistics and computing centre, +Dalhousie University, Halifax (CDN), 1989. + +Problem from CUTE: https://github.com/mpf/Optimization-Test-Problems/blob/master/cute/bt1.mod + +problem 1 in +P.T. Boggs and J.W. Tolle, +"A strategy for global convergence in a sequential +quadratic programming algorithm", +SINUM 26(3), pp. 600-623, 1989. + +SIF input: Ph. Toint, June 1993. +""", + :reference => raw""" +@techreport{Buckley1989, + author = {Buckley, A. R.}, + title = {Test Functions for Unconstrained Minimization}, + institution = {Mathematics, Statistics and Computing Centre, Dalhousie University}, + number = {TR 1989CS-3}, + year = {1989}, + address = {Halifax, Canada} +} + """, + + :lib => "CUTEst:BT1", ) 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 945bf0515..df112acf7 100644 --- a/src/Meta/camshape.jl +++ b/src/Meta/camshape.jl @@ -17,6 +17,33 @@ camshape_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CAMSHAPE.SIF", + :notes => raw""" +Maximize the area of the valve opening for one rotation of a convex cam +with constraints on the curvature and on the radius of the cam + +classification LOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 3 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) + +SIF input: Nick Gould, November 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:CAMSHAPE, COPS:3", ) 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 6f8aa9ccd..20652a0f6 100644 --- a/src/Meta/catenary.jl +++ b/src/Meta/catenary.jl @@ -17,6 +17,36 @@ catenary_meta = Dict( :defined_everywhere => missing, :origin => :academic, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CATENARY.SIF", + :notes => raw""" +The classical problem of the hanging catenary. Here the catenary consists +of N+1 beams of length BL, with the first beam fixed at the origin and +the final bean fixed at a fraction FRACT of the total length of all +beams. + +The problem is non-convex. + +classification LQR2-AY-V-V + +M. Gollier, Montréal, 05/2023 +""", + :origin_notes => raw""" +K. Veselic, +"De forma catenarum in campo gravitatis pendentium", +Klasicna Gimnazija u Zagrebu, Zagreb, 1987. + +SIF input: Ph. L. Toint, May 1993. +""", + :reference => raw""" +@book{Veselic1987, + author = {K. Veselic}, + title = {De forma catenarum in campo gravitatis pendentium}, + publisher = {Klasična Gimnazija u Zagrebu}, + address = {Zagreb}, + year = {1987} +} + """, + :lib => "CUTEst:CATENARY", ) 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 ed9a4d538..f38525287 100644 --- a/src/Meta/catmix.jl +++ b/src/Meta/catmix.jl @@ -17,6 +17,38 @@ catmix_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :jump, + :url => "https://bitbucket.org/optrove/sif/src/master/CATMIX.SIF", + :notes => raw""" +Catalyst Mixing Problem +Collocation formulation + +Determine the optimal mixing policy of two catalysts along the +length of a tubular plug flow reactor involving several reactions + +classification OOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 14 in the COPS (Version 2) collection of +E. Dolan and J. More' +see "Benchmarking Optimization Software with COPS" +Argonne National Labs Technical Report ANL/MCS-246 (2000) + +COPS 3.0 - November 2002 +COPS 3.1 - March 2004 + +SIF input: Nick Gould, November 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{\'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} +} + """, + :lib => "CUTEst:CATMIX, COPS:14", ) 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 22a27ee60..e6f6554f1 100644 --- a/src/Meta/chain.jl +++ b/src/Meta/chain.jl @@ -17,6 +17,35 @@ chain_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CHAIN.SIF", + :notes => raw""" +Hanging Chain + +Find the chain (of uniform density) of length L suspended between two points with minimal +potential energy. + +classification OOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 4 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) + +SIF input: Nick Gould, November 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:CHAIN, COPS:4", ) 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 e533a3d99..f92c3f00c 100644 --- a/src/Meta/chainwoo.jl +++ b/src/Meta/chainwoo.jl @@ -17,6 +17,54 @@ chainwoo_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CHAINWOO.SIF", + :notes => raw""" +The chained Woods problem, a variant on Woods function +This problem is a sum of n/2 sets of 6 terms, each of which is +assigned its own group. For a given set i, the groups are +A(i), B(i), C(i), D(i), E(i) and F(i). Groups A(i) and C(i) contain 1 +nonlinear element each, denoted Y(i) and Z(i). +The problem dimension is defined from the number of these sets. +The number of problem variables is then 2 times + 2 as large +This version uses a slightly unorthodox expression of Woods +function as a sum of squares (see Buckley) + +Problem 8 in +A. R. Conn, N. I. M. Gould and Ph. L. Toint, +Testing a class of methods for solving minimization +problems with simple bounds on their variables, +Mathematics of Computation 50, p 399-430, 1988. + +See also + +problem 5 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +classification SUR2-AN-V-0 +""", + :origin_notes => raw""" +SIF input: Nick Gould and Ph. Toint, Dec 1995. +""", + :reference => raw""" +@article{ConnGouldToint1988MathComp, + author = {Conn, Andrew R. and Gould, Nicholas I. M. and Toint, Philippe L.}, + title = {Testing a class of methods for solving minimization problems with simple bounds on the variables}, + journal = {Mathematics of Computation}, + year = {1988}, + volume = {50}, + number = {182}, + pages = {399--430}, + doi = {10.1090/s0025-5718-1988-0929544-3} +} + """, + + :lib => "CUTEst:CHAINWOO, Luksan:5, LuksanSparse:2", ) 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 40abcb6ea..8b77ab2f2 100644 --- a/src/Meta/channel.jl +++ b/src/Meta/channel.jl @@ -17,6 +17,39 @@ channel_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CHANNEL.SIF", + :notes => raw""" +Flow in a Channel + +Analyse the flow of a fluid during injection into a long vertical channel, +assuming that the flow is modelled by the boundary-value problem +u'''' = R (u'u'' - u u''') t in [0,1] +u(0) = 0, u(1) = 1, u'(0) = 0 = u'(1) +where u is the potential function, u' is the tangential velocity of +the field, and R is the Reynold's number + +classification NOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 7 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) + +SIF input: Nick Gould, November 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:CHANNEL, COPS:7", ) 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 059d37cde..78a73a5cd 100644 --- a/src/Meta/chnrosnb_mod.jl +++ b/src/Meta/chnrosnb_mod.jl @@ -17,6 +17,39 @@ chnrosnb_mod_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf", + :notes => raw""" +# Chaineded Rosenbrock - modified function. + +# problem 27 in +# L. Luksan, C. Matonoha and J. Vlcek +# Modified CUTE problems for sparse unconstrained optimization, +# Technical Report 1081, +# Institute of Computer Science, +# Academy of Science of the Czech Republic +# +# http://www.cs.cas.cz/matonoha/download/V1081.pdf +# +# classification SUR2-AN-V-0 +# +# J,-P, Dussault, Rennes 09/2015. +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "Luksan:27", ) 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 f7340a531..db37b8452 100644 --- a/src/Meta/chwirut1.jl +++ b/src/Meta/chwirut1.jl @@ -17,6 +17,63 @@ chwirut1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CHWIRUT1.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/chwirut1.dat + +NIST/ITL StRD +Dataset Name: Chwirut1 (Chwirut1.dat) + +File Format: ASCII + Starting Values (lines 41 to 43) + Certified Values (lines 41 to 48) + Data (lines 61 to 274) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study involving + ultrasonic calibration. The response variable is + ultrasonic response, and the predictor variable is + metal distance. + +Reference: Chwirut, D., NIST (197?). + Ultrasonic Reference Block Study. + +Data: 1 Response Variable (y = ultrasonic response) + 1 Predictor Variable (x = metal distance) + 214 Observations + Lower Level of Difficulty + Observed Data + +Model: Exponential Class + 3 Parameters (b1 to b3) + + y = exp[-b1*x]/(b2+b3*x) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem CHWIRUT1 given as an inconsistent set of +nonlinear equations. +Fit: y = exp[-b1*x]/(b2+b3*x) + e + +classification NOR2-MN-3-214 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Chwirut, D., NIST (197?). +Ultrasonic Reference Block Study. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:CHWIRUT1, NIST:Chwirut1", ) 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 effbed66b..618b3b141 100644 --- a/src/Meta/chwirut2.jl +++ b/src/Meta/chwirut2.jl @@ -17,6 +17,63 @@ chwirut2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CHWIRUT2.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/chwirut2.dat + +NIST/ITL StRD +Dataset Name: Chwirut2 (Chwirut2.dat) + +File Format: ASCII + Starting Values (lines 41 to 43) + Certified Values (lines 41 to 48) + Data (lines 61 to 114) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study involving + ultrasonic calibration. The response variable is + ultrasonic response, and the predictor variable is + metal distance. + +Reference: Chwirut, D., NIST (197?). + Ultrasonic Reference Block Study. + +Data: 1 Response (y = ultrasonic response) + 1 Predictor (x = metal distance) + 54 Observations + Lower Level of Difficulty + Observed Data + +Model: Exponential Class + 3 Parameters (b1 to b3) + + y = exp(-b1*x)/(b2+b3*x) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem CHWIRUT2 given as an inconsistent set of +nonlinear equations. +Fit: y = exp[-b1*x]/(b2+b3*x) + e + +classification NOR2-MN-3-54 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Chwirut, D., NIST (197?). +Ultrasonic Reference Block Study. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:CHWIRUT2, NIST:Chwirut2", ) 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 44f3f35ba..79e9ead69 100644 --- a/src/Meta/cliff.jl +++ b/src/Meta/cliff.jl @@ -17,6 +17,33 @@ cliff_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CLIFF.SIF", + :notes => raw""" +The "cliff problem" in 2 variables + +classification OUR2-AN-2-0 +""", + :origin_notes => raw""" +problem 206 (p. 46) in +A.R. Buckley, +"Test functions for unconstrained minimization", +TR 1989CS-3, Mathematics, statistics and computing centre, +Dalhousie University, Halifax (CDN), 1989. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{Buckley1989, + author = {Buckley, A. R.}, + title = {Test Functions for Unconstrained Minimization}, + institution = {Mathematics, Statistics and Computing Centre, Dalhousie University}, + number = {TR 1989CS-3}, + year = {1989}, + address = {Halifax, Canada} +} + """, + + :lib => "CUTEst:CLIFF", ) 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 302a020d9..aa0d0c40a 100644 --- a/src/Meta/clnlbeam.jl +++ b/src/Meta/clnlbeam.jl @@ -17,6 +17,38 @@ clnlbeam_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://onlinelibrary.wiley.com/doi/abs/10.1002/oca.4660120103, https://bitbucket.org/optrove/sif/src/master/CLNLBEAM.SIF", + :notes => raw""" +The clnlbeam problem +https://jump.dev/JuMP.jl/stable/tutorials/nonlinear/clnlbeam/ + +An optimal control version of the CLamped NonLinear BEAM problem. +The energy of a beam of length 1 compressed by a force P is to be +minimized. The control variable is the derivative of the deflection angle. +The problem is discretized using the trapezoidal rule. It is non-convex. + +classification OOR2-MN-V-V +""", + :origin_notes => raw""" +H. Maurer and H.D. Mittelman, +"The non-linear beam via optimal control with bound state variables", +Optimal Control Applications and Methods 12, pp. 19-31, 1991. + +SIF input: Ph. Toint, Nov 1993. +""", + :reference => raw""" +@article{MaurerMittelmann1991, + author = {H. Maurer and H.D. Mittelmann}, + title = {The non-linear beam via optimal control with bound state variables}, + journal = {Optimal Control Applications and Methods}, + volume = {12}, + number = {1}, + pages = {19--31}, + year = {1991}, + doi = {10.1002/oca.4660120103} +} + """, + :lib => "CUTEst:CLNLBEAM", ) 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 51ccf99df..1590310c0 100644 --- a/src/Meta/clplatea.jl +++ b/src/Meta/clplatea.jl @@ -17,6 +17,45 @@ clplatea_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CLPLATEA.SIF", + :notes => raw""" +The clamped plate problem (Strang, Nocedal, Dax). +The problem comes from the discretization the following problem +in mechanics: a plate is clamped on one edge and loaded on the +opposite side. The plate is the unit square. + +In this version of the problem, the weight wght is entirely put on the +upper right corner of the plate. + +The plate is clamped on its lower edge, by fixing the +corresponding variables to zero. + +classification OXR2-MN-V-0 + +p is the number of points in one side of the unit square +The number of variables is p*p, of which (p-1)*(p-1) are free. + +Fixed variables have been eliminated from the objective function. +""", + :origin_notes => raw""" +J. Nocedal, +"Solving large nonlinear systems of equations arising in mechanics", +Proceedings of the Cocoyoc Numerical Analysis Conference, Mexico, +pp. 132-141, 1981. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@inproceedings{Nocedal1981, + author = {J. Nocedal}, + title = {Solving large nonlinear systems of equations arising in mechanics}, + booktitle = {Proceedings of the Cocoyoc Numerical Analysis Conference}, + address = {Mexico}, + pages = {132--141}, + year = {1981} +} + """, + :lib => "CUTEst:CLPLATEA", ) 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 1beb34e65..ffc7fa50c 100644 --- a/src/Meta/clplateb.jl +++ b/src/Meta/clplateb.jl @@ -17,6 +17,46 @@ clplateb_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CLPLATEB.SIF", + :notes => raw""" +The clamped plate problem (Strang, Nocedal, Dax) +The problem comes from the discretization the following problem +in mechanics: a plate is clamped on one edge and loaded on the +opposite side. The plate is the unit square. + +The plate is clamped on its lower edge, by fixing the +corresponding variables to zero. + +In this version of the problem, the weight wght is distributed +equally along the upper edge, introducing a symmetry with respect +to the vertical axis. + +classification OXR2-MN-V-0 + +p is the number of points in one side of the unit square +The number of variables is p*p, of which (p-1)*(p-1) are free. + +Fixed variables have been eliminated from the objective function. +""", + :origin_notes => raw""" +J. Nocedal, +"Solving large nonlinear systems of equations arising in mechanics", +Proceedings of the Cocoyoc Numerical Analysis Conference, Mexico, +pp. 132-141, 1981. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@inproceedings{Nocedal1981, + author = {J. Nocedal}, + title = {Solving large nonlinear systems of equations arising in mechanics}, + booktitle = {Proceedings of the Cocoyoc Numerical Analysis Conference}, + address = {Mexico}, + pages = {132--141}, + year = {1981} +} + """, + :lib => "CUTEst:CLPLATEB", ) 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 ce24301fd..5410fe4b5 100644 --- a/src/Meta/clplatec.jl +++ b/src/Meta/clplatec.jl @@ -17,6 +17,45 @@ clplatec_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CLPLATEC.SIF", + :notes => raw""" +The clamped plate problem (Strang, Nocedal, Dax). +The problem comes from the discretization the following problem +in mechanics: a plate is clamped on one edge and loaded on the +opposite side. The plate is the unit square. + +In this version of the problem, part of the weight wght is put on the +upper right corner of the plate, and the rest on the upper left corner. + +The plate is clamped on its lower edge, by fixing the +corresponding variables to zero. + +classification OXR2-MN-V-0 + +p is the number of points in one side of the unit square +The number of variables is p*p, of which (p-1)*(p-1) are free. + +Fixed variables have been eliminated from the objective function. +""", + :origin_notes => raw""" +J. Nocedal, +"Solving large nonlinear systems of equations arising in mechanics", +Proceedings of the Cocoyoc Numerical Analysis Conference, Mexico, +pp. 132-141, 1981. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@inproceedings{Nocedal1981, + author = {J. Nocedal}, + title = {Solving large nonlinear systems of equations arising in mechanics}, + booktitle = {Proceedings of the Cocoyoc Numerical Analysis Conference}, + address = {Mexico}, + pages = {132--141}, + year = {1981} +} + """, + :lib => "CUTEst:CLPLATEC", ) 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 61bb18fca..3d2648a5c 100644 --- a/src/Meta/controlinvestment.jl +++ b/src/Meta/controlinvestment.jl @@ -17,6 +17,22 @@ controlinvestment_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "", + :notes => raw""" +This is a simple investment problem in optimistic market. +""", + :origin_notes => raw""" +Example 5.3, Dominique Orban, Computation Optimization and Control lecture notes at Polytechnique Montréal. +""", + :reference => raw""" +@misc{OrbanControlNotes, + author = {Dominique Orban}, + title = {Computation Optimization and Control Lecture Notes}, + howpublished = {Lecture notes, Polytechnique Montréal}, + year = {2022} +} + """, + :lib => "", ) 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 087c1f463..b8f733e7e 100644 --- a/src/Meta/cosine.jl +++ b/src/Meta/cosine.jl @@ -17,6 +17,44 @@ cosine_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/COSINE.SIF", + :notes => raw""" +The cosine function. + +Another function with nontrivial groups and +repetitious elements. + +classification OUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +problem 6 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +N. Gould, private communication. + +SIF input: N. Gould, Jan 1996 +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:COSINE, Luksan:6", ) 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 544bff345..35533b4b5 100644 --- a/src/Meta/cragglvy.jl +++ b/src/Meta/cragglvy.jl @@ -17,6 +17,47 @@ cragglvy_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CRAGGLVY.SIF", + :notes => raw""" +Extended Cragg and Levy problem. +This problem is a sum of m sets of 5 groups, +There are 2m+2 variables. The Hessian matrix is 7-diagonal. + +classification OUR2-AY-V-0 +""", + :origin_notes => raw""" +Problem 32 in +Ph. L. Toint, +Test problems for partially separable optimization and results +for the routine PSPMIN, +Report 83/4, Department of Mathematics, FUNDP (Namur, B), 1983. + +See also Buckley#18 + +problem 7 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +SIF input: Ph. Toint, Dec 1989. + +D. Orban, Montreal, 08/2015. +""", + :reference => raw""" +@techreport{Toint1983, + author = {Ph. L. Toint}, + title = {Test problems for partially separable optimization and results for the routine PSPMIN}, + institution = {Department of Mathematics, FUNDP (Namur, Belgium)}, + number = {Report 83/4}, + year = {1983} +} + """, + + :lib => "CUTEst:CRAGGLVY, Luksan:7", ) 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 2373b5377..e57ad970d 100644 --- a/src/Meta/cragglvy2.jl +++ b/src/Meta/cragglvy2.jl @@ -17,6 +17,44 @@ cragglvy2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization", + :notes => raw""" +Chained Cragg and Levy function + +This is similar to cragglvy but the quartic term differs. + +Problem 17 in +Conn, A.R., Gould, N.I.M, Toint, P., +Testing a Class of Methods for Solving +Minimization Problems with Simple Bounds on the Variables, +Mathematics of Computation, +Vol. 50, pp. 399-430, 1988. + +Problem 4 in +L. Luksan, C. Matonoha and J. Vlcek +Sparse Test Problems for Unconstrained Optimization, +Technical Report 1064, +Institute of Computer Science, +Academy of Science of the Czech Republic + +https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} + } + """, + + :lib => "LuksanSparse:4", ) get_cragglvy2_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/curly.jl b/src/Meta/curly.jl index b2c854fde..ccfdb574c 100644 --- a/src/Meta/curly.jl +++ b/src/Meta/curly.jl @@ -17,6 +17,46 @@ curly_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf", + :notes => raw""" +A banded function with semi-bandwidth b and +negative curvature near the starting point. + +Note that the initial point in the reference below is erroneous. +In this model, we use the starting point specified in the +original SIF model, part of the CUTE collection. + +See also + +problems 8, 9, 10 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +classification SUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "", ) 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 35b9d39eb..a20658661 100644 --- a/src/Meta/curly10.jl +++ b/src/Meta/curly10.jl @@ -17,6 +17,53 @@ curly10_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CURLY10.SIF", + :notes => raw""" +A banded function with semi-bandwidth b and +negative curvature near the starting point. + +Note that the initial point in the reference below is erroneous. +In this model, we use the starting point specified in the +original SIF model, part of the CUTE collection. + +See also + +problems 8, 9, 10 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +A banded function with semi-bandwidth 10 and +negative curvature near the starting point + +classification OUR2-AN-V-0 + +classification SUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +Nick Gould + +SIF input: Nick Gould, September 1997. +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:CURLY10", ) 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..1309999d3 100644 --- a/src/Meta/curly20.jl +++ b/src/Meta/curly20.jl @@ -17,6 +17,53 @@ curly20_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CURLY20.SIF", + :notes => raw""" +A banded function with semi-bandwidth b and +negative curvature near the starting point. + +Note that the initial point in the reference below is erroneous. +In this model, we use the starting point specified in the +original SIF model, part of the CUTE collection. + +See also + +problems 8, 9, 10 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +A banded function with semi-bandwidth 20 and +negative curvature near the starting point + +classification OUR2-AN-V-0 + +classification SUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +Nick Gould + +SIF input: Nick Gould, September 1997. +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:CURLY20", ) 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..3402bc87c 100644 --- a/src/Meta/curly30.jl +++ b/src/Meta/curly30.jl @@ -17,6 +17,53 @@ curly30_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/CURLY30.SIF", + :notes => raw""" +A banded function with semi-bandwidth b and +negative curvature near the starting point. + +Note that the initial point in the reference below is erroneous. +In this model, we use the starting point specified in the +original SIF model, part of the CUTE collection. + +See also + +problems 8, 9, 10 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +A banded function with semi-bandwidth 30 and +negative curvature near the starting point + +classification OUR2-AN-V-0 + +classification SUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +Nick Gould + +SIF input: Nick Gould, September 1997. +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:CURLY30", ) 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 fe3955ecc..bcc73dd8c 100644 --- a/src/Meta/danwood.jl +++ b/src/Meta/danwood.jl @@ -17,6 +17,72 @@ danwood_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/danwood.dat, https://bitbucket.org/optrove/sif/src/master/DANWOOD.SIF", + :notes => raw""" +NIST/ITL StRD +Dataset Name: DanWood (DanWood.dat) + +File Format: ASCII + Starting Values (lines 41 to 42) + Certified Values (lines 41 to 47) + Data (lines 61 to 66) + +Procedure: Nonlinear Least Squares Regression + +Description: These data and model are described in Daniel and Wood + (1980), and originally published in E.S.Keeping, + "Introduction to Statistical Inference," Van Nostrand + Company, Princeton, NJ, 1962, p. 354. The response + variable is energy radieted from a carbon filament + lamp per cm**2 per second, and the predictor variable + is the absolute temperature of the filament in 1000 + degrees Kelvin. + +Reference: Daniel, C. and F. S. Wood (1980). + Fitting Equations to Data, Second Edition. + New York, NY: John Wiley and Sons, pp. 428-431. + +Data: 1 Response Variable (y = energy) + 1 Predictor Variable (x = temperature) + 6 Observations + Lower Level of Difficulty + Observed Data + +Model: Miscellaneous Class + 2 Parameters (b1 and b2) + + y = b1*x**b2 + e + +T. Migot, Montreal, 2023. + +NIST Data fitting problem DANWOOD given as an inconsistent set of +nonlinear equations (incorrect formulation). See DANIWOOS.SIF for +the correct formulation +Fit: y = (b1*x)**b2 + e + +classification NOR2-MN-2-6 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Daniel, C. and F. S. Wood (1980). +Fitting Equations to Data, Second Edition. +New York, NY: John Wiley and Sons, pp. 428-431. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@book{DanielWood1980, + author = {C. Daniel and F. S. Wood}, + title = {Fitting Equations to Data}, + edition = {Second}, + publisher = {John Wiley and Sons}, + address = {New York, NY}, + year = {1980}, + pages = {428--431} +} + """, + :lib => "CUTEst:DANWOOD, NIST:DanWood", ) 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 2ff7ababc..1a69ae670 100644 --- a/src/Meta/dixmaane.jl +++ b/src/Meta/dixmaane.jl @@ -17,6 +17,40 @@ dixmaane_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf", + :notes => raw""" +The Dixon-Maany test problem (version E by default) + +classification OUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +L. C. W. Dixon and Z. Maany, +A family of test problems with sparse Hessians for unconstrained +optimization, +TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. + +See also + +problems 11, 12, 13, 14 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +""", + :reference => raw""" +@techreport{DixonMaany1988, + author = {L. C. W. Dixon and Z. Maany}, + title = {A family of test problems with sparse Hessians for unconstrained optimization}, + institution = {Numerical Optimization Centre, Hatfield Polytechnic}, + number = {TR 206}, + year = {1988} +} + """, + + :lib => "Luksan:11", ) 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 1ad482ec1..70d23cf6f 100644 --- a/src/Meta/dixmaanf.jl +++ b/src/Meta/dixmaanf.jl @@ -17,6 +17,41 @@ dixmaanf_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/DIXMAANF.SIF", + :notes => raw""" +The Dixon-Maany test problem (version E by default) + +classification OUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +problems 11, 12, 13, 14 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +L.C.W. Dixon and Z. Maany, +"A family of test problems with sparse Hessians for unconstrained +optimization", +TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. +See also Buckley#221 (p. 49) + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{DixonMaany1988, + author = {L. C. W. Dixon and Z. Maany}, + title = {A family of test problems with sparse Hessians for unconstrained optimization}, + institution = {Numerical Optimization Centre, Hatfield Polytechnic}, + number = {TR 206}, + year = {1988} +} + """, + + :lib => "CUTEst:DIXMAANF,Luksan:12", ) 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 29f206170..09af8b768 100644 --- a/src/Meta/dixmaang.jl +++ b/src/Meta/dixmaang.jl @@ -17,6 +17,41 @@ dixmaang_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/DIXMAANG.SIF", + :notes => raw""" +The Dixon-Maany test problem (version E by default) + +classification OUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +problems 11, 12, 13, 14 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +L.C.W. Dixon and Z. Maany, +"A family of test problems with sparse Hessians for unconstrained +optimization", +TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. +See also Buckley#221 (p. 49) + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{DixonMaany1988, + author = {L. C. W. Dixon and Z. Maany}, + title = {A family of test problems with sparse Hessians for unconstrained optimization}, + institution = {Numerical Optimization Centre, Hatfield Polytechnic}, + number = {TR 206}, + year = {1988} +} + """, + + :lib => "CUTEst:DIXMAANG,Luksan:13", ) 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 c4f097150..693835b3b 100644 --- a/src/Meta/dixmaanh.jl +++ b/src/Meta/dixmaanh.jl @@ -17,6 +17,41 @@ dixmaanh_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/DIXMAANH.SIF", + :notes => raw""" +The Dixon-Maany test problem (version E by default) + +classification OUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +problems 11, 12, 13, 14 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +L.C.W. Dixon and Z. Maany, +"A family of test problems with sparse Hessians for unconstrained +optimization", +TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. +See also Buckley#221 (p. 49) + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{DixonMaany1988, + author = {L. C. W. Dixon and Z. Maany}, + title = {A family of test problems with sparse Hessians for unconstrained optimization}, + institution = {Numerical Optimization Centre, Hatfield Polytechnic}, + number = {TR 206}, + year = {1988} +} + """, + + :lib => "CUTEst:DIXMAANH,Luksan:14", ) 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 4c34118ca..e636926c1 100644 --- a/src/Meta/dixmaani.jl +++ b/src/Meta/dixmaani.jl @@ -17,6 +17,40 @@ dixmaani_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf", + :notes => raw""" +The Dixon-Maany test problem (version I by default) + +classification OUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +L. C. W. Dixon and Z. Maany, +A family of test problems with sparse Hessians for unconstrained +optimization, +TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. + +See also + +problems 15, 16, 17, 18 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +""", + :reference => raw""" +@techreport{DixonMaany1988, + author = {L. C. W. Dixon and Z. Maany}, + title = {A family of test problems with sparse Hessians for unconstrained optimization}, + institution = {Numerical Optimization Centre, Hatfield Polytechnic}, + number = {TR 206}, + year = {1988} +} + """, + + :lib => "Luksan:15", ) 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 fac6f0bbc..478664d56 100644 --- a/src/Meta/dixmaanj.jl +++ b/src/Meta/dixmaanj.jl @@ -17,6 +17,41 @@ dixmaanj_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/DIXMAANJ.SIF", + :notes => raw""" +The Dixon-Maany test problem (version I by default) + +classification OUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +problems 15, 16, 17, 18 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +L.C.W. Dixon and Z. Maany, +"A family of test problems with sparse Hessians for unconstrained +optimization", +TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. +See also Buckley#221 (p. 49) + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{DixonMaany1988, + author = {L. C. W. Dixon and Z. Maany}, + title = {A family of test problems with sparse Hessians for unconstrained optimization}, + institution = {Numerical Optimization Centre, Hatfield Polytechnic}, + number = {TR 206}, + year = {1988} +} + """, + + :lib => "CUTEst:DIXMAANJ,Luksan:16", ) 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 63cbf4c07..5006383b3 100644 --- a/src/Meta/dixmaank.jl +++ b/src/Meta/dixmaank.jl @@ -17,6 +17,41 @@ dixmaank_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/DIXMAANK.SIF", + :notes => raw""" +The Dixon-Maany test problem (version I by default) + +classification OUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +problems 15, 16, 17, 18 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +L.C.W. Dixon and Z. Maany, +"A family of test problems with sparse Hessians for unconstrained +optimization", +TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. +See also Buckley#221 (p. 49) + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{DixonMaany1988, + author = {L. C. W. Dixon and Z. Maany}, + title = {A family of test problems with sparse Hessians for unconstrained optimization}, + institution = {Numerical Optimization Centre, Hatfield Polytechnic}, + number = {TR 206}, + year = {1988} +} + """, + + :lib => "CUTEst:DIXMAANK,Luksan:17", ) 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 0b62391d9..12ddbe73c 100644 --- a/src/Meta/dixmaanl.jl +++ b/src/Meta/dixmaanl.jl @@ -17,6 +17,41 @@ dixmaanl_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/DIXMAANL.SIF", + :notes => raw""" +The Dixon-Maany test problem (version I by default) + +classification OUR2-AN-V-0 + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +problems 15, 16, 17, 18 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +L.C.W. Dixon and Z. Maany, +"A family of test problems with sparse Hessians for unconstrained +optimization", +TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. +See also Buckley#221 (p. 49) + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{DixonMaany1988, + author = {L. C. W. Dixon and Z. Maany}, + title = {A family of test problems with sparse Hessians for unconstrained optimization}, + institution = {Numerical Optimization Centre, Hatfield Polytechnic}, + number = {TR 206}, + year = {1988} +} + """, + + :lib => "CUTEst:DIXMAANL,Luksan:18", ) 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 21addbbae..370552570 100644 --- a/src/Meta/dixmaanm.jl +++ b/src/Meta/dixmaanm.jl @@ -17,6 +17,38 @@ dixmaanm_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf", + :notes => raw""" +The Dixon-Maany test problem (version M by default) + +D. Orban, Montreal, 08/2015. +""", + :origin_notes => raw""" +L. C. W. Dixon and Z. Maany, +A family of test problems with sparse Hessians for unconstrained +optimization, +TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. + +See also + +problems 19, 20, 21, 22 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +""", + :reference => raw""" +@techreport{DixonMaany1988, + author = {L. C. W. Dixon and Z. Maany}, + title = {A family of test problems with sparse Hessians for unconstrained optimization}, + institution = {Numerical Optimization Centre, Hatfield Polytechnic}, + number = {TR 206}, + year = {1988} +} + """, + + :lib => "Luksan:19", ) 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 6c209098d..e3e14373c 100644 --- a/src/Meta/dixmaann.jl +++ b/src/Meta/dixmaann.jl @@ -17,6 +17,41 @@ dixmaann_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/DIXMAANN.SIF", + :notes => raw""" +The Dixon-Maany test problem (version M by default) + +D. Orban, Montreal, 08/2015. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +See also + +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstraoined optimization +Technical Report 1081 +Institute of Computer Science +Academy of Science of the Czech Republic +(problem 20) based on +L.C.W. Dixon and Z. Maany, +"A family of test problems with sparse Hessians for unconstrained +optimization", +TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{DixonMaany1988, + author = {L. C. W. Dixon and Z. Maany}, + title = {A family of test problems with sparse Hessians for unconstrained optimization}, + institution = {Numerical Optimization Centre, Hatfield Polytechnic}, + number = {TR 206}, + year = {1988} +} + """, + + :lib => "CUTEst:DIXMAANN,Luksan:20", ) 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 c3ba72019..7cc935535 100644 --- a/src/Meta/dixmaano.jl +++ b/src/Meta/dixmaano.jl @@ -17,6 +17,41 @@ dixmaano_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/DIXMAANO.SIF", + :notes => raw""" +The Dixon-Maany test problem (version M by default) + +D. Orban, Montreal, 08/2015. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +See also + +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstraoined optimization +Technical Report 1081 +Institute of Computer Science +Academy of Science of the Czech Republic +(problem 21) based on +L.C.W. Dixon and Z. Maany, +"A family of test problems with sparse Hessians for unconstrained +optimization", +TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{DixonMaany1988, + author = {L. C. W. Dixon and Z. Maany}, + title = {A family of test problems with sparse Hessians for unconstrained optimization}, + institution = {Numerical Optimization Centre, Hatfield Polytechnic}, + number = {TR 206}, + year = {1988} +} + """, + + :lib => "CUTEst:DIXMAANO,Luksan:21", ) 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 410582088..b984451d9 100644 --- a/src/Meta/dixmaanp.jl +++ b/src/Meta/dixmaanp.jl @@ -17,6 +17,41 @@ dixmaanp_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/DIXMAANP.SIF", + :notes => raw""" +The Dixon-Maany test problem (version M by default) + +D. Orban, Montreal, 08/2015. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +See also + +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstraoined optimization +Technical Report 1081 +Institute of Computer Science +Academy of Science of the Czech Republic +(problem 22) based on +L.C.W. Dixon and Z. Maany, +"A family of test problems with sparse Hessians for unconstrained +optimization", +TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{DixonMaany1988, + author = {L. C. W. Dixon and Z. Maany}, + title = {A family of test problems with sparse Hessians for unconstrained optimization}, + institution = {Numerical Optimization Centre, Hatfield Polytechnic}, + number = {TR 206}, + year = {1988} +} + """, + + :lib => "CUTEst:DIXMAANP,Luksan:22", ) 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 ce4eab500..caf490712 100644 --- a/src/Meta/dixon3dq.jl +++ b/src/Meta/dixon3dq.jl @@ -17,6 +17,33 @@ dixon3dq_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/DIXON3DQ.SIF", + :notes => raw""" +Dixon's tridiagonal quadratic. + +classification QUR2-AN-V-0 +""", + :origin_notes => raw""" +problem 156 (p. 51) in +A.R. Buckley, +"Test functions for unconstrained minimization", +TR 1989CS-3, Mathematics, statistics and computing centre, +Dalhousie University, Halifax (CDN), 1989. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{Buckley1989, + author = {Buckley, A. R.}, + title = {Test Functions for Unconstrained Minimization}, + institution = {Mathematics, Statistics and Computing Centre, Dalhousie University}, + number = {TR 1989CS-3}, + year = {1989}, + address = {Halifax, Canada} +} + """, + + :lib => "CUTEst:DIXON3DQ", ) 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 c1010e4c3..df5280ec3 100644 --- a/src/Meta/dqdrtic.jl +++ b/src/Meta/dqdrtic.jl @@ -17,6 +17,31 @@ dqdrtic_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/DQDRTIC.SIF", + :notes => raw""" +Diagonal quadratic problem + +classification QUR2-AN-V-0 +""", + :origin_notes => raw""" +problem 22 in +Ph. L. Toint, +"Test problems for partially separable optimization and results +for the routine PSPMIN", +Report 83/4, Department of Mathematics, FUNDP (Namur, B), 1983. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{Toint1983, + author = {Ph. L. Toint}, + title = {Test problems for partially separable optimization and results for the routine PSPMIN}, + institution = {Department of Mathematics, FUNDP (Namur, Belgium)}, + number = {Report 83/4}, + year = {1983} +} + """, + :lib => "CUTEst:DQDRTIC", ) 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 d1a21c4ea..26a57bd77 100644 --- a/src/Meta/dqrtic.jl +++ b/src/Meta/dqrtic.jl @@ -17,6 +17,44 @@ dqrtic_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/DQRTIC.SIF", + :notes => raw""" +Variable dimension diagonal quartic problem. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 157 (p. 87) in +A.R. Buckley, +Test functions for unconstrained minimization, +TR 1989CS-3, Mathematics, statistics and computing centre, +Dalhousie University, Halifax (CDN), 1989. + +See also + +problem 23 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +SIF input: Ph. Toint, Dec 1989. + +D. Orban, Montreal, 08/2015. +""", + :reference => raw""" +@techreport{Buckley1989, + author = {Buckley, A. G.}, + title = {Test functions for unconstrained minimization}, + institution = {Computing Science Division, Dalhousie University}, + address = {Dalhousie, Canada}, + number = {CS-3}, + year = {1989} +} + """, + + :lib => "CUTEst:DQRTIC, Luksan:23", ) 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 ea1ae82fb..43b1cf59f 100644 --- a/src/Meta/eckerle4.jl +++ b/src/Meta/eckerle4.jl @@ -17,6 +17,61 @@ eckerle4_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/ECKERLE4.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/eckerle4.dat + +NIST/ITL StRD +Dataset Name: Eckerle4 (Eckerle4.dat) + +File Format: ASCII + Starting Values (lines 41 to 43) + Certified Values (lines 41 to 48) + Data (lines 61 to 95) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study involving + circular interference transmittance. The response + variable is transmittance, and the predictor variable + is wavelength. + +Reference: Eckerle, K., NIST (197?). + Circular Interference Transmittance Study. + +Data: 1 Response Variable (y = transmittance) + 1 Predictor Variable (x = wavelength) + 35 Observations + Higher Level of Difficulty + Observed Data + +Model: Exponential Class + 3 Parameters (b1 to b3) +T. Migot, Montreal, 2023. + +NIST Data fitting problem ECKERLE4 given as an inconsistent set of +nonlinear equations. +Fit: y = (b1/b2) * exp[-0.5*((x-b3)/b2)**2] + e + +classification NOR2-MN-3-35 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Eckerle, K., NIST (197?). +Circular Interference Transmittance Study. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:ECKERLE4, NIST:Eckerle4", ) 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 3ef580a9d..46e54f130 100644 --- a/src/Meta/edensch.jl +++ b/src/Meta/edensch.jl @@ -17,6 +17,48 @@ edensch_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/EDENSCH.SIF", + :notes => raw""" +The extended Dennis and Schnabel problem, as defined by Li. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +G. Li, +The secant/finite difference algorithm for solving sparse +nonlinear systems of equations, +SIAM Journal on Numerical Analysis, 25(5), pp. 1181-1196, 1988. + +See also + +problem 24 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +SIF input: Ph. Toint, Apr 1990. +minor correction by Ph. Shott, January 1995. + +D. Orban, Montreal, 08/2015. +""", + :reference => raw""" +@article{Li1988SIAMJNA, + author = {Li, Guangye}, + title = {The Secant/Finite Difference Algorithm for Solving Sparse Nonlinear Systems of Equations}, + journal = {SIAM Journal on Numerical Analysis}, + year = {1988}, + volume = {25}, + number = {5}, + pages = {1181--1196}, + doi = {10.1137/0725067} +} + """, + + :lib => "CUTEst:EDENSCH, Luksan:24", ) 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 0c496b7e4..ebe90bd2f 100644 --- a/src/Meta/eg2.jl +++ b/src/Meta/eg2.jl @@ -17,6 +17,50 @@ eg2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/EG2.SIF", + :notes => raw""" +A simple nonlinear problem given as an example in Section 1.2.4 of +the LANCELOT Manual. +The problem is non convex and has several local minima. + +classification OUR2-AN-1000-0 +""", + :origin_notes => raw""" +Section 1.2.4 of +A. R. Conn, N. I. M. Gould and Ph. L. Toint, +LANCELOT, A Fortran Package for Large-Scale Nonlinear Optimization +(Release A) +Springer Verlag, 1992. + +See also + +problem 25 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +SIF input: N. Gould and Ph. Toint, June 1994. + +D. Orban, Montreal, 08/2015. +""", + :reference => raw""" +@book{ConnGouldToint1992LANCELOT, + author = {Conn, A. R. and Gould, N. I. M. and Toint, Ph. L.}, + title = {{LANCELOT}: a {Fortran} package for large-scale nonlinear optimization ({Release A})}, + series = {Springer Series in Computational Mathematics}, + volume = {17}, + publisher = {Springer}, + address = {Heidelberg}, + year = {1992}, + doi = {10.1007/978-3-662-12211-2} +} + """, + + :lib => "CUTEst:EG2, Luksan:25", ) 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 9f216b6aa..68829f2fe 100644 --- a/src/Meta/elec.jl +++ b/src/Meta/elec.jl @@ -17,6 +17,33 @@ elec_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/ELEC.SIF", + :notes => raw""" +Given np electrons, find the equilibrium state distribution of minimal +Columb potential of the electrons positioned on a conducting sphere + +classification OOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 2 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) + +SIF input: Nick Gould, November 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:ELEC, COPS:2", ) 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 bc5704b0d..c0b53c17b 100644 --- a/src/Meta/engval1.jl +++ b/src/Meta/engval1.jl @@ -17,6 +17,49 @@ engval1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/ENGVAL1.SIF", + :notes => raw""" +The ENGVAL1 problem. +This problem is a sum of 2n-2 groups, n-1 of which contain 2 nonlinear +elements. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 31 in +Ph.L. Toint, +Test problems for partially separable optimization and results +for the routine PSPMIN, +Report 83/4, Department of Mathematics, FUNDP (Namur, B), 1983. + +See also + +problem 26 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +See also Buckley#172 (p. 52) + +SIF input: Ph. Toint and N. Gould, Dec 1989. + +D. Orban, Montreal, 08/2015. +""", + :reference => raw""" +@techreport{Toint1983, + author = {Ph. L. Toint}, + title = {Test problems for partially separable optimization and results for the routine PSPMIN}, + institution = {Department of Mathematics, FUNDP (Namur, Belgium)}, + number = {Report 83/4}, + year = {1983} +} + """, + + :lib => "CUTEst:ENGVAL1, Luksan:26", ) 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 e1f7474a9..6f6bceb22 100644 --- a/src/Meta/enso.jl +++ b/src/Meta/enso.jl @@ -17,6 +17,74 @@ enso_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/ENSO.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/enso.dat + +NIST/ITL StRD +Dataset Name: ENSO (ENSO.dat) + +File Format: ASCII + Starting Values (lines 41 to 49) + Certified Values (lines 41 to 54) + Data (lines 61 to 228) + +Procedure: Nonlinear Least Squares Regression + +Description: The data are monthly averaged atmospheric pressure + differences between Easter Island and Darwin, + Australia. This difference drives the trade winds in + the southern hemisphere. Fourier analysis of the data + reveals 3 significant cycles. The annual cycle is the + strongest, but cycles with periods of approximately 44 + and 26 months are also present. These cycles + correspond to the El Nino and the Southern Oscillation. + Arguments to the SIN and COS functions are in radians. + +Reference: Kahaner, D., C. Moler, and S. Nash, (1989). + Numerical Methods and Software. + Englewood Cliffs, NJ: Prentice Hall, pp. 441-445. + +Data: 1 Response (y = atmospheric pressure) + 1 Predictor (x = time) + 168 Observations + Average Level of Difficulty + Observed Data + +Model: Miscellaneous Class + 9 Parameters (b1 to b9) + + y = b1 + b2*cos( 2*pi*x/12 ) + b3*sin( 2*pi*x/12 ) + + b5*cos( 2*pi*x/b4 ) + b6*sin( 2*pi*x/b4 ) + + b8*cos( 2*pi*x/b7 ) + b9*sin( 2*pi*x/b7 ) + e + +NIST Data fitting problem ENSO given as an inconsistent set of +nonlinear equations. +Fit: y = b1 + b2*cos( 2*pi*x/12 ) + b3*sin( 2*pi*x/12 ) ++ b5*cos( 2*pi*x/b4 ) + b6*sin( 2*pi*x/b4 ) ++ b8*cos( 2*pi*x/b7 ) + b9*sin( 2*pi*x/b7 ) + e + +classification NOR2-MN-9-168 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Kahaner, D., C. Moler, and S. Nash, (1989). +Numerical Methods and Software. +Englewood Cliffs, NJ: Prentice Hall, pp. 441-445. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@book{KahanerMolerNash1989, + author = {Kahaner, David and Moler, Cleve and Nash, Stephen}, + title = {Numerical Methods and Software}, + publisher = {Prentice Hall}, + address = {Englewood Cliffs, NJ}, + year = {1989} +} +""", + :lib => "CUTEst:ENSO, NIST:ENSO", ) 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 31923121f..a1851b592 100644 --- a/src/Meta/errinros_mod.jl +++ b/src/Meta/errinros_mod.jl @@ -17,6 +17,39 @@ errinros_mod_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf", + :notes => raw""" +Errin Rosenbrock - modified function. + +problem 28 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +classification SUR2-AN-V-0 + +J,-P, Dussault, Rennes 09/2015. +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "Luksan:28", ) 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 e286b308f..6a6d3ef9f 100644 --- a/src/Meta/extrosnb.jl +++ b/src/Meta/extrosnb.jl @@ -17,6 +17,44 @@ extrosnb_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/EXTROSNB.SIF", + :notes => raw""" +The extended Rosenbrock function (nonseparable version). + +classification SUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 10 in +Ph.L. Toint, +"Test problems for partially separable optimization and results +for the routine PSPMIN", +Report 83/4, Department of Mathematics, FUNDP (Namur, B), 1983. + +See also Buckley#116. Note that MGH#21 is the separable version. +SIF input: Ph. Toint, Dec 1989. + +problem 29 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +J.-P. Dussault, Rennes 09/2015. +""", + :reference => raw""" +@techreport{Toint1983, + author = {Ph. L. Toint}, + title = {Test problems for partially separable optimization and results for the routine PSPMIN}, + institution = {Department of Mathematics, FUNDP (Namur, Belgium)}, + number = {Report 83/4}, + year = {1983} +} + """, + + :lib => "CUTEst:EXTROSNB, Luksan:29", ) 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 cab40b640..d36444e09 100644 --- a/src/Meta/fletcbv2.jl +++ b/src/Meta/fletcbv2.jl @@ -17,6 +17,52 @@ fletcbv2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/FLETCBV2.SIF", + :notes => raw""" +Another Boundary Value problem. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +The first problem given by +R. Fletcher, +"An optimal positive definite update for sparse Hessian matrices" +Numerical Analysis report NA/145, University of Dundee, 1992. +but assuming that the 1/h**2 term should read h**2 +This is what Fletcher intended (private communication). +The author comments: "The problem arises from discretizing the bvp +x"=-2+sin x in [0,1] +with x(0)=0, x(1)=1. This gives a symmetric system of equations, +the residual vector of which is the gradient of the given function." +He multiplies through by h^2 before integrating. + +Scaled version. + +SIF input: Nick Gould, Nov 1992. + +problem 31 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +J,-P, Dussault, Rennes 09/2015. +""", + :reference => raw""" +@techreport{Fletcher1992, + author = {Fletcher, R.}, + title = {An Optimal Positive Definite Update for Sparse {Hessian} Matrices}, + institution = {University of Dundee}, + type = {Numerical Analysis Report}, + number = {NA/145}, + year = {1992} +} + """, + + :lib => "CUTEst:FLETCBV2, Luksan:31", ) 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 169d664aa..c70b12170 100644 --- a/src/Meta/fletcbv3_mod.jl +++ b/src/Meta/fletcbv3_mod.jl @@ -17,6 +17,44 @@ fletcbv3_mod_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf", + :notes => raw""" +classification OUR2-AN-V-0 + +J.-P. Dussault, Rennes 09/2015. +""", + :origin_notes => raw""" +The first problem given by +R. Fletcher, +"An optimal positive definite update for sparse Hessian matrices" +Numerical Analysis report NA/145, University of Dundee, 1992. + +Scaled version. + +SIF input: Nick Gould, Oct 1992. + +problem 30 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "Luksan:30", ) 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 49e322d01..4087dd325 100644 --- a/src/Meta/fletchcr.jl +++ b/src/Meta/fletchcr.jl @@ -17,6 +17,54 @@ fletchcr_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/FLETCHCR.SIF", + :notes => raw""" +The chained Rosenbrock function as given by Fletcher. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +problem 32 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +CUTEst cites + The second problem given by + R. Fletcher, + "An optimal positive definite update for sparse Hessian matrices" + Numerical Analysis report NA/145, University of Dundee, 1992. + +Scaled version. + +SIF input: Nick Gould, Oct 1992. + +as source for this problem. +It is possible that Fletcher may have used this problem in his +technical report, but the published version of his report + +SIAM J. Optimization, 5(1), pp 192-218, 1995 + +uses the chained Rosenbrock problem, not the one below. + +J.-P. Dussault, Rennes 09/2015. +""", + :reference => raw""" +@techreport{Fletcher1992, + author = {Fletcher, R.}, + title = {An Optimal Positive Definite Update for Sparse {Hessian} Matrices}, + institution = {University of Dundee}, + type = {Numerical Analysis Report}, + number = {NA/145}, + year = {1992} +} + """, + + :lib => "CUTEst:FLETCHCR, Luksan:32", ) 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 9887410ef..9269639f9 100644 --- a/src/Meta/fminsrf2.jl +++ b/src/Meta/fminsrf2.jl @@ -17,6 +17,60 @@ fminsrf2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/FMINSRF2.SIF", + :notes => raw""" +The free boundary minimum surface problem. +The problem comes from the discretization of the minimum surface +problem on the unit square with "free boundary conditions" +one must find the minumum surface over the unit square +(which is clearly 1.0). Furthermore, the distance of the surface +from zero at the centre of the unit square is also minimized. +The unit square is discretized into (p-1)**2 little squares. The +heights of the considered surface above the corners of these little +squares are the problem variables, There are p**2 of them. +Given these heights, the area above a little square is +approximated by the +S(i,j) = sqrt( 1 + 0.5(p-1)**2 ( a(i,j) + b(i,j) ) ) / (p-1)**2 +where +a(i,j) = x(i,j) - x(i+1,j+1) +and +b(i,j) = x(i+1,j) - x(i,j+1) + +classification OUR2-MY-V-0 +""", + :origin_notes => raw""" +Setting the boundary free in +A Griewank and Ph. Toint, +"Partitioned variable metric updates for large structured +optimization problems", +Numerische Mathematik 39:429-448, 1982. + +SIF input: Ph. Toint, November 1991. + +Problem 33 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +http://www.cs.cas.cz/matonoha/download/V1081.pdf +J.-P. Dussault, Rennes 09/2015. +""", + :reference => raw""" +@article{GriewankToint1982NM, + author = {Griewank, A. and Toint, Ph. L.}, + title = {Partitioned variable metric updates for large structured optimization problems}, + journal = {Numerische Mathematik}, + year = {1982}, + volume = {39}, + number = {1}, + pages = {119--137}, + doi = {10.1007/bf01399316} +} + """, + + :lib => "CUTEst:FMINSRF2, Luksan:33", ) 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 c846b6dad..bd77d1709 100644 --- a/src/Meta/freuroth.jl +++ b/src/Meta/freuroth.jl @@ -17,6 +17,42 @@ freuroth_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/FREUROTH.SIF", + :notes => raw""" +The Freudentstein and Roth test problem + +classification SUR2-AN-V-0 +J.-P. Dussault, Rennes 09/2015. +""", + :origin_notes => raw""" +problem 34 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +problem 2 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Toint#33, Buckley#24 + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:FREUROTH, Luksan:34", ) 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 2e735db22..f722c8692 100644 --- a/src/Meta/gasoil.jl +++ b/src/Meta/gasoil.jl @@ -17,6 +17,46 @@ gasoil_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :jump, + :url => "https://bitbucket.org/optrove/sif/src/master/GASOIL.SIF", + :notes => raw""" +Catalytic Cracking of Gas Oil Problem +Collocation formulation + +Determine the reaction coefficients for the catalytic cracking of gas oil +and other byproducts. The nonlinear model that describes the process is +y_1' = - (theta_1 + theta_3 ) y_1^2 +y_2' = theta_1 y_1^2 + theta_2 y_2 +with given initial conditions. The problem is to minimize +sum{i=1,20} || y(tau_i,theta) - z_i||^2 +where the z_i are concentration measurements for y at times tau_i (i=1,20) + +classification OOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 12 in the COPS (Version 2) collection of +E. Dolan and J. More' +see "Benchmarking Optimization Software with COPS" +Argonne National Labs Technical Report ANL/MCS-246 (2000) + +Michael Merritt - Summer 2000 +COPS 2.0 - September 2000 +COPS 3.0 - November 2002 +COPS 3.1 - March 2004 + +SIF input: Nick Gould, November 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:GASOIL, COPS:12", ) 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 e76acb505..165ed3c1e 100644 --- a/src/Meta/gauss1.jl +++ b/src/Meta/gauss1.jl @@ -17,6 +17,62 @@ gauss1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/GAUSS1.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/gauss1.dat + +NIST/ITL StRD +Dataset Name: Gauss1 (Gauss1.dat) + +File Format: ASCII + Starting Values (lines 41 to 48) + Certified Values (lines 41 to 53) + Data (lines 61 to 310) + +Procedure: Nonlinear Least Squares Regression + +Description: The data are two well-separated Gaussians on a + decaying exponential baseline plus normally + distributed zero-mean noise with variance = 6.25. + +Reference: Rust, B., NIST (1996). + +Data: 1 Response (y) + 1 Predictor (x) + 250 Observations + Lower Level of Difficulty + Generated Data + +Model: Exponential Class + 8 Parameters (b1 to b8) + + y = b1*exp( -b2*x ) + b3*exp( -(x-b4)**2 / b5**2 ) + + b6*exp( -(x-b7)**2 / b8**2 ) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem GAUSS1 given as an inconsistent set of +nonlinear equations. +Fit: y = b1*exp( -b2*x ) + b3*exp( -(x-b4)**2 / b5**2 ) ++ b6*exp( -(x-b7)**2 / b8**2 ) + e + +classification NOR2-MN-8-250 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Rust, B., NIST (1996). + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:GAUSS1, NIST:Gauss1", ) 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 890ea62d0..bbb6f4b63 100644 --- a/src/Meta/gauss2.jl +++ b/src/Meta/gauss2.jl @@ -17,6 +17,62 @@ gauss2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/GAUSS2.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/gauss2.dat + +NIST/ITL StRD +Dataset Name: Gauss2 (Gauss2.dat) + +File Format: ASCII + Starting Values (lines 41 to 48) + Certified Values (lines 41 to 53) + Data (lines 61 to 310) + +Procedure: Nonlinear Least Squares Regression + +Description: The data are two slightly-blended Gaussians on a + decaying exponential baseline plus normally + distributed zero-mean noise with variance = 6.25. + +Reference: Rust, B., NIST (1996). + +Data: 1 Response (y) + 1 Predictor (x) + 250 Observations + Lower Level of Difficulty + Generated Data + +Model: Exponential Class + 8 Parameters (b1 to b8) + + y = b1*exp( -b2*x ) + b3*exp( -(x-b4)**2 / b5**2 ) + + b6*exp( -(x-b7)**2 / b8**2 ) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem GAUSS2 given as an inconsistent set of +nonlinear equations. +Fit: y = b1*exp( -b2*x ) + b3*exp( -(x-b4)**2 / b5**2 ) ++ b6*exp( -(x-b7)**2 / b8**2 ) + e + +classification NOR2-MN-8-250 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Rust, B., NIST (1996). + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:GAUSS2, NIST:Gauss2", ) 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 ad2bc8988..b0ce79673 100644 --- a/src/Meta/gauss3.jl +++ b/src/Meta/gauss3.jl @@ -17,6 +17,62 @@ gauss3_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/GAUSS3.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/gauss3.dat + +NIST/ITL StRD +Dataset Name: Gauss3 (Gauss3.dat) + +File Format: ASCII + Starting Values (lines 41 to 48) + Certified Values (lines 41 to 53) + Data (lines 61 to 310) + +Procedure: Nonlinear Least Squares Regression + +Description: The data are two strongly-blended Gaussians on a + decaying exponential baseline plus normally + distributed zero-mean noise with variance = 6.25. + +Reference: Rust, B., NIST (1996). + +Data: 1 Response (y) + 1 Predictor (x) + 250 Observations + Average Level of Difficulty + Generated Data + +Model: Exponential Class + 8 Parameters (b1 to b8) + + y = b1*exp( -b2*x ) + b3*exp( -(x-b4)**2 / b5**2 ) + + b6*exp( -(x-b7)**2 / b8**2 ) + e +# T. Migot, Montreal, 2023. + +NIST Data fitting problem GAUSS3 given as an inconsistent set of +nonlinear equations. +Fit: y = b1*exp( -b2*x ) + b3*exp( -(x-b4)**2 / b5**2 ) ++ b6*exp( -(x-b7)**2 / b8**2 ) + e + +classification NOR2-MN-8-250 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Rust, B., NIST (1996). + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:GAUSS3, NIST:Gauss3", ) 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 539a4ae80..789e6fb39 100644 --- a/src/Meta/gaussian.jl +++ b/src/Meta/gaussian.jl @@ -17,6 +17,35 @@ gaussian_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/GAUSSIAN.SIF", + :notes => raw""" +More''s gaussian problem in 3 variables. This is a nonlinear least-squares +version of problem ARGAUSS. + +classification SUR2-AN-3-0 +""", + :origin_notes => raw""" +Problem 9 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#28 + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:GAUSSIAN", ) 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 bba6c12de..bd4c45bf3 100644 --- a/src/Meta/genbroydenb.jl +++ b/src/Meta/genbroydenb.jl @@ -17,6 +17,31 @@ genbroydenb_meta = Dict( :defined_everywhere => missing, :origin => :literature, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization", + :notes => raw""" +Generalized Broyden banded function +""", + :origin_notes => raw""" +Problem 6 in +L. Luksan, C. Matonoha and J. Vlcek +Sparse Test Problems for Unconstrained Optimization, +Technical Report 1064, +Institute of Computer Science, +Academy of Science of the Czech Republic +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} + } + """, + + :lib => "LuksanSparse:6", ) get_genbroydenb_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/genbroydentri.jl b/src/Meta/genbroydentri.jl index 5a89298cc..6618485cb 100644 --- a/src/Meta/genbroydentri.jl +++ b/src/Meta/genbroydentri.jl @@ -17,6 +17,32 @@ genbroydentri_meta = Dict( :defined_everywhere => missing, :origin => :literature, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization +", + :notes => raw""" +Generalized Broyden Tridiagonal Function +""", + :origin_notes => raw""" +Problem 5 in +L. Luksan, C. Matonoha and J. Vlcek +Sparse Test Problems for Unconstrained Optimization, +Technical Report 1064, +Institute of Computer Science, +Academy of Science of the Czech Republic +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} + } + """, + + :lib => "LuksanSparse:5", ) get_genbroydentri_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/genhumps.jl b/src/Meta/genhumps.jl index 9039ee523..e0d27ef1e 100644 --- a/src/Meta/genhumps.jl +++ b/src/Meta/genhumps.jl @@ -17,6 +17,42 @@ genhumps_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf, https://bitbucket.org/optrove/sif/src/master/GENHUMPS.SIF", + :notes => raw""" +A multi-dimensional variant of HUMPS, a two dimensional function +with a lot of humps. The density of humps increases with the +parameter ZETA, making the problem more difficult. +The problem is nonconvex. + +classification OUR2-AN-V-0 + +classification SUR2-AN-V-0 +J.-P. Dussault, Rennes 09/2015. +""", + :origin_notes => raw""" +problem 35 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic + +Ph. Toint, private communication, 1997. +SDIF input: N. Gould and Ph. Toint, November 1997. +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:GENHUMPS, Luksan:35", ) 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 aecf76c2c..a245099ee 100644 --- a/src/Meta/genrose.jl +++ b/src/Meta/genrose.jl @@ -17,6 +17,41 @@ genrose_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/GENROSE.SIF", + :notes => raw""" +Generalized Rosenbrock function. + +classification SUR2-AN-V-0 + +problem 36 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +""", + :origin_notes => raw""" +problem 5 in +S. Nash, +"Newton-type minimization via the Lanczos process", +SIAM J. Num. Anal. 21, 1984, 770-788. + +SIF input: Nick Gould, Oct 1992. +""", + :reference => raw""" +@article{Nash1984SIAMNA, + author = {Nash, Stephen G.}, + title = {Newton-Type Minimization via the {Lanczos} Method}, + journal = {SIAM Journal on Numerical Analysis}, + year = {1984}, + volume = {21}, + number = {4}, + pages = {770--788}, + doi = {10.1137/0721052} +} + """, + + :lib => "CUTEst:GENROSE, Luksan:36", ) 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 5f9425255..440c89fef 100644 --- a/src/Meta/genrose_nash.jl +++ b/src/Meta/genrose_nash.jl @@ -17,6 +17,78 @@ genrose_nash_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf", + :notes => raw""" +Generalized Rosenbrock function. + +classification SUR2-AN-V-0 + +Note: this variant does not reduce to the classical +Rosenbrock function when n = 2, described in + +H. H. Rosenbrock, +An automatic method for finding the greatest or least value +of a function +The Computer Journal 3: 175–184, 1960. +https://doi.org/10.1093/comjnl/3.3.175 + +D. Orban, Montreal, 08/2015. + + +# Institute of Computer Science, +# Academy of Science of the Czech Republic +# +# http://www.cs.cas.cz/matonoha/download/V1081.pdf +# +# classification SUR2-AN-V-0 +# +# D. Orban, Montreal, 08/2015. + +# Note: difference from CUTEst is due to the constant 1.0, +# which does not affect its utility as a test problem other than perhaps +# for convergence-testing. + +# Difference with the following is the initial guess. +# +# Problem 1 in +# L. Luksan, C. Matonoha and J. Vlcek +# Sparse Test Problems for Unconstrained Optimization, +# Technical Report 1064, +# Institute of Computer Science, +# Academy of Science of the Czech Republic +# +# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization +# +""", + :origin_notes => raw""" +problem 4 in +S. Nash, +Newton-type minimization via the Lanczos process, +SIAM J. Num. Anal. 21, 770-788, 1984, + +and + +problem 36 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +""", + :reference => raw""" +@article{Nash1984SIAMNA, + author = {Nash, Stephen G.}, + title = {Newton-Type Minimization via the {Lanczos} Method}, + journal = {SIAM Journal on Numerical Analysis}, + year = {1984}, + volume = {21}, + number = {4}, + pages = {770--788}, + doi = {10.1137/0721052} +} + """, + + :lib => "Luksan:36, LuksanSparse:1", ) 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 e0688df9a..ad03afcac 100644 --- a/src/Meta/glider.jl +++ b/src/Meta/glider.jl @@ -17,6 +17,41 @@ glider_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :jump, + :url => "https://bitbucket.org/optrove/sif/src/master/GLIDER.SIF", + :notes => raw""" +Hang Glider Problem +Trapezoidal formulation + +Maximize the final horizontal position of a hang glider in the presence +of a thermal updraft. + +classification OOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 11 in the COPS (Version 2) collection of +E. Dolan and J. More' +see "Benchmarking Optimization Software with COPS" +Argonne National Labs Technical Report ANL/MCS-246 (2000) + +David Bortz - Summer 1998 +COPS 2.0 - September 2000 +COPS 3.0 - November 2002 +COPS 3.1 - March 2004 + +SIF input: Nick Gould, December 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:GLIDER, COPS:11", ) 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 defecf77f..b43e789a4 100644 --- a/src/Meta/gulf.jl +++ b/src/Meta/gulf.jl @@ -17,6 +17,47 @@ gulf_meta = Dict( :defined_everywhere => false, :origin => :real, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/GULF.SIF", + :notes => raw""" +The Gulf research and development function for m = 99. + +SUR2-MN-3-0 + +The Gulf RD test problem in 3 variables. +This function is a nonlinear least squares with 99 groups. Each +group has a nonlinear element of exponential type. +The number of groups may be varied, but must be larger or equal to 3 + +classification SUR2-MN-3-0 +""", + :origin_notes => raw""" +problem 27 (p. 57) in + A.R. Buckley, + "Test functions for unconstrained minimization", + TR 1989CS-3, Mathematics, statistics and computing centre, + Dalhousie University, Halifax (CDN), 1989. + +problem 11 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#27 + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:GULF", ) 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 dd24acb3a..703f75f63 100644 --- a/src/Meta/hahn1.jl +++ b/src/Meta/hahn1.jl @@ -17,6 +17,64 @@ hahn1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/hahn1.dat, https://bitbucket.org/optrove/sif/src/master/HAHN1.SIF", + :notes => raw""" +NIST/ITL StRD +Dataset Name: Hahn1 (Hahn1.dat) + +File Format: ASCII + Starting Values (lines 41 to 47) + Certified Values (lines 41 to 52) + Data (lines 61 to 296) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study involving + the thermal expansion of copper. The response + variable is the coefficient of thermal expansion, and + the predictor variable is temperature in degrees + kelvin. + +Reference: Hahn, T., NIST (197?). + Copper Thermal Expansion Study. + +Data: 1 Response (y = coefficient of thermal expansion) + 1 Predictor (x = temperature, degrees kelvin) + 236 Observations + Average Level of Difficulty + Observed Data + +Model: Rational Class (cubic/cubic) + 7 Parameters (b1 to b7) + + y = (b1+b2*x+b3*x**2+b4*x**3) / + (1+b5*x+b6*x**2+b7*x**3) + e +# T. Migot, Montreal, 2023. + +NIST Data fitting problem HAHN1 given as an inconsistent set of +nonlinear equations. +Fit: y = (b1 + b2*x + b3*x**2 + b4*x**3) / +(1 + b5*x + b6*x**2 + b7*x**3) + e + +classification NOR2-MN-7-37 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Hahn, T., NIST (197?). +Copper Thermal Expansion Study. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:HAHN1, NIST:Hahn1", ) 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 c227b42f4..9b40c58bc 100644 --- a/src/Meta/helical.jl +++ b/src/Meta/helical.jl @@ -17,6 +17,29 @@ helical_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1145/355934.355936", + :notes => raw""" + +""", + :origin_notes => raw""" +problem 7 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "MGH:7", ) 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 08aa5331f..8b3ddd89e 100644 --- a/src/Meta/hovercraft1d.jl +++ b/src/Meta/hovercraft1d.jl @@ -17,6 +17,27 @@ hovercraft1d_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://laurentlessard.com/teaching/524-intro-to-optimization/", + :notes => raw""" + +""", + :origin_notes => raw""" +JuMP model follows Laurent Lessard CS/ECE/ISyE 524, University of Wisconsin–Madison, +Introduction to Optimization class. + +Hovercraft 1D example +https://laurentlessard.com/teaching/524-intro-to-optimization/ +""", + :reference => raw""" +@misc{Lessard524, + author = {Lessard, Laurent}, + title = {Introduction to Optimization, {CS/ECE/ISyE} 524}, + howpublished = {Lecture notes, University of Wisconsin--Madison}, + url = {https://laurentlessard.com/teaching/524-intro-to-optimization/}, + year = {2023} +} +""", + :lib => "", ) 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 722c3fae1..0fe399c6a 100644 --- a/src/Meta/hs1.jl +++ b/src/Meta/hs1.jl @@ -17,10 +17,43 @@ hs1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS1.SIF", + :notes => raw""" +Hock and Schittkowski problem number 1. + +The ever famous 2 variables Rosenbrock "banana valley" problem +with a single lower bound. + +classification SBR2-AN-2-0 + +N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 1 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, March 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS1, HS:1", ) get_hs1_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs1_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs1_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs1_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs1_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs1_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs1_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs10.jl b/src/Meta/hs10.jl index 2e4cc929d..1f988136d 100644 --- a/src/Meta/hs10.jl +++ b/src/Meta/hs10.jl @@ -17,10 +17,40 @@ hs10_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS10.SIF", + :notes => raw""" +Hock and Schittkowski problem number 10. + +classification LQR2-AN-2-1 + +N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 10 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS10, HS:10", ) get_hs10_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs10_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs10_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs10_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs10_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs10_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs10_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs100.jl b/src/Meta/hs100.jl index c5931de88..2c8e25c27 100644 --- a/src/Meta/hs100.jl +++ b/src/Meta/hs100.jl @@ -17,10 +17,42 @@ hs100_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS100.SIF", + :notes => raw""" +Hock and Schittkowski problem number 100. + +classification OOR2-AN-7-4 + +classification PPR-AN-7-4 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 100 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph. Toint, April 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS100, HS:100", ) get_hs100_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_hs100_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs100_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs100_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs100_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs100_nineq(; n::Integer = default_nvar, kwargs...) = 4 +get_hs100_nineq(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file diff --git a/src/Meta/hs101.jl b/src/Meta/hs101.jl index 5387b662b..f5eabff3e 100644 --- a/src/Meta/hs101.jl +++ b/src/Meta/hs101.jl @@ -17,10 +17,42 @@ hs101_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS101.SIF", + :notes => raw""" +Hock and Schittkowski problem number 101. + +classification OOR2-AN-7-5 + +classification PPR-AN-7-6 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 101 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: N. Gould, December 1989. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS101, HS:101", ) get_hs101_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_hs101_ncon(; n::Integer = default_nvar, kwargs...) = 5 get_hs101_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs101_nnln(; n::Integer = default_nvar, kwargs...) = 5 get_hs101_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs101_nineq(; n::Integer = default_nvar, kwargs...) = 5 +get_hs101_nineq(; n::Integer = default_nvar, kwargs...) = 5 \ No newline at end of file diff --git a/src/Meta/hs102.jl b/src/Meta/hs102.jl index 4b94a0fa2..a7c3846a8 100644 --- a/src/Meta/hs102.jl +++ b/src/Meta/hs102.jl @@ -17,10 +17,42 @@ hs102_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS102.SIF", + :notes => raw""" +Hock and Schittkowski problem number 102. + +classification OOR2-AN-7-5 + +classification PPR-AN-7-6 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 102 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: N. Gould, December 1989. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS102, HS:102", ) get_hs102_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_hs102_ncon(; n::Integer = default_nvar, kwargs...) = 5 get_hs102_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs102_nnln(; n::Integer = default_nvar, kwargs...) = 5 get_hs102_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs102_nineq(; n::Integer = default_nvar, kwargs...) = 5 +get_hs102_nineq(; n::Integer = default_nvar, kwargs...) = 5 \ No newline at end of file diff --git a/src/Meta/hs103.jl b/src/Meta/hs103.jl index 46d8a5cd5..8e3d54bde 100644 --- a/src/Meta/hs103.jl +++ b/src/Meta/hs103.jl @@ -17,10 +17,42 @@ hs103_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS103.SIF", + :notes => raw""" +Hock and Schittkowski problem number 103. + +classification OOR2-AN-7-5 + +classification PPR-AN-7-6 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 103 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: N. Gould, December 1989. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS103, HS:103", ) get_hs103_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_hs103_ncon(; n::Integer = default_nvar, kwargs...) = 5 get_hs103_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs103_nnln(; n::Integer = default_nvar, kwargs...) = 5 get_hs103_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs103_nineq(; n::Integer = default_nvar, kwargs...) = 5 +get_hs103_nineq(; n::Integer = default_nvar, kwargs...) = 5 \ No newline at end of file diff --git a/src/Meta/hs104.jl b/src/Meta/hs104.jl index ec6fb679e..06f777dd9 100644 --- a/src/Meta/hs104.jl +++ b/src/Meta/hs104.jl @@ -17,10 +17,42 @@ hs104_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS104.SIF", + :notes => raw""" +Hock and Schittkowski problem number 104. + +classification OOR2-AN-8-5 + +classification PPR-AN-8-6 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 104 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Nick Gould, August 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS104, HS:104", ) get_hs104_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_hs104_ncon(; n::Integer = default_nvar, kwargs...) = 5 get_hs104_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs104_nnln(; n::Integer = default_nvar, kwargs...) = 5 get_hs104_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs104_nineq(; n::Integer = default_nvar, kwargs...) = 5 +get_hs104_nineq(; n::Integer = default_nvar, kwargs...) = 5 \ No newline at end of file diff --git a/src/Meta/hs105.jl b/src/Meta/hs105.jl index b3c57ed96..5e8bf98fe 100644 --- a/src/Meta/hs105.jl +++ b/src/Meta/hs105.jl @@ -17,10 +17,42 @@ hs105_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS105.SIF", + :notes => raw""" +Hock and Schittkowski problem number 105. + +classification OLR2-AY-8-1 + +classification GLR-AN-8-1 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 105 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Nick Gould, August 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS105, HS:105", ) get_hs105_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_hs105_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs105_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs105_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs105_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs105_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs105_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs106.jl b/src/Meta/hs106.jl index 9ff305ba4..bea4034f2 100644 --- a/src/Meta/hs106.jl +++ b/src/Meta/hs106.jl @@ -17,10 +17,44 @@ hs106_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS106.SIF", + :notes => raw""" +Hock and Schittkowski problem number 106. + +A heat exchanger design problem. + +classification LQR2-MN-8-6 + +classification LQR-AN-8-6 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 106 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: J-M COLLIN. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS106, HS:106", ) get_hs106_nvar(; n::Integer = default_nvar, kwargs...) = 8 get_hs106_ncon(; n::Integer = default_nvar, kwargs...) = 6 get_hs106_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs106_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs106_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs106_nineq(; n::Integer = default_nvar, kwargs...) = 6 +get_hs106_nineq(; n::Integer = default_nvar, kwargs...) = 6 \ No newline at end of file diff --git a/src/Meta/hs107.jl b/src/Meta/hs107.jl index e828651ee..0c3230b8c 100644 --- a/src/Meta/hs107.jl +++ b/src/Meta/hs107.jl @@ -17,10 +17,47 @@ hs107_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS107.SIF", + :notes => raw""" +Hock and Schittkowski problem number 107. + +A static power scheduling problem. +There are note enough components for the starting point in the +problem description in the source. The initial value for X7 has +been set to 1.0454, as for X5 and X6. + +classification OOR2-MY-9-6 + +classification PGR-AN-9-6 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 107 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph. Toint, April 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS107, HS:107", ) get_hs107_nvar(; n::Integer = default_nvar, kwargs...) = 9 get_hs107_ncon(; n::Integer = default_nvar, kwargs...) = 6 get_hs107_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs107_nnln(; n::Integer = default_nvar, kwargs...) = 6 get_hs107_nequ(; n::Integer = default_nvar, kwargs...) = 6 -get_hs107_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs107_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs108.jl b/src/Meta/hs108.jl index b9997f527..5ba77f439 100644 --- a/src/Meta/hs108.jl +++ b/src/Meta/hs108.jl @@ -17,10 +17,42 @@ hs108_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS108.SIF", + :notes => raw""" +Hock and Schittkowski problem number 108. + +classification QQR2-AY-9-13 + +classification QQR-AN-9-13 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 108 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: J-M Collin and Ph. Toint, Apr 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS108, HS:108", ) get_hs108_nvar(; n::Integer = default_nvar, kwargs...) = 9 get_hs108_ncon(; n::Integer = default_nvar, kwargs...) = 12 get_hs108_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs108_nnln(; n::Integer = default_nvar, kwargs...) = 12 get_hs108_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs108_nineq(; n::Integer = default_nvar, kwargs...) = 12 +get_hs108_nineq(; n::Integer = default_nvar, kwargs...) = 12 \ No newline at end of file diff --git a/src/Meta/hs109.jl b/src/Meta/hs109.jl index de874d16e..ee34a1060 100644 --- a/src/Meta/hs109.jl +++ b/src/Meta/hs109.jl @@ -17,10 +17,48 @@ hs109_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS109.SIF", + :notes => raw""" +Hock and Schittkowski problem number 109. + +classification OOR2-AY-9-10 + +classification PGR-AN-9-10 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +Problem 109 in + W. Hock and K. Schittkowski, + Test examples for nonlinear programming codes, + Lectures Notes in Economics and Mathematical Systems 187, + Springer Verlag, Heidelberg, 1981. + +problem 80 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, June 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS109, HS:109", ) get_hs109_nvar(; n::Integer = default_nvar, kwargs...) = 9 get_hs109_ncon(; n::Integer = default_nvar, kwargs...) = 9 get_hs109_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs109_nnln(; n::Integer = default_nvar, kwargs...) = 8 get_hs109_nequ(; n::Integer = default_nvar, kwargs...) = 6 -get_hs109_nineq(; n::Integer = default_nvar, kwargs...) = 3 +get_hs109_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file diff --git a/src/Meta/hs11.jl b/src/Meta/hs11.jl index c182ab9ef..477a8f367 100644 --- a/src/Meta/hs11.jl +++ b/src/Meta/hs11.jl @@ -17,10 +17,40 @@ hs11_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS11.SIF", + :notes => raw""" +Hock and Schittkowski problem number 11. + +classification SQR2-AN-2-1 + +N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 11 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph. L. Toint, October 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS11, HS:11", ) get_hs11_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs11_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs11_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs11_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs11_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs11_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs11_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs110.jl b/src/Meta/hs110.jl index a14f19369..c8553c2c1 100644 --- a/src/Meta/hs110.jl +++ b/src/Meta/hs110.jl @@ -17,10 +17,45 @@ hs110_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS110.SIF", + :notes => raw""" +Hock and Schittkowski problem number 110. + +This problem is a sum of 2n+1 groups, 2n of which contain 1 linear +element and the other one contains n elements. + +classification SBR2-AN-V-0 + +classification GBR-AN-10-0 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 110 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, Mar 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS110, HS:110", ) get_hs110_nvar(; n::Integer = default_nvar, kwargs...) = 10 get_hs110_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs110_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs110_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs110_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs110_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs110_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs111.jl b/src/Meta/hs111.jl index 86cd8c925..b3df01e1b 100644 --- a/src/Meta/hs111.jl +++ b/src/Meta/hs111.jl @@ -17,10 +17,43 @@ hs111_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS111.SIF", + :notes => raw""" +Hock and Schittkowski problem number 111. + +This problem is a chemical equilibrium problem involving 3 linear +equality constraints. + +classification OOR2-AN-10-3 + +N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 111 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Nick Gould, August 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS111, HS:111", ) get_hs111_nvar(; n::Integer = default_nvar, kwargs...) = 10 get_hs111_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs111_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs111_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs111_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs111_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs111_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs112.jl b/src/Meta/hs112.jl index 837b880af..4eff4c1be 100644 --- a/src/Meta/hs112.jl +++ b/src/Meta/hs112.jl @@ -17,10 +17,49 @@ hs112_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS112.SIF", + :notes => raw""" +Hock and Schittkowski problem number 112. + +This problem is a chemical equilibrium problem involving 3 linear +equality constraints. + +classification OLR2-MY-10-3 + +N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +Problem 112 in + W. Hock and K. Schittkowski, + Test examples for nonlinear programming codes, + Lectures Notes in Economics and Mathematical Systems 187, + Springer Verlag, Heidelberg, 1981. + +problem 80 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, Mar 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS112, HS:112", ) get_hs112_nvar(; n::Integer = default_nvar, kwargs...) = 10 get_hs112_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs112_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs112_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs112_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs112_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs112_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs113.jl b/src/Meta/hs113.jl index cf6dd74a8..4128d1a7e 100644 --- a/src/Meta/hs113.jl +++ b/src/Meta/hs113.jl @@ -17,10 +17,48 @@ hs113_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS113.SIF", + :notes => raw""" +Hock and Schittkowski problem number 113. + +classification QQR2-AN-10-8 + +classification QQR-AN-10-8 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +Problem 113 in + W. Hock and K. Schittkowski, + Test examples for nonlinear programming codes, + Lectures Notes in Economics and Mathematical Systems 187, + Springer Verlag, Heidelberg, 1981. + +problem 80 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: J-M Collin, Mar 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS113, HS:113", ) get_hs113_nvar(; n::Integer = default_nvar, kwargs...) = 10 get_hs113_ncon(; n::Integer = default_nvar, kwargs...) = 8 get_hs113_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs113_nnln(; n::Integer = default_nvar, kwargs...) = 5 get_hs113_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs113_nineq(; n::Integer = default_nvar, kwargs...) = 8 +get_hs113_nineq(; n::Integer = default_nvar, kwargs...) = 8 \ No newline at end of file diff --git a/src/Meta/hs114.jl b/src/Meta/hs114.jl index ac4e9824a..6a6e13c7f 100644 --- a/src/Meta/hs114.jl +++ b/src/Meta/hs114.jl @@ -17,10 +17,44 @@ hs114_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS114.SIF", + :notes => raw""" +Hock and Schittkowski problem number 114. + +An alkylation process problem. + +classification QOR2-MY-10-11 + +classification QGR-AN-10-11 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 114 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: J.M. Collin, Jan 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS114, HS:114", ) get_hs114_nvar(; n::Integer = default_nvar, kwargs...) = 10 get_hs114_ncon(; n::Integer = default_nvar, kwargs...) = 11 get_hs114_nlin(; n::Integer = default_nvar, kwargs...) = 5 get_hs114_nnln(; n::Integer = default_nvar, kwargs...) = 6 get_hs114_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs114_nineq(; n::Integer = default_nvar, kwargs...) = 8 +get_hs114_nineq(; n::Integer = default_nvar, kwargs...) = 8 \ No newline at end of file diff --git a/src/Meta/hs116.jl b/src/Meta/hs116.jl index b915f8a71..e8a9e13a2 100644 --- a/src/Meta/hs116.jl +++ b/src/Meta/hs116.jl @@ -17,10 +17,44 @@ hs116_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS116.SIF", + :notes => raw""" +Hock and Schittkowski problem number 116. + +A 3 stage membrane separation model + +classification LQR2-MN-13-14 + +classification QGR-AN-13-14 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 116 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: B. Debarsy, Feb 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS116, HS:116", ) get_hs116_nvar(; n::Integer = default_nvar, kwargs...) = 13 get_hs116_ncon(; n::Integer = default_nvar, kwargs...) = 15 get_hs116_nlin(; n::Integer = default_nvar, kwargs...) = 5 get_hs116_nnln(; n::Integer = default_nvar, kwargs...) = 10 get_hs116_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs116_nineq(; n::Integer = default_nvar, kwargs...) = 15 +get_hs116_nineq(; n::Integer = default_nvar, kwargs...) = 15 \ No newline at end of file diff --git a/src/Meta/hs117.jl b/src/Meta/hs117.jl index edebcf1c4..19bbe319f 100644 --- a/src/Meta/hs117.jl +++ b/src/Meta/hs117.jl @@ -17,10 +17,42 @@ hs117_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS117.SIF", + :notes => raw""" +Hock and Schittkowski problem number 117. + +classification OQR2-AN-15-5 + +classification PQR-AN-15-5 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 117 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Nick Gould, August 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS117, HS:117", ) get_hs117_nvar(; n::Integer = default_nvar, kwargs...) = 15 get_hs117_ncon(; n::Integer = default_nvar, kwargs...) = 5 get_hs117_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs117_nnln(; n::Integer = default_nvar, kwargs...) = 5 get_hs117_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs117_nineq(; n::Integer = default_nvar, kwargs...) = 5 +get_hs117_nineq(; n::Integer = default_nvar, kwargs...) = 5 \ No newline at end of file diff --git a/src/Meta/hs118.jl b/src/Meta/hs118.jl index dcc1d171b..ecc31fe5e 100644 --- a/src/Meta/hs118.jl +++ b/src/Meta/hs118.jl @@ -17,10 +17,42 @@ hs118_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS118.SIF", + :notes => raw""" +Hock and Schittkowski problem number 118. + +classification QLR2-AN-15-17 + +classification QLR-AN-15-17 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 118 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: B Baudson, Jan 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS118, HS:118", ) get_hs118_nvar(; n::Integer = default_nvar, kwargs...) = 15 get_hs118_ncon(; n::Integer = default_nvar, kwargs...) = 17 get_hs118_nlin(; n::Integer = default_nvar, kwargs...) = 17 get_hs118_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs118_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs118_nineq(; n::Integer = default_nvar, kwargs...) = 17 +get_hs118_nineq(; n::Integer = default_nvar, kwargs...) = 17 \ No newline at end of file diff --git a/src/Meta/hs119.jl b/src/Meta/hs119.jl index a9ceba1da..aff5d1277 100644 --- a/src/Meta/hs119.jl +++ b/src/Meta/hs119.jl @@ -17,10 +17,46 @@ hs119_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS119.SIF", + :notes => raw""" +Hock and Schittkowski problem number 119. + +classification OLR2-AN-16-8 + +classification PLR-AN-16-8 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 119 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. +Original Source: problem 7 in +A.R. Colville +"A comparative study on nonlinear programming" +IBM Scientific Center Report 320-2949, New York, 1968. + +SIF input: A.R. Conn, March 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS119, HS:119", ) get_hs119_nvar(; n::Integer = default_nvar, kwargs...) = 16 get_hs119_ncon(; n::Integer = default_nvar, kwargs...) = 8 get_hs119_nlin(; n::Integer = default_nvar, kwargs...) = 8 get_hs119_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs119_nequ(; n::Integer = default_nvar, kwargs...) = 8 -get_hs119_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs119_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs12.jl b/src/Meta/hs12.jl index 52f351404..8f689f74a 100644 --- a/src/Meta/hs12.jl +++ b/src/Meta/hs12.jl @@ -17,10 +17,40 @@ hs12_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS12.SIF", + :notes => raw""" +Hock and Schittkowski problem number 12. + +classification QQR2-AN-2-1 + +N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 12 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS12, HS:12", ) get_hs12_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs12_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs12_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs12_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs12_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs12_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs12_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs13.jl b/src/Meta/hs13.jl index bcce0bf58..f960180bb 100644 --- a/src/Meta/hs13.jl +++ b/src/Meta/hs13.jl @@ -17,6 +17,41 @@ hs13_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS13.SIF", + :notes => raw""" +Hock and Schittkowski problem number 13. + +A problem in 2 variables where constraint qualification does not +hold. + +classification QOR2-AN-2-1 + +classification QQR2-AN-2-1 + + N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 13 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS13, HS:13", ) get_hs13_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs13_ncon(; n::Integer = default_nvar, kwargs...) = 1 @@ -24,4 +59,4 @@ get_hs13_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs13_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs13_nequ(; n::Integer = default_nvar, kwargs...) = 0 get_hs13_nineq(; n::Integer = default_nvar, kwargs...) = 1 -get_hs13_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 +get_hs13_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs14.jl b/src/Meta/hs14.jl index 375da7993..7b42948c5 100644 --- a/src/Meta/hs14.jl +++ b/src/Meta/hs14.jl @@ -17,6 +17,36 @@ hs14_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS14.SIF", + :notes => raw""" +Hock and Schittkowski problem number 14. + +classification SQR2-AN-2-2 + + N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 14 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS14, HS:14", ) get_hs14_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs14_ncon(; n::Integer = default_nvar, kwargs...) = 2 @@ -24,4 +54,4 @@ get_hs14_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs14_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs14_nequ(; n::Integer = default_nvar, kwargs...) = 1 get_hs14_nineq(; n::Integer = default_nvar, kwargs...) = 1 -get_hs14_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 +get_hs14_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs15.jl b/src/Meta/hs15.jl index 1f7be523a..5e151529f 100644 --- a/src/Meta/hs15.jl +++ b/src/Meta/hs15.jl @@ -17,10 +17,40 @@ hs15_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS15.SIF", + :notes => raw""" +Hock and Schittkowski problem number 15. + +classification SQR2-AN-2-2 + + N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 15 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS15, HS:15", ) get_hs15_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs15_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs15_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs15_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs15_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs15_nineq(; n::Integer = default_nvar, kwargs...) = 2 +get_hs15_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs16.jl b/src/Meta/hs16.jl index 6ae798a6a..e80f8ceee 100644 --- a/src/Meta/hs16.jl +++ b/src/Meta/hs16.jl @@ -17,10 +17,40 @@ hs16_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS16.SIF", + :notes => raw""" +Hock and Schittkowski problem number 16. + +classification SQR2-AN-2-2 + + N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 16 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS16, HS:16", ) get_hs16_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs16_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs16_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs16_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs16_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs16_nineq(; n::Integer = default_nvar, kwargs...) = 2 +get_hs16_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs17.jl b/src/Meta/hs17.jl index 877440612..c174319d7 100644 --- a/src/Meta/hs17.jl +++ b/src/Meta/hs17.jl @@ -17,10 +17,40 @@ hs17_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS17.SIF", + :notes => raw""" +Hock and Schittkowski problem number 17. + +classification SQR2-AN-2-2 + + N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 17 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS17, HS:17", ) get_hs17_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs17_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs17_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs17_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs17_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs17_nineq(; n::Integer = default_nvar, kwargs...) = 2 +get_hs17_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs18.jl b/src/Meta/hs18.jl index 7ed951567..37a5c8987 100644 --- a/src/Meta/hs18.jl +++ b/src/Meta/hs18.jl @@ -17,10 +17,40 @@ hs18_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS18.SIF", + :notes => raw""" +Hock and Schittkowski problem number 18. + +classification SQR2-AN-2-2 + + N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 18 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS18, HS:18", ) get_hs18_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs18_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs18_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs18_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs18_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs18_nineq(; n::Integer = default_nvar, kwargs...) = 2 +get_hs18_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs19.jl b/src/Meta/hs19.jl index bfc55071d..9dbce2db0 100644 --- a/src/Meta/hs19.jl +++ b/src/Meta/hs19.jl @@ -17,10 +17,42 @@ hs19_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS19.SIF", + :notes => raw""" +Hock and Schittkowski problem number 19. + +classification OQR2-AN-2-2 + +classification PQR2-AN-2-2 + + A. Montoison, Montreal, 04/2018. +""", +:origin_notes => raw""" +problem 19 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS19, HS:19", ) get_hs19_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs19_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs19_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs19_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs19_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs19_nineq(; n::Integer = default_nvar, kwargs...) = 2 +get_hs19_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs2.jl b/src/Meta/hs2.jl index 51dc17cfd..00fe55bb5 100644 --- a/src/Meta/hs2.jl +++ b/src/Meta/hs2.jl @@ -17,10 +17,45 @@ hs2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS2.SIF", + :notes => raw""" +Hock and Schittkowski problem number 2. + +The ever famous 2 variables Rosenbrock "banana valley" problem +with a single lower bound. + +classification SBR2-AN-2-0 + +classification PBR2-AN-2-0 + +A. Montoison, Montreal, 04/2018. +""", +:origin_notes => raw""" +problem 2 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, March 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS2, HS:2", ) get_hs2_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs2_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs2_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs2_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs2_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs2_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs2_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs20.jl b/src/Meta/hs20.jl index 86c7263ae..520986f08 100644 --- a/src/Meta/hs20.jl +++ b/src/Meta/hs20.jl @@ -17,10 +17,40 @@ hs20_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS20.SIF", + :notes => raw""" +Hock and Schittkowski problem number 20. + +classification SQR2-AN-2-3 + + N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 20 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS20, HS:20", ) get_hs20_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs20_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs20_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs20_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs20_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs20_nineq(; n::Integer = default_nvar, kwargs...) = 3 +get_hs20_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file diff --git a/src/Meta/hs201.jl b/src/Meta/hs201.jl index 0a5bb146f..e2ab9d0b4 100644 --- a/src/Meta/hs201.jl +++ b/src/Meta/hs201.jl @@ -17,6 +17,30 @@ hs201_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 201. +""", + :origin_notes => raw""" +Problem 201 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:201", ) 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 7be0070df..b3c47e409 100644 --- a/src/Meta/hs21.jl +++ b/src/Meta/hs21.jl @@ -17,10 +17,40 @@ hs21_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS21.SIF", + :notes => raw""" +Hock and Schittkowski problem number 21. + +classification QLR2-AN-2-1 + + A. Montoison, Montreal, 04/2018. +""", +:origin_notes => raw""" +problem 21 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS21, HS:21", ) get_hs21_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs21_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs21_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs21_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs21_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs21_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs21_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs211.jl b/src/Meta/hs211.jl index 8a997260d..295737b94 100644 --- a/src/Meta/hs211.jl +++ b/src/Meta/hs211.jl @@ -17,6 +17,30 @@ hs211_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 211. +""", + :origin_notes => raw""" +Problem 211 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:211", ) 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 4119b3d0a..090f73154 100644 --- a/src/Meta/hs219.jl +++ b/src/Meta/hs219.jl @@ -17,10 +17,38 @@ hs219_meta = Dict( :defined_everywhere => true, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Schittkowski problem number 219. + +Solution is: (1, 1, 0, 0) with f(x^*) = -1 +""", +:origin_notes => raw""" +Problem 219 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 + +classification LPR-T1-1 +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:219", ) get_hs219_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs219_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs219_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs219_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs219_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs219_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs219_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs22.jl b/src/Meta/hs22.jl index 22197aba2..a865525a9 100644 --- a/src/Meta/hs22.jl +++ b/src/Meta/hs22.jl @@ -17,6 +17,36 @@ hs22_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS22.SIF", + :notes => raw""" +Hock and Schittkowski problem number 22. + +classification QQR2-AN-2-2 + + A. Montoison, Montreal, 04/2018. +""", +:origin_notes => raw""" +problem 22 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS22, HS:22", ) get_hs22_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs22_ncon(; n::Integer = default_nvar, kwargs...) = 2 @@ -24,4 +54,4 @@ get_hs22_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs22_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs22_nequ(; n::Integer = default_nvar, kwargs...) = 0 get_hs22_nineq(; n::Integer = default_nvar, kwargs...) = 2 -get_hs22_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 +get_hs22_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs220.jl b/src/Meta/hs220.jl index 4d090ff67..846fdbf2f 100644 --- a/src/Meta/hs220.jl +++ b/src/Meta/hs220.jl @@ -17,6 +17,30 @@ hs220_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 220. +""", + :origin_notes => raw""" +Problem 220 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:220", ) 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 d2916dd1f..4b3003a5e 100644 --- a/src/Meta/hs221.jl +++ b/src/Meta/hs221.jl @@ -17,6 +17,30 @@ hs221_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 221. +""", + :origin_notes => raw""" +Problem 221 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:221", ) 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 b983c38ba..3638ffb30 100644 --- a/src/Meta/hs222.jl +++ b/src/Meta/hs222.jl @@ -17,6 +17,30 @@ hs222_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 222. +""", + :origin_notes => raw""" +Problem 222 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:222", ) 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 e4f809f10..296670b5f 100644 --- a/src/Meta/hs223.jl +++ b/src/Meta/hs223.jl @@ -17,6 +17,30 @@ hs223_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 223. +""", + :origin_notes => raw""" +Problem 223 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:223", ) 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 aad1a3693..e24708385 100644 --- a/src/Meta/hs224.jl +++ b/src/Meta/hs224.jl @@ -17,6 +17,30 @@ hs224_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 224. +""", + :origin_notes => raw""" +Problem 224 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:224", ) 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 abe93ef31..c87d2d489 100644 --- a/src/Meta/hs225.jl +++ b/src/Meta/hs225.jl @@ -17,6 +17,30 @@ hs225_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 225. +""", + :origin_notes => raw""" +Problem 225 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:225", ) 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 0177c0c14..d47951b11 100644 --- a/src/Meta/hs226.jl +++ b/src/Meta/hs226.jl @@ -17,6 +17,30 @@ hs226_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 226. +""", + :origin_notes => raw""" +Problem 226 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:226", ) 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 af3c9f6d9..0ffdd1e80 100644 --- a/src/Meta/hs227.jl +++ b/src/Meta/hs227.jl @@ -17,6 +17,30 @@ hs227_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 227. +""", + :origin_notes => raw""" +Problem 227 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:227", ) 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 790eee17d..58e8f2a5f 100644 --- a/src/Meta/hs228.jl +++ b/src/Meta/hs228.jl @@ -17,6 +17,30 @@ hs228_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 228. +""", + :origin_notes => raw""" +Problem 228 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:228", ) 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 d0190194a..f19668ed0 100644 --- a/src/Meta/hs229.jl +++ b/src/Meta/hs229.jl @@ -17,6 +17,30 @@ hs229_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 229. +""", + :origin_notes => raw""" +Problem 229 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:229", ) 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 a9ce1c19a..91ec5b298 100644 --- a/src/Meta/hs23.jl +++ b/src/Meta/hs23.jl @@ -17,6 +17,36 @@ hs23_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS23.SIF", + :notes => raw""" +Hock and Schittkowski problem number 23. + +classification QQR2-AN-2-5 + +A. Montoison, Montreal, 04/2018. +""", +:origin_notes => raw""" +problem 23 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS23, HS:23", ) get_hs23_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs23_ncon(; n::Integer = default_nvar, kwargs...) = 5 @@ -24,4 +54,4 @@ get_hs23_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs23_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs23_nequ(; n::Integer = default_nvar, kwargs...) = 0 get_hs23_nineq(; n::Integer = default_nvar, kwargs...) = 5 -get_hs23_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 +get_hs23_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs230.jl b/src/Meta/hs230.jl index 1ad60613f..9b965759d 100644 --- a/src/Meta/hs230.jl +++ b/src/Meta/hs230.jl @@ -17,6 +17,30 @@ hs230_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 230. +""", + :origin_notes => raw""" +Problem 230 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:230", ) 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 e27c367b8..f7e0bc0a1 100644 --- a/src/Meta/hs231.jl +++ b/src/Meta/hs231.jl @@ -17,6 +17,30 @@ hs231_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 231. +""", + :origin_notes => raw""" +Problem 231 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:231", ) 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 ad6aa6950..3dc5b5d74 100644 --- a/src/Meta/hs232.jl +++ b/src/Meta/hs232.jl @@ -17,6 +17,30 @@ hs232_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 232. +""", + :origin_notes => raw""" +Problem 232 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:232", ) 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 4e1d45e92..37280618c 100644 --- a/src/Meta/hs233.jl +++ b/src/Meta/hs233.jl @@ -17,6 +17,30 @@ hs233_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 233. +""", + :origin_notes => raw""" +Problem 233 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:233", ) 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 2a50d3950..efc870f5a 100644 --- a/src/Meta/hs234.jl +++ b/src/Meta/hs234.jl @@ -17,6 +17,30 @@ hs234_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 234. +""", + :origin_notes => raw""" +Problem 234 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:234", ) 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 116f07482..091fbf2cf 100644 --- a/src/Meta/hs235.jl +++ b/src/Meta/hs235.jl @@ -17,6 +17,30 @@ hs235_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 235. +""", + :origin_notes => raw""" +Problem 235 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:235", ) 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 0a7825546..8f11db378 100644 --- a/src/Meta/hs236.jl +++ b/src/Meta/hs236.jl @@ -17,6 +17,30 @@ hs236_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 236. +""", + :origin_notes => raw""" +Problem 236 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:236", ) 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 aaf6c49ad..ae5c7d5bb 100644 --- a/src/Meta/hs237.jl +++ b/src/Meta/hs237.jl @@ -17,6 +17,30 @@ hs237_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 237. +""", + :origin_notes => raw""" +Problem 237 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:237", ) 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 a97461a66..8c26ca49f 100644 --- a/src/Meta/hs238.jl +++ b/src/Meta/hs238.jl @@ -17,6 +17,30 @@ hs238_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 238. +""", + :origin_notes => raw""" +Problem 238 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:238", ) 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 b2c607abc..2d22644d1 100644 --- a/src/Meta/hs239.jl +++ b/src/Meta/hs239.jl @@ -17,6 +17,30 @@ hs239_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 239. +""", + :origin_notes => raw""" +Problem 239 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:239", ) 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 6c91b230c..536d6e596 100644 --- a/src/Meta/hs24.jl +++ b/src/Meta/hs24.jl @@ -17,10 +17,42 @@ hs24_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS24.SIF", + :notes => raw""" +Hock and Schittkowski problem number 24. + +classification OLR2-AN-2-3 + +classification PLR2-AN-2-3 + +A. Montoison, Montreal, 04/2018. +""", +:origin_notes => raw""" +problem 24 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS24, HS:24", ) get_hs24_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs24_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs24_nlin(; n::Integer = default_nvar, kwargs...) = 2 get_hs24_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs24_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs24_nineq(; n::Integer = default_nvar, kwargs...) = 2 +get_hs24_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs240.jl b/src/Meta/hs240.jl index a159c5229..8a5aa9394 100644 --- a/src/Meta/hs240.jl +++ b/src/Meta/hs240.jl @@ -17,6 +17,30 @@ hs240_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 240. +""", + :origin_notes => raw""" +Problem 240 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:240", ) 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 b1e8db19c..7de3f27a7 100644 --- a/src/Meta/hs241.jl +++ b/src/Meta/hs241.jl @@ -17,6 +17,30 @@ hs241_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 241. +""", + :origin_notes => raw""" +Problem 241 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:241", ) 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 b00a4277f..716d06263 100644 --- a/src/Meta/hs242.jl +++ b/src/Meta/hs242.jl @@ -17,6 +17,30 @@ hs242_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 242. +""", + :origin_notes => raw""" +Problem 242 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:242", ) 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 e7c47041d..a3eba172e 100644 --- a/src/Meta/hs243.jl +++ b/src/Meta/hs243.jl @@ -17,6 +17,30 @@ hs243_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 243. +""", + :origin_notes => raw""" +Problem 243 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:243", ) 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 112b93e54..02941628b 100644 --- a/src/Meta/hs244.jl +++ b/src/Meta/hs244.jl @@ -17,6 +17,30 @@ hs244_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 244. +""", + :origin_notes => raw""" +Problem 244 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:244", ) 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 a66ba6cc9..591100ed4 100644 --- a/src/Meta/hs245.jl +++ b/src/Meta/hs245.jl @@ -17,6 +17,30 @@ hs245_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 245. +""", + :origin_notes => raw""" +Problem 245 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:245", ) 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 ac0cb9084..182de5cab 100644 --- a/src/Meta/hs246.jl +++ b/src/Meta/hs246.jl @@ -17,6 +17,30 @@ hs246_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 246. +""", + :origin_notes => raw""" +Problem 246 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:246", ) 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 2551f8aa9..4352fa77c 100644 --- a/src/Meta/hs248.jl +++ b/src/Meta/hs248.jl @@ -17,6 +17,30 @@ hs248_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 248. +""", + :origin_notes => raw""" +Problem 248 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:248", ) 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 01e52464a..e17d46663 100644 --- a/src/Meta/hs249.jl +++ b/src/Meta/hs249.jl @@ -17,6 +17,30 @@ hs249_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 249. +""", + :origin_notes => raw""" +Problem 249 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:249", ) 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 32559dffc..9b0cdb2bc 100644 --- a/src/Meta/hs25.jl +++ b/src/Meta/hs25.jl @@ -17,10 +17,42 @@ hs25_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS25.SIF", + :notes => raw""" +Hock and Schittkowski problem number 25. + +A nonlinear least squares problem with bounds. + +classification SBR2-AN-3-0 + +A. Montoison, Montreal, 04/2018. +""", +:origin_notes => raw""" +problem 25 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: J-M Collin, Mar 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS25, HS:25", ) get_hs25_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs25_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs25_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs25_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs25_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs25_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs25_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs250.jl b/src/Meta/hs250.jl index deadc3d85..7027ef229 100644 --- a/src/Meta/hs250.jl +++ b/src/Meta/hs250.jl @@ -17,6 +17,30 @@ hs250_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 250. +""", + :origin_notes => raw""" +Problem 250 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:250", ) 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 eb6ae64b5..acd5fe396 100644 --- a/src/Meta/hs251.jl +++ b/src/Meta/hs251.jl @@ -17,6 +17,30 @@ hs251_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 251. +""", + :origin_notes => raw""" +Problem 251 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:251", ) 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 630d2a066..6babf20a3 100644 --- a/src/Meta/hs252.jl +++ b/src/Meta/hs252.jl @@ -17,6 +17,30 @@ hs252_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 252. +""", + :origin_notes => raw""" +Problem 252 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:252", ) 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 b22779fae..dfeba50f0 100644 --- a/src/Meta/hs253.jl +++ b/src/Meta/hs253.jl @@ -17,6 +17,30 @@ hs253_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 253. +""", + :origin_notes => raw""" +Problem 253 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:253", ) 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 e8c8f87c5..69da25fb3 100644 --- a/src/Meta/hs254.jl +++ b/src/Meta/hs254.jl @@ -17,6 +17,30 @@ hs254_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 254. +""", + :origin_notes => raw""" +Problem 254 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:254", ) 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 9afe941c3..6d87851af 100644 --- a/src/Meta/hs255.jl +++ b/src/Meta/hs255.jl @@ -17,6 +17,30 @@ hs255_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 255. +""", + :origin_notes => raw""" +Problem 255 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:255", ) 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 119db811a..4d49d99f0 100644 --- a/src/Meta/hs256.jl +++ b/src/Meta/hs256.jl @@ -17,6 +17,30 @@ hs256_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 256. +""", + :origin_notes => raw""" +Problem 256 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:256", ) 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 62611f60d..34044715c 100644 --- a/src/Meta/hs257.jl +++ b/src/Meta/hs257.jl @@ -17,6 +17,30 @@ hs257_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 257. +""", + :origin_notes => raw""" +Problem 257 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:257", ) 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 4c9cf9b61..d6c20541b 100644 --- a/src/Meta/hs258.jl +++ b/src/Meta/hs258.jl @@ -17,6 +17,30 @@ hs258_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 258. +""", + :origin_notes => raw""" +Problem 258 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:258", ) 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 c9e781c9e..24c513afd 100644 --- a/src/Meta/hs259.jl +++ b/src/Meta/hs259.jl @@ -17,6 +17,30 @@ hs259_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 259. +""", + :origin_notes => raw""" +Problem 259 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:259", ) 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 ea0c855b3..e0778fdd8 100644 --- a/src/Meta/hs26.jl +++ b/src/Meta/hs26.jl @@ -17,10 +17,40 @@ hs26_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS26.SIF", + :notes => raw""" +Hock and Schittkowski problem number 26. + +classification OOR2-AY-3-1 + +A. Cebola, Curitiba 10/2016. +""", +:origin_notes => raw""" +problem 26 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS26, HS:26", ) get_hs26_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs26_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs26_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs26_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs26_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs26_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs26_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs260.jl b/src/Meta/hs260.jl index be42a3770..582e10f62 100644 --- a/src/Meta/hs260.jl +++ b/src/Meta/hs260.jl @@ -17,6 +17,30 @@ hs260_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 260. +""", + :origin_notes => raw""" +Problem 260 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:260", ) 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 3db4b7455..b296a1815 100644 --- a/src/Meta/hs261.jl +++ b/src/Meta/hs261.jl @@ -17,6 +17,30 @@ hs261_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 261. +""", + :origin_notes => raw""" +Problem 261 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:261", ) 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 2b2207517..215a4fcd6 100644 --- a/src/Meta/hs262.jl +++ b/src/Meta/hs262.jl @@ -17,6 +17,30 @@ hs262_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 262. +""", + :origin_notes => raw""" +Problem 262 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:262", ) 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 fb321d38b..b77e0e8bb 100644 --- a/src/Meta/hs263.jl +++ b/src/Meta/hs263.jl @@ -17,6 +17,30 @@ hs263_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 263. +""", + :origin_notes => raw""" +Problem 263 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:263", ) 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 2732b3588..3bc35e1a6 100644 --- a/src/Meta/hs264.jl +++ b/src/Meta/hs264.jl @@ -17,6 +17,30 @@ hs264_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 264. +""", + :origin_notes => raw""" +Problem 264 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:264", ) 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 4b4ff1611..4df6daaa2 100644 --- a/src/Meta/hs265.jl +++ b/src/Meta/hs265.jl @@ -17,6 +17,30 @@ hs265_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Hock and Schittkowski problem number 265. +""", + :origin_notes => raw""" +Problem 265 in + K. Schittkowski, + More Test Examples for Nonlinear Programming Codes, + Lectures Notes in Economics and Mathematical Systems 282, + Springer Verlag, Heidelberg, 1987. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:265", ) 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 3f0bc3236..4c83f987c 100644 --- a/src/Meta/hs27.jl +++ b/src/Meta/hs27.jl @@ -17,10 +17,40 @@ hs27_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS27.SIF", + :notes => raw""" +Hock and Schittkowski problem number 27. + +classification SQR2-AN-3-1 + +A. Cebola, Curitiba 10/2016. +""", +:origin_notes => raw""" +problem 27 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS27, HS:27", ) get_hs27_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs27_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs27_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs27_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs27_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs27_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs27_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs28.jl b/src/Meta/hs28.jl index bc8e6b42b..16713492d 100644 --- a/src/Meta/hs28.jl +++ b/src/Meta/hs28.jl @@ -17,6 +17,38 @@ hs28_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS28.SIF", + :notes => raw""" +Hock and Schittkowski problem number 28. + +classification SLR2-AY-3-1 + +classification QLR2-AN-3-1 + +A. Montoison, Montreal, 04/2018. +""", +:origin_notes => raw""" +problem 28 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS28, HS:28", ) get_hs28_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs28_ncon(; n::Integer = default_nvar, kwargs...) = 1 @@ -24,4 +56,4 @@ get_hs28_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs28_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs28_nequ(; n::Integer = default_nvar, kwargs...) = 1 get_hs28_nineq(; n::Integer = default_nvar, kwargs...) = 0 -get_hs28_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 +get_hs28_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs29.jl b/src/Meta/hs29.jl index 1a09a137b..6ec86ac7a 100644 --- a/src/Meta/hs29.jl +++ b/src/Meta/hs29.jl @@ -17,10 +17,42 @@ hs29_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS29.SIF", + :notes => raw""" +Hock and Schittkowski problem number 29. + +classification OQR2-AN-3-1 + +classification PQR2-AN-3-1 + +A. Montoison, Montreal, 04/2018. +""", +:origin_notes => raw""" +problem 29 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS29, HS:29", ) get_hs29_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs29_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs29_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs29_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs29_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs29_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs29_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs3.jl b/src/Meta/hs3.jl index 9a42334be..2a0801108 100644 --- a/src/Meta/hs3.jl +++ b/src/Meta/hs3.jl @@ -17,10 +17,40 @@ hs3_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS3.SIF", + :notes => raw""" +Hock and Schittkowski problem number 3. + +classification QBR2-AN-2-0 + +N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 3 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS3, HS:3", ) get_hs3_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs3_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs3_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs3_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs3_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs3_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs3_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs30.jl b/src/Meta/hs30.jl index 1beba6aca..3368caa65 100644 --- a/src/Meta/hs30.jl +++ b/src/Meta/hs30.jl @@ -17,6 +17,36 @@ hs30_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS30.SIF", + :notes => raw""" +Hock and Schittkowski problem number 30. + +classification QQR2-AN-3-1 + +A. Montoison, Montreal, 04/2018. +""", +:origin_notes => raw""" +problem 30 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS30, HS:30", ) get_hs30_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs30_ncon(; n::Integer = default_nvar, kwargs...) = 1 @@ -24,4 +54,4 @@ get_hs30_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs30_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs30_nequ(; n::Integer = default_nvar, kwargs...) = 0 get_hs30_nineq(; n::Integer = default_nvar, kwargs...) = 1 -get_hs30_nls_nequ(; n::Integer = default_nvar, kwargs...) = 3 +get_hs30_nls_nequ(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file diff --git a/src/Meta/hs31.jl b/src/Meta/hs31.jl index 4548e5682..979126898 100644 --- a/src/Meta/hs31.jl +++ b/src/Meta/hs31.jl @@ -17,10 +17,40 @@ hs31_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS31.SIF", + :notes => raw""" +Hock and Schittkowski problem number 31. + +classification QQR2-AN-3-1 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 31 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: N. Gould, Dec 1989. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS31, HS:31", ) get_hs31_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs31_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs31_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs31_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs31_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs31_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs31_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs316.jl b/src/Meta/hs316.jl index e379cbcec..a28f23aeb 100644 --- a/src/Meta/hs316.jl +++ b/src/Meta/hs316.jl @@ -17,10 +17,37 @@ hs316_meta = Dict( :defined_everywhere => missing, :origin => :academic, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Schittkowski problem number 316. + + classification QQR2-AN-2-1 + +M. Gollier, Montréal, 05/2023 +""", +:origin_notes => raw""" +Problem 316 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:316", ) get_hs316_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs316_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs316_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs316_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs316_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs316_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs316_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs317.jl b/src/Meta/hs317.jl index ed5649ee2..a6e6be951 100644 --- a/src/Meta/hs317.jl +++ b/src/Meta/hs317.jl @@ -17,10 +17,38 @@ hs317_meta = Dict( :defined_everywhere => missing, :origin => :academic, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Schittkowski problem number 317. + + classification QQR2-AN-2-1 + +M. Gollier, Montréal, 05/2023 +""", +:origin_notes => raw""" +Problem 317 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:317", ) get_hs317_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs317_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs317_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs317_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs317_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs317_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs317_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs318.jl b/src/Meta/hs318.jl index ab97ede70..f06e32815 100644 --- a/src/Meta/hs318.jl +++ b/src/Meta/hs318.jl @@ -17,10 +17,38 @@ hs318_meta = Dict( :defined_everywhere => missing, :origin => :academic, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Schittkowski problem number 318. + + classification QQR2-AN-2-1 + +M. Gollier, Montréal, 05/2023 +""", +:origin_notes => raw""" +Problem 318 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:318", ) get_hs318_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs318_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs318_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs318_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs318_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs318_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs318_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs319.jl b/src/Meta/hs319.jl index 158ae0ec1..c0ee33804 100644 --- a/src/Meta/hs319.jl +++ b/src/Meta/hs319.jl @@ -17,10 +17,38 @@ hs319_meta = Dict( :defined_everywhere => missing, :origin => :academic, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Schittkowski problem number 319. + + classification QQR2-AN-2-1 + +M. Gollier, Montréal, 05/2023 +""", +:origin_notes => raw""" +Problem 319 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:319", ) get_hs319_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs319_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs319_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs319_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs319_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs319_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs319_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs32.jl b/src/Meta/hs32.jl index 2f8938df1..cfa59bd96 100644 --- a/src/Meta/hs32.jl +++ b/src/Meta/hs32.jl @@ -17,10 +17,42 @@ hs32_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS32.SIF", + :notes => raw""" +Hock and Schittkowski problem number 32. + +classification SOR2-AY-3-2 + +classification QPR2-AN-3-2 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 32 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: J-M COLLIN, April 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS32, HS:32", ) get_hs32_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs32_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs32_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs32_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs32_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs32_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs32_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs320.jl b/src/Meta/hs320.jl index d92c1ab93..358634c59 100644 --- a/src/Meta/hs320.jl +++ b/src/Meta/hs320.jl @@ -17,10 +17,38 @@ hs320_meta = Dict( :defined_everywhere => missing, :origin => :academic, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Schittkowski problem number 320. + + classification QQR2-AN-2-1 + +M. Gollier, Montréal, 05/2023 +""", +:origin_notes => raw""" +Problem 320 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:320", ) get_hs320_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs320_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs320_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs320_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs320_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs320_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs320_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs321.jl b/src/Meta/hs321.jl index 578097829..2616e79b8 100644 --- a/src/Meta/hs321.jl +++ b/src/Meta/hs321.jl @@ -17,10 +17,38 @@ hs321_meta = Dict( :defined_everywhere => missing, :origin => :academic, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Schittkowski problem number 321. + + classification QQR2-AN-2-1 + +M. Gollier, Montréal, 05/2023 +""", +:origin_notes => raw""" +Problem 321 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:321", ) get_hs321_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs321_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs321_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs321_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs321_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs321_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs321_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs322.jl b/src/Meta/hs322.jl index d1f298cac..a2f9decbb 100644 --- a/src/Meta/hs322.jl +++ b/src/Meta/hs322.jl @@ -17,10 +17,38 @@ hs322_meta = Dict( :defined_everywhere => missing, :origin => :academic, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Schittkowski problem number 322. + + classification QQR2-AN-2-1 + +M. Gollier, Montréal, 05/2023 +""", +:origin_notes => raw""" +Problem 322 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:322", ) get_hs322_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs322_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs322_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs322_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs322_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs322_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs322_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs33.jl b/src/Meta/hs33.jl index fcc629374..67444ea56 100644 --- a/src/Meta/hs33.jl +++ b/src/Meta/hs33.jl @@ -17,10 +17,42 @@ hs33_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS33.SIF", + :notes => raw""" +Hock and Schittkowski problem number 33. + +classification OQR2-AN-3-2 + +classification PQR2-AN-3-2 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 33 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS33, HS:33", ) get_hs33_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs33_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs33_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs33_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs33_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs33_nineq(; n::Integer = default_nvar, kwargs...) = 2 +get_hs33_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs34.jl b/src/Meta/hs34.jl index 71bf315e3..ae539cd2a 100644 --- a/src/Meta/hs34.jl +++ b/src/Meta/hs34.jl @@ -17,10 +17,42 @@ hs34_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS34.SIF", + :notes => raw""" +Hock and Schittkowski problem number 34. + +classification LOR2-AN-3-2 + +classification LGR2-AN-3-2 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 34 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS34, HS:34", ) get_hs34_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs34_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs34_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs34_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs34_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs34_nineq(; n::Integer = default_nvar, kwargs...) = 2 +get_hs34_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs35.jl b/src/Meta/hs35.jl index b54dca236..994d73ccc 100644 --- a/src/Meta/hs35.jl +++ b/src/Meta/hs35.jl @@ -17,10 +17,40 @@ hs35_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS35.SIF", + :notes => raw""" +Hock and Schittkowski problem number 35. + +classification QLR2-AN-3-1 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 35 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS35, HS:35", ) get_hs35_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs35_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs35_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs35_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs35_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs35_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs35_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs36.jl b/src/Meta/hs36.jl index 0ad9a5b50..f0e6401ea 100644 --- a/src/Meta/hs36.jl +++ b/src/Meta/hs36.jl @@ -17,10 +17,42 @@ hs36_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS36.SIF", + :notes => raw""" +Hock and Schittkowski problem number 36. + +classification OLR2-AN-3-1 + +classification PLR2-AN-3-1 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 36 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS36, HS:36", ) get_hs36_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs36_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs36_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs36_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs36_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs36_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs36_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs37.jl b/src/Meta/hs37.jl index dc913263e..e6249c5b7 100644 --- a/src/Meta/hs37.jl +++ b/src/Meta/hs37.jl @@ -17,10 +17,42 @@ hs37_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS37.SIF", + :notes => raw""" +Hock and Schittkowski problem number 37. + +classification OLR2-AN-3-2 + +classification PLR2-AN-3-2 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 37 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS37, HS:37", ) get_hs37_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs37_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs37_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs37_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs37_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs37_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs37_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs378.jl b/src/Meta/hs378.jl index d0c7da881..268ace4ac 100644 --- a/src/Meta/hs378.jl +++ b/src/Meta/hs378.jl @@ -17,10 +17,38 @@ hs378_meta = Dict( :defined_everywhere => missing, :origin => :academic, :implementation => :both, + :url => "https://doi.org/10.1007/978-3-642-61582-5", + :notes => raw""" +Schittkowski problem number 378. + + classification OOR2-AN-10-3 + +M. Gollier, Montréal, 05/2023 +""", +:origin_notes => raw""" +Problem 378 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 +""", + :reference => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987} +} + """, + + :lib => "HS2:378", ) get_hs378_nvar(; n::Integer = default_nvar, kwargs...) = 10 get_hs378_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs378_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs378_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs378_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs378_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs378_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs38.jl b/src/Meta/hs38.jl index cb9e53cb5..d4ea277ef 100644 --- a/src/Meta/hs38.jl +++ b/src/Meta/hs38.jl @@ -17,10 +17,44 @@ hs38_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS38.SIF", + :notes => raw""" +Hock and Schittkowski problem number 38. + +Colville #4 test problem + +classification OBR2-AN-4-0 + +classification PLR2-AN-4-0 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 38 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS38, HS:38", ) get_hs38_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs38_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs38_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs38_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs38_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs38_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs38_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs39.jl b/src/Meta/hs39.jl index e71e5989d..4e35e491d 100644 --- a/src/Meta/hs39.jl +++ b/src/Meta/hs39.jl @@ -17,10 +17,40 @@ hs39_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS39.SIF", + :notes => raw""" +Hock and Schittkowski problem number 39. + +classification LOR2-AN-4-2 + +D. Cabral, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 39 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS39, HS:39", ) get_hs39_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs39_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs39_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs39_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs39_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs39_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs39_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs4.jl b/src/Meta/hs4.jl index a11f51a2a..a7fddad95 100644 --- a/src/Meta/hs4.jl +++ b/src/Meta/hs4.jl @@ -17,10 +17,40 @@ hs4_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS4.SIF", + :notes => raw""" +Hock and Schittkowski problem number 4. + +classification OBR2-AN-2-0 + +N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 4 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS4, HS:4", ) get_hs4_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs4_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs4_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs4_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs4_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs4_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs4_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs40.jl b/src/Meta/hs40.jl index 32f30e2cd..546499dc3 100644 --- a/src/Meta/hs40.jl +++ b/src/Meta/hs40.jl @@ -17,10 +17,40 @@ hs40_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS40.SIF", + :notes => raw""" +Hock and Schittkowski problem number 40. + +classification OOR2-AN-4-3 + +D. Cabral, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 40 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS40, HS:40", ) get_hs40_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs40_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs40_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs40_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs40_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs40_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs40_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs41.jl b/src/Meta/hs41.jl index 73f233a47..69c28b894 100644 --- a/src/Meta/hs41.jl +++ b/src/Meta/hs41.jl @@ -17,10 +17,42 @@ hs41_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS41.SIF", + :notes => raw""" +Hock and Schittkowski problem number 41. + +classification OLR2-AN-4-1 + +classification PLR2-AN-4-1 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 41 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS41, HS:41", ) get_hs41_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs41_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs41_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs41_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs41_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs41_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs41_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs42.jl b/src/Meta/hs42.jl index 9f865a61a..420b46810 100644 --- a/src/Meta/hs42.jl +++ b/src/Meta/hs42.jl @@ -17,6 +17,38 @@ hs42_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS42.SIF", + :notes => raw""" +Hock and Schittkowski problem number 42. + +classification SQR2-AN-4-2 + +classification QQR2-AN-4-1 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 42 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS42, HS:42", ) get_hs42_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs42_ncon(; n::Integer = default_nvar, kwargs...) = 2 @@ -24,4 +56,4 @@ get_hs42_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs42_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs42_nequ(; n::Integer = default_nvar, kwargs...) = 2 get_hs42_nineq(; n::Integer = default_nvar, kwargs...) = 0 -get_hs42_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 +get_hs42_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file diff --git a/src/Meta/hs43.jl b/src/Meta/hs43.jl index 4f17964b7..0ba24dd5c 100644 --- a/src/Meta/hs43.jl +++ b/src/Meta/hs43.jl @@ -17,10 +17,42 @@ hs43_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS43.SIF", + :notes => raw""" +Hock and Schittkowski problem number 43. + +The Rosen-Suzuki test problem. + +classification QQR2-AN-4-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 43 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS43, HS:43", ) get_hs43_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs43_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs43_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs43_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs43_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs43_nineq(; n::Integer = default_nvar, kwargs...) = 3 +get_hs43_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file diff --git a/src/Meta/hs44.jl b/src/Meta/hs44.jl index 34538e631..dcb24bbd6 100644 --- a/src/Meta/hs44.jl +++ b/src/Meta/hs44.jl @@ -17,10 +17,40 @@ hs44_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS44.SIF", + :notes => raw""" +Hock and Schittkowski problem number 44. + +classification QLR2-AN-4-6 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 44 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph.L. Toint, October 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS44, HS:44", ) get_hs44_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs44_ncon(; n::Integer = default_nvar, kwargs...) = 6 get_hs44_nlin(; n::Integer = default_nvar, kwargs...) = 6 get_hs44_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs44_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs44_nineq(; n::Integer = default_nvar, kwargs...) = 6 +get_hs44_nineq(; n::Integer = default_nvar, kwargs...) = 6 \ No newline at end of file diff --git a/src/Meta/hs45.jl b/src/Meta/hs45.jl index 785926f97..66b5d5f93 100644 --- a/src/Meta/hs45.jl +++ b/src/Meta/hs45.jl @@ -17,10 +17,42 @@ hs45_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS45.SIF", + :notes => raw""" +Hock and Schittkowski problem number 45. + +classification OBR2-AN-5-0 + +classification PBR2-AN-5-0 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 45 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph.L. Toint, October 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS45, HS:45", ) get_hs45_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs45_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs45_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs45_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs45_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs45_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs45_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs46.jl b/src/Meta/hs46.jl index d2df1103a..7b06a46cb 100644 --- a/src/Meta/hs46.jl +++ b/src/Meta/hs46.jl @@ -17,10 +17,42 @@ hs46_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS46.SIF", + :notes => raw""" +Hock and Schittkowski problem number 46. + +classification OOR2-AY-5-2 + +classification PGR2-AN-5-2 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 46 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph.L. Toint, October 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS46, HS:46", ) get_hs46_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs46_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs46_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs46_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs46_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs46_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs46_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs47.jl b/src/Meta/hs47.jl index 4c7a1dcc0..809ef1304 100644 --- a/src/Meta/hs47.jl +++ b/src/Meta/hs47.jl @@ -17,10 +17,42 @@ hs47_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS47.SIF", + :notes => raw""" +Hock and Schittkowski problem number 47. + +classification OOR2-AY-5-3 + +classification PPR2-AN-5-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 47 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS47, HS:47", ) get_hs47_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs47_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs47_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs47_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs47_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs47_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs47_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs48.jl b/src/Meta/hs48.jl index 0fe4ade10..deecc4a5c 100644 --- a/src/Meta/hs48.jl +++ b/src/Meta/hs48.jl @@ -17,6 +17,38 @@ hs48_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS48.SIF", + :notes => raw""" +Hock and Schittkowski problem number 48. + +classification SLR2-AY-5-2 + +classification QLR2-AN-5-2 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 48 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS48, HS:48", ) get_hs48_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs48_ncon(; n::Integer = default_nvar, kwargs...) = 2 @@ -24,4 +56,4 @@ get_hs48_nlin(; n::Integer = default_nvar, kwargs...) = 2 get_hs48_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs48_nequ(; n::Integer = default_nvar, kwargs...) = 2 get_hs48_nineq(; n::Integer = default_nvar, kwargs...) = 0 -get_hs48_nls_nequ(; n::Integer = default_nvar, kwargs...) = 3 +get_hs48_nls_nequ(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file diff --git a/src/Meta/hs49.jl b/src/Meta/hs49.jl index 08e1126a8..f8d506906 100644 --- a/src/Meta/hs49.jl +++ b/src/Meta/hs49.jl @@ -17,10 +17,42 @@ hs49_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS49.SIF", + :notes => raw""" +Hock and Schittkowski problem number 49. + +classification OLR2-AY-5-2 + +classification PLR2-AN-5-2 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 49 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS49, HS:49", ) get_hs49_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs49_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs49_nlin(; n::Integer = default_nvar, kwargs...) = 2 get_hs49_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs49_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs49_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs49_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs5.jl b/src/Meta/hs5.jl index ac72a0efe..e7ad80157 100644 --- a/src/Meta/hs5.jl +++ b/src/Meta/hs5.jl @@ -17,10 +17,40 @@ hs5_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS5.SIF", + :notes => raw""" +Hock and Schittkowski problem number 5. + +classification OBR2-AN-2-0 + +N. Antunes, Curitiba, 10/2016. +""", +:origin_notes => raw""" +problem 5 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS5, HS:5", ) get_hs5_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs5_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs5_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs5_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs5_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs5_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs5_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs50.jl b/src/Meta/hs50.jl index e8323185f..773c52594 100644 --- a/src/Meta/hs50.jl +++ b/src/Meta/hs50.jl @@ -17,10 +17,42 @@ hs50_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS50.SIF", + :notes => raw""" +Hock and Schittkowski problem number 50. + +classification OLR2-AY-5-3 + +classification PLR2-AN-5-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 50 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS50, HS:50", ) get_hs50_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs50_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs50_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs50_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs50_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs50_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs50_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs51.jl b/src/Meta/hs51.jl index 508fe2212..7d0fbd3c4 100644 --- a/src/Meta/hs51.jl +++ b/src/Meta/hs51.jl @@ -17,6 +17,38 @@ hs51_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS51.SIF", + :notes => raw""" +Hock and Schittkowski problem number 51. + +classification QLR2-AY-5-3 + +classification QLR2-AN-5-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 51 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS51, HS:51", ) get_hs51_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs51_ncon(; n::Integer = default_nvar, kwargs...) = 3 @@ -24,4 +56,4 @@ get_hs51_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs51_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs51_nequ(; n::Integer = default_nvar, kwargs...) = 3 get_hs51_nineq(; n::Integer = default_nvar, kwargs...) = 0 -get_hs51_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 +get_hs51_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file diff --git a/src/Meta/hs52.jl b/src/Meta/hs52.jl index 8d1519a4a..998aa31ac 100644 --- a/src/Meta/hs52.jl +++ b/src/Meta/hs52.jl @@ -16,6 +16,38 @@ hs52_meta = Dict( :is_feasible => missing, :defined_everywhere => missing, :origin => :unknown, + :url => "https://bitbucket.org/optrove/sif/src/master/HS52.SIF", + :notes => raw""" +Hock and Schittkowski problem number 52. + +classification QLR2-AY-5-3 + +classification QLR2-AN-5-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 52 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS52, HS:52", :implementation => :both, ) get_hs52_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -24,4 +56,4 @@ get_hs52_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs52_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs52_nequ(; n::Integer = default_nvar, kwargs...) = 3 get_hs52_nineq(; n::Integer = default_nvar, kwargs...) = 0 -get_hs52_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 +get_hs52_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file diff --git a/src/Meta/hs53.jl b/src/Meta/hs53.jl index 3cf913cff..97813ab63 100644 --- a/src/Meta/hs53.jl +++ b/src/Meta/hs53.jl @@ -17,6 +17,38 @@ hs53_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS53.SIF", + :notes => raw""" +Hock and Schittkowski problem number 53. + +classification QLR2-AY-5-3 + +classification QLR2-AN-5-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 53 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS53, HS:53", ) get_hs53_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs53_ncon(; n::Integer = default_nvar, kwargs...) = 3 @@ -24,4 +56,4 @@ get_hs53_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs53_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs53_nequ(; n::Integer = default_nvar, kwargs...) = 3 get_hs53_nineq(; n::Integer = default_nvar, kwargs...) = 0 -get_hs53_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 +get_hs53_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file diff --git a/src/Meta/hs54.jl b/src/Meta/hs54.jl index a5ce2f83c..9187549da 100644 --- a/src/Meta/hs54.jl +++ b/src/Meta/hs54.jl @@ -17,10 +17,43 @@ hs54_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS54.SIF", + :notes => raw""" +Hock and Schittkowski problem number 54. + +classification OLR2-AN-6-1 + +classification GLR2-AN-6-1 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 54, incorrectly stated in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. +Betts problem 11.7, JOTA 21, 1977, pp.137-174. + +SIF input: A.R. Conn, April 1990 and Nick Gould, October 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS54, HS:54", ) get_hs54_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs54_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs54_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs54_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs54_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs54_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs54_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs55.jl b/src/Meta/hs55.jl index bf392e86a..70f0dd97f 100644 --- a/src/Meta/hs55.jl +++ b/src/Meta/hs55.jl @@ -17,10 +17,42 @@ hs55_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS55.SIF", + :notes => raw""" +Hock and Schittkowski problem number 54. + +classification OLR2-AN-6-6 + +classification GLR2-AN-6-1 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 55 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS55, HS:55", ) get_hs55_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs55_ncon(; n::Integer = default_nvar, kwargs...) = 6 get_hs55_nlin(; n::Integer = default_nvar, kwargs...) = 6 get_hs55_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs55_nequ(; n::Integer = default_nvar, kwargs...) = 6 -get_hs55_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs55_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs56.jl b/src/Meta/hs56.jl index 612b94845..8eacdedda 100644 --- a/src/Meta/hs56.jl +++ b/src/Meta/hs56.jl @@ -17,6 +17,37 @@ hs56_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS56.SIF", + :notes => + raw""" +classification OOR2-AN-7-4 + +classification PGR2-AN-7-4 + +A. Montoison, Montreal, 05/2018. +""", + :origin_notes => raw""" +problem 56 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS56, HS:56", ) 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 a3adaedb3..00dc29996 100644 --- a/src/Meta/hs57.jl +++ b/src/Meta/hs57.jl @@ -17,6 +17,36 @@ hs57_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS57.SIF", + :notes => raw""" +classification SQR2-AN-2-1 + +classification SQR-AN-2-1 + +A. Montoison, Montreal, 05/2018. +""", + :origin_notes => raw""" +problem 57 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, April 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS57, HS:57", ) 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 1aa5fff54..b23609190 100644 --- a/src/Meta/hs59.jl +++ b/src/Meta/hs59.jl @@ -17,10 +17,42 @@ hs59_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS59.SIF", + :notes => raw""" +Hock and Schittkowski problem number 54. + +classification OQR2-AN-2-3 + +classification GLR2-AN-6-1 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 59 (corrected) in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn and Ph.L. Toint, November 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS59, HS:59", ) get_hs59_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs59_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs59_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs59_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs59_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs59_nineq(; n::Integer = default_nvar, kwargs...) = 3 +get_hs59_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file diff --git a/src/Meta/hs6.jl b/src/Meta/hs6.jl index a93a546e4..51e801f78 100644 --- a/src/Meta/hs6.jl +++ b/src/Meta/hs6.jl @@ -17,6 +17,34 @@ hs6_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS6.SIF", + :notes => raw""" +classification QQR2-AN-2-1 + + D. Orban, Montreal, 04/2016. +""", + :origin_notes => raw""" +problem 6 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS6, HS:6", ) 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 6a46dcd03..db6fee846 100644 --- a/src/Meta/hs60.jl +++ b/src/Meta/hs60.jl @@ -17,6 +17,39 @@ hs60_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS60.SIF", + :notes => + raw""" +Hock and Schittkowski problem number 60. + +classification OOR2-AY-3-1 + +classification PPR2-AN-3-1 + +A. Montoison, Montreal, 05/2018. +""", + :origin_notes => raw""" +problem 60 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: J-M Collin, April 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS60, HS:60", ) 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 a3139a6fb..a8af2f33f 100644 --- a/src/Meta/hs61.jl +++ b/src/Meta/hs61.jl @@ -17,6 +17,35 @@ hs61_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS61.SIF", + :notes => raw""" +Hock and Schittkowski problem number 61. + +classification QQR2-AN-3-2 +A. Montoison, Montreal, 05/2018. +""", + :origin_notes => raw""" +problem 61 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph.L. Toint, November 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS61, HS:61", ) 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 2641c05ed..257e30f67 100644 --- a/src/Meta/hs62.jl +++ b/src/Meta/hs62.jl @@ -17,6 +17,37 @@ hs62_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS62.SIF", + :notes => raw""" +Hock and Schittkowski problem number 62. + +classification OLR2-AY-3-1 + +classification GLR2-AN-3-1 +A. Montoison, Montreal, 05/2018. +""", + :origin_notes => raw""" +problem 62 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: J-M Collin and Ph. Toint, April 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS62, HS:62", ) 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 6ff67b299..d3b15fdf1 100644 --- a/src/Meta/hs63.jl +++ b/src/Meta/hs63.jl @@ -17,6 +17,37 @@ hs63_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS63.SIF", + :notes => raw""" +Hock and Schittkowski problem number 63. + +classification QQR2-AY-3-2 + +classification QQR2-AN-3-2 +A. Montoison, Montreal, 05/2018. +""", + :origin_notes => raw""" +problem 63 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: J-M COLLIN, April 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS63, HS:63", ) 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 f977a17e1..f4879625b 100644 --- a/src/Meta/hs64.jl +++ b/src/Meta/hs64.jl @@ -17,10 +17,42 @@ hs64_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS64.SIF", + :notes => raw""" +Hock and Schittkowski problem number 64. + +classification OOR2-AN-3-1 + +classification PPR2-AN-3-1 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 64 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: N. Gould, Dec 1989. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS64, HS:64", ) get_hs64_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs64_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs64_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs64_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs64_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs64_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs64_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs65.jl b/src/Meta/hs65.jl index 9c06334f0..e995b2e5b 100644 --- a/src/Meta/hs65.jl +++ b/src/Meta/hs65.jl @@ -17,10 +17,40 @@ hs65_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS65.SIF", + :notes => raw""" +Hock and Schittkowski problem number 65. + +classification QQR2-AN-3-1 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 65 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph. Toint and Nick Gould, June 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS65, HS:65", ) get_hs65_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs65_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs65_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs65_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs65_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs65_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs65_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs66.jl b/src/Meta/hs66.jl index b0ef1637d..fc5f264ac 100644 --- a/src/Meta/hs66.jl +++ b/src/Meta/hs66.jl @@ -17,10 +17,42 @@ hs66_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS66.SIF", + :notes => raw""" +Hock and Schittkowski problem number 66. + +classification LOR2-AN-3-2 + +classification LGR2-AN-3-2 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 66 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: B Baudson, March 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS66, HS:66", ) get_hs66_nvar(; n::Integer = default_nvar, kwargs...) = 3 get_hs66_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs66_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs66_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs66_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs66_nineq(; n::Integer = default_nvar, kwargs...) = 2 +get_hs66_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs68.jl b/src/Meta/hs68.jl index c6c4868d6..6abffb944 100644 --- a/src/Meta/hs68.jl +++ b/src/Meta/hs68.jl @@ -17,10 +17,47 @@ hs68_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS68.SIF", + :notes => raw""" +Hock and Schittkowski problem number 68. + +This is a cost optimal inspection plan. + +classification OOR2-MN-4-2 + +classification GGR-P1-1 +""", +:origin_notes => raw""" +Original source: +E. von Collani, Kostenoptimale Prufplane bei laufender +Kontrolle eines normalverteilten Merkmals, Dissertation, +Institut fur Angewandte Mathematik und Statistik, Universitat Wurzburg, 1978. + +problem 68 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Nick Gould, August 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS68, HS:68", ) get_hs68_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs68_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs68_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs68_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs68_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs68_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs68_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs69.jl b/src/Meta/hs69.jl index 3ab8d65d0..84ba7935f 100644 --- a/src/Meta/hs69.jl +++ b/src/Meta/hs69.jl @@ -17,10 +17,47 @@ hs69_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS69.SIF", + :notes => raw""" +Hock and Schittkowski problem number 69. + +This is a cost optimal inspection plan. + +classification OOR2-MN-4-2 + +classification GGR-P1-2 +""", +:origin_notes => raw""" +Original source: +E. von Collani, Kostenoptimale Prufplane bei laufender +Kontrolle eines normalverteilten Merkmals, Dissertation, +Institut fur Angewandte Mathematik und Statistik, Universitat Wurzburg, 1978. + +problem 69 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Nick Gould, August 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS69, HS:69", ) get_hs69_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs69_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs69_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs69_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs69_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs69_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs69_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs7.jl b/src/Meta/hs7.jl index 7362ad1fb..13d20b179 100644 --- a/src/Meta/hs7.jl +++ b/src/Meta/hs7.jl @@ -17,10 +17,40 @@ hs7_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS7.SIF", + :notes => raw""" +Hock and Schittkowski problem number 7. + +classification OOR2-AN-2-1 + +D. Orban, Montreal, 04/2016. +""", +:origin_notes => raw""" +problem 7 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS7, HS:7", ) get_hs7_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs7_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs7_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs7_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs7_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs7_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs7_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs70.jl b/src/Meta/hs70.jl index 923764ebc..6a91777cd 100644 --- a/src/Meta/hs70.jl +++ b/src/Meta/hs70.jl @@ -17,10 +17,44 @@ hs70_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS70.SIF", + :notes => raw""" +Hock and Schittkowski problem number 70. + +This problem arises in water flow routing. + +classification SQR2-MN-4-1 + +classification SQR2-AN-4-1 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 70 incorrectly stated in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Nick Gould, August 1991, modified May 2024 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS70, HS:70", ) get_hs70_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs70_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs70_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs70_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs70_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs70_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs70_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs71.jl b/src/Meta/hs71.jl index 14ef92e55..08b26d0ff 100644 --- a/src/Meta/hs71.jl +++ b/src/Meta/hs71.jl @@ -17,10 +17,42 @@ hs71_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS71.SIF", + :notes => raw""" +Hock and Schittkowski problem number 71. + +classification OOR2-AY-4-2 + +classification PPR2-AN-4-2 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 71 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: B Baudson, Apr 1989. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS71, HS:71", ) get_hs71_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs71_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs71_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs71_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs71_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs71_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs71_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs72.jl b/src/Meta/hs72.jl index 43a66971e..3c6cb7de1 100644 --- a/src/Meta/hs72.jl +++ b/src/Meta/hs72.jl @@ -17,10 +17,44 @@ hs72_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS72.SIF", + :notes => raw""" +Hock and Schittkowski problem number 72. + +An optimal sample sizing problem. + +classification LOR2-MN-4-2 + +classification LPR2-AN-4-2 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 72 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, March 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS72, HS:72", ) get_hs72_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs72_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs72_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs72_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs72_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs72_nineq(; n::Integer = default_nvar, kwargs...) = 2 +get_hs72_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs73.jl b/src/Meta/hs73.jl index 82400e7aa..c5fa00407 100644 --- a/src/Meta/hs73.jl +++ b/src/Meta/hs73.jl @@ -17,10 +17,44 @@ hs73_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS73.SIF", + :notes => raw""" +Hock and Schittkowski problem number 73. + +A cattle feed problem + +classification LOR2-MN-4-3 + +classification LGI-AN-4-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 73 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: B Debarsy, Apr 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS73, HS:73", ) get_hs73_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs73_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs73_nlin(; n::Integer = default_nvar, kwargs...) = 2 get_hs73_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs73_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs73_nineq(; n::Integer = default_nvar, kwargs...) = 2 +get_hs73_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs74.jl b/src/Meta/hs74.jl index 3f4d51e04..40e56618d 100644 --- a/src/Meta/hs74.jl +++ b/src/Meta/hs74.jl @@ -17,10 +17,42 @@ hs74_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS74.SIF", + :notes => raw""" +Hock and Schittkowski problem number 74. + +classification OOR2-AY-4-5 + +classification PGR-AN-4-5 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 74 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: B Debarsy, Apr 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS74, HS:74", ) get_hs74_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs74_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs74_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs74_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs74_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs74_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs74_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs75.jl b/src/Meta/hs75.jl index b719c1501..b689a9afd 100644 --- a/src/Meta/hs75.jl +++ b/src/Meta/hs75.jl @@ -17,10 +17,42 @@ hs75_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS75.SIF", + :notes => raw""" +Hock and Schittkowski problem number 75. + +classification OOR2-AY-4-5 + +classification PGR-AN-4-5 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 75 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: B Debarsy, Apr 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS75, HS:75", ) get_hs75_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs75_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs75_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs75_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs75_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs75_nineq(; n::Integer = default_nvar, kwargs...) = 1 +get_hs75_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file diff --git a/src/Meta/hs76.jl b/src/Meta/hs76.jl index 6f8800540..ed920a7c3 100644 --- a/src/Meta/hs76.jl +++ b/src/Meta/hs76.jl @@ -17,10 +17,42 @@ hs76_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS76.SIF", + :notes => raw""" +Hock and Schittkowski problem number 76. + +classification QLR2-AN-4-3 + +classification QLR-AN-4-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 76 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, March 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS76, HS:76", ) get_hs76_nvar(; n::Integer = default_nvar, kwargs...) = 4 get_hs76_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs76_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs76_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs76_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs76_nineq(; n::Integer = default_nvar, kwargs...) = 3 +get_hs76_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file diff --git a/src/Meta/hs77.jl b/src/Meta/hs77.jl index 46f7d045c..3dc63998d 100644 --- a/src/Meta/hs77.jl +++ b/src/Meta/hs77.jl @@ -17,10 +17,42 @@ hs77_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS77.SIF", + :notes => raw""" +Hock and Schittkowski problem number 77. + +classification OOR2-AY-5-2 + +classification PGR-AN-5-2 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 77 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A. Conn and Ph. Toint, March 1991 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS77, HS:77", ) get_hs77_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs77_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs77_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs77_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs77_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs77_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs77_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs78.jl b/src/Meta/hs78.jl index 11dafd4fe..479f0d9c3 100644 --- a/src/Meta/hs78.jl +++ b/src/Meta/hs78.jl @@ -17,10 +17,42 @@ hs78_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS78.SIF", + :notes => raw""" +Hock and Schittkowski problem number 78. + +classification OOR2-AN-5-3 + +classification PPR-AN-5-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 78 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: B.Debarsy, Jan 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS78, HS:78", ) get_hs78_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs78_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs78_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs78_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs78_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs78_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs78_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs79.jl b/src/Meta/hs79.jl index e48a80034..91aa9d4e5 100644 --- a/src/Meta/hs79.jl +++ b/src/Meta/hs79.jl @@ -17,10 +17,42 @@ hs79_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS79.SIF", + :notes => raw""" +Hock and Schittkowski problem number 79. + +classification OOR2-AY-5-3 + +classification PPR-AN-5-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 79 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: B Debarsy, Apr 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS79, HS:79", ) get_hs79_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs79_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs79_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs79_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs79_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs79_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs79_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs8.jl b/src/Meta/hs8.jl index 01b7006b4..8ff11d8d0 100644 --- a/src/Meta/hs8.jl +++ b/src/Meta/hs8.jl @@ -17,10 +17,42 @@ hs8_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS8.SIF", + :notes => raw""" +Hock and Schittkowski problem number 8. + +classification CQR2-AN-2-2 + +classification OOR2-AN-2-1 + +D. Orban, Montreal, 04/2016. +""", +:origin_notes => raw""" +problem 8 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS8, HS:8", ) get_hs8_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs8_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs8_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs8_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs8_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs8_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs8_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs80.jl b/src/Meta/hs80.jl index 91fb5a839..ac33e8eba 100644 --- a/src/Meta/hs80.jl +++ b/src/Meta/hs80.jl @@ -17,10 +17,42 @@ hs80_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS80.SIF", + :notes => raw""" +Hock and Schittkowski problem number 80. + +classification OOR2-AN-5-3 + +classification GPR-AN-5-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 80 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: B.Debarsy, Jan 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS80, HS:80", ) get_hs80_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs80_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs80_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs80_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs80_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs80_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs80_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs81.jl b/src/Meta/hs81.jl index 729105bcf..48bc33cd9 100644 --- a/src/Meta/hs81.jl +++ b/src/Meta/hs81.jl @@ -17,10 +17,48 @@ hs81_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS81.SIF", + :notes => raw""" +Hock and Schittkowski problem number 81. + +classification OOR2-AN-5-3 + +classification GPR-AN-5-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +Problem 81 in + W. Hock and K. Schittkowski, + Test examples for nonlinear programming codes, + Lectures Notes in Economics and Mathematical Systems 187, + Springer Verlag, Heidelberg, 1981. + +problem 80 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: B.Debarsy, Jan 1990. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS81, HS:81", ) get_hs81_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs81_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs81_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs81_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs81_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs81_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs81_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs83.jl b/src/Meta/hs83.jl index b905db9d2..410ef2fe3 100644 --- a/src/Meta/hs83.jl +++ b/src/Meta/hs83.jl @@ -17,10 +17,42 @@ hs83_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS83.SIF", + :notes => raw""" +Hock and Schittkowski problem number 83. + +classification QQR2-AN-5-3 + +classification QQR-AN-5-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 83 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: B Baudson, Apr 1989. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS83, HS:83", ) get_hs83_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs83_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs83_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs83_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs83_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs83_nineq(; n::Integer = default_nvar, kwargs...) = 3 +get_hs83_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file diff --git a/src/Meta/hs84.jl b/src/Meta/hs84.jl index c0828062d..d516750f6 100644 --- a/src/Meta/hs84.jl +++ b/src/Meta/hs84.jl @@ -17,10 +17,42 @@ hs84_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS84.SIF", + :notes => raw""" +Hock and Schittkowski problem number 84. + +classification QQR2-AN-5-3 + +classification QQR-AN-5-3 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 84 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn, March 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS84, HS:84", ) get_hs84_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs84_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs84_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs84_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs84_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs84_nineq(; n::Integer = default_nvar, kwargs...) = 3 +get_hs84_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file diff --git a/src/Meta/hs86.jl b/src/Meta/hs86.jl index b0fc52cb9..51d81f8a3 100644 --- a/src/Meta/hs86.jl +++ b/src/Meta/hs86.jl @@ -17,10 +17,42 @@ hs86_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS86.SIF", + :notes => raw""" +Hock and Schittkowski problem number 86. + +classification OLR2-AN-5-10 + +classification PLR-AN-5-10 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 86 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Nick Gould, August 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS86, HS:86", ) get_hs86_nvar(; n::Integer = default_nvar, kwargs...) = 5 get_hs86_ncon(; n::Integer = default_nvar, kwargs...) = 10 get_hs86_nlin(; n::Integer = default_nvar, kwargs...) = 10 get_hs86_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs86_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs86_nineq(; n::Integer = default_nvar, kwargs...) = 10 +get_hs86_nineq(; n::Integer = default_nvar, kwargs...) = 10 \ No newline at end of file diff --git a/src/Meta/hs87.jl b/src/Meta/hs87.jl index 0d36e4a2f..552eacdde 100644 --- a/src/Meta/hs87.jl +++ b/src/Meta/hs87.jl @@ -17,10 +17,48 @@ hs87_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS87.SIF", + :notes => raw""" +Hock and Schittkowski problem number 87. + +Optimization of an electrical network (EDF) by P. Huard. + +classification OOI2-MN-6-4 + +classification PLR-AN-5-10 +""", +:origin_notes => raw""" +problem 87 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. +Note: There are two variants described in the papers +D.H. Himmelblau "Applied nonlinear programming", +McGraw-Hill, New-York, 1972, problem 15, +and +A.R. Colville, "A comparative study on nonlinear programming", +IBM Scientific Center Report 320-2949, New York, 1968, problem 6. + +SIF input: Nick Gould, August 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS87, HS:87", ) get_hs87_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs87_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs87_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs87_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs87_nequ(; n::Integer = default_nvar, kwargs...) = 4 -get_hs87_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs87_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs9.jl b/src/Meta/hs9.jl index a46377e51..fd561d69f 100644 --- a/src/Meta/hs9.jl +++ b/src/Meta/hs9.jl @@ -17,10 +17,40 @@ hs9_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS9.SIF", + :notes => raw""" +Hock and Schittkowski problem number 9. + +classification OLR2-AN-2-1 + +A. Cebola, Curitiba , 10/2016. +""", +:origin_notes => raw""" +problem 9 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: A.R. Conn March 1990 +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS9, HS:9", ) get_hs9_nvar(; n::Integer = default_nvar, kwargs...) = 2 get_hs9_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs9_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs9_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs9_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs9_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs9_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/hs93.jl b/src/Meta/hs93.jl index 14f857547..0958ac00f 100644 --- a/src/Meta/hs93.jl +++ b/src/Meta/hs93.jl @@ -17,10 +17,44 @@ hs93_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS93.SIF", + :notes => raw""" +Hock and Schittkowski problem number 93. + +A transformer design problem. + +classification OOR2-MY-6-2 + +classification PPR-AN-6-2 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 93 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Nick Gould, August 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS93, HS:93", ) get_hs93_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs93_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs93_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs93_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs93_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs93_nineq(; n::Integer = default_nvar, kwargs...) = 2 +get_hs93_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file diff --git a/src/Meta/hs95.jl b/src/Meta/hs95.jl index d7faa692e..2252c8cae 100644 --- a/src/Meta/hs95.jl +++ b/src/Meta/hs95.jl @@ -17,10 +17,42 @@ hs95_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS95.SIF", + :notes => raw""" +Hock and Schittkowski problem number 95. + +classification LQR2-AN-6-4 + +classification PPR-AN-6-4 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 95 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph. Toint, April 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS95, HS:95", ) get_hs95_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs95_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs95_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs95_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs95_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs95_nineq(; n::Integer = default_nvar, kwargs...) = 4 +get_hs95_nineq(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file diff --git a/src/Meta/hs96.jl b/src/Meta/hs96.jl index 213a81dd3..33a3ca460 100644 --- a/src/Meta/hs96.jl +++ b/src/Meta/hs96.jl @@ -17,10 +17,42 @@ hs96_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS96.SIF", + :notes => raw""" +Hock and Schittkowski problem number 96. + +classification LQR2-AN-6-4 + +classification PPR-AN-6-4 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 96 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph. Toint, April 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS96, HS:96", ) get_hs96_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs96_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs96_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs96_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs96_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs96_nineq(; n::Integer = default_nvar, kwargs...) = 4 +get_hs96_nineq(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file diff --git a/src/Meta/hs97.jl b/src/Meta/hs97.jl index 1d6287ba4..88598e533 100644 --- a/src/Meta/hs97.jl +++ b/src/Meta/hs97.jl @@ -17,10 +17,42 @@ hs97_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS97.SIF", + :notes => raw""" +Hock and Schittkowski problem number 97. + +classification LQR2-AN-6-4 + +classification PPR-AN-6-4 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 97 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph. Toint, April 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS97, HS:97", ) get_hs97_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs97_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs97_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs97_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs97_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs97_nineq(; n::Integer = default_nvar, kwargs...) = 4 +get_hs97_nineq(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file diff --git a/src/Meta/hs98.jl b/src/Meta/hs98.jl index 79fff74c3..d06450bfd 100644 --- a/src/Meta/hs98.jl +++ b/src/Meta/hs98.jl @@ -17,10 +17,42 @@ hs98_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS98.SIF", + :notes => raw""" +Hock and Schittkowski problem number 98. + +classification LQR2-AN-6-4 + +classification PPR-AN-6-4 + +A. Montoison, Montreal, 05/2018. +""", +:origin_notes => raw""" +problem 98 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph. Toint, April 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS98, HS:98", ) get_hs98_nvar(; n::Integer = default_nvar, kwargs...) = 6 get_hs98_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs98_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs98_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs98_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs98_nineq(; n::Integer = default_nvar, kwargs...) = 4 +get_hs98_nineq(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file diff --git a/src/Meta/hs99.jl b/src/Meta/hs99.jl index 1021d1e45..7733cf1ce 100644 --- a/src/Meta/hs99.jl +++ b/src/Meta/hs99.jl @@ -17,10 +17,40 @@ hs99_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/HS99.SIF", + :notes => raw""" +Hock and Schittkowski problem number 99. + +classification OOR2-AN-7-2 + +classification PPR-AN-6-4 +""", +:origin_notes => raw""" +problem 99 in +W. Hock and K. Schittkowski, +"Test examples for nonlinear programming codes", +Lectures Notes in Economics and Mathematical Systems 187, Springer +Verlag, Heidelberg, 1981. + +SIF input: Ph. Toint, April 1991. +""", + :reference => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} + """, + + :lib => "CUTEst:HS99, HS:99", ) get_hs99_nvar(; n::Integer = default_nvar, kwargs...) = 7 get_hs99_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs99_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs99_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs99_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs99_nineq(; n::Integer = default_nvar, kwargs...) = 0 +get_hs99_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file diff --git a/src/Meta/indef_mod.jl b/src/Meta/indef_mod.jl index 626ded6b8..7f608e0a3 100644 --- a/src/Meta/indef_mod.jl +++ b/src/Meta/indef_mod.jl @@ -17,6 +17,37 @@ indef_mod_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "http://www.cs.cas.cz/matonoha/download/V1081.pdf", + :notes => raw""" +Problem 37 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +based on the original problem by N. Gould + +classification OUR2-AN-V-0 + +J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, +} + """, + :lib => "Luksan:37", ) 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 189257556..11d2d6fcd 100644 --- a/src/Meta/integreq.jl +++ b/src/Meta/integreq.jl @@ -17,6 +17,39 @@ integreq_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/INTEGREQ.SIF", + :notes => raw""" +The discrete integral problem. + +classification NOR2-AN-V-V +""", + :origin_notes => raw""" +problem 165 (p. 74) in + A.R. Buckley, + "Test functions for unconstrained minimization", + TR 1989CS-3, Mathematics, statistics and computing centre, + Dalhousie University, Halifax (CDN), 1989. + +Problem 29 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. + +SIF input: Ph. Toint, Feb 1990. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:INTEGREQ", ) 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 dfc72fe2d..8f15dbf6a 100644 --- a/src/Meta/jennrichsampson.jl +++ b/src/Meta/jennrichsampson.jl @@ -17,6 +17,29 @@ jennrichsampson_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1145/355934.355936", + :notes => raw""" + +""", + :origin_notes => raw""" +problem 6 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "MGH:6", ) 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 fa699bf13..05082d93c 100644 --- a/src/Meta/kirby2.jl +++ b/src/Meta/kirby2.jl @@ -17,6 +17,63 @@ kirby2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/KIRBY2.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/kirby2.dat + +NIST/ITL StRD +Dataset Name: Kirby2 (Kirby2.dat) + +File Format: ASCII + Starting Values (lines 41 to 45) + Certified Values (lines 41 to 50) + Data (lines 61 to 211) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study involving + scanning electron microscope line with standards. + +Reference: Kirby, R., NIST (197?). + Scanning electron microscope line width standards. + +Data: 1 Response (y) + 1 Predictor (x) + 151 Observations + Average Level of Difficulty + Observed Data + +Model: Rational Class (quadratic/quadratic) + 5 Parameters (b1 to b5) + + y = (b1 + b2*x + b3*x**2) / + (1 + b4*x + b5*x**2) + e + +T. Migot, Montreal, 2023. + +NIST Data fitting problem KIRBY2 given as an inconsistent set of +nonlinear equations. +Fit: y = (b1 + b2*x + b3*x**2) /(1 + b4*x + b5*x**2) + e + +classification NOR2-MN-5-151 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Kirby, R., NIST (197?). +Scanning electron microscope line width standards. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:KIRBY2, NIST:Kirby2", ) 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 6438acb24..c9c30b3b4 100644 --- a/src/Meta/kowosb.jl +++ b/src/Meta/kowosb.jl @@ -17,6 +17,35 @@ kowosb_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/KOWOSB.SIF", + :notes => raw""" +A problem arising in the analysis of kinetic data for an enzyme +reaction, known under the name of Kowalik and Osborne problem +in 4 variables. + +classification SUR2-MN-4-0 +""", + :origin_notes => raw""" +Problem 15 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:KOWOSB", ) 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 12a1dfc9b..a3efa5095 100644 --- a/src/Meta/lanczos1.jl +++ b/src/Meta/lanczos1.jl @@ -17,6 +17,64 @@ lanczos1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/LANCZOS1.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/lanczos1.dat + +NIST/ITL StRD +Dataset Name: lanczos1 (lanczos1.dat) + +File Format: ASCII + Starting Values (lines 41 to 42) + Certified Values (lines 41 to 47) + Data (lines 61 to 74) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study regarding + dental research in monomolecular adsorption. The + response variable is volume, and the predictor + variable is pressure. + +Reference: Misra, D., NIST (1978). + Dental Research Monomolecular Adsorption Study. + +Data: 1 Response Variable (y = volume) + 1 Predictor Variable (x = pressure) + 14 Observations + Lower Level of Difficulty + Observed Data + +Model: Exponential Class + 2 Parameters (b1 and b2) + + y = b1*(1-exp[-b2*x]) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem LANCZOS1 given as an inconsistent set of +nonlinear equations. +Fit: y = b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x) + e + +classification NOR2-MN-6-24 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Lanczos, C. (1956). +Applied Analysis. Englewood Cliffs, NJ: Prentice Hall, pp. 272-280. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@book{Lanczos1956, + author = {Lanczos, Cornelius}, + title = {Applied Analysis}, + publisher = {Prentice Hall}, + address = {Englewood Cliffs, NJ}, + year = {1956} +} +""", + :lib => "CUTEst:LANCZOS1, NIST:lanczos1", ) 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 bc1781c76..d4852a01e 100644 --- a/src/Meta/lanczos2.jl +++ b/src/Meta/lanczos2.jl @@ -17,6 +17,65 @@ lanczos2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/LANCZOS2.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/lanczos2.dat + +Dataset Name: Lanczos2 (Lanczos2.dat) + +File Format: ASCII + Starting Values (lines 41 to 46) + Certified Values (lines 41 to 51) + Data (lines 61 to 84) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are taken from an example discussed in + Lanczos (1956). The data were generated to 6-digits + of accuracy using + f(x) = 0.0951*exp(-x) + 0.8607*exp(-3*x) + + 1.5576*exp(-5*x). + +Reference: Lanczos, C. (1956). + Applied Analysis. + Englewood Cliffs, NJ: Prentice Hall, pp. 272-280. + +Data: 1 Response (y) + 1 Predictor (x) + 24 Observations + Average Level of Difficulty + Generated Data + +Model: Exponential Class + 6 Parameters (b1 to b6) + + y = b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem LANCZOS2 given as an inconsistent set of +nonlinear equations. +Fit: y = b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x) + e + +classification NOR2-MN-6-24 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Lanczos, C. (1956). +Applied Analysis. Englewood Cliffs, NJ: Prentice Hall, pp. 272-280. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@book{Lanczos1956, + author = {Lanczos, Cornelius}, + title = {Applied Analysis}, + publisher = {Prentice Hall}, + address = {Englewood Cliffs, NJ}, + year = {1956} +} +""", + :lib => "CUTEst:LANCZOS2, NIST:Lanczos2", ) 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 6ebe1b698..e963b1304 100644 --- a/src/Meta/lanczos3.jl +++ b/src/Meta/lanczos3.jl @@ -17,6 +17,66 @@ lanczos3_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/LANCZOS3.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/lanczos3.dat + +NIST/ITL StRD +Dataset Name: Lanczos3 (Lanczos3.dat) + +File Format: ASCII + Starting Values (lines 41 to 46) + Certified Values (lines 41 to 51) + Data (lines 61 to 84) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are taken from an example discussed in + Lanczos (1956). The data were generated to 5-digits + of accuracy using + f(x) = 0.0951*exp(-x) + 0.8607*exp(-3*x) + + 1.5576*exp(-5*x). + +Reference: Lanczos, C. (1956). + Applied Analysis. + Englewood Cliffs, NJ: Prentice Hall, pp. 272-280. + +Data: 1 Response (y) + 1 Predictor (x) + 24 Observations + Lower Level of Difficulty + Generated Data + +Model: Exponential Class + 6 Parameters (b1 to b6) + + y = b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem LANCZOS3 given as an inconsistent set of +nonlinear equations. +Fit: y = b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x) + e + +classification NOR2-MN-6-24 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Lanczos, C. (1956). +Applied Analysis. Englewood Cliffs, NJ: Prentice Hall, pp. 272-280. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@book{Lanczos1956, + author = {Lanczos, Cornelius}, + title = {Applied Analysis}, + publisher = {Prentice Hall}, + address = {Englewood Cliffs, NJ}, + year = {1956} +} +""", + :lib => "CUTEst:LANCZOS3, NIST:Lanczos3", ) 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 2c5ea073e..2c0344623 100644 --- a/src/Meta/liarwhd.jl +++ b/src/Meta/liarwhd.jl @@ -17,6 +17,53 @@ liarwhd_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/LIARWHD.SIF", + :notes => raw""" +G. Li, +"The secant/finite difference algorithm for solving sparse +nonlinear systems of equations", +SIAM Journal on Optimization, (to appear), 1990. + +classification SUR2-AN-V-0 + +This is a simplified version of problem NONDIA. + +Problem 38 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +based on the original problem by N. Gould + +classification OUR2-AN-V-0 + +J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +G. Li, +"The secant/finite difference algorithm for solving sparse +nonlinear systems of equations", +SIAM Journal on Optimization, (to appear), 1990. + +SIF input: Ph. Toint, Aug 1990. +""", + :reference => raw""" +@article{Li1988SIAMJNA, + author = {Li, Guangye}, + title = {The Secant/Finite Difference Algorithm for Solving Sparse Nonlinear Systems of Equations}, + journal = {SIAM Journal on Numerical Analysis}, + year = {1988}, + volume = {25}, + number = {5}, + pages = {1181--1196}, + doi = {10.1137/0725067} +} + """, + + :lib => "CUTEst:LIARWHD, Luksan:38", ) 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 518486cfe..d16b76ee6 100644 --- a/src/Meta/lincon.jl +++ b/src/Meta/lincon.jl @@ -17,6 +17,22 @@ lincon_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://github.com/JuliaSmoothOptimizers/NLPModelsTest.jl", + :notes => raw""" + +""", + :origin_notes => raw""" +Test problem used in NLPModelsTest.jl. +""", + :reference => raw""" +@misc{NLPModelsTestjl, + author = {{JuliaSmoothOptimizers}}, + title = {{NLPModelsTest.jl}: Tests for Nonlinear Programming Models}, + howpublished = {\url{https://github.com/JuliaSmoothOptimizers/NLPModelsTest.jl}}, + year = {2020} +} +""", + :lib => "", ) 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 c64db1ad6..306812796 100644 --- a/src/Meta/linsv.jl +++ b/src/Meta/linsv.jl @@ -17,6 +17,22 @@ linsv_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://github.com/JuliaSmoothOptimizers/NLPModelsTest.jl", + :notes => raw""" + +""", + :origin_notes => raw""" +Test problem used in NLPModelsTest.jl. +""", + :reference => raw""" +@misc{NLPModelsTestjl, + author = {{JuliaSmoothOptimizers}}, + title = {{NLPModelsTest.jl}: Tests for Nonlinear Programming Models}, + howpublished = {\url{https://github.com/JuliaSmoothOptimizers/NLPModelsTest.jl}}, + year = {2020} +} +""", + :lib => "", ) 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 5be9612ac..d538c26c9 100644 --- a/src/Meta/marine.jl +++ b/src/Meta/marine.jl @@ -17,6 +17,41 @@ marine_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/MARINE.SIF", + :notes => raw""" +Marine Population Dynamics Problem + Collocation formulation + + Given observations of ns stages of a marine species over n timesteps, + minimize the loss between the observation and the computed law of paraneters : growth, mortality and number of specimens (g,m,x) + +classification OOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 6 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) + +Alexander S. Bondarenko - Summer 1998 +COPS 2.0 - September 2000 +COPS 3.0 - November 2002 +COPS 3.1 - March 2004 + +SIF input: Nick Gould, November 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:MARINE, COPS:6", ) 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 8f255c124..1c2a53491 100644 --- a/src/Meta/methanol.jl +++ b/src/Meta/methanol.jl @@ -17,6 +17,48 @@ methanol_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :jump, + :url => "https://bitbucket.org/optrove/sif/src/master/METHANOL.SIF", + :notes => raw""" +Methanol-to-Hydrocarbons Problem +Collocation formulation + +Determine the reaction coefficients for the conversion of methanol into +various hydrocarbons. The nonlinear model that describes the process is +y_1' = - (2 theta_2 + theta_3 + theta_4 - theta_1 y_2 / d ) y_1 +y_2' = theta_3 y_1 + theta_1 y_1 ( theta_1 y_1 - y_2 ) / d +y_3' = theta_4 y_1 + theta_1 y_1 ( theta_5 y_1 + y_2 ) / d +where d = (theta_2 + theta_5) y_1 + y_2 and the theta_i are positive, +with given initial conditions. The problem is to minimize +sum{i=1,16} || y(tau_i,theta) - z_i||^2 +where the z_i are concentration measurements for y at times tau_i (i=1,16) + +classification OOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 13 in the COPS (Version 2) collection of +E. Dolan and J. More' +see "Benchmarking Optimization Software with COPS" +Argonne National Labs Technical Report ANL/MCS-246 (2000) + +Michael Merritt - Summer 2000 +COPS 2.0 - September 2000 +COPS 3.0 - November 2002 +COPS 3.1 - March 2004 + +SIF input: Nick Gould, November 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:METHANOL, COPS:13", ) 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 21a3d9cea..16d0738b7 100644 --- a/src/Meta/meyer3.jl +++ b/src/Meta/meyer3.jl @@ -17,6 +17,34 @@ meyer3_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/MEYER3.SIF", + :notes => raw""" +Meyer function + +classification SUR2-RN-3-0 +""", + :origin_notes => raw""" +Problem 10 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley #29 (p. 73). + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:MEYER3", ) 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 03a106691..a6dba74a7 100644 --- a/src/Meta/mgh01feas.jl +++ b/src/Meta/mgh01feas.jl @@ -17,6 +17,22 @@ mgh01feas_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://github.com/JuliaSmoothOptimizers/NLPModelsTest.jl", + :notes => raw""" + +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@misc{NLPModelsTestjl, + author = {{JuliaSmoothOptimizers}}, + title = {{NLPModelsTest.jl}: Tests for Nonlinear Programming Models}, + howpublished = {\url{https://github.com/JuliaSmoothOptimizers/NLPModelsTest.jl}}, + year = {2020} +} +""", + :lib => "", ) 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 4c369962f..b5204292b 100644 --- a/src/Meta/mgh09.jl +++ b/src/Meta/mgh09.jl @@ -17,6 +17,74 @@ mgh09_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/MGH09.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/mgh09.dat + +NIST/ITL StRD +Dataset Name: MGH09 (MGH09.dat) + +File Format: ASCII + Starting Values (lines 41 to 44) + Certified Values (lines 41 to 49) + Data (lines 61 to 71) + +Procedure: Nonlinear Least Squares Regression + +Description: This problem was found to be difficult for some very + good algorithms. There is a local minimum at (+inf, + -14.07..., -inf, -inf) with final sum of squares + 0.00102734.... + + See More, J. J., Garbow, B. S., and Hillstrom, K. E. + (1981). Testing unconstrained optimization software. + ACM Transactions on Mathematical Software. 7(1): + pp. 17-41. + +Reference: Kowalik, J.S., and M. R. Osborne, (1978). + Methods for Unconstrained Optimization Problems. + New York, NY: Elsevier North-Holland. + +Data: 1 Response (y) + 1 Predictor (x) + 11 Observations + Higher Level of Difficulty + Generated Data + +Model: Rational Class (linear/quadratic) + 4 Parameters (b1 to b4) + + y = b1*(x**2+x*b2) / (x**2+x*b3+b4) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem MGH09 given as an inconsistent set of +nonlinear equations. +Fit: y = b1*(x**2+x*b2) / (x**2+x*b3+b4) + e + +classification NOR2-MN-4-11 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Kowalik, J.S., and M. R. Osborne, (1978). +Methods for Unconstrained Optimization Problems. +New York, NY: Elsevier North-Holland. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:MGH09, MGH:9, NIST:MGH09", ) 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 760a65c29..112f75ba1 100644 --- a/src/Meta/mgh10.jl +++ b/src/Meta/mgh10.jl @@ -17,6 +17,76 @@ mgh10_meta = Dict( :defined_everywhere => false, :origin => :academic, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/MGH10.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/mgh10.dat + +NIST/ITL StRD +Dataset Name: MGH10 (MGH10.dat) + +File Format: ASCII + Starting Values (lines 41 to 43) + Certified Values (lines 41 to 48) + Data (lines 61 to 76) + +Procedure: Nonlinear Least Squares Regression + +Description: This problem was found to be difficult for some very + good algorithms. + + See More, J. J., Garbow, B. S., and Hillstrom, K. E. + (1981). Testing unconstrained optimization software. + ACM Transactions on Mathematical Software. 7(1): + pp. 17-41. + +Reference: Meyer, R. R. (1970). + Theoretical and computational aspects of nonlinear + regression. In Nonlinear Programming, Rosen, + Mangasarian and Ritter (Eds). + New York, NY: Academic Press, pp. 465-486. + +Data: 1 Response (y) + 1 Predictor (x) + 16 Observations + Higher Level of Difficulty + Generated Data + +Model: Exponential Class + 3 Parameters (b1 to b3) + + y = b1 * exp[b2/(x+b3)] + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem MGH10 given as an inconsistent set of +nonlinear equations. +Fit: y = b1 * exp[b2/(x+b3)] + e + +classification NOR2-MN-3-16 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Meyer, R. R. (1970). +Theoretical and computational aspects of nonlinear +regression. In Nonlinear Programming, Rosen, +Mangasarian and Ritter (Eds). +New York, NY: Academic Press, pp. 465-486. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:MGH10, MGH:10, NIST:MGH10", ) 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 93f942526..ef5889820 100644 --- a/src/Meta/mgh17.jl +++ b/src/Meta/mgh17.jl @@ -17,6 +17,75 @@ mgh17_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/MGH17.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/mgh17.dat + +NIST/ITL StRD +Dataset Name: MGH17 (MGH17.dat) + +File Format: ASCII + Starting Values (lines 41 to 45) + Certified Values (lines 41 to 50) + Data (lines 61 to 93) + +Procedure: Nonlinear Least Squares Regression + +Description: This problem was found to be difficult for some very + good algorithms. + + See More, J. J., Garbow, B. S., and Hillstrom, K. E. + (1981). Testing unconstrained optimization software. + ACM Transactions on Mathematical Software. 7(1): + pp. 17-41. + +Reference: Osborne, M. R. (1972). + Some aspects of nonlinear least squares + calculations. In Numerical Methods for Nonlinear + Optimization, Lootsma (Ed). + New York, NY: Academic Press, pp. 171-189. + +Data: 1 Response (y) + 1 Predictor (x) + 33 Observations + Average Level of Difficulty + Generated Data + +Model: Exponential Class + 5 Parameters (b1 to b5) + + y = b1 + b2*exp[-x*b4] + b3*exp[-x*b5] + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem MGH17 given as an inconsistent set of +nonlinear equations. +Fit: y = b1 + b2*exp[-x*b4] + b3*exp[-x*b5] + e + +classification NOR2-MN-5-33 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Osborne, M. R. (1972). +Some aspects of nonlinear least squares calculations. +In Numerical Methods for Nonlinear Optimization, Lootsma (Ed). +New York, NY: Academic Press, pp. 171-189. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:MGH17, MGH:17, NIST:MGH17", ) 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 3d43a7989..800d4af16 100644 --- a/src/Meta/minsurf.jl +++ b/src/Meta/minsurf.jl @@ -17,6 +17,41 @@ minsurf_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :jump, + :url => "https://bitbucket.org/optrove/sif/src/master/MINSURF.SIF", + :notes => raw""" +Minimal surface with obstacle problem + +Find the surface with minimal area, given boundary conditions, +and above an obstacle. + +Variable dimension full rank linear problem +A version of the minimum surface problem +on the unit square with simple boundary conditions. + +classification OBR2-AN-V-V + +classification OXR2-MY-64-0 +""", + :origin_notes => raw""" +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) + +SIF input: Ph. Toint, Jan 1991. +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:MINSURF, COPS:17", ) get_minsurf_nvar(; n::Integer = default_nvar, diff --git a/src/Meta/misra1a.jl b/src/Meta/misra1a.jl index bdac2a7ce..d9b950364 100644 --- a/src/Meta/misra1a.jl +++ b/src/Meta/misra1a.jl @@ -17,6 +17,64 @@ misra1a_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/MISRA1A.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/misra1a.dat + +NIST/ITL StRD +Dataset Name: misra1a (misra1a.dat) + +File Format: ASCII + Starting Values (lines 41 to 42) + Certified Values (lines 41 to 47) + Data (lines 61 to 74) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study regarding + dental research in monomolecular adsorption. The + response variable is volume, and the predictor + variable is pressure. + +Reference: Misra, D., NIST (1978). + Dental Research Monomolecular Adsorption Study. + +Data: 1 Response Variable (y = volume) + 1 Predictor Variable (x = pressure) + 14 Observations + Lower Level of Difficulty + Observed Data + +Model: Exponential Class + 2 Parameters (b1 and b2) + + y = b1*(1-exp[-b2*x]) + e + +T. Migot, Montreal, 2023. + +NIST Data fitting problem MISRA1A given as an inconsistent set of +nonlinear equations +Fit: y = b1*(1-exp[-b2*x]) + e + +classification NOR2-MN-2-14 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Misra, D., NIST (1978). +Dental Research Monomolecular Adsorption Study. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:MISRA1A, NIST:misra1a", ) 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 eeaa11efc..15da76aef 100644 --- a/src/Meta/misra1b.jl +++ b/src/Meta/misra1b.jl @@ -17,6 +17,64 @@ misra1b_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/MISRA1B.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/misra1b.dat + +NIST/ITL StRD +Dataset Name: Misra1b (Misra1b.dat) + +File Format: ASCII + Starting Values (lines 41 to 42) + Certified Values (lines 41 to 47) + Data (lines 61 to 74) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study regarding + dental research in monomolecular adsorption. The + response variable is volume, and the predictor + variable is pressure. + +Reference: Misra, D., NIST (1978). + Dental Research Monomolecular Adsorption Study. + +Data: 1 Response (y = volume) + 1 Predictor (x = pressure) + 14 Observations + Lower Level of Difficulty + Observed Data + +Model: Miscellaneous Class + 2 Parameters (b1 and b2) + + y = b1 * (1-(1+b2*x/2)**(-2)) + e + +T. Migot, Montreal, 2023. + +NIST Data fitting problem MISRA1B given as an inconsistent set of +nonlinear equations. +Fit: y = b1 * (1-(1+b2*x/2)**(-2)) + e + +classification NOR2-MN-2-14 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Misra, D., NIST (1978). +Dental Research Monomolecular Adsorption Study. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:MISRA1B, NIST:Misra1b", ) 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 2da20fe2d..b03d125fe 100644 --- a/src/Meta/misra1c.jl +++ b/src/Meta/misra1c.jl @@ -17,6 +17,63 @@ misra1c_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/MISRA1C.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/misra1c.dat + +NIST/ITL StRD +Dataset Name: Misra1c (Misra1c.dat) + +File Format: ASCII + Starting Values (lines 41 to 42) + Certified Values (lines 41 to 47) + Data (lines 61 to 74) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study regarding + dental research in monomolecular adsorption. The + response variable is volume, and the predictor + variable is pressure. + +Reference: Misra, D., NIST (1978). + Dental Research Monomolecular Adsorption. + +Data: 1 Response (y = volume) + 1 Predictor (x = pressure) + 14 Observations + Average Level of Difficulty + Observed Data + +Model: Miscellaneous Class + 2 Parameters (b1 and b2) + + y = b1 * (1-(1+2*b2*x)**(-.5)) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem MISRA1C given as an inconsistent set of +nonlinear equations. +Fit: y = b1 * (1-(1+2*b2*x)**(-.5)) + e + +classification NOR2-MN-2-14 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Misra, D., NIST (1978). +Dental Research Monomolecular Adsorption Study. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:MISRA1C, NIST:Misra1c", ) 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 daa37cb82..c95a8433d 100644 --- a/src/Meta/misra1d.jl +++ b/src/Meta/misra1d.jl @@ -17,6 +17,60 @@ misra1d_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/MISRA1D.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/misra1d.dat + +File Format: ASCII + Starting Values (lines 41 to 42) + Certified Values (lines 41 to 47) + Data (lines 61 to 74) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study regarding + dental research in monomolecular adsorption. The + response variable is volume, and the predictor + variable is pressure. + +Reference: Misra, D., NIST (1978). + Dental Research Monomolecular Adsorption Study. + +Data: 1 Response (y = volume) + 1 Predictor (x = pressure) + 14 Observations + Average Level of Difficulty + Observed Data + +Model: Miscellaneous Class + 2 Parameters (b1 and b2) + + y = b1*b2*x*((1+b2*x)**(-1)) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem MISRA1D given as an inconsistent set of +nonlinear equations. +Fit: y = y = b1*b2*x*((1+b2*x)**(-1)) + e + +classification NOR2-MN-2-14 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Misra, D., NIST (1978). +Dental Research Monomolecular Adsorption Study. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:MISRA1D", ) 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 c0cddb697..f942e88b2 100644 --- a/src/Meta/morebv.jl +++ b/src/Meta/morebv.jl @@ -17,6 +17,45 @@ morebv_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/MOREBV.SIF", + :notes => raw""" +The Boundary Value problem. +This is the nonlinear least-squares version without fixed variables. + +classification SUR2-MN-V-0 + +Problem 39 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +problem 28 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#17 (p. 75). + +SIF input: Ph. Toint, Dec 1989 and Nick Gould, Oct 1992. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:MOREBV, Luksan:39", ) 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 72e5f9b2c..fddd10d6f 100644 --- a/src/Meta/nasty.jl +++ b/src/Meta/nasty.jl @@ -17,6 +17,17 @@ nasty_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "", + :notes => raw""" +Nasty problem. + +classification QUR2-AN-2-0 +""", + :origin_notes => raw""" +a very simple box-constrained quadratic +""", + :reference => raw"""""", + :lib => "CUTEst:NASTY", ) 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 e22ada873..43991e33e 100644 --- a/src/Meta/nazareth.jl +++ b/src/Meta/nazareth.jl @@ -17,6 +17,33 @@ nazareth_meta = Dict( :defined_everywhere => missing, :origin => :literature, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization", + :notes => raw""" +Sparse modification of the Nazareth trigonometric function +Problem 8 in +L. Luksan, C. Matonoha and J. Vlcek +Sparse Test Problems for Unconstrained Optimization, +Technical Report 1064, +Institute of Computer Science, +Academy of Science of the Czech Republic +https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} + } + """, + + :lib => "LuksanSparse:8", ) get_nazareth_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/ncb20.jl b/src/Meta/ncb20.jl index 57ba2137f..c6d7a5c1e 100644 --- a/src/Meta/ncb20.jl +++ b/src/Meta/ncb20.jl @@ -17,6 +17,39 @@ ncb20_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/NCB20.SIF", + :notes => raw""" +A banded problem with semi-bandwidth 20. This problem exhibits frequent +negative curvature in the exact Hessian. + +classification OUR2-AN-V-0 +Problem 40 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +http://www.cs.cas.cz/matonoha/download/V1081.pdf +J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +Ph. Toint, private communication, 1992. + +SIF input: Ph. Toint, October 1992. +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:NCB20, Luksan:40", ) 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 510f92f0d..da830019e 100644 --- a/src/Meta/ncb20b.jl +++ b/src/Meta/ncb20b.jl @@ -17,6 +17,40 @@ ncb20b_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/NCB20B.SIF", + :notes => raw""" +A banded problem with semi-bandwidth 20. This problem exhibits frequent +negative curvature in the exact Hessian. It is a simplified version of +problem NCB20. + +classification OUR2-AN-V-0 +Problem 41 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +http://www.cs.cas.cz/matonoha/download/V1081.pdf +J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +Ph. Toint, private communication, 1993. + +SIF input: Ph. Toint, April 1993. +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:NCB20B, Luksan:41", ) 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 5f48dfab5..99e750245 100644 --- a/src/Meta/nelson.jl +++ b/src/Meta/nelson.jl @@ -17,6 +17,74 @@ nelson_meta = Dict( :defined_everywhere => false, :origin => :real, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/NELSON.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/nelson.dat + +NIST/ITL StRD +Dataset Name: Nelson (Nelson.dat) + +File Format: ASCII + Starting Values (lines 41 to 43) + Certified Values (lines 41 to 48) + Data (lines 61 to 188) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a study involving + the analysis of performance degradation data from + accelerated tests, published in IEEE Transactions + on Reliability. The response variable is dialectric + breakdown strength in kilo-volts, and the predictor + variables are time in weeks and temperature in degrees + Celcius. + +Reference: Nelson, W. (1981). + Analysis of Performance-Degradation Data. + IEEE Transactions on Reliability. + Vol. 2, R-30, No. 2, pp. 149-155. + +Data: 1 Response ( y = dialectric breakdown strength) + 2 Predictors (x1 = time; x2 = temperature) + 128 Observations + Average Level of Difficulty + Observed Data + +Model: Exponential Class + 3 Parameters (b1 to b3) + + log[y] = b1 - b2*x1 * exp[-b3*x2] + e + +T. Migot, Montreal, 2023. + +NIST Data fitting problem NELSON given as an inconsistent set of +nonlinear equations. +Fit: log[y] = b1 - b2*x1 * exp[-b3*x2] + e + +classification NOR2-MN-3-128 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Nelson, W. (1981). +Analysis of Performance-Degradation Data. +IEEE Transactions on Reliability. Vol. 2, R-30, No. 2, pp. 149-155. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@article{Nelson1981, + author = {Nelson, Wayne}, + title = {Analysis of Performance-Degradation Data from Accelerated Tests}, + journal = {IEEE Transactions on Reliability}, + year = {1981}, + volume = {R-30}, + number = {2}, + pages = {149--155}, + doi = {10.1109/TR.1981.5221010} +} +""", + :lib => "CUTEst:NELSON, NIST:Nelson", ) 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 5927c43e9..eead0d3ba 100644 --- a/src/Meta/noncvxu2.jl +++ b/src/Meta/noncvxu2.jl @@ -17,6 +17,37 @@ noncvxu2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/NONCVXU2.SIF", + :notes => raw""" +A nonconvex unconstrained function with a unique minimum value + +classification OUR2-AN-V-0 + +Problem 43 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +http://www.cs.cas.cz/matonoha/download/V1081.pdf +J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +SIF input: Nick Gould, April 1996 +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:NONCVXU2, Luksan:43", ) 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 8dcaedaf4..39551deb2 100644 --- a/src/Meta/noncvxun.jl +++ b/src/Meta/noncvxun.jl @@ -17,6 +17,40 @@ noncvxun_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/NONCVXUN.SIF", + :notes => raw""" +A nonconvex unconstrained function with a unique minimum value +See discussion here https://github.com/JuliaSmoothOptimizers/CUTEst.jl/issues/321 + +A nonconvex unconstrained function with a unique minimum value + +classification OUR2-AN-V-0 + +Problem 42 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +http://www.cs.cas.cz/matonoha/download/V1081.pdf +J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +SIF input: Nick Gould, April 1996 +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:NONCVXUN, Luksan:42", ) 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 e3f4d2688..3a65b99bd 100644 --- a/src/Meta/nondia.jl +++ b/src/Meta/nondia.jl @@ -17,6 +17,46 @@ nondia_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/NONDIA.SIF", + :notes => raw""" +The Shanno nondiagonal extension of Rosenbrock function. + +classification SUR2-AN-V-0 + +Problem 44 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +http://www.cs.cas.cz/matonoha/download/V1081.pdf +J.-P. Dussault, Clermont-Ferrand 05/2016. + +Note: discrepancy with CUTEst appears to be a bug in CUTEst, this (now) matches the original paper +(See issue #36) +""", + :origin_notes => raw""" +D. Shanno, +" On Variable Metric Methods for Sparse Hessians II: the New +Method", +MIS Tech report 27, University of Arizona (Tucson, UK), 1978. +See also Buckley #37 (p. 76) and Toint #15. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{Shanno1978, + author = {Shanno, D. F.}, + title = {On Variable Metric Methods for Sparse {Hessians} {II}: the New Method}, + institution = {University of Arizona}, + type = {MIS Technical Report}, + number = {27}, + address = {Tucson, AZ}, + year = {1978} +} + """, + + :lib => "CUTEst:NONDIA, Luksan:44", ) 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 5655ac9c7..8a9329b81 100644 --- a/src/Meta/nondquar.jl +++ b/src/Meta/nondquar.jl @@ -17,6 +17,46 @@ nondquar_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/NONDQUAR.SIF", + :notes => raw""" +A nondiagonal quartic test problem. + +This problem has an arrow-head type Hessian with a tridiagonal +central part and a border of width 1. +The Hessian is singular at the solution. + +classification OUR2-AN-V-0 + +Problem 45 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +http://www.cs.cas.cz/matonoha/download/V1081.pdf +J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +problem 57 in +A.R. Conn, N.I.M. Gould, M. Lescrenier and Ph.L. Toint, +"Performance of a multi-frontal scheme for partially separable +optimization" +Report 88/4, Dept of Mathematics, FUNDP (Namur, B), 1988. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{ConnGouldLescrenierToint1988, + author = {Conn, A. R. and Gould, N. I. M. and Lescrenier, M. and Toint, Ph. L.}, + title = {Performance of a multifrontal scheme for partially separable optimization}, + institution = {Department of Mathematics, FUNDP}, + address = {Namur, Belgium}, + number = {Report 88/4}, + year = {1988} +} + """, + + :lib => "CUTEst:NONDQUAR, Luksan:45", ) 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 1ac27efb2..143a0ca3a 100644 --- a/src/Meta/osborne1.jl +++ b/src/Meta/osborne1.jl @@ -17,6 +17,37 @@ osborne1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/OSBORNE1.SIF", + :notes => raw""" +Osborne first problem in 5 variables. This is a nonlinear equation version +of problem OSBORNEA. +This function is a nonlinear least squares with 33 groups. Each +group has 2 nonlinear elements and one linear element. + +classification NOR2-MN-5-33 +""", + :origin_notes => raw""" +Problem 17 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See alos Buckley#32 (p. 77). + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:OSBORNE1", ) 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 097ba26c9..c889d2f79 100644 --- a/src/Meta/osborne2.jl +++ b/src/Meta/osborne2.jl @@ -17,6 +17,37 @@ osborne2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/OSBORNE2.SIF", + :notes => raw""" +Osborne second problem in 11 variables. This is a nonlinear equation version +of problem OSBORNEB. +This function is a nonlinear least squares with 65 groups. Each +group has 4 nonlinear elements. + +classification NOR2-MN-11-65 +""", + :origin_notes => raw""" +Problem 19 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#32 (p.78). + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:OSBORNE2", ) 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 d9ff6ba59..bd43888d1 100644 --- a/src/Meta/palmer1c.jl +++ b/src/Meta/palmer1c.jl @@ -17,6 +17,34 @@ palmer1c_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PALMER1C.SIF", + :notes => raw""" +A linear least squares problem arising from chemical kinetics. + +model: H-N=N=N TZVP+MP2 +fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + + A10 X**10 + A12 X**12 + A14 X**14 + +classification QUR2-RN-8-0 +""", + :origin_notes => raw""" +M. Palmer, Edinburgh, private communication. + +SIF input: Nick Gould, 1990. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:PALMER1C", ) 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 b9f0f2629..25e574d23 100644 --- a/src/Meta/palmer1d.jl +++ b/src/Meta/palmer1d.jl @@ -17,6 +17,34 @@ palmer1d_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PALMER1D.SIF", + :notes => raw""" +A linear least squares problem arising from chemical kinetics. + +model: H-N=N=N TZVP+MP2 +fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + + A10 X**10 + A12 X**12 + +classification QUR2-RN-7-0 +""", + :origin_notes => raw""" +M. Palmer, Edinburgh, private communication. + +SIF input: Nick Gould, 1990. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:PALMER1D", ) 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 0310fc6d7..2afd1dd87 100644 --- a/src/Meta/palmer2c.jl +++ b/src/Meta/palmer2c.jl @@ -17,6 +17,34 @@ palmer2c_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PALMER2C.SIF", + :notes => raw""" +A linear least squares problem arising from chemical kinetics. + +model: H-N=C=O TZVP+MP2 +fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + + A10 X**10 + A12 X**12 + A14 X**14 + +classification QUR2-RN-8-0 +""", + :origin_notes => raw""" +M. Palmer, Edinburgh, private communication. + +SIF input: Nick Gould, 1990. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:PALMER2C", ) 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 1944aec00..b1dbcb206 100644 --- a/src/Meta/palmer3c.jl +++ b/src/Meta/palmer3c.jl @@ -17,6 +17,34 @@ palmer3c_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PALMER3C.SIF", + :notes => raw""" +A linear least squares problem arising from chemical kinetics. + +model: H-N=C=S TZVP+MP2 +fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + + A10 X**10 + A12 X**12 + A14 X**14 + +classification QUR2-RN-8-0 +""", + :origin_notes => raw""" +M. Palmer, Edinburgh, private comminication. + +SIF input: Nick Gould, 1990. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:PALMER3C", ) 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 2a9c224a0..e3b6fa1f8 100644 --- a/src/Meta/palmer4c.jl +++ b/src/Meta/palmer4c.jl @@ -17,6 +17,34 @@ palmer4c_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PALMER4C.SIF", + :notes => raw""" +A linear least squares problem arising from chemical kinetics. + +model: H-N=C=Se TZVP+MP2 +fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + + A10 X**10 + A12 X**12 + A14 X**14 + +classification QUR2-RN-8-0 +""", + :origin_notes => raw""" +M. Palmer, Edinburgh, private communication. + +SIF input: Nick Gould, 1990. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:PALMER4C", ) 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 84a3c4862..314a28562 100644 --- a/src/Meta/palmer5c.jl +++ b/src/Meta/palmer5c.jl @@ -17,6 +17,35 @@ palmer5c_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PALMER5C.SIF", + :notes => raw""" +A linear least squares problem arising from chemical kinetics. + +model: H-N=C=Se TZVP+MP2 +fitting Y to A0 T_0 + A2 T_2 + A4 T_4 + A6 T_6 + A8 T_8 + + A10 T_10 + A12 T_12 + A14 T_14 +where T_i is the i-th (shifted) Chebyshev polynomial + +classification QUR2-RN-6-0 +""", + :origin_notes => raw""" +M. Palmer, Edinburgh, private communication. + +SIF input: Nick Gould, 1992. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:PALMER5C", ) 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 5ce30f7e3..956c500c5 100644 --- a/src/Meta/palmer5d.jl +++ b/src/Meta/palmer5d.jl @@ -17,6 +17,33 @@ palmer5d_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PALMER5D.SIF", + :notes => raw""" +A linear least squares problem arising from chemical kinetics. + +model: H-N=C=Se TZVP+MP2 +fitting Y to to A0 + A2 X**2 + A4 X**4 + A6 X**6 + +classification QUR2-RN-4-0 +""", + :origin_notes => raw""" +M. Palmer, Edinburgh, private communication. + +SIF input: Nick Gould, 1992. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:PALMER5D", ) 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 6db1c9244..5beb62419 100644 --- a/src/Meta/palmer6c.jl +++ b/src/Meta/palmer6c.jl @@ -17,6 +17,36 @@ palmer6c_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PALMER6C.SIF", + :notes => raw""" +A linear least squares problem arising from chemical kinetics. + +model: H-N=C=Se TZVP+MP2 +fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + + A10 X**10 + A12 X**12 + A14 X**14 + +classification SUR2-RN-8-0 + +classification QUR2-RN-8-0 +""", + :origin_notes => raw""" +M. Palmer, Edinburgh, private communication. + +SIF input: Nick Gould, 1992. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:PALMER6C", ) 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 db2c03458..c2b0e9c16 100644 --- a/src/Meta/palmer7c.jl +++ b/src/Meta/palmer7c.jl @@ -17,6 +17,34 @@ palmer7c_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PALMER7C.SIF", + :notes => raw""" +A linear least squares problem arising from chemical kinetics. + +model: H-N=C=Se TZVP+MP2 +fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + + A10 X**10 + A12 X**12 + A14 X**14 + +classification QUR2-RN-8-0 +""", + :origin_notes => raw""" +M. Palmer, Edinburgh, private communication. + +SIF input: Nick Gould, 1992. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:PALMER7C", ) 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 2df3c189d..6c471e5df 100644 --- a/src/Meta/palmer8c.jl +++ b/src/Meta/palmer8c.jl @@ -17,6 +17,34 @@ palmer8c_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PALMER8C.SIF", + :notes => raw""" +A linear least squares problem arising from chemical kinetics. + +model: H-N=C=Se TZVP+MP2 +fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + + A10 X**10 + A12 X**12 + A14 X**14 + +classification QUR2-RN-8-0 +""", + :origin_notes => raw""" +M. Palmer, Edinburgh, private communication. + +SIF input: Nick Gould, 1992. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:PALMER8C", ) 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 23e554742..749159b7e 100644 --- a/src/Meta/penalty1.jl +++ b/src/Meta/penalty1.jl @@ -17,6 +17,41 @@ penalty1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PENALTY1.SIF", + :notes => raw""" +A penalty function arising from +min{ sum_1^n(x_i-1)^2 subject to sum_1^n x_i^2 = 1/4}. +At the solution, the hessian has n-1 eigenvalues of order 1e-5 and +one of order 1. + +This problem is a sum of n+1 least-squares groups, the first n of +which have only a linear element. +It Hessian matrix is dense. + +classification SUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 23 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley #181 (p. 79). + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:PENALTY1", ) 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 01c04f277..90918335a 100644 --- a/src/Meta/penalty2.jl +++ b/src/Meta/penalty2.jl @@ -17,6 +17,41 @@ penalty2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PENALTY2.SIF", + :notes => raw""" +The second penalty function +This is a nonlinear least-squares problem with M=2*N groups. +Group 1 is linear. +Groups 2 to N use 2 nonlinear elements. +Groups N+1 to M-1 use 1 nonlinear element. +Group M uses N nonlinear elements. +The Hessian matrix is dense. + +classification SUR2-AN-V-0 +J.-P. Dussault, Clermont-Ferrand 06/2016. +""", + :origin_notes => raw""" +Problem 24 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#112 (p. 80) + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:PENALTY2", ) 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 341546d02..04d29f91e 100644 --- a/src/Meta/penalty3.jl +++ b/src/Meta/penalty3.jl @@ -17,6 +17,43 @@ penalty3_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/PENALTY3.SIF", + :notes => raw""" +A penalty problem by Gill, Murray and Pitfield. +It has a dense Hessian matrix. + +classification OUR2-AY-V-0 + +Problem 46 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +http://www.cs.cas.cz/matonoha/download/V1081.pdf +J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +problem 114 (p. 81) in +A.R. Buckley, +"Test functions for unconstrained minimization", +TR 1989CS-3, Mathematics, statistics and computing centre, +Dalhousie University, Halifax (CDN), 1989. + +SIF input: Nick Gould, Dec 1990. +""", + :reference => raw""" +@techreport{Buckley1989, + author = {Buckley, A. G.}, + title = {Test functions for unconstrained minimization}, + institution = {Computing Science Division, Dalhousie University}, + address = {Dalhousie, Canada}, + number = {CS-3}, + year = {1989} +} + """, + + :lib => "CUTEst:PENALTY3, Luksan:46", ) 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 b75edfadf..7f4e8e947 100644 --- a/src/Meta/pinene.jl +++ b/src/Meta/pinene.jl @@ -17,6 +17,49 @@ pinene_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :jump, + :url => "https://bitbucket.org/optrove/sif/src/master/PINENE.SIF", + :notes => raw""" +Isomerization of Alpha-Pinene Problem +Collocation formulation + +Determine the reaction coefficients in the thermal isometrization +of alpha-Pinene. The linear kinetic model is +y_1' = - (theta_1 + theta_2) y_1 +y_2' = theta_1 y_1 +y_3' = theta_2 y_1 - ( theta_3 + theta_4 ) y_3 + theta_5 y_5 +y_4' = theta_3 y_3 +y_5' = theta_4 y_3 - theta_5 y_5 +where the reaction coefficients theta_i are positive, +with given initial conditions. The problem is to minimize +sum{i=1,8} || y(tau_i,theta) - z_i||^2 +where the z_i are concentration measurements for y at times tau_i (i=1,8) + +classification OOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 5 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) + +Alexander S. Bondarenko - Summer 1998 +COPS 2.0 - September 2000 +COPS 3.0 - November 2002 +COPS 3.1 - March 2004 + +SIF input: Nick Gould, November 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + :lib => "CUTEst:PINENE, COPS:5", ) 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 0d0b6ac91..c82793937 100644 --- a/src/Meta/polygon.jl +++ b/src/Meta/polygon.jl @@ -17,6 +17,36 @@ polygon_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/POLYGON.SIF", + :notes => raw""" +Find the polygon of maximal area, among polygons with nv sides and diameter d <= 1 + +The initial guess is inspired from https://vanderbei.princeton.edu/ampl/nlmodels/polygon/polygon2.mod + +See `polygon1`, `polygon2` and `polygon3` for similar variants. + +classification OOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 1 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) + +SIF input: Nick Gould, December 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:POLYGON, COPS:1", ) 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 272a4d590..0cbf6e3cb 100644 --- a/src/Meta/polygon1.jl +++ b/src/Meta/polygon1.jl @@ -17,6 +17,35 @@ polygon1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" +Find the polygon of maximal area, among polygons with nv sides and diameter d <= 1 + +JuMP model follows Laurent Lessard CS/ECE/ISyE 524, University of Wisconsin–Madison, +Introduction to Optimization class. +https://laurentlessard.com/teaching/524-intro-to-optimization/ + +This implementation is similar to +This is problem 1 in the COPS (Version 2) collection of +E. Dolan and J. More' +see "Benchmarking Optimization Software with COPS" +Argonne National Labs Technical Report ANL/MCS-246 (2000) +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "", ) 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 2c7f32355..521ac634a 100644 --- a/src/Meta/polygon2.jl +++ b/src/Meta/polygon2.jl @@ -17,6 +17,24 @@ polygon2_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://laurentlessard.com/teaching/524-intro-to-optimization/", + :notes => raw""" +Find the polygon of maximal area, among polygons with nv sides and diameter d <= 1 +Model 2: relative polar coordinates +""", + :origin_notes => raw""" +JuMP model follows Laurent Lessard CS/ECE/ISyE 524, University of Wisconsin–Madison, +Introduction to Optimization class. +""", + :reference => raw""" +@misc{Lessard524, + author = {Lessard, Laurent}, + title = {Introduction to Optimization, {CS/ECE/ISyE} 524}, + howpublished = {Lecture notes, University of Wisconsin--Madison}, + url = {https://laurentlessard.com/teaching/524-intro-to-optimization/}, +} +""", + :lib => "", ) 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 7063a3b28..ee07a4dbd 100644 --- a/src/Meta/polygon3.jl +++ b/src/Meta/polygon3.jl @@ -17,6 +17,24 @@ polygon3_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://laurentlessard.com/teaching/524-intro-to-optimization/", + :notes => raw""" +Find the polygon of maximal area, among polygons with nv sides and diameter d <= 1 +Model 3: rectangular coordinates +""", + :origin_notes => raw""" +JuMP model follows Laurent Lessard CS/ECE/ISyE 524, University of Wisconsin–Madison, +Introduction to Optimization class. +""", + :reference => raw""" +@misc{Lessard524, + author = {Lessard, Laurent}, + title = {Introduction to Optimization, {CS/ECE/ISyE} 524}, + howpublished = {Lecture notes, University of Wisconsin--Madison}, + url = {https://laurentlessard.com/teaching/524-intro-to-optimization/}, +} +""", + :lib => "", ) 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 429582a98..f036e386d 100644 --- a/src/Meta/powellbs.jl +++ b/src/Meta/powellbs.jl @@ -17,6 +17,37 @@ powellbs_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/POWELLBS.SIF", + :notes => raw""" +Powell badly scaled problem. +This problem is a sum of n-1 sets of 2 groups, both involving +nonlinear elements and being of the least square type. +It Hessian matrix is tridiagonal. + +classification NOR2-AN-2-2 +""", + :origin_notes => raw""" +Problem 3 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Toint#34, Buckley#22 (p. 82). + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:POWELLBS", ) 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 fcd04008f..d9bde6deb 100644 --- a/src/Meta/powellsg.jl +++ b/src/Meta/powellsg.jl @@ -17,6 +17,39 @@ powellsg_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/POWELLSG.SIF", + :notes => raw""" +The extended Powell singular problem. +This problem is a sum of n/4 sets of four terms, each of which is assigned its own group. + +classification OUR2-AN-V-0 + +J.-P. Dussault, Clermont-Ferrand 05/2016. + +Difference with the following is the initial guess. +""", + :origin_notes => raw""" +Problem 13 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Toint#19, Buckley#34 (p.85) + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:POWELLSG, Luksan:47, LuksanSparse:3", ) 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 f5a775bb6..ab558e9f5 100644 --- a/src/Meta/power.jl +++ b/src/Meta/power.jl @@ -17,6 +17,37 @@ power_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/POWER.SIF", + :notes => raw""" +The Power problem by Oren. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +S.S. Oren, +Self-scaling variable metric algorithms, +Part II: implementation and experiments" +Management Science 20(5):863-874, 1974. +See also Buckley#179 (p. 83) +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{Oren1974, + title = {Self-Scaling Variable Metric (SSVM) Algorithms: Part II: Implementation and Experiments}, + volume = {20}, + ISSN = {1526-5501}, + url = {https://doi.org/10.1287/mnsc.20.5.863}, + DOI = {10.1287/mnsc.20.5.863}, + number = {5}, + journal = {Management Science}, + publisher = {Institute for Operations Research and the Management Sciences (INFORMS)}, + author = {Oren, Shmuel S.}, + year = {1974}, + month = jan, + pages = {863--874} +} +""", + :lib => "CUTEst:POWER", ) 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 ac2dc2b9b..eec9c90ad 100644 --- a/src/Meta/quartc.jl +++ b/src/Meta/quartc.jl @@ -17,6 +17,33 @@ quartc_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/QUARTC.SIF", + :notes => raw""" +A simple quartic function. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +problem 157 (p. 87) in +A.R. Buckley, +"Test functions for unconstrained minimization", +TR 1989CS-3, Mathematics, statistics and computing centre, +Dalhousie University, Halifax (CDN), 1989. + +SIF input: Ph. Toint, March 1991. +""", + :reference => raw""" +@techreport{Buckley1989, + author = {Buckley, A. R.}, + title = {Test Functions for Unconstrained Minimization}, + institution = {Mathematics, Statistics and Computing Centre, Dalhousie University}, + number = {TR 1989CS-3}, + year = {1989}, + address = {Halifax, Canada} +} + """, + + :lib => "CUTEst:QUARTC", ) 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 dd2cc3078..5350dc815 100644 --- a/src/Meta/rat42.jl +++ b/src/Meta/rat42.jl @@ -17,6 +17,67 @@ rat42_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/RAT42.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/rat42.dat + +NIST/ITL StRD +Dataset Name: Rat42 (Rat42.dat) + +File Format: ASCII + Starting Values (lines 41 to 43) + Certified Values (lines 41 to 48) + Data (lines 61 to 69) + +Procedure: Nonlinear Least Squares Regression + +Description: This model and data are an example of fitting + sigmoidal growth curves taken from Ratkowsky (1983). + The response variable is pasture yield, and the + predictor variable is growing time. + +Reference: Ratkowsky, D.A. (1983). + Nonlinear Regression Modeling. + New York, NY: Marcel Dekker, pp. 61 and 88. + +Data: 1 Response (y = pasture yield) + 1 Predictor (x = growing time) + 9 Observations + Higher Level of Difficulty + Observed Data + +Model: Exponential Class + 3 Parameters (b1 to b3) + + y = b1 / (1+exp[b2-b3*x]) + e + +T. Migot, Montreal, 2023. + +NIST Data fitting problem RAT42 given as an inconsistent set of +nonlinear equations. +Fit: y = b1 / (1+exp[b2-b3*x]) + e + +classification NOR2-MN-3-9 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Ratkowsky, D.A. (1983). +Nonlinear Regression Modeling. +New York, NY: Marcel Dekker, pp. 61 and 88. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@book{Ratkowsky1983, + author = {Ratkowsky, David A.}, + title = {Nonlinear Regression Modeling: A Unified Practical Approach}, + publisher = {Marcel Dekker}, + address = {New York}, + year = {1983} +} +""", + :lib => "CUTEst:RAT42, NIST:Rat42", ) 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 9cdf2a5da..4f02bba4e 100644 --- a/src/Meta/rat43.jl +++ b/src/Meta/rat43.jl @@ -17,6 +17,67 @@ rat43_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/RAT43.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/rat43.dat + +NIST/ITL StRD +Dataset Name: Rat43 (Rat43.dat) + +File Format: ASCII + Starting Values (lines 41 to 44) + Certified Values (lines 41 to 49) + Data (lines 61 to 75) + +Procedure: Nonlinear Least Squares Regression + +Description: This model and data are an example of fitting + sigmoidal growth curves taken from Ratkowsky (1983). + The response variable is the dry weight of onion bulbs + and tops, and the predictor variable is growing time. + +Reference: Ratkowsky, D.A. (1983). + Nonlinear Regression Modeling. + New York, NY: Marcel Dekker, pp. 62 and 88. + +Data: 1 Response (y = onion bulb dry weight) + 1 Predictor (x = growing time) + 15 Observations + Higher Level of Difficulty + Observed Data + +Model: Exponential Class + 4 Parameters (b1 to b4) + + y = b1 / ((1+exp[b2-b3*x])**(1/b4)) + e + +T. Migot, Montreal, 2023. + +NIST Data fitting problem RAT43 given as an inconsistent set of +nonlinear equations. +Fit: y = b1 / ((1+exp[b2-b3*x])**(1/b4)) + e + +classification NOR2-MN-4-15 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Ratkowsky, D.A. (1983). +Nonlinear Regression Modeling. +New York, NY: Marcel Dekker, pp. 62 and 88. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@book{Ratkowsky1983, + author = {Ratkowsky, David A.}, + title = {Nonlinear Regression Modeling: A Unified Practical Approach}, + publisher = {Marcel Dekker}, + address = {New York}, + year = {1983} +} +""", + :lib => "CUTEst:RAT43, NIST:Rat43", ) 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 e630386d2..5af0fc80c 100644 --- a/src/Meta/robotarm.jl +++ b/src/Meta/robotarm.jl @@ -17,6 +17,30 @@ robotarm_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/ROBOTARM.SIF", + :notes => raw""" +Minimize the time taken for a robot arm to travel between two points. + +classification OOR2-AN-V-V +""", + :origin_notes => raw""" +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) +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:ROBOTARM, COPS:8", ) 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 9cd41f237..b6e781d38 100644 --- a/src/Meta/rocket.jl +++ b/src/Meta/rocket.jl @@ -17,6 +17,41 @@ rocket_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :jump, + :url => "https://bitbucket.org/optrove/sif/src/master/ROCKET.SIF", + :notes => raw""" +Goddard Rocket Problem +Trapezoidal formulation + +Maximize the final altitude of a vertically-lauched rocket, using +the thrust as a control and given the initial mass, the fuel mass +and the drag characteristics of the rocket. + +classification OOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 10 in the COPS (Version 2) collection of +E. Dolan and J. More' +see "Benchmarking Optimization Software with COPS" +Argonne National Labs Technical Report ANL/MCS-246 (2000) + +COPS 2.0 - September 2000 +COPS 3.0 - November 2002 +COPS 3.1 - March 2004 + +SIF input: Nick Gould, November 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:ROCKET, COPS:10", ) 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 33e2a5996..4114ca4a8 100644 --- a/src/Meta/rosenbrock.jl +++ b/src/Meta/rosenbrock.jl @@ -17,6 +17,26 @@ rosenbrock_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.1093/comjnl/3.3.175", + :notes => raw""" + +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@article{Rosenbrock1960, + author = {Rosenbrock, H. H.}, + title = {An Automatic Method for Finding the Greatest or Least Value of a Function}, + journal = {The Computer Journal}, + year = {1960}, + volume = {3}, + number = {3}, + pages = {175--184}, + doi = {10.1093/comjnl/3.3.175} +} +""", + :lib => "", ) 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 d056b8abe..d98207c8c 100644 --- a/src/Meta/rozman1.jl +++ b/src/Meta/rozman1.jl @@ -17,6 +17,53 @@ rozman1_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/rozman1.dat", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/rozman1.dat + +NIST/ITL StRD +Dataset Name: Roszman1 (Roszman1.dat) + +File Format: ASCII + Starting Values (lines 41 to 44) + Certified Values (lines 41 to 49) + Data (lines 61 to 85) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study involving + quantum defects in iodine atoms. The response + variable is the number of quantum defects, and the + predictor variable is the excited energy state. + The argument to the ARCTAN function is in radians. + +Reference: Roszman, L., NIST (19??). + Quantum Defects for Sulfur I Atom. + +Data: 1 Response (y = quantum defect) + 1 Predictor (x = excited state energy) + 25 Observations + Average Level of Difficulty + Observed Data + +Model: Miscellaneous Class + 4 Parameters (b1 to b4) + + pi = 3.141592653589793238462643383279E0 + y = b1 - b2*x - arctan[b3/(x-b4)]/pi + e +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "NIST:Roszman1", ) 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 c89f5976f..aab2be7ed 100644 --- a/src/Meta/sbrybnd.jl +++ b/src/Meta/sbrybnd.jl @@ -17,6 +17,41 @@ sbrybnd_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/SBRYBND.SIF", + :notes => raw""" +Broyden banded system of nonlinear equations, considered in the +least square sense. +NB: scaled version of BRYBND + +classification SUR2-AN-V-0 + +The terms in the sum should be squared --- corrected (it is not squared in Luksan, but +comparing it against their brybnd that appears to be a typo) + +J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +problem 31 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#73 (p. 41) and Toint#18 + +SIF input: Ph. Toint and Nick Gould, Nov 1997. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:SBRYBND, Luksan:48", ) 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 b181dc612..b1ea7262e 100644 --- a/src/Meta/schmvett.jl +++ b/src/Meta/schmvett.jl @@ -17,6 +17,47 @@ schmvett_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/SCHMVETT.SIF", + :notes => raw""" +The Schmidt and Vetters problem. + +This problem has N-2 trivial groups, all of which have 3 nonlinear +elements + +classification OUR2-AY-V-0 + +Problem 49 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +J.W. Schmidt and K. Vetters, +"Albeitungsfreie Verfahren fur Nichtlineare Optimierungsproblem", +Numerische Mathematik 15:263-282, 1970. +See also Toint#35 and Buckley#14 (p90) + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{SchmidtVetters1970NM, + author = {Schmidt, Jochen W. and Vetters, Klaus}, + title = {Ableitungsfreie {Verfahren} f{\"u}r nichtlineare {Optimierungsprobleme}}, + journal = {Numerische Mathematik}, + year = {1970}, + volume = {15}, + number = {4}, + pages = {263--282}, + doi = {10.1007/BF02165118} +} + """, + + :lib => "CUTEst:SCHMVETT, Luksan:49", ) 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 c2f4cb5cd..345ed3502 100644 --- a/src/Meta/scosine.jl +++ b/src/Meta/scosine.jl @@ -17,6 +17,45 @@ scosine_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/SCOSINE.SIF", + :notes => raw""" +Another function with nontrivial groups and +repetitious elements. +NB: scaled version of COSINE + +classification OUR2-AN-V-0 + +Problem 50 in +L. Luksan, C. Matonoha and J. Vlcek +Modified CUTE problems for sparse unconstrained optimization, +Technical Report 1081, +Institute of Computer Science, +Academy of Science of the Czech Republic +http://www.cs.cas.cz/matonoha/download/V1081.pdf + +J.-P. Dussault, Clermont-Ferrand 05/2016. + +Note: discrepancy with CUTEst appears to be a bug in CUTEst, this matches the original paper +(See issue #36) +""", + :origin_notes => raw""" +N. Gould, private communication. + +SIF input: N. Gould, Nov 1997 +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:SCOSINE, Luksan:50", ) 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 1c8b0ce24..fa6a4ae18 100644 --- a/src/Meta/sinquad.jl +++ b/src/Meta/sinquad.jl @@ -17,6 +17,41 @@ sinquad_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/SINQUAD.SIF", + :notes => raw""" +Another function with nontrivial groups and + repetitious elements. + +classification OUR2-AY-V-0 + + Problem 51 in + L. Luksan, C. Matonoha and J. Vlcek + Modified CUTE problems for sparse unconstrained optimization, + Technical Report 1081, + Institute of Computer Science, + Academy of Science of the Czech Republic + http://www.cs.cas.cz/matonoha/download/V1081.pdf + + J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +N. Gould, private communication. + +SIF input: N. Gould, Dec 1989. +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:SINQUAD, Luksan:51", ) 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 b1b22dd17..f38e585dc 100644 --- a/src/Meta/sparsine.jl +++ b/src/Meta/sparsine.jl @@ -17,6 +17,38 @@ sparsine_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/SPARSINE.SIF", + :notes => raw""" +A sparse problem involving sine functions + +classification OUR2-AN-V-0 + + Problem 52 in + L. Luksan, C. Matonoha and J. Vlcek + Modified CUTE problems for sparse unconstrained optimization, + Technical Report 1081, + Institute of Computer Science, + Academy of Science of the Czech Republic + http://www.cs.cas.cz/matonoha/download/V1081.pdf + + J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +SIF input: Nick Gould, November 1995 +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:SPARSINE, Luksan:52", ) 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 bca342e59..382f89399 100644 --- a/src/Meta/sparsqur.jl +++ b/src/Meta/sparsqur.jl @@ -17,6 +17,38 @@ sparsqur_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/SPARSQUR.SIF", + :notes => raw""" +A sparse quartic problem + +classification OUR2-AN-V-0 + + Problem 53 in + L. Luksan, C. Matonoha and J. Vlcek + Modified CUTE problems for sparse unconstrained optimization, + Technical Report 1081, + Institute of Computer Science, + Academy of Science of the Czech Republic + http://www.cs.cas.cz/matonoha/download/V1081.pdf + + J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +SIF input: Nick Gould, November 1995 +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:SPARSQUR, Luksan:53", ) 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 026cbddcd..baf8ef9c2 100644 --- a/src/Meta/spmsrtls.jl +++ b/src/Meta/spmsrtls.jl @@ -17,6 +17,34 @@ spmsrtls_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/SPMSRTLS.SIF", + :notes => raw""" +Liu and Nocedal tridiagonal matrix square root problem. + +classification SUR2-AN-V-V +""", + :origin_notes => raw""" +problem 151 (p. 93) in +A.R. Buckley, +"Test functions for unconstrained minimization", +TR 1989CS-3, Mathematics, statistics and computing centre, +Dalhousie University, Halifax (CDN), 1989. +This is a least-squares variant of problem SPMSQRT. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{Buckley1989, + author = {Buckley, A. G.}, + title = {Test functions for unconstrained minimization}, + institution = {Computing Science Division, Dalhousie University}, + address = {Dalhousie, Canada}, + number = {CS-3}, + year = {1989} +} + """, + + :lib => "CUTEst:SPMSRTLS, Luksan:54", ) 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 6f9e8ddab..88c326f0b 100644 --- a/src/Meta/srosenbr.jl +++ b/src/Meta/srosenbr.jl @@ -17,6 +17,55 @@ srosenbr_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/SROSENBR.SIF", + :notes => raw""" +The separable extension of Rosenbrock's function. + +classification SUR2-AN-V-0 + + Problem 55 in + L. Luksan, C. Matonoha and J. Vlcek + Modified CUTE problems for sparse unconstrained optimization, + Technical Report 1081, + Institute of Computer Science, + Academy of Science of the Czech Republic + http://www.cs.cas.cz/matonoha/download/V1081.pdf + + J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + +problem 21 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + + :lib => "CUTEst:SROSENBR, Luksan:55", ) 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 3471ea999..18828e6c7 100644 --- a/src/Meta/steering.jl +++ b/src/Meta/steering.jl @@ -17,6 +17,41 @@ steering_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :jump, + :url => "https://bitbucket.org/optrove/sif/src/master/STEERING.SIF", + :notes => raw""" +Rocket Steering Problem + + Minimize the time taken for a particle, acted upon by a thrust of +constant magnitude, to achieve a given altitude and terminal velocity + + Trapezoidal formulation + +classification LOR2-AN-V-V +""", + :origin_notes => raw""" +This is problem 9 in the COPS (Version 2) collection of +E. Dolan and J. More' +see "Benchmarking Optimization Software with COPS" +Argonne National Labs Technical Report ANL/MCS-246 (2000) + +COPS 2.0 - September 2000 +COPS 3.0 - November 2002 +COPS 3.1 - March 2004 + +SIF input: Nick Gould, December 2000 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "CUTEst:STEERING, COPS:9", ) 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 b365902e7..7fe2476c8 100644 --- a/src/Meta/structural.jl +++ b/src/Meta/structural.jl @@ -26,6 +26,23 @@ structural_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://laurentlessard.com/teaching/524-intro-to-optimization/", + :notes => raw""" +JuMP model follows Laurent Lessard CS/ECE/ISyE 524, University of Wisconsin–Madison, + Introduction to Optimization class. +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@misc{Lessard524, + author = {Lessard, Laurent}, + title = {Introduction to Optimization, {CS/ECE/ISyE} 524}, + howpublished = {Lecture notes, University of Wisconsin--Madison}, + url = {https://laurentlessard.com/teaching/524-intro-to-optimization/}, +} +""", + :lib => "", ) get_structural_nvar(; n::Integer = default_nvar, kwargs...) = 2 * Int( diff --git a/src/Meta/tetra.jl b/src/Meta/tetra.jl index c6d6f3e1d..0d2c0b4a1 100644 --- a/src/Meta/tetra.jl +++ b/src/Meta/tetra.jl @@ -17,6 +17,29 @@ tetra_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" +Minimize the sum of the inverse weighted mean ratio of the elements in a fixed–boundary +tetrahedral mesh by adjusting the locations of the free vertices. +""", + :origin_notes => raw""" +This is problem 19 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) +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "COPS:19", ) 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 584f84e99..b7ff23196 100644 --- a/src/Meta/tetra_duct12.jl +++ b/src/Meta/tetra_duct12.jl @@ -17,6 +17,24 @@ tetra_duct12_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" + +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + :lib => "COPS:19", ) 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 383aaf02a..5ed6b7f13 100644 --- a/src/Meta/tetra_duct15.jl +++ b/src/Meta/tetra_duct15.jl @@ -17,6 +17,24 @@ tetra_duct15_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" + +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + :lib => "COPS:19", ) 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 6457063ba..62a438cd1 100644 --- a/src/Meta/tetra_duct20.jl +++ b/src/Meta/tetra_duct20.jl @@ -17,6 +17,24 @@ tetra_duct20_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" + +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + :lib => "COPS:19", ) 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 39d08dcd5..90375c97d 100644 --- a/src/Meta/tetra_foam5.jl +++ b/src/Meta/tetra_foam5.jl @@ -17,6 +17,24 @@ tetra_foam5_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" + +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + :lib => "COPS:19", ) 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 43e17415e..33ca4a114 100644 --- a/src/Meta/tetra_gear.jl +++ b/src/Meta/tetra_gear.jl @@ -17,6 +17,24 @@ tetra_gear_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" + +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + :lib => "COPS:19", ) 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 213a50734..52b30a562 100644 --- a/src/Meta/tetra_hook.jl +++ b/src/Meta/tetra_hook.jl @@ -17,6 +17,24 @@ tetra_hook_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" + +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + :lib => "COPS:19", ) 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 135a045fc..94d8a2a75 100644 --- a/src/Meta/threepk.jl +++ b/src/Meta/threepk.jl @@ -17,6 +17,38 @@ threepk_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/3PK.SIF", + :notes => raw""" +A problem arising in the estimation of structured O/D matrix +""", + :origin_notes => raw""" +Converted in Julia from https://github.com/mpf/Optimization-Test-Problems + +M. Bierlaire, private communication + see also + M. Bierlaire and Ph. L. Toint, + MEUSE: an origin-destination estimator that exploits structure, + Transportation Research B, 29, 1, 47--60, 1995. + SIF input: Ph. Toint, Dec 1989, Corrected July 1993. + classification SUR2-MN-30-0 +""", + :reference => raw""" +@article{Bierlaire1995, + title = {Meuse: An origin-destination matrix estimator that exploits structure}, + volume = {29}, + ISSN = {0191-2615}, + url = {https://doi.org/10.1016/0191-2615(94)00025-U}, + DOI = {10.1016/0191-2615(94)00025-u}, + number = {1}, + journal = {Transportation Research Part B: Methodological}, + publisher = {Elsevier BV}, + author = {Bierlaire, M. and Toint, Ph.L.}, + year = {1995}, + month = feb, + pages = {47--60} +} +""", + :lib => "CUTEst:3PK", ) 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 6dd5c47f6..bd4c803fd 100644 --- a/src/Meta/thurber.jl +++ b/src/Meta/thurber.jl @@ -17,6 +17,65 @@ thurber_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/THURBER.SIF", + :notes => raw""" +https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/thurber.dat + +NIST/ITL StRD +Dataset Name: Thurber (Thurber.dat) + +File Format: ASCII + Starting Values (lines 41 to 47) + Certified Values (lines 41 to 52) + Data (lines 61 to 97) + +Procedure: Nonlinear Least Squares Regression + +Description: These data are the result of a NIST study involving + semiconductor electron mobility. The response + variable is a measure of electron mobility, and the + predictor variable is the natural log of the density. + +Reference: Thurber, R., NIST (197?). + Semiconductor electron mobility modeling. + +Data: 1 Response Variable (y = electron mobility) + 1 Predictor Variable (x = log[density]) + 37 Observations + Higher Level of Difficulty + Observed Data + +Model: Rational Class (cubic/cubic) + 7 Parameters (b1 to b7) + + y = (b1 + b2*x + b3*x**2 + b4*x**3) / + (1 + b5*x + b6*x**2 + b7*x**3) + e +T. Migot, Montreal, 2023. + +NIST Data fitting problem THURBER given as an inconsistent set of +nonlinear equations. +Fit: y = (b1 + b2*x + b3*x**2 + b4*x**3) / +(1 + b5*x + b6*x**2 + b7*x**3) + e + +classification NOR2-MN-7-37 +""", + :origin_notes => raw""" +Problem from the NIST nonlinear regression test set +http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml +Reference: Thurber, R., NIST (197?). +Semiconductor electron mobility modeling. + +SIF input: Nick Gould and Tyrone Rees, Oct 2015 +""", + :reference => raw""" +@misc{NISTStRD, + author = {{National Institute of Standards and Technology}}, + title = {{NIST/ITL StRD}: Nonlinear Regression Reference Datasets}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {1997} +} +""", + :lib => "CUTEst:THURBER, NIST:Thurber", ) 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 a5d18f8ff..c6c7187fa 100644 --- a/src/Meta/toint.jl +++ b/src/Meta/toint.jl @@ -17,6 +17,30 @@ toint_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization", + :notes => raw""" +Toint trigonometric function +""", + :origin_notes => raw""" +Problem 10 in + L. Luksan, C. Matonoha and J. Vlcek + Sparse Test Problems for Unconstrained Optimization, + Technical Report 1064, + Institute of Computer Science, + Academy of Science of the Czech Republic +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} +} + """, + :lib => "LuksanSparse:10", ) get_toint_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/tointgss.jl b/src/Meta/tointgss.jl index 7d36831c5..e15868eaf 100644 --- a/src/Meta/tointgss.jl +++ b/src/Meta/tointgss.jl @@ -17,6 +17,45 @@ tointgss_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/TOINTGSS.SIF", + :notes => raw""" +Toint's Gaussian problem. + + This problem has N-2 trivial groups, all of which have 1 nonlinear + element + +classification OUR2-AY-V-0 + + Problem 56 in + L. Luksan, C. Matonoha and J. Vlcek + Modified CUTE problems for sparse unconstrained optimization, + Technical Report 1081, + Institute of Computer Science, + Academy of Science of the Czech Republic + http://www.cs.cas.cz/matonoha/download/V1081.pdf + + J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +problem 21 in +Ph.L. Toint, +"Test problems for partially separable optimization and results +for the routine PSPMIN", +Report 83/4, Department of Mathematics, FUNDP (Namur, B), 1983. + +SIF input: Ph. Toint, Dec 1989, corrected Nick Gould, July 1993. +""", + :reference => raw""" +@techreport{Toint1983, + author = {Ph. L. Toint}, + title = {Test problems for partially separable optimization and results for the routine PSPMIN}, + institution = {Department of Mathematics, FUNDP (Namur, Belgium)}, + number = {Report 83/4}, + year = {1983} +} + """, + + :lib => "CUTEst:TOINTGSS, Luksan:56", ) 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 6b63d26fa..982c6c34a 100644 --- a/src/Meta/torsion.jl +++ b/src/Meta/torsion.jl @@ -17,6 +17,26 @@ torsion_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :jump, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" +Torsion problem +""", + :origin_notes => raw""" +Liz Dolan - Summer 2000 + Version 2.0 - October 2000 + COPS 3.1 - March 2004 +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + :lib => "COPS:15", ) get_torsion_nvar(; n::Integer = default_nvar, diff --git a/src/Meta/tquartic.jl b/src/Meta/tquartic.jl index f85ea6bc0..1e2134238 100644 --- a/src/Meta/tquartic.jl +++ b/src/Meta/tquartic.jl @@ -17,6 +17,41 @@ tquartic_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/TQUARTIC.SIF", + :notes => raw""" +A quartic function with nontrivial groups and + repetitious elements. + +classification SUR2-AN-V-0# + + Problem 57 in + L. Luksan, C. Matonoha and J. Vlcek + Modified CUTE problems for sparse unconstrained optimization, + Technical Report 1081, + Institute of Computer Science, + Academy of Science of the Czech Republic + http://www.cs.cas.cz/matonoha/download/V1081.pdf + + J.-P. Dussault, Clermont-Ferrand 05/2016. +""", + :origin_notes => raw""" +Ph. Toint, private communication. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic}, + url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, + } + """, + + :lib => "CUTEst:TQUARTIC, Luksan:57", ) 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 2bfaf90da..b45032311 100644 --- a/src/Meta/triangle.jl +++ b/src/Meta/triangle.jl @@ -17,6 +17,28 @@ triangle_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" +Minimize the time taken for a robot arm to travel between two points. +""", + :origin_notes => raw""" +This is problem 18 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) +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + + :lib => "COPS:18", ) 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 803faccea..d11092be1 100644 --- a/src/Meta/triangle_deer.jl +++ b/src/Meta/triangle_deer.jl @@ -17,6 +17,24 @@ triangle_deer_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" + +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + :lib => "COPS:18", ) get_triangle_deer_nvar(; n::Integer = default_nvar, kwargs...) = 2244 get_triangle_deer_ncon(; n::Integer = default_nvar, kwargs...) = 1896 diff --git a/src/Meta/triangle_pacman.jl b/src/Meta/triangle_pacman.jl index ca0861f11..97eb6d289 100644 --- a/src/Meta/triangle_pacman.jl +++ b/src/Meta/triangle_pacman.jl @@ -17,6 +17,24 @@ triangle_pacman_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" + +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + :lib => "COPS:18", ) get_triangle_pacman_nvar(; n::Integer = default_nvar, kwargs...) = 1366 get_triangle_pacman_ncon(; n::Integer = default_nvar, kwargs...) = 1182 diff --git a/src/Meta/triangle_turtle.jl b/src/Meta/triangle_turtle.jl index 560d0e52d..e62ac4772 100644 --- a/src/Meta/triangle_turtle.jl +++ b/src/Meta/triangle_turtle.jl @@ -17,6 +17,24 @@ triangle_turtle_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://doi.org/10.2172/834714", + :notes => raw""" + +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} + } + """, + :lib => "COPS:18", ) get_triangle_turtle_nvar(; n::Integer = default_nvar, kwargs...) = 4444 get_triangle_turtle_ncon(; n::Integer = default_nvar, kwargs...) = 4025 diff --git a/src/Meta/tridia.jl b/src/Meta/tridia.jl index fcb802002..630023efd 100644 --- a/src/Meta/tridia.jl +++ b/src/Meta/tridia.jl @@ -17,6 +17,34 @@ tridia_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/TRIDIA.SIF", + :notes => raw""" +Shanno's TRIDIA quadratic tridiagonal problem. + + This problem is decomposed in n linear groups, the last n-1 of which + are 2 x 2 and singular. + +classification QUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 8 in +Ph.L. Toint, +"Test problems for partially separable optimization and results +for the routine PSPMIN", +Report 83/4, Department of Mathematics, FUNDP (Namur, B), 1983. +See also Buckley#40 (p.96) +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@techreport{Toint1983, + author = {Ph. L. Toint}, + title = {Test problems for partially separable optimization and results for the routine PSPMIN}, + institution = {Department of Mathematics, FUNDP (Namur, Belgium)}, + number = {Report 83/4}, + year = {1983} +} + """, + :lib => "CUTEst:TRIDIA", ) 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 6f91eb632..a7ebb03dc 100644 --- a/src/Meta/trig.jl +++ b/src/Meta/trig.jl @@ -17,6 +17,30 @@ trig_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization", + :notes => raw""" +Another trigonometric function +""", + :origin_notes => raw""" +Problem 9 in + L. Luksan, C. Matonoha and J. Vlcek + Sparse Test Problems for Unconstrained Optimization, + Technical Report 1064, + Institute of Computer Science, + Academy of Science of the Czech Republic +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} +} + """, + :lib => "LuksanSparse:9", ) get_trig_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/trigb.jl b/src/Meta/trigb.jl index b03abd02b..1d04af33e 100644 --- a/src/Meta/trigb.jl +++ b/src/Meta/trigb.jl @@ -17,6 +17,30 @@ trigb_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization", + :notes => raw""" +Banded trigonometric problem +""", + :origin_notes => raw""" +Problem 16 in + L. Luksan, C. Matonoha and J. Vlcek + Sparse Test Problems for Unconstrained Optimization, + Technical Report 1064, + Institute of Computer Science, + Academy of Science of the Czech Republic +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} +} + """, + :lib => "LuksanSparse:16", ) get_trigb_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/vardim.jl b/src/Meta/vardim.jl index 5571f7a77..96c4a32ab 100644 --- a/src/Meta/vardim.jl +++ b/src/Meta/vardim.jl @@ -17,6 +17,36 @@ vardim_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/VARDIM.SIF", + :notes => raw""" +Variable dimension problem. + This problem is a sum of n+2 least-squares groups, the first n of + which have only a linear element. + It Hessian matrix is dense. + +classification OUR2-AN-V-0 +""", + :origin_notes => raw""" +Problem 25 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#72 (p.98). +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} +""", + :lib => "CUTEst:VARDIM", ) 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 d5eb72d35..dee4cd339 100644 --- a/src/Meta/variational.jl +++ b/src/Meta/variational.jl @@ -17,6 +17,35 @@ variational_meta = Dict( :defined_everywhere => false, :origin => :academic, :implementation => :both, + :url => "https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization", + :notes => raw""" +Discretization of a variational problem + + Problem 15 in + L. Luksan, C. Matonoha and J. Vlcek + Sparse Test Problems for Unconstrained Optimization, + Technical Report 1064, + Institute of Computer Science, + Academy of Science of the Czech Republic + + https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization +""", + :origin_notes => raw""" + +""", + :reference => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} + } + """, + + :lib => "LuksanSparse:15", ) get_variational_nvar(; n::Integer = default_nvar, kwargs...) = n diff --git a/src/Meta/vibrbeam.jl b/src/Meta/vibrbeam.jl index bd9fc8630..d9625d31a 100644 --- a/src/Meta/vibrbeam.jl +++ b/src/Meta/vibrbeam.jl @@ -17,6 +17,45 @@ vibrbeam_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/VIBRBEAM.SIF", + :notes => raw""" +A nonlinear least-squares problem arising from laser-Doppler + measurements of a vibrating beam. The data correspond to a simulated + experiment where two laser-Doppler velocimeters take measurements + at random points along the centreline of the beam. These measurements + consist of a position (x), an incident angle (p) and the magnitude + of the velocity along the line of sight (v). + The problem is then to fit + + 2 3 2 3 + v = (c + c x + c x + c x ) cos[ d + d x + d x + d x - p ] + 0 1 2 3 0 1 2 3 + <---- magnitude -----> <------ phase -----> + + in the least-squares sense. + +classification SUR2-MN-8-0 +""", + :origin_notes => raw""" +A modification of an exercize for L. Watson course on LANCELOT in +the Spring 1993. Compared to the original proposal, the unnecessary +elements were removed as well as an unnecessary constraint on the phase. +SIF input: Ph. L. Toint, May 1993, based on a proposal by +D. E. Montgomery, Virginia Tech., April 1993. +""", + :reference => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + :lib => "CUTEst:VIBRBEAM", ) 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 ef6d3c3d9..e13468d9a 100644 --- a/src/Meta/watson.jl +++ b/src/Meta/watson.jl @@ -17,6 +17,35 @@ watson_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/WATSON.SIF", + :notes => raw""" +Watson problem in varaible dimension ( 2 <= n <= 31 ). + This function is a nonlinear least squares with 31 groups. + +classification SUR2-AN-V-0 +""", + :origin_notes => raw""" +problem 20 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Buckley#128 (p. 100). + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} + """, + :lib => "CUTEst:WATSON", ) 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 a835a9886..f4f309d03 100644 --- a/src/Meta/woods.jl +++ b/src/Meta/woods.jl @@ -17,6 +17,60 @@ woods_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/WOODS.SIF", + :notes => raw""" +The extended Woods problem. + + This problem is a sum of n/4 sets of 6 terms, each of which is + assigned its own group. For a given set i, the groups are + A(i), B(i), C(i), D(i), E(i) and F(i). Groups A(i) and C(i) contain 1 + nonlinear element each, denoted Y(i) and Z(i). + + The problem dimension is defined from the number of these sets. + The number of problem variables is then 4 times larger. + + This version uses a slightly unorthodox expression of Woods + function as a sum of squares (see Buckley) + +classification SUR2-AN-V-0 + + See also + + problem 58 in + L. Luksan, C. Matonoha and J. Vlcek + Modified CUTE problems for sparse unconstrained optimization, + Technical Report 1081, + Institute of Computer Science, + Academy of Science of the Czech Republic + + http://www.cs.cas.cz/matonoha/download/V1081.pdf + + classification SUR2-AN-V-0 + + J.-P. Dussault, Clermont-Ferrand, 05/2016. +""", + :origin_notes => raw""" +problem 14 in +J.J. More', B.S. Garbow and K.E. Hillstrom, +"Testing Unconstrained Optimization Software", +ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. +See also Toint#27, Buckley#17 (p. 101), Conn, Gould, Toint#7 + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} +""", + :lib => "CUTEst:WOODS, Luksan:58", ) 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 f7422940c..383a23ad2 100644 --- a/src/Meta/zangwil3.jl +++ b/src/Meta/zangwil3.jl @@ -17,6 +17,44 @@ zangwil3_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, + :url => "https://bitbucket.org/optrove/sif/src/master/ZANGWIL3.SIF", + :notes => raw""" +Zangwill's problem in 3 variables. + +classification NLR2-AN-3-3 + + A. Cebola, Paraná 10/2016. +""", + :origin_notes => raw""" +problem 1 in + P.T. Boggs and J.W. Tolle, + "A strategy for global convergence in a sequential + quadratic programming algorithm", + SINUM 26(3), pp. 600-623, 1989. + +Problem from CUTE: https://github.com/mpf/Optimization-Test-Problems/blob/master/cute/zangwil3.mod + +problem 13 (p. 103) in +A.R. Buckley, +"Test functions for unconstrained minimization", +TR 1989CS-3, Mathematics, statistics and computing centre, +Dalhousie University, Halifax (CDN), 1989. + +SIF input: Ph. Toint, Dec 1989. +""", + :reference => raw""" +@article{BoggsTolle1989, + author = {Boggs, Paul T. and Tolle, Jon W.}, + title = {A Strategy for Global Convergence in a Sequential Quadratic Programming Algorithm}, + journal = {SIAM Journal on Numerical Analysis}, + year = {1989}, + volume = {26}, + number = {3}, + pages = {600--623}, + doi = {10.1137/0726036} +} +""", + :lib => "CUTEst:ZANGWIL3", ) 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 f8068f0df..b8ff6af9d 100644 --- a/src/OptimizationProblems.jl +++ b/src/OptimizationProblems.jl @@ -50,6 +50,11 @@ const cols_names = [ :defined_everywhere :origin :implementation + :url + :notes + :origin_notes + :reference + :lib ] const types = [ @@ -71,6 +76,11 @@ const types = [ Union{Bool, Missing} Symbol Symbol + String + String + String + String + String ] """ @@ -99,6 +109,11 @@ The following keys are valid: - `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 + - `url::String`: URL where the problem can be found + - `notes::String`: any additional notes about the problem + - `origin_notes::String`: any additional notes about the origin of the problem + - `reference::String`: reference to the problem in bibtex format + - `lib::String`: comma-separated list of external test-set memberships in `"Collection:ID"` format (e.g. `"CUTEst:HS1, HS:1"`); empty string if none known """ const meta = DataFrame(cols_names .=> [Array{T}(undef, number_of_problems) for T in types]) @@ -106,4 +121,8 @@ for name in cols_names, i = 1:number_of_problems meta[!, name][i] = eval(Meta.parse("$(split(files[i], ".")[1])_meta"))[name] end +include("utils.jl") + +export export_bibtex + end # module diff --git a/src/PureJuMP/AMPGO02.jl b/src/PureJuMP/AMPGO02.jl index c10ef1eec..8553a7094 100644 --- a/src/PureJuMP/AMPGO02.jl +++ b/src/PureJuMP/AMPGO02.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 2 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO02 "Univariate multimodal minimization problem AMPGO02" diff --git a/src/PureJuMP/AMPGO03.jl b/src/PureJuMP/AMPGO03.jl index fbe607832..8c7d50736 100644 --- a/src/PureJuMP/AMPGO03.jl +++ b/src/PureJuMP/AMPGO03.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 3 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO03 "Univariate multimodal minimization problem AMPGO03" diff --git a/src/PureJuMP/AMPGO04.jl b/src/PureJuMP/AMPGO04.jl index b637c2c89..78ee05848 100644 --- a/src/PureJuMP/AMPGO04.jl +++ b/src/PureJuMP/AMPGO04.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 4 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO04 "Univariate multimodal minimization problem AMPGO04" diff --git a/src/PureJuMP/AMPGO05.jl b/src/PureJuMP/AMPGO05.jl index 2b772e770..f9d18cf4a 100644 --- a/src/PureJuMP/AMPGO05.jl +++ b/src/PureJuMP/AMPGO05.jl @@ -1,10 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 5 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 export AMPGO05 "Univariate multimodal minimization problem AMPGO05" diff --git a/src/PureJuMP/AMPGO06.jl b/src/PureJuMP/AMPGO06.jl index 06050e738..a611db7ee 100644 --- a/src/PureJuMP/AMPGO06.jl +++ b/src/PureJuMP/AMPGO06.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 6 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO06 "Univariate multimodal minimization problem AMPGO06" diff --git a/src/PureJuMP/AMPGO07.jl b/src/PureJuMP/AMPGO07.jl index 64ccbe1a1..9ae137a16 100644 --- a/src/PureJuMP/AMPGO07.jl +++ b/src/PureJuMP/AMPGO07.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 7 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO07 "Univariate multimodal minimization problem AMPGO07" diff --git a/src/PureJuMP/AMPGO08.jl b/src/PureJuMP/AMPGO08.jl index 9d17ed011..8979c369d 100644 --- a/src/PureJuMP/AMPGO08.jl +++ b/src/PureJuMP/AMPGO08.jl @@ -1,10 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 8 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 export AMPGO08 "Univariate multimodal minimization problem AMPGO08" diff --git a/src/PureJuMP/AMPGO09.jl b/src/PureJuMP/AMPGO09.jl index 67ad0ea96..49a9234e5 100644 --- a/src/PureJuMP/AMPGO09.jl +++ b/src/PureJuMP/AMPGO09.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 9 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO09 "Univariate multimodal minimization problem AMPGO09" diff --git a/src/PureJuMP/AMPGO10.jl b/src/PureJuMP/AMPGO10.jl index dcd69271a..68f0c8157 100644 --- a/src/PureJuMP/AMPGO10.jl +++ b/src/PureJuMP/AMPGO10.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 10 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO10 "Univariate multimodal minimization problem AMPGO10" diff --git a/src/PureJuMP/AMPGO11.jl b/src/PureJuMP/AMPGO11.jl index 2b8234a9a..62abd4f8d 100644 --- a/src/PureJuMP/AMPGO11.jl +++ b/src/PureJuMP/AMPGO11.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 11 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO11 "Univariate multimodal minimization problem AMPGO11" diff --git a/src/PureJuMP/AMPGO12.jl b/src/PureJuMP/AMPGO12.jl index 6006f113c..9e2f86632 100644 --- a/src/PureJuMP/AMPGO12.jl +++ b/src/PureJuMP/AMPGO12.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 12 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO12 "Univariate multimodal minimization problem AMPGO12" diff --git a/src/PureJuMP/AMPGO13.jl b/src/PureJuMP/AMPGO13.jl index 42160c983..74e59ce68 100644 --- a/src/PureJuMP/AMPGO13.jl +++ b/src/PureJuMP/AMPGO13.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 13 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO13 "Univariate multimodal minimization problem AMPGO13" diff --git a/src/PureJuMP/AMPGO14.jl b/src/PureJuMP/AMPGO14.jl index f1ed6ccde..422ae368f 100644 --- a/src/PureJuMP/AMPGO14.jl +++ b/src/PureJuMP/AMPGO14.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 14 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO14 "Univariate multimodal minimization problem AMPGO14" diff --git a/src/PureJuMP/AMPGO15.jl b/src/PureJuMP/AMPGO15.jl index 8cfa86d25..8e7f57c65 100644 --- a/src/PureJuMP/AMPGO15.jl +++ b/src/PureJuMP/AMPGO15.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 15 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO15 "Univariate multimodal minimization problem AMPGO15" diff --git a/src/PureJuMP/AMPGO18.jl b/src/PureJuMP/AMPGO18.jl index 0dfaf0ec2..98418fb02 100644 --- a/src/PureJuMP/AMPGO18.jl +++ b/src/PureJuMP/AMPGO18.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 18 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO18 "Univariate multimodal minimization problem AMPGO18" diff --git a/src/PureJuMP/AMPGO20.jl b/src/PureJuMP/AMPGO20.jl index f934724f9..3c217bbbb 100644 --- a/src/PureJuMP/AMPGO20.jl +++ b/src/PureJuMP/AMPGO20.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 20 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO20 "Univariate multimodal minimization problem AMPGO20" diff --git a/src/PureJuMP/AMPGO21.jl b/src/PureJuMP/AMPGO21.jl index 090614856..8bc05122c 100644 --- a/src/PureJuMP/AMPGO21.jl +++ b/src/PureJuMP/AMPGO21.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 21 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO21 "Univariate multimodal minimization problem AMPGO21" diff --git a/src/PureJuMP/AMPGO22.jl b/src/PureJuMP/AMPGO22.jl index 52ecf460d..6a90213ab 100644 --- a/src/PureJuMP/AMPGO22.jl +++ b/src/PureJuMP/AMPGO22.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem 22 in -# http://infinity77.net/global_optimization/test_functions_1d.html#d-test-functions -# Andrea Gavana -# -# S. Goyette, Sherbrooke 2016/2017 - export AMPGO22 "Univariate multimodal minimization problem AMPGO22" diff --git a/src/PureJuMP/BOX2.jl b/src/PureJuMP/BOX2.jl index 655cc7624..cc1f8fcd0 100644 --- a/src/PureJuMP/BOX2.jl +++ b/src/PureJuMP/BOX2.jl @@ -1,12 +1,3 @@ -# Box problem in 2 variables, obtained by fixing X3 = 1 in BOX2. - -# Source: Problem 11 in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. - -# classification SXR2-AN-3-0 export BOX2 function BOX2(args...; n::Int = default_nvar, m::Int = 10, kwargs...) diff --git a/src/PureJuMP/BOX3.jl b/src/PureJuMP/BOX3.jl index 73eee73e2..1f75c252e 100644 --- a/src/PureJuMP/BOX3.jl +++ b/src/PureJuMP/BOX3.jl @@ -1,17 +1,3 @@ -# Source: problem 12 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# Source: Problem 12 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# See also Buckley#BOX663 -# SIF input: Ph. Toint, Dec 1989. - -# classification SUR2-AN-3-0 export BOX3 function BOX3(args...; n::Int = default_nvar, m::Int = 2n, kwargs...) diff --git a/src/PureJuMP/Dus2_1.jl b/src/PureJuMP/Dus2_1.jl index 9af8c5a94..f5c916fcc 100644 --- a/src/PureJuMP/Dus2_1.jl +++ b/src/PureJuMP/Dus2_1.jl @@ -1,11 +1,3 @@ -# A one dimensional optimization problem -# -# Problem found in -# http://www.dmi.usherb.ca/~dussault/ROP630E17/ -# Jean_pierre Dussault -# -# S. Goyette, Sherbrooke 2016/2017 - export Dus2_1 "Univariate unimodal minimization problem Dus2_1" diff --git a/src/PureJuMP/Dus2_3.jl b/src/PureJuMP/Dus2_3.jl index d4fccea53..6e255f434 100644 --- a/src/PureJuMP/Dus2_3.jl +++ b/src/PureJuMP/Dus2_3.jl @@ -1,10 +1,3 @@ -# A one dimensional optimization problem -# -# Problem found in -# http://www.dmi.usherb.ca/~dussault/ROP630E17/ -# Jean_pierre Dussault -# -# S. Goyette, Sherbrooke 2016/2017 export Dus2_3 "Univariate unimodal minimization problem Dus2_3" diff --git a/src/PureJuMP/Dus2_9.jl b/src/PureJuMP/Dus2_9.jl index 5b0d04614..2139e962d 100644 --- a/src/PureJuMP/Dus2_9.jl +++ b/src/PureJuMP/Dus2_9.jl @@ -1,10 +1,3 @@ -# A one dimensional optimization problem -# -# Problem found in -# http://www.dmi.usherb.ca/~dussault/ROP630E17/ -# Jean_pierre Dussault -# -# S. Goyette, Sherbrooke 2016/2017 export Dus2_9 "Univariate multimodal minimization problem Dus2_9" diff --git a/src/PureJuMP/Duscube.jl b/src/PureJuMP/Duscube.jl index 321b27f84..77153c47c 100644 --- a/src/PureJuMP/Duscube.jl +++ b/src/PureJuMP/Duscube.jl @@ -1,10 +1,3 @@ -# A one dimensional optimization problem -# -# Problem found in -# http://www.dmi.usherb.ca/~dussault/ROP630E17/ -# Jean_pierre Dussault -# -# S. Goyette, Sherbrooke 2016/2017 export Duscube "Univariate multimodal minimization problem Duscube" diff --git a/src/PureJuMP/NZF1.jl b/src/PureJuMP/NZF1.jl index 9451f482f..4cafbd73f 100644 --- a/src/PureJuMP/NZF1.jl +++ b/src/PureJuMP/NZF1.jl @@ -1,9 +1,3 @@ -# "Philippe Toint (private communication)" - -# classification SUR2-AN-V-0 - -# A. Montoison, Montreal, 05/2018. - export NZF1 function NZF1(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/aircrfta.jl b/src/PureJuMP/aircrfta.jl index 8783a28ba..dec061cfc 100644 --- a/src/PureJuMP/aircrfta.jl +++ b/src/PureJuMP/aircrfta.jl @@ -11,13 +11,7 @@ # granted, provided that the above copyright notice appear in all # copies and that the copyright notice and this # permission notice appear in all supporting documentation. -# Source: Problem 9 in -# J.J. More',"A collection of nonlinear model problems" -# Proceedings of the AMS-SIAM Summer Seminar on the Computational -# Solution of Nonlinear Systems of Equations, Colorado, 1988. -# Argonne National Laboratory MCS-P60-0289, 1989. -# SIF input: Ph. Toint, Dec 1989. -# classification NOR2-RN-8-5 + export aircrfta function aircrfta(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/allinit.jl b/src/PureJuMP/allinit.jl index 86209562c..fdb5d3612 100644 --- a/src/PureJuMP/allinit.jl +++ b/src/PureJuMP/allinit.jl @@ -11,10 +11,7 @@ # granted, provided that the above copyright notice appear in all # copies and that the copyright notice and this # permission notice appear in all supporting documentation. -# Source: -# N. Gould, private communication. -# SIF input: Nick Gould, June 1990. -# classification OBR2-AY-4-0 + export allinit function allinit(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/allinitc.jl b/src/PureJuMP/allinitc.jl index 03e8cc09f..242fd4fee 100644 --- a/src/PureJuMP/allinitc.jl +++ b/src/PureJuMP/allinitc.jl @@ -11,10 +11,7 @@ # granted, provided that the above copyright notice appear in all # copies and that the copyright notice and this # permission notice appear in all supporting documentation. -# Source: -# N. Gould: private communication. -# SIF input: Nick Gould, June 1990. -# classification OOR2-AY-4-1 + export allinitc function allinitc(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/allinitu.jl b/src/PureJuMP/allinitu.jl index ead602591..ec67c8629 100644 --- a/src/PureJuMP/allinitu.jl +++ b/src/PureJuMP/allinitu.jl @@ -11,10 +11,7 @@ # granted, provided that the above copyright notice appear in all # copies and that the copyright notice and this # permission notice appear in all supporting documentation. -# Source: -# N. Gould, private communication. -# SIF input: Nick Gould, June 1990. -# classification OUR2-AY-4-0 + export allinitu function allinitu(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/alsotame.jl b/src/PureJuMP/alsotame.jl index 85382083f..4e11f6e48 100644 --- a/src/PureJuMP/alsotame.jl +++ b/src/PureJuMP/alsotame.jl @@ -11,12 +11,7 @@ # granted, provided that the above copyright notice appear in all # copies and that the copyright notice and this # permission notice appear in all supporting documentation. -# Source: -# A.R. Conn, N. Gould and Ph.L. Toint, -# "The LANCELOT User's Manual", -# Dept of Maths, FUNDP, 1991. -# SIF input: Ph. Toint, Jan 1991. -# classification OOR2-AN-2-1 + export alsotame function alsotame(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/argauss.jl b/src/PureJuMP/argauss.jl index 8db68534c..36aa2499e 100644 --- a/src/PureJuMP/argauss.jl +++ b/src/PureJuMP/argauss.jl @@ -11,13 +11,6 @@ # granted, provided that the above copyright notice appear in all # copies and that the copyright notice and this # permission notice appear in all supporting documentation. -# Source: Problem 9 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# See also Buckley#28 -# SIF input: Ph. Toint, Dec 1989. -# classification NOR2-AN-3-15 export argauss function argauss(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/arglina.jl b/src/PureJuMP/arglina.jl index 7828211e4..ce43930f2 100644 --- a/src/PureJuMP/arglina.jl +++ b/src/PureJuMP/arglina.jl @@ -1,14 +1,3 @@ -# Linear function - full rank -# -# Source: Problem 32 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# -# See also Buckley#80 (with different N and M) -# -# classification SUR2-AN-V-0 - export arglina "Linear function with `n` parameters and `m` observations - full rank" diff --git a/src/PureJuMP/arglinb.jl b/src/PureJuMP/arglinb.jl index 7e30e0649..76a142a90 100644 --- a/src/PureJuMP/arglinb.jl +++ b/src/PureJuMP/arglinb.jl @@ -1,14 +1,3 @@ -# Linear function - rank 1 -# -# Source: Problem 33 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# -# See also Buckley#93 (with different N and M) -# -# classification SUR2-AN-V-0 - export arglinb "Linear function with `n` parameters and `m` observations - rank 1" diff --git a/src/PureJuMP/arglinc.jl b/src/PureJuMP/arglinc.jl index 4bdee4b9a..523899cad 100644 --- a/src/PureJuMP/arglinc.jl +++ b/src/PureJuMP/arglinc.jl @@ -1,14 +1,3 @@ -# Linear function - rank 1, zero columns and rows -# -# Source: Problem 34 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# -# See also Buckley#101 (with different N and M) -# -# classification SUR2-AN-V-0 - export arglinc "Linear function with `n` parameters and `m` observations - rank 1, zero columns and rows" diff --git a/src/PureJuMP/argtrig.jl b/src/PureJuMP/argtrig.jl index 8e70a5219..0e7ce7514 100644 --- a/src/PureJuMP/argtrig.jl +++ b/src/PureJuMP/argtrig.jl @@ -1,20 +1,3 @@ -# -# Variable dimension trigonometric problem -# This problem is a sum of n least-squares groups, each of -# which has n+1 nonlinear elements. Its Hessian matrix is dense. -# -# Source: problem 26 in -# J.J. More, B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# Also problem 101 in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# -# classification NOR2-AN-V-V - export argtrig "Linear function with `n` parameters and `m` observations - full rank" diff --git a/src/PureJuMP/arwhead.jl b/src/PureJuMP/arwhead.jl index f7dcf712e..973f62291 100644 --- a/src/PureJuMP/arwhead.jl +++ b/src/PureJuMP/arwhead.jl @@ -1,29 +1,3 @@ -# Arrow head problem. -# A quartic problem whose Hessian is an arrow-head (downwards) with -# diagonal central part and border-width of 1. -# -# Source: -# Problem 55 in -# A.R. Conn, N.I.M. Gould, M. Lescrenier and Ph.L. Toint, -# Performance of a multifrontal scheme for partially separable -# optimization, -# Report 88/4, Dept of Mathematics, FUNDP (Namur, B), 1988. -# -# See also -# -# problem 1 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification OUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - export arwhead "Arrow head model in size `n`" diff --git a/src/PureJuMP/auglag.jl b/src/PureJuMP/auglag.jl index 8508767f4..057c4f89d 100644 --- a/src/PureJuMP/auglag.jl +++ b/src/PureJuMP/auglag.jl @@ -1,14 +1,3 @@ -# Augmented Lagrangian function -# -# Problem 11 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization -# export auglag function auglag(; n::Int = default_nvar) diff --git a/src/PureJuMP/avion2.jl b/src/PureJuMP/avion2.jl index 2fa45437c..d450517f9 100644 --- a/src/PureJuMP/avion2.jl +++ b/src/PureJuMP/avion2.jl @@ -11,7 +11,6 @@ # granted, provided that the above copyright notice appear in all # copies and that the copyright notice and this # permission notice appear in all supporting documentation. -# classification OLR2-RN-49-15 export avion2 function avion2(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/bard.jl b/src/PureJuMP/bard.jl index cfe0e4ec9..17667c3f1 100644 --- a/src/PureJuMP/bard.jl +++ b/src/PureJuMP/bard.jl @@ -1,16 +1,3 @@ -# Bard problem in 3 variables. -# This function is a nonlinear least squares with 15 groups. -# Each group has a linear and a nonlinear element. -# -# Source: Problem 8 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# -# See also Buckley#16 -# -# classification SUR2-AN-3-0 - export bard "Linear function with `n` parameters and `m` observations - full rank" diff --git a/src/PureJuMP/bdqrtic.jl b/src/PureJuMP/bdqrtic.jl index 12868389c..785ed2183 100644 --- a/src/PureJuMP/bdqrtic.jl +++ b/src/PureJuMP/bdqrtic.jl @@ -1,27 +1,3 @@ -# A quartic with a banded Hessian of bandwidth 9 -# -# Source: -# Problem 61 in -# A.R. Conn, N.I.M. Gould, M. Lescrenier and Ph.L. Toint, -# Performance of a multifrontal scheme for partially separable -# optimization, -# Report 88/4, Dept of Mathematics, FUNDP (Namur, B), 1988. -# -# See also -# -# problem 2 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification SUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - export bdqrtic "Banded quartic model in size `n`" diff --git a/src/PureJuMP/beale.jl b/src/PureJuMP/beale.jl index 13b7eff7e..dfe662f93 100644 --- a/src/PureJuMP/beale.jl +++ b/src/PureJuMP/beale.jl @@ -1,15 +1,3 @@ -# Source: Problem 5 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# -# See also Buckley#89. -# SIF input: Ph. Toint, Dec 1989. -# -# classification SUR2-AN-2-0 -# -# A. Cebola, Curitiba 10/2016. - export beale "Beale Model" diff --git a/src/PureJuMP/bearing.jl b/src/PureJuMP/bearing.jl index 64b0214c5..98c485279 100644 --- a/src/PureJuMP/bearing.jl +++ b/src/PureJuMP/bearing.jl @@ -1,19 +1,3 @@ -# Given observations of ns stages of a bearing species over n timesteps, -# minimize the loss between the observation and the computed law of paraneters : growth, mortality and number of specimens (g,m,x) - -# This is problem 16 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) - -# classification OOR2-AN-V-V - -# Journal bearing problem -# Michael Merritt - Summer 2000 -# COPS 2.0 - September 2000 -# COPS 3.0 - November 2002 -# COPS 3.1 - March 2004 - export bearing function bearing( diff --git a/src/PureJuMP/bennett5.jl b/src/PureJuMP/bennett5.jl index 5e6315cb2..8dd367acd 100644 --- a/src/PureJuMP/bennett5.jl +++ b/src/PureJuMP/bennett5.jl @@ -1,39 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/bennett5.dat - -NIST/ITL StRD -Dataset Name: Bennett5 (Bennett5.dat) - -File Format: ASCII - Starting Values (lines 41 to 43) - Certified Values (lines 41 to 48) - Data (lines 61 to 214) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study involving - superconductivity magnetization modeling. The - response variable is magnetism, and the predictor - variable is the log of time in minutes. - -Reference: Bennett, L., L. Swartzendruber, and H. Brown, - NIST (1994). - Superconductivity Magnetization Modeling. - -Data: 1 Response Variable (y = magnetism) - 1 Predictor Variable (x = log[time]) - 154 Observations - Higher Level of Difficulty - Observed Data - -Model: Miscellaneous Class - 3 Parameters (b1 to b3) - - y = b1 * (b2+x)**(-1/b3) + e -=# -# T. Migot, Montreal, 2023. - export bennett5 function bennett5(args...; kwargs...) diff --git a/src/PureJuMP/biggs5.jl b/src/PureJuMP/biggs5.jl index 5234eb0f9..58ae00d27 100644 --- a/src/PureJuMP/biggs5.jl +++ b/src/PureJuMP/biggs5.jl @@ -1,18 +1,3 @@ -# Biggs problem in 5 variables. -# This function is a nonlinear least squares with 13 groups. It is a -# variation on the biggs6 problem where the 6-th variable is fixed to 3. -# -# Source: Inspited by problem 18 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# Also problem 74 in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# -# classification SXR2-AN-6-0 export biggs5 function biggs5(args...; n::Int = default_nvar, m::Int = 13, kwargs...) diff --git a/src/PureJuMP/biggs6.jl b/src/PureJuMP/biggs6.jl index 7ad915b3d..3297fd9ef 100644 --- a/src/PureJuMP/biggs6.jl +++ b/src/PureJuMP/biggs6.jl @@ -1,15 +1,3 @@ -# Source: problem 18 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# Source: Problem 21 in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. - -# classification SUR2-AN-6-0 export biggs6 function biggs6(args...; n::Int = default_nvar, m::Int = 13, kwargs...) diff --git a/src/PureJuMP/booth.jl b/src/PureJuMP/booth.jl index 009312e4e..99b442b15 100644 --- a/src/PureJuMP/booth.jl +++ b/src/PureJuMP/booth.jl @@ -11,13 +11,7 @@ # granted, provided that the above copyright notice appear in all # copies and that the copyright notice and this # permission notice appear in all supporting documentation. -# Source: Problem 36 in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# SIF input: Ph. Toint, Dec 1989. -# classification NLR2-AN-2-2 + export booth function booth(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/boundary.jl b/src/PureJuMP/boundary.jl index f745b1e1e..f6445b5c0 100644 --- a/src/PureJuMP/boundary.jl +++ b/src/PureJuMP/boundary.jl @@ -1,13 +1,3 @@ -# Discrete boundary value problem -# -# Problem 14 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization export boundary function boundary(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/boxbod.jl b/src/PureJuMP/boxbod.jl index 2ddf9aa12..02cf3bc13 100644 --- a/src/PureJuMP/boxbod.jl +++ b/src/PureJuMP/boxbod.jl @@ -1,39 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/boxbod.dat - -NIST/ITL StRD -Dataset Name: BoxBOD (BoxBOD.dat) - -File Format: ASCII - Starting Values (lines 41 to 42) - Certified Values (lines 41 to 47) - Data (lines 61 to 66) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are described in detail in Box, Hunter and - Hunter (1978). The response variable is biochemical - oxygen demand (BOD) in mg/l, and the predictor - variable is incubation time in days. - -Reference: Box, G. P., W. G. Hunter, and J. S. Hunter (1978). - Statistics for Experimenters. - New York, NY: Wiley, pp. 483-487. - -Data: 1 Response (y = biochemical oxygen demand) - 1 Predictor (x = incubation time) - 6 Observations - Higher Level of Difficulty - Observed Data - -Model: Exponential Class - 2 Parameters (b1 and b2) - - y = b1*(1-exp[-b2*x]) + e -=# -# T. Migot, Montreal, 2023. - export boxbod function boxbod(args...; kwargs...) diff --git a/src/PureJuMP/bqp1var.jl b/src/PureJuMP/bqp1var.jl index e9def368c..a9bbfe1bf 100644 --- a/src/PureJuMP/bqp1var.jl +++ b/src/PureJuMP/bqp1var.jl @@ -11,9 +11,6 @@ # granted, provided that the above copyright notice appear in all # copies and that the copyright notice and this # permission notice appear in all supporting documentation. -# Source: a one variable box-constrained quadratic -# SIF input: Nick Gould, March 1992 -# classification QBR2-AN-1-0 export bqp1var function bqp1var(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/brownal.jl b/src/PureJuMP/brownal.jl index 31d9ddb8c..821a880fb 100644 --- a/src/PureJuMP/brownal.jl +++ b/src/PureJuMP/brownal.jl @@ -1,16 +1,3 @@ -# The Brown almost linear problem in variable dimension. This is a nonlinear -# least-squares problems with n groups. -# -# Source: Problem 27 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# Alsso problem 79 in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# export brownal "Brownbs Model" diff --git a/src/PureJuMP/brownbs.jl b/src/PureJuMP/brownbs.jl index 9b7268582..3ad46b357 100644 --- a/src/PureJuMP/brownbs.jl +++ b/src/PureJuMP/brownbs.jl @@ -1,15 +1,3 @@ -# Source: Problem 4 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# -# See also Buckley#25 -# SIF input: Ph. Toint, Dec 1989. -# -# classification SUR2-AN-2-0 -# -# A. Cebola, Curitiba 10/2016. - export brownbs "Brownbs Model" diff --git a/src/PureJuMP/brownden.jl b/src/PureJuMP/brownden.jl index 24cba0fd5..54449030c 100644 --- a/src/PureJuMP/brownden.jl +++ b/src/PureJuMP/brownden.jl @@ -1,14 +1,3 @@ -# Brown and Dennis function -# -# Source: Problem 16 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# -# See also Buckley#30 -# -# classification SUR2-AN-4-0 - export brownden "Brown and Dennis function" diff --git a/src/PureJuMP/browngen1.jl b/src/PureJuMP/browngen1.jl index a2af8afa1..62d86f519 100644 --- a/src/PureJuMP/browngen1.jl +++ b/src/PureJuMP/browngen1.jl @@ -1,13 +1,3 @@ -# Generalization of the Brown function 1 -# -# Problem 12 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization export browngen1 function browngen1(; n::Int = default_nvar) diff --git a/src/PureJuMP/browngen2.jl b/src/PureJuMP/browngen2.jl index d779cc6a5..3deec5efa 100644 --- a/src/PureJuMP/browngen2.jl +++ b/src/PureJuMP/browngen2.jl @@ -1,13 +1,3 @@ -# Generalization of the Brown function 2 -# -# Problem 13 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization export browngen2 function browngen2(; n::Int = default_nvar) diff --git a/src/PureJuMP/broyden3d.jl b/src/PureJuMP/broyden3d.jl index 169e0fee9..d3e7964df 100644 --- a/src/PureJuMP/broyden3d.jl +++ b/src/PureJuMP/broyden3d.jl @@ -1,16 +1,3 @@ -# Broyden tridiagonal problem in variable dimension. This is a nonlinear -# least-squares problem with n groups. -# -# Source: Problem 30 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# Also problem 78 in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# export broyden3d function broyden3d(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/broyden7d.jl b/src/PureJuMP/broyden7d.jl index 60c8d49a6..103b450c0 100644 --- a/src/PureJuMP/broyden7d.jl +++ b/src/PureJuMP/broyden7d.jl @@ -1,13 +1,3 @@ -# Seven diagonal generalization of the Broyden tridiagonal function -# -# Problem 7 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization export broyden7d function broyden7d(; n::Int = default_nvar) diff --git a/src/PureJuMP/broydn7d.jl b/src/PureJuMP/broydn7d.jl index 87b2da64c..a9233beb4 100644 --- a/src/PureJuMP/broydn7d.jl +++ b/src/PureJuMP/broydn7d.jl @@ -1,47 +1,3 @@ -# A seven diagonal variant of the Broyden tridiagonal system, -# featuring a band far away from the diagonal. -# -# Source: -# Problem 3.4 in -# Ph. L. Toint, -# Some numerical results using a sparse matrix updating formula in -# unconstrained optimization, -# Mathematics of Computation, vol. 32(114), pp. 839-852, 1978. -# http://dx.doi.org/10.1090/S0025-5718-1978-0483452-7 -# -# From the paper, -# -# "This function was built from a nonlinear system of equations -# suggested originally by Broyden ..." -# -# The system in question is described in -# -# L. K. Schubert, -# Modification of a quasi-Newton method for nonlinear equations -# with a sparse Jacobian, -# Mathematics of Computation, vol. 24, pp. 27-30, 1970. -# http://dx.doi.org/10.1090/S0025-5718-1970-0258276-9#sthash.yOkQUwXA.dpuf -# -# See also, with a slight variation in the formulation, -# -# problem 3 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# See also Buckley#84 -# -# classification OUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - -# Note: discrepancy with CUTEst appears to be a bug in CUTEst, this matches the original paper -# (See issue #36) - export broydn7d "Broyden 7-diagonal model in size `n`" diff --git a/src/PureJuMP/brybnd.jl b/src/PureJuMP/brybnd.jl index 309d58f6a..d3bfd8a80 100644 --- a/src/PureJuMP/brybnd.jl +++ b/src/PureJuMP/brybnd.jl @@ -1,45 +1,3 @@ -# Broyden banded system of nonlinear equations, considered in the -# least square sense. -# -# Source: -# problem 31 in -# J. J. Moré, B. S. Garbow and K. E. Hillstrom, -# Testing Unconstrained Optimization Software, -# ACM Transactions on Mathematical Software, -# vol. 7(1), pp. 17-41, 1981. -# http://dx.doi.org/10.1145/355934.355936 -# -# See also Buckley#73 (p. 41) and Toint#18 -# -# The system in question is described in -# -# C. G. Broyden, -# A class of methods for solving nonlinear simultaneous -# equations, -# Mathematics of Computation, vol. 19, 577-593, 1965. -# http://dx.doi.org/10.1090/S0025-5718-1965-0198670-6#sthash.I3Dmi8yu.dpuf -# -# See also -# -# problem 4 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# Moré, Garbow and Hillstrom leave ml and mu as parameters. -# Luksan, Matonoha and Vlcek do not. -# -# classification SUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - -# Note: discrepancy with CUTEst appears to be a bug in CUTEst, this matches the original paper -# (See issue #36) - export brybnd "Broyden banded model in size `n`" diff --git a/src/PureJuMP/bt1.jl b/src/PureJuMP/bt1.jl index f6bdcd6eb..47d381002 100644 --- a/src/PureJuMP/bt1.jl +++ b/src/PureJuMP/bt1.jl @@ -1,15 +1,3 @@ -# Source: problem 13 (p. 103) in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# -# Problem from CUTE: https://github.com/mpf/Optimization-Test-Problems/blob/master/cute/bt1.mod -# -# classification QQR2-AN-2-1 -# -# A. Cebola, Curitiba 10/2016. - export bt1 "BT1 Model" diff --git a/src/PureJuMP/camshape.jl b/src/PureJuMP/camshape.jl index 9e4d1cc62..a14a4ccbe 100644 --- a/src/PureJuMP/camshape.jl +++ b/src/PureJuMP/camshape.jl @@ -1,13 +1,3 @@ -# Maximize the area of the valve opening for one rotation of a convex cam -# with constraints on the curvature and on the radius of the cam - -# This is problem 3 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) - -# classification LOR2-AN-V-V - export camshape function camshape(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/catenary.jl b/src/PureJuMP/catenary.jl index d25daaa0c..ef16ca8f1 100644 --- a/src/PureJuMP/catenary.jl +++ b/src/PureJuMP/catenary.jl @@ -1,19 +1,3 @@ -# The classical problem of the hanging catenary. Here the catenary consists -# of N+1 beams of length BL, with the first beam fixed at the origin and -# the final bean fixed at a fraction FRACT of the total length of all -# beams. -# -# The problem is non-convex. -# -# Source: -# K. Veselic, -# "De forma catenarum in campo gravitatis pendentium", -# Klasicna Gimnazija u Zagrebu, Zagreb, 1987. -# -# classification LQR2-AY-V-V -# -# M. Gollier, Montréal, 05/2023 - export catenary function catenary(args...; n::Int = default_nvar, Bl = 1.0, FRACT = 0.6, kwargs...) diff --git a/src/PureJuMP/catmix.jl b/src/PureJuMP/catmix.jl index 4d010bb18..98a9e2def 100644 --- a/src/PureJuMP/catmix.jl +++ b/src/PureJuMP/catmix.jl @@ -1,8 +1,3 @@ -# Catalyst Mixing Problem -# Collocation formulation -# COPS 3.0 - November 2002 -# COPS 3.1 - March 2004 - export catmix function catmix(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/chain.jl b/src/PureJuMP/chain.jl index c3b2d23a5..6ab2951e1 100644 --- a/src/PureJuMP/chain.jl +++ b/src/PureJuMP/chain.jl @@ -1,15 +1,3 @@ -# Hanging Chain - -# Find the chain (of uniform density) of length L suspended between two points with minimal -# potential energy. - -# This is problem 4 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) - -# classification OOR2-AN-V-V - export chain function chain(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/chainwoo.jl b/src/PureJuMP/chainwoo.jl index 43b948c5a..a27663593 100644 --- a/src/PureJuMP/chainwoo.jl +++ b/src/PureJuMP/chainwoo.jl @@ -1,36 +1,3 @@ -# Source: problem 8 in -# A. R. Conn, N. I. M. Gould and Ph. L. Toint, -# Testing a class of methods for solving minimization -# problems with simple bounds on their variables, -# Mathematics of Computation 50, p 399-430, 1988. -# -# See also -# -# problem 5 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification SUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - -# Difference with the following is the initial guess. -# -# Problem 2 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization -# - export chainwoo "The chained Woods function in size `n`, a variant on the Woods function" diff --git a/src/PureJuMP/channel.jl b/src/PureJuMP/channel.jl index f21beeeee..cbfcec9e3 100644 --- a/src/PureJuMP/channel.jl +++ b/src/PureJuMP/channel.jl @@ -1,14 +1,3 @@ -# Flow in a Channel - -# Analyze the flow of a fluid during injection into a long vertical channel - -# This is problem 7 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) - -# classification OOR2-AN-V-V - export channel function channel(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/chnrosnb_mod.jl b/src/PureJuMP/chnrosnb_mod.jl index 8abab9b24..008274dd8 100644 --- a/src/PureJuMP/chnrosnb_mod.jl +++ b/src/PureJuMP/chnrosnb_mod.jl @@ -1,18 +1,3 @@ -# Chaineded Rosenbrock - modified function. - -# problem 27 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification SUR2-AN-V-0 -# -# J,-P, Dussault, Rennes 09/2015. - export chnrosnb_mod function chnrosnb_mod(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/chwirut1.jl b/src/PureJuMP/chwirut1.jl index aa9d4478d..cccaefc4f 100644 --- a/src/PureJuMP/chwirut1.jl +++ b/src/PureJuMP/chwirut1.jl @@ -1,38 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/chwirut1.dat - -NIST/ITL StRD -Dataset Name: Chwirut1 (Chwirut1.dat) - -File Format: ASCII - Starting Values (lines 41 to 43) - Certified Values (lines 41 to 48) - Data (lines 61 to 274) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study involving - ultrasonic calibration. The response variable is - ultrasonic response, and the predictor variable is - metal distance. - -Reference: Chwirut, D., NIST (197?). - Ultrasonic Reference Block Study. - -Data: 1 Response Variable (y = ultrasonic response) - 1 Predictor Variable (x = metal distance) - 214 Observations - Lower Level of Difficulty - Observed Data - -Model: Exponential Class - 3 Parameters (b1 to b3) - - y = exp[-b1*x]/(b2+b3*x) + e -=# -# T. Migot, Montreal, 2023. - export chwirut1 function chwirut1(args...; kwargs...) diff --git a/src/PureJuMP/chwirut2.jl b/src/PureJuMP/chwirut2.jl index cab1727df..a236c002f 100644 --- a/src/PureJuMP/chwirut2.jl +++ b/src/PureJuMP/chwirut2.jl @@ -1,39 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/chwirut2.dat - -NIST/ITL StRD -Dataset Name: Chwirut2 (Chwirut2.dat) - -File Format: ASCII - Starting Values (lines 41 to 43) - Certified Values (lines 41 to 48) - Data (lines 61 to 114) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study involving - ultrasonic calibration. The response variable is - ultrasonic response, and the predictor variable is - metal distance. - -Reference: Chwirut, D., NIST (197?). - Ultrasonic Reference Block Study. - -Data: 1 Response (y = ultrasonic response) - 1 Predictor (x = metal distance) - 54 Observations - Lower Level of Difficulty - Observed Data - -Model: Exponential Class - 3 Parameters (b1 to b3) - - y = exp(-b1*x)/(b2+b3*x) + e - -=# -# T. Migot, Montreal, 2023. - export chwirut2 function chwirut2(args...; kwargs...) diff --git a/src/PureJuMP/cliff.jl b/src/PureJuMP/cliff.jl index 141b1016a..10cf9866d 100644 --- a/src/PureJuMP/cliff.jl +++ b/src/PureJuMP/cliff.jl @@ -1,13 +1,3 @@ -# The "cliff problem" in 2 variables -# -# Source: problem 206 (p. 46) in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# -# classification OUR2-AN-2-0 - export cliff "The 'cliff problem' in 2 variables" diff --git a/src/PureJuMP/clnlbeam.jl b/src/PureJuMP/clnlbeam.jl index d0036e288..89d007019 100644 --- a/src/PureJuMP/clnlbeam.jl +++ b/src/PureJuMP/clnlbeam.jl @@ -1,15 +1,7 @@ -#= -The clnlbeam problem -https://jump.dev/JuMP.jl/stable/tutorials/nonlinear/clnlbeam/ +# Based on an AMPL model by Hande Y. Benson +# Copyright (C) 2001 Princeton University All Rights Reserved +# Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that the copyright notice and this permission notice appear in all supporting documentation. -Based on an AMPL model by Hande Y. Benson - -Copyright (C) 2001 Princeton University All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that the copyright notice and this permission notice appear in all supporting documentation. - -Source: H. Maurer and H.D. Mittelman, "The non-linear beam via optimal control with bound state variables", Optimal Control Applications and Methods 12, pp. 19-31, 1991. -=# export clnlbeam "The clnlbeam problem in size `n`" diff --git a/src/PureJuMP/clplatea.jl b/src/PureJuMP/clplatea.jl index 4076cc932..91d044ed2 100644 --- a/src/PureJuMP/clplatea.jl +++ b/src/PureJuMP/clplatea.jl @@ -1,27 +1,3 @@ -# The clamped plate problem (Strang, Nocedal, Dax). -# The problem comes from the discretization the following problem -# in mechanics: a plate is clamped on one edge and loaded on the -# opposite side. The plate is the unit square. -# -# In this version of the problem, the weight wght is entirely put on the -# upper right corner of the plate. -# -# The plate is clamped on its lower edge, by fixing the -# corresponding variables to zero. -# -# Source: -# J. Nocedal, -# "Solving large nonlinear systems of equations arising in mechanics", -# Proceedings of the Cocoyoc Numerical Analysis Conference, Mexico, -# pp. 132-141, 1981. -# -# classification OXR2-MN-V-0 -# -# p is the number of points in one side of the unit square -# The number of variables is p*p, of which (p-1)*(p-1) are free. -# -# Fixed variables have been eliminated from the objective function. - export clplatea "The clamped plate problem (Strang, Nocedal, Dax)." diff --git a/src/PureJuMP/clplateb.jl b/src/PureJuMP/clplateb.jl index c8314729c..0e66732ea 100644 --- a/src/PureJuMP/clplateb.jl +++ b/src/PureJuMP/clplateb.jl @@ -1,28 +1,3 @@ -# The clamped plate problem (Strang, Nocedal, Dax) -# The problem comes from the discretization the following problem -# in mechanics: a plate is clamped on one edge and loaded on the -# opposite side. The plate is the unit square. -# -# The plate is clamped on its lower edge, by fixing the -# corresponding variables to zero. -# -# In this version of the problem, the weight wght is distributed -# equally along the upper edge, introducing a symmetry with respect -# to the vertical axis. -# -# Source: -# J. Nocedal, -# "Solving large nonlinear systems of equations arising in mechanics", -# Proceedings of the Cocoyoc Numerical Analysis Conference, Mexico, -# pp. 132-141, 1981. -# -# classification OXR2-MN-V-0 -# -# p is the number of points in one side of the unit square -# The number of variables is p*p, of which (p-1)*(p-1) are free. -# -# Fixed variables have been eliminated from the objective function. - export clplateb "The clamped plate problem (Strang, Nocedal, Dax)." diff --git a/src/PureJuMP/clplatec.jl b/src/PureJuMP/clplatec.jl index 1b6a70b84..cd3e50a97 100644 --- a/src/PureJuMP/clplatec.jl +++ b/src/PureJuMP/clplatec.jl @@ -1,27 +1,3 @@ -# The clamped plate problem (Strang, Nocedal, Dax). -# The problem comes from the discretization the following problem -# in mechanics: a plate is clamped on one edge and loaded on the -# opposite side. The plate is the unit square. -# -# In this version of the problem, part of the weight wght is put on the -# upper right corner of the plate, and the rest on the upper left corner. -# -# The plate is clamped on its lower edge, by fixing the -# corresponding variables to zero. -# -# Source: -# J. Nocedal, -# "Solving large nonlinear systems of equations arising in mechanics", -# Proceedings of the Cocoyoc Numerical Analysis Conference, Mexico, -# pp. 132-141, 1981. -# -# classification OXR2-MN-V-0 -# -# p is the number of points in one side of the unit square -# The number of variables is p*p, of which (p-1)*(p-1) are free. -# -# Fixed variables have been eliminated from the objective function. - export clplatec "The clamped plate problem (Strang, Nocedal, Dax)." diff --git a/src/PureJuMP/controlinvestment.jl b/src/PureJuMP/controlinvestment.jl index 7a8d74a7f..0d5acaf89 100644 --- a/src/PureJuMP/controlinvestment.jl +++ b/src/PureJuMP/controlinvestment.jl @@ -1,6 +1,3 @@ -# Example 5.3, Dominique Orban, Computation Optimization and Control lecture notes at Polytechnique Montréal. -# This is a simple investment problem in optimistic market. - export controlinvestment function controlinvestment(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/cosine.jl b/src/PureJuMP/cosine.jl index a96bfbb42..b14f8edcc 100644 --- a/src/PureJuMP/cosine.jl +++ b/src/PureJuMP/cosine.jl @@ -1,18 +1,3 @@ -# The cosine function. -# -# Source: problem 6 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification OUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - export cosine "The cosine function in size `n`" diff --git a/src/PureJuMP/cragglvy.jl b/src/PureJuMP/cragglvy.jl index b17027fdd..70e1d65e5 100644 --- a/src/PureJuMP/cragglvy.jl +++ b/src/PureJuMP/cragglvy.jl @@ -1,27 +1,3 @@ -# Extended Cragg and Levy problem. -# The Hessian matrix is 7-diagonal. -# -# Source: problem 32 in -# Ph. L. Toint, -# Test problems for partially separable optimization and results -# for the routine PSPMIN, -# Report 83/4, Department of Mathematics, FUNDP (Namur, B), 1983. -# -# See also -# -# problem 7 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification OUR2-AY-V-0 -# -# D. Orban, Montreal, 08/2015. - export cragglvy "The extented Cragg and Levy function in size `n`" diff --git a/src/PureJuMP/cragglvy2.jl b/src/PureJuMP/cragglvy2.jl index 366743e5f..0777fdae9 100644 --- a/src/PureJuMP/cragglvy2.jl +++ b/src/PureJuMP/cragglvy2.jl @@ -1,25 +1,3 @@ -# Chained Cragg and Levy function -# -# This is similar to cragglvy but the quartic term differs. -# -# Problem 17 in -# Conn, A.R., Gould, N.I.M, Toint, P., -# Testing a Class of Methods for Solving -# Minimization Problems with Simple Bounds on the Variables, -# Mathematics of Computation, -# Vol. 50, pp. 399-430, 1988. - -# -# Problem 4 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization -# - export cragglvy2 "The extented Cragg and Levy function in size `n`" diff --git a/src/PureJuMP/curly.jl b/src/PureJuMP/curly.jl index bb3719a20..cad02b2da 100644 --- a/src/PureJuMP/curly.jl +++ b/src/PureJuMP/curly.jl @@ -1,25 +1,3 @@ -# A banded function with semi-bandwidth b and -# negative curvature near the starting point. -# -# Note that the initial point in the reference below is erroneous. -# In this model, we use the starting point specified in the -# original SIF model, part of the CUTE collection. -# -# See also -# -# problems 8, 9, 10 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification SUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - export curly, curly10, curly20, curly30 "Curly function in size `n` with semi-bandwidth `b`" diff --git a/src/PureJuMP/danwood.jl b/src/PureJuMP/danwood.jl index 37bb05e88..72f3237fb 100644 --- a/src/PureJuMP/danwood.jl +++ b/src/PureJuMP/danwood.jl @@ -1,43 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/danwood.dat - -NIST/ITL StRD -Dataset Name: DanWood (DanWood.dat) - -File Format: ASCII - Starting Values (lines 41 to 42) - Certified Values (lines 41 to 47) - Data (lines 61 to 66) - -Procedure: Nonlinear Least Squares Regression - -Description: These data and model are described in Daniel and Wood - (1980), and originally published in E.S.Keeping, - "Introduction to Statistical Inference," Van Nostrand - Company, Princeton, NJ, 1962, p. 354. The response - variable is energy radieted from a carbon filament - lamp per cm**2 per second, and the predictor variable - is the absolute temperature of the filament in 1000 - degrees Kelvin. - -Reference: Daniel, C. and F. S. Wood (1980). - Fitting Equations to Data, Second Edition. - New York, NY: John Wiley and Sons, pp. 428-431. - -Data: 1 Response Variable (y = energy) - 1 Predictor Variable (x = temperature) - 6 Observations - Lower Level of Difficulty - Observed Data - -Model: Miscellaneous Class - 2 Parameters (b1 and b2) - - y = b1*x**b2 + e -=# -# T. Migot, Montreal, 2023. - export danwood function danwood(args...; kwargs...) diff --git a/src/PureJuMP/dixmaan_efgh.jl b/src/PureJuMP/dixmaan_efgh.jl index 5cea0bf79..cd3b16ad9 100644 --- a/src/PureJuMP/dixmaan_efgh.jl +++ b/src/PureJuMP/dixmaan_efgh.jl @@ -1,26 +1,3 @@ -# The Dixon-Maany test problem (version E by default) -# -# Source: -# L. C. W. Dixon and Z. Maany, -# A family of test problems with sparse Hessians for unconstrained -# optimization, -# TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. -# -# See also -# -# problems 11, 12, 13, 14 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification OUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - export dixmaane, dixmaanf, dixmaang, dixmaanh "Dixon-Maany function in size `n` (version E by default)" diff --git a/src/PureJuMP/dixmaan_ijkl.jl b/src/PureJuMP/dixmaan_ijkl.jl index 0dcac5508..a5ad34596 100644 --- a/src/PureJuMP/dixmaan_ijkl.jl +++ b/src/PureJuMP/dixmaan_ijkl.jl @@ -1,26 +1,3 @@ -# The Dixon-Maany test problem (version I by default) -# -# Source: -# L. C. W. Dixon and Z. Maany, -# A family of test problems with sparse Hessians for unconstrained -# optimization, -# TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. -# -# See also -# -# problems 15, 16, 17, 18 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification OUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - export dixmaani, dixmaanj, dixmaank, dixmaanl "Dixon-Maany function in size `n` (version I by default)" diff --git a/src/PureJuMP/dixmaan_mnop.jl b/src/PureJuMP/dixmaan_mnop.jl index d25574bbf..5f54f768b 100644 --- a/src/PureJuMP/dixmaan_mnop.jl +++ b/src/PureJuMP/dixmaan_mnop.jl @@ -1,24 +1,3 @@ -# The Dixon-Maany test problem (version M by default) -# -# Source: -# L. C. W. Dixon and Z. Maany, -# A family of test problems with sparse Hessians for unconstrained -# optimization, -# TR 206, Numerical Optimization Centre, Hatfield Polytechnic, 1988. -# -# See also -# -# problems 19, 20, 21, 22 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# D. Orban, Montreal, 08/2015. - export dixmaanm, dixmaann, dixmaano, dixmaanp "Dixon-Maany function in size `n` (version M by default)" diff --git a/src/PureJuMP/dixon3dq.jl b/src/PureJuMP/dixon3dq.jl index 6b7ee3b70..18ac71a5d 100644 --- a/src/PureJuMP/dixon3dq.jl +++ b/src/PureJuMP/dixon3dq.jl @@ -1,13 +1,3 @@ -# Dixon's tridiagonal quadratic. -# -# Source: problem 156 (p. 51) in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# -# classification QUR2-AN-V-0 - export dixon3dq "Dixon's tridiagonal quadratic." diff --git a/src/PureJuMP/dqdrtic.jl b/src/PureJuMP/dqdrtic.jl index 8d611f6a0..9a36a16eb 100644 --- a/src/PureJuMP/dqdrtic.jl +++ b/src/PureJuMP/dqdrtic.jl @@ -1,13 +1,3 @@ -# Diagonal quadratic problem -# -# Source: problem 22 in -# Ph. L. Toint, -# "Test problems for partially separable optimization and results -# for the routine PSPMIN", -# Report 83/4, Department of Mathematics, FUNDP (Namur, B), 1983. -# -# classification QUR2-AN-V-0 - export dqdrtic "Diagonal quadratic problem" diff --git a/src/PureJuMP/dqrtic.jl b/src/PureJuMP/dqrtic.jl index 4efd23fd7..0702bc7ee 100644 --- a/src/PureJuMP/dqrtic.jl +++ b/src/PureJuMP/dqrtic.jl @@ -1,26 +1,3 @@ -# Variable dimension diagonal quartic problem. -# -# Source: problem 157 (p. 87) in -# A.R. Buckley, -# Test functions for unconstrained minimization, -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# -# See also -# -# problem 23 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification OUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - export dqrtic "Diagonal quartic model in size `n`" diff --git a/src/PureJuMP/eckerle4.jl b/src/PureJuMP/eckerle4.jl index 7b471f1c4..b82353732 100644 --- a/src/PureJuMP/eckerle4.jl +++ b/src/PureJuMP/eckerle4.jl @@ -1,38 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/eckerle4.dat - -NIST/ITL StRD -Dataset Name: Eckerle4 (Eckerle4.dat) - -File Format: ASCII - Starting Values (lines 41 to 43) - Certified Values (lines 41 to 48) - Data (lines 61 to 95) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study involving - circular interference transmittance. The response - variable is transmittance, and the predictor variable - is wavelength. - -Reference: Eckerle, K., NIST (197?). - Circular Interference Transmittance Study. - -Data: 1 Response Variable (y = transmittance) - 1 Predictor Variable (x = wavelength) - 35 Observations - Higher Level of Difficulty - Observed Data - -Model: Exponential Class - 3 Parameters (b1 to b3) - - y = (b1/b2) * exp[-0.5*((x-b3)/b2)**2] + e -=# -# T. Migot, Montreal, 2023. - export eckerle4 function eckerle4(args...; kwargs...) diff --git a/src/PureJuMP/edensch.jl b/src/PureJuMP/edensch.jl index 2f4018395..df1b723d9 100644 --- a/src/PureJuMP/edensch.jl +++ b/src/PureJuMP/edensch.jl @@ -1,26 +1,3 @@ -# The extended Dennis and Schnabel problem, as defined by Li. -# -# Source: -# G. Li, -# The secant/finite difference algorithm for solving sparse -# nonlinear systems of equations, -# SIAM Journal on Numerical Analysis, 25(5), pp. 1181-1196, 1988. -# -# See also -# -# problem 24 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification OUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - export edensch "Extended Dennis-Schnabel model in size `n`" diff --git a/src/PureJuMP/eg2.jl b/src/PureJuMP/eg2.jl index 1c4e49acf..5a6767912 100644 --- a/src/PureJuMP/eg2.jl +++ b/src/PureJuMP/eg2.jl @@ -1,26 +1,3 @@ -# A simple non convex problem with several local minima. -# -# Source: Section 1.2.4 of -# A. R. Conn, N. I. M. Gould and Ph. L. Toint, -# LANCELOT, A Fortran Package for Large-Scale Nonlinear Optimization -# (Release A) -# Springer Verlag, 1992. -# -# See also -# -# problem 25 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification OUR2-AN-1000-0 -# -# D. Orban, Montreal, 08/2015. - export eg2 "model in size `n`" diff --git a/src/PureJuMP/elec.jl b/src/PureJuMP/elec.jl index 032d27a05..4fced5333 100644 --- a/src/PureJuMP/elec.jl +++ b/src/PureJuMP/elec.jl @@ -1,13 +1,3 @@ -# Given np electrons, find the equilibrium state distribution of minimal -# Columb potential of the electrons positioned on a conducting sphere - -# This is problem 2 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) - -# classification OOR2-AN-V-V - export elec function elec(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/engval1.jl b/src/PureJuMP/engval1.jl index a3bcdefba..de5b760d0 100644 --- a/src/PureJuMP/engval1.jl +++ b/src/PureJuMP/engval1.jl @@ -1,26 +1,3 @@ -# The ENGVAL1 problem. -# -# Source: problem 31 in -# Ph.L. Toint, -# Test problems for partially separable optimization and results -# for the routine PSPMIN, -# Report 83/4, Department of Mathematics, FUNDP (Namur, B), 1983. -# -# See also -# -# problem 26 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification OUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - export engval1 "The Engval1 model in size `n`" diff --git a/src/PureJuMP/enso.jl b/src/PureJuMP/enso.jl index 1991f0dcd..8a2277db8 100644 --- a/src/PureJuMP/enso.jl +++ b/src/PureJuMP/enso.jl @@ -1,45 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/enso.dat - -NIST/ITL StRD -Dataset Name: ENSO (ENSO.dat) - -File Format: ASCII - Starting Values (lines 41 to 49) - Certified Values (lines 41 to 54) - Data (lines 61 to 228) - -Procedure: Nonlinear Least Squares Regression - -Description: The data are monthly averaged atmospheric pressure - differences between Easter Island and Darwin, - Australia. This difference drives the trade winds in - the southern hemisphere. Fourier analysis of the data - reveals 3 significant cycles. The annual cycle is the - strongest, but cycles with periods of approximately 44 - and 26 months are also present. These cycles - correspond to the El Nino and the Southern Oscillation. - Arguments to the SIN and COS functions are in radians. - -Reference: Kahaner, D., C. Moler, and S. Nash, (1989). - Numerical Methods and Software. - Englewood Cliffs, NJ: Prentice Hall, pp. 441-445. - -Data: 1 Response (y = atmospheric pressure) - 1 Predictor (x = time) - 168 Observations - Average Level of Difficulty - Observed Data - -Model: Miscellaneous Class - 9 Parameters (b1 to b9) - - y = b1 + b2*cos( 2*pi*x/12 ) + b3*sin( 2*pi*x/12 ) - + b5*cos( 2*pi*x/b4 ) + b6*sin( 2*pi*x/b4 ) - + b8*cos( 2*pi*x/b7 ) + b9*sin( 2*pi*x/b7 ) + e -=# - export enso function enso(args...; kwargs...) diff --git a/src/PureJuMP/errinros_mod.jl b/src/PureJuMP/errinros_mod.jl index 00c56c751..b36bf5ac6 100644 --- a/src/PureJuMP/errinros_mod.jl +++ b/src/PureJuMP/errinros_mod.jl @@ -1,18 +1,3 @@ -# Errin Rosenbrock - modified function. - -# problem 28 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification SUR2-AN-V-0 -# -# J,-P, Dussault, Rennes 09/2015. - export errinros_mod function errinros_mod(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/extrosnb.jl b/src/PureJuMP/extrosnb.jl index b2387296d..8d7babd2a 100644 --- a/src/PureJuMP/extrosnb.jl +++ b/src/PureJuMP/extrosnb.jl @@ -1,25 +1,3 @@ -# Source: problem 10 in -# Ph.L. Toint, -# "Test problems for partially separable optimization and results -# for the routine PSPMIN", -# Report 83/4, Department of Mathematics, FUNDP (Namur, B), 1983. - -# See also Buckley#116. Note that MGH#21 is the separable version. -# SIF input: Ph. Toint, Dec 1989. - -# problem 29 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification SUR2-AN-V-0 -# -# J.-P. Dussault, Rennes 09/2015. - export extrosnb function extrosnb(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/fletcbv2.jl b/src/PureJuMP/fletcbv2.jl index 7f26cbe26..8ae065485 100644 --- a/src/PureJuMP/fletcbv2.jl +++ b/src/PureJuMP/fletcbv2.jl @@ -1,25 +1,3 @@ -# Source: The first problem given by -# R. Fletcher, -# "An optimal positive definite update for sparse Hessian matrices" -# Numerical Analysis report NA/145, University of Dundee, 1992. - -# Scaled version. - -# SIF input: Nick Gould, Oct 1992. - -# problem 31 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification OUR2-AN-V-0 -# -# J,-P, Dussault, Rennes 09/2015. - export fletcbv2 function fletcbv2(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/fletcbv3_mod.jl b/src/PureJuMP/fletcbv3_mod.jl index 00199e094..ce7e4f504 100644 --- a/src/PureJuMP/fletcbv3_mod.jl +++ b/src/PureJuMP/fletcbv3_mod.jl @@ -1,25 +1,3 @@ -# Source: The first problem given by -# R. Fletcher, -# "An optimal positive definite update for sparse Hessian matrices" -# Numerical Analysis report NA/145, University of Dundee, 1992. - -# Scaled version. - -# SIF input: Nick Gould, Oct 1992. - -# problem 30 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification OUR2-AN-V-0 -# -# J.-P. Dussault, Rennes 09/2015. - export fletcbv3_mod function fletcbv3_mod(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/fletchcr.jl b/src/PureJuMP/fletchcr.jl index c9c9cc854..88d66f1be 100644 --- a/src/PureJuMP/fletchcr.jl +++ b/src/PureJuMP/fletchcr.jl @@ -1,35 +1,3 @@ -# Source: -# problem 32 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# CUTEst cites -# The second problem given by -# R. Fletcher, -# "An optimal positive definite update for sparse Hessian matrices" -# Numerical Analysis report NA/145, University of Dundee, 1992. -# -# Scaled version. -# -# SIF input: Nick Gould, Oct 1992. -# -# as source for this problem. -# It is possible that Fletcher may have used this problem in his -# technical report, but the published version of his report -# -# SIAM J. Optimization, 5(1), pp 192-218, 1995 -# -# uses the chained Rosenbrock problem, not the one below. -# -# classification OUR2-AN-V-0 -# -# J.-P. Dussault, Rennes 09/2015. - export fletchcr function fletchcr(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/fminsrf2.jl b/src/PureJuMP/fminsrf2.jl index 05da94823..ea472b219 100644 --- a/src/PureJuMP/fminsrf2.jl +++ b/src/PureJuMP/fminsrf2.jl @@ -1,23 +1,3 @@ -# Source: setting the boundary free in -# A Griewank and Ph. Toint, -# "Partitioned variable metric updates for large structured -# optimization problems", -# Numerische Mathematik 39:429-448, 1982. - -# SIF input: Ph. Toint, November 1991. - -# classification OUR2-MY-V-0 - -# Problem 33 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# J.-P. Dussault, Rennes 09/2015. - export fminsrf2 function fminsrf2(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/freuroth.jl b/src/PureJuMP/freuroth.jl index 3568b52c4..e5b1c50f0 100644 --- a/src/PureJuMP/freuroth.jl +++ b/src/PureJuMP/freuroth.jl @@ -1,25 +1,3 @@ -# Source: problem 2 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# See also Toint#33, Buckley#24 -# SIF input: Ph. Toint, Dec 1989. - -# classification SUR2-AN-V-0 -# -# problem 34 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification SUR2-AN-V-0 -# J.-P. Dussault, Rennes 09/2015. - export freuroth function freuroth(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/gasoil.jl b/src/PureJuMP/gasoil.jl index 1213e5d2b..a36762a78 100644 --- a/src/PureJuMP/gasoil.jl +++ b/src/PureJuMP/gasoil.jl @@ -1,10 +1,3 @@ -# 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 gasoil function gasoil(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/gauss1.jl b/src/PureJuMP/gauss1.jl index 57841e11d..4847b81e1 100644 --- a/src/PureJuMP/gauss1.jl +++ b/src/PureJuMP/gauss1.jl @@ -1,38 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/gauss1.dat - -NIST/ITL StRD -Dataset Name: Gauss1 (Gauss1.dat) - -File Format: ASCII - Starting Values (lines 41 to 48) - Certified Values (lines 41 to 53) - Data (lines 61 to 310) - -Procedure: Nonlinear Least Squares Regression - -Description: The data are two well-separated Gaussians on a - decaying exponential baseline plus normally - distributed zero-mean noise with variance = 6.25. - -Reference: Rust, B., NIST (1996). - -Data: 1 Response (y) - 1 Predictor (x) - 250 Observations - Lower Level of Difficulty - Generated Data - -Model: Exponential Class - 8 Parameters (b1 to b8) - - y = b1*exp( -b2*x ) + b3*exp( -(x-b4)**2 / b5**2 ) - + b6*exp( -(x-b7)**2 / b8**2 ) + e - -=# -# T. Migot, Montreal, 2023. - export gauss1 function gauss1(args...; kwargs...) diff --git a/src/PureJuMP/gauss2.jl b/src/PureJuMP/gauss2.jl index b8b22a51d..dd19852f2 100644 --- a/src/PureJuMP/gauss2.jl +++ b/src/PureJuMP/gauss2.jl @@ -1,37 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/gauss2.dat - -NIST/ITL StRD -Dataset Name: Gauss2 (Gauss2.dat) - -File Format: ASCII - Starting Values (lines 41 to 48) - Certified Values (lines 41 to 53) - Data (lines 61 to 310) - -Procedure: Nonlinear Least Squares Regression - -Description: The data are two slightly-blended Gaussians on a - decaying exponential baseline plus normally - distributed zero-mean noise with variance = 6.25. - -Reference: Rust, B., NIST (1996). - -Data: 1 Response (y) - 1 Predictor (x) - 250 Observations - Lower Level of Difficulty - Generated Data - -Model: Exponential Class - 8 Parameters (b1 to b8) - - y = b1*exp( -b2*x ) + b3*exp( -(x-b4)**2 / b5**2 ) - + b6*exp( -(x-b7)**2 / b8**2 ) + e -=# -# T. Migot, Montreal, 2023. - export gauss2 function gauss2(args...; kwargs...) diff --git a/src/PureJuMP/gauss3.jl b/src/PureJuMP/gauss3.jl index 032959668..b4669ad82 100644 --- a/src/PureJuMP/gauss3.jl +++ b/src/PureJuMP/gauss3.jl @@ -1,37 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/gauss3.dat - -NIST/ITL StRD -Dataset Name: Gauss3 (Gauss3.dat) - -File Format: ASCII - Starting Values (lines 41 to 48) - Certified Values (lines 41 to 53) - Data (lines 61 to 310) - -Procedure: Nonlinear Least Squares Regression - -Description: The data are two strongly-blended Gaussians on a - decaying exponential baseline plus normally - distributed zero-mean noise with variance = 6.25. - -Reference: Rust, B., NIST (1996). - -Data: 1 Response (y) - 1 Predictor (x) - 250 Observations - Average Level of Difficulty - Generated Data - -Model: Exponential Class - 8 Parameters (b1 to b8) - - y = b1*exp( -b2*x ) + b3*exp( -(x-b4)**2 / b5**2 ) - + b6*exp( -(x-b7)**2 / b8**2 ) + e -=# -# T. Migot, Montreal, 2023. - export gauss3 function gauss3(args...; kwargs...) diff --git a/src/PureJuMP/gaussian.jl b/src/PureJuMP/gaussian.jl index 84d20ce9d..147948ea4 100644 --- a/src/PureJuMP/gaussian.jl +++ b/src/PureJuMP/gaussian.jl @@ -1,11 +1,3 @@ -# Source: Problem 9 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# See also Buckley#28 - -# classification SUR2-AN-3-0 export gaussian function gaussian(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/genbroydenb.jl b/src/PureJuMP/genbroydenb.jl index 483478b7d..589e41a34 100644 --- a/src/PureJuMP/genbroydenb.jl +++ b/src/PureJuMP/genbroydenb.jl @@ -1,13 +1,3 @@ -# Generalized Broyden banded function -# -# Problem 6 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization export genbroydenb function genbroydenb(; n::Int = default_nvar) diff --git a/src/PureJuMP/genbroydentri.jl b/src/PureJuMP/genbroydentri.jl index 9abdf6e70..fbee04283 100644 --- a/src/PureJuMP/genbroydentri.jl +++ b/src/PureJuMP/genbroydentri.jl @@ -1,13 +1,3 @@ -# Generalized Broyden Tridiagonal Function -# -# Problem 5 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization export genbroydentri function genbroydentri(; n::Int = default_nvar) diff --git a/src/PureJuMP/genhumps.jl b/src/PureJuMP/genhumps.jl index 274b74b6e..42e24ccc1 100644 --- a/src/PureJuMP/genhumps.jl +++ b/src/PureJuMP/genhumps.jl @@ -1,21 +1,3 @@ -# Source: -# Ph. Toint, private communication, 1997. - -# SDIF input: N. Gould and Ph. Toint, November 1997. - -# problem 35 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# - -# classification SUR2-AN-V-0 -# J.-P. Dussault, Rennes 09/2015. - export genhumps function genhumps(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/genrose.jl b/src/PureJuMP/genrose.jl index 60c85b163..83ad42a93 100644 --- a/src/PureJuMP/genrose.jl +++ b/src/PureJuMP/genrose.jl @@ -1,68 +1,3 @@ -# Generalized Rosenbrock function. -# -# Source: -# Y.-W. Shang and Y.-H. Qiu, -# A note on the extended Rosenbrock function, -# Evolutionary Computation, 14(1):119–126, 2006. -# -# Shang and Qiu claim the "extended" Rosenbrock function -# previously appeared in -# -# K. A. de Jong, -# An analysis of the behavior of a class of genetic -# adaptive systems, -# PhD Thesis, University of Michigan, Ann Arbor, -# Michigan, 1975, -# (http://hdl.handle.net/2027.42/4507) -# -# but I could not find it there, and in -# -# D. E. Goldberg, -# Genetic algorithms in search, optimization and -# machine learning, -# Reading, Massachusetts: Addison-Wesley, 1989, -# -# but I don't have access to that book. -# -# This unconstrained problem is analyzed in -# -# S. Kok and C. Sandrock, -# Locating and Characterizing the Stationary Points of -# the Extended Rosenbrock Function, -# Evolutionary Computation 17, 2009. -# https://dx.doi.org/10.1162%2Fevco.2009.17.3.437 -# -# classification SUR2-AN-V-0 -# -# problem 36 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification SUR2-AN-V-0 -# -# D. Orban, Montreal, 08/2015. - -# Note: difference from CUTEst is due to the constant 1.0, -# which does not affect its utility as a test problem other than perhaps -# for convergence-testing. - -# Difference with the following is the initial guess. -# -# Problem 1 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization -# - export genrose, rosenbrock "Generalized Rosenbrock model in size `n`" diff --git a/src/PureJuMP/genrose_nash.jl b/src/PureJuMP/genrose_nash.jl index 25a800a50..da04c5513 100644 --- a/src/PureJuMP/genrose_nash.jl +++ b/src/PureJuMP/genrose_nash.jl @@ -1,34 +1,3 @@ -# Generalized Rosenbrock function. -# -# Source: problem 4 in -# S. Nash, -# Newton-type minimization via the Lanczos process, -# SIAM J. Num. Anal. 21, 770-788, 1984, -# -# and -# -# problem 36 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification SUR2-AN-V-0 -# -# Note: this variant does not reduce to the classical -# Rosenbrock function when n = 2, described in -# -# H. H. Rosenbrock, -# An automatic method for finding the greatest or least value -# of a function -# The Computer Journal 3: 175–184, 1960. -# https://dx.doi.org/10.1093%2Fcomjnl%2F3.3.175 -# -# D. Orban, Montreal, 08/2015. - export genrose_nash "Nash's variant of `genrose()` in size `n`" diff --git a/src/PureJuMP/glider.jl b/src/PureJuMP/glider.jl index 66ca5c79e..fceb3e4e0 100644 --- a/src/PureJuMP/glider.jl +++ b/src/PureJuMP/glider.jl @@ -1,10 +1,3 @@ -# 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(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/gulf.jl b/src/PureJuMP/gulf.jl index e9fa95721..7aadf4308 100644 --- a/src/PureJuMP/gulf.jl +++ b/src/PureJuMP/gulf.jl @@ -1,17 +1,3 @@ -# The Gulf research and development function for m = 99. -# -# Source: problem 11 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# Also problem 27 (p. 57) in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# -# SUR2-MN-3-0 - export gulf "Linear function with `n` parameters and `m` observations - full rank" diff --git a/src/PureJuMP/hahn1.jl b/src/PureJuMP/hahn1.jl index 3ecfbe74b..1214657bf 100644 --- a/src/PureJuMP/hahn1.jl +++ b/src/PureJuMP/hahn1.jl @@ -1,40 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/hahn1.dat - -NIST/ITL StRD -Dataset Name: Hahn1 (Hahn1.dat) - -File Format: ASCII - Starting Values (lines 41 to 47) - Certified Values (lines 41 to 52) - Data (lines 61 to 296) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study involving - the thermal expansion of copper. The response - variable is the coefficient of thermal expansion, and - the predictor variable is temperature in degrees - kelvin. - -Reference: Hahn, T., NIST (197?). - Copper Thermal Expansion Study. - -Data: 1 Response (y = coefficient of thermal expansion) - 1 Predictor (x = temperature, degrees kelvin) - 236 Observations - Average Level of Difficulty - Observed Data - -Model: Rational Class (cubic/cubic) - 7 Parameters (b1 to b7) - - y = (b1+b2*x+b3*x**2+b4*x**3) / - (1+b5*x+b6*x**2+b7*x**3) + e -=# -# T. Migot, Montreal, 2023. - export hahn1 function hahn1(args...; kwargs...) diff --git a/src/PureJuMP/helical.jl b/src/PureJuMP/helical.jl index 9619b0f67..740d66352 100644 --- a/src/PureJuMP/helical.jl +++ b/src/PureJuMP/helical.jl @@ -1,8 +1,3 @@ -# Source: problem 7 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - export helical function helical(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/hovercraft1d.jl b/src/PureJuMP/hovercraft1d.jl index ab683f844..5c84a08d8 100644 --- a/src/PureJuMP/hovercraft1d.jl +++ b/src/PureJuMP/hovercraft1d.jl @@ -1,8 +1,3 @@ -# JuMP model follows Laurent Lessard CS/ECE/ISyE 524, University of Wisconsin–Madison, -# Introduction to Optimization class. - -# Hovercraft 1D example -# https://laurentlessard.com/teaching/524-intro-to-optimization/ export hovercraft1d function hovercraft1d(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/hs1.jl b/src/PureJuMP/hs1.jl index 1364f2f1a..1cf54e951 100644 --- a/src/PureJuMP/hs1.jl +++ b/src/PureJuMP/hs1.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 1. -# -# Source: -# Problem 1 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification SBR2-AN-2-0 -# -# N. Antunes, Curitiba, 10/2016. - export hs1 "HS1 model" diff --git a/src/PureJuMP/hs10.jl b/src/PureJuMP/hs10.jl index 288d29a94..db3b5390f 100644 --- a/src/PureJuMP/hs10.jl +++ b/src/PureJuMP/hs10.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 10. -# -# Source: -# Problem 10 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification LQR2-AN-2-1 -# -# N. Antunes, Curitiba, 10/2016. - export hs10 "HS10 model" diff --git a/src/PureJuMP/hs100.jl b/src/PureJuMP/hs100.jl index eb54e520c..53ec6ea86 100644 --- a/src/PureJuMP/hs100.jl +++ b/src/PureJuMP/hs100.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 100. -# -# Source: -# Problem 100 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR-AN-7-4 -# -# A. Montoison, Montreal, 05/2018. - export hs100 "HS100 model" diff --git a/src/PureJuMP/hs101.jl b/src/PureJuMP/hs101.jl index b022a57ee..c46e5961c 100644 --- a/src/PureJuMP/hs101.jl +++ b/src/PureJuMP/hs101.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 101. -# -# Source: -# Problem 101 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR-AN-7-6 -# -# A. Montoison, Montreal, 05/2018. - export hs101 "HS101 model" diff --git a/src/PureJuMP/hs102.jl b/src/PureJuMP/hs102.jl index 014e9b12a..cd841aede 100644 --- a/src/PureJuMP/hs102.jl +++ b/src/PureJuMP/hs102.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 102. -# -# Source: -# Problem 102 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR-AN-7-6 -# -# A. Montoison, Montreal, 05/2018. - export hs102 "HS102 model" diff --git a/src/PureJuMP/hs103.jl b/src/PureJuMP/hs103.jl index daee0005c..370b2e364 100644 --- a/src/PureJuMP/hs103.jl +++ b/src/PureJuMP/hs103.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 103. -# -# Source: -# Problem 103 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR-AN-7-6 -# -# A. Montoison, Montreal, 05/2018. - export hs103 "HS103 model" diff --git a/src/PureJuMP/hs104.jl b/src/PureJuMP/hs104.jl index 98bd7a5a5..b6a30d412 100644 --- a/src/PureJuMP/hs104.jl +++ b/src/PureJuMP/hs104.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 104. -# -# Source: -# Problem 104 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR-AN-8-6 -# -# A. Montoison, Montreal, 05/2018. - export hs104 "HS104 model" diff --git a/src/PureJuMP/hs105.jl b/src/PureJuMP/hs105.jl index 12ed6d7ab..d77b9ef38 100644 --- a/src/PureJuMP/hs105.jl +++ b/src/PureJuMP/hs105.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 105. -# -# Source: -# Problem 105 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification GLR-AN-8-1 -# -# A. Montoison, Montreal, 05/2018. - export hs105 "HS105 model" diff --git a/src/PureJuMP/hs106.jl b/src/PureJuMP/hs106.jl index b4cf45de5..0dca70735 100644 --- a/src/PureJuMP/hs106.jl +++ b/src/PureJuMP/hs106.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 106. -# -# Source: -# Problem 106 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification LQR-AN-8-6 -# -# A. Montoison, Montreal, 05/2018. - export hs106 "HS106 model" diff --git a/src/PureJuMP/hs107.jl b/src/PureJuMP/hs107.jl index b04d5ca3b..8cfc02644 100644 --- a/src/PureJuMP/hs107.jl +++ b/src/PureJuMP/hs107.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 107. -# -# Source: -# Problem 107 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PGR-AN-9-6 -# -# A. Montoison, Montreal, 05/2018. - export hs107 "HS107 model" diff --git a/src/PureJuMP/hs108.jl b/src/PureJuMP/hs108.jl index 4c0633b0d..ab5e2cae8 100644 --- a/src/PureJuMP/hs108.jl +++ b/src/PureJuMP/hs108.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 108. -# -# Source: -# Problem 108 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR-AN-9-13 -# -# A. Montoison, Montreal, 05/2018. - export hs108 "HS108 model" diff --git a/src/PureJuMP/hs109.jl b/src/PureJuMP/hs109.jl index d78ba29db..46a767ace 100644 --- a/src/PureJuMP/hs109.jl +++ b/src/PureJuMP/hs109.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 109. -# -# Source: -# Problem 109 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PGR-AN-9-10 -# -# A. Montoison, Montreal, 05/2018. - export hs109 "HS109 model" diff --git a/src/PureJuMP/hs11.jl b/src/PureJuMP/hs11.jl index aae78bb65..3feca61e7 100644 --- a/src/PureJuMP/hs11.jl +++ b/src/PureJuMP/hs11.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 11. -# -# Source: -# Problem 11 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification SQR2-AN-2-1 -# -# N. Antunes, Curitiba, 10/2016. - export hs11 "HS11 model" diff --git a/src/PureJuMP/hs110.jl b/src/PureJuMP/hs110.jl index 1939ce1d1..728cb6bb8 100644 --- a/src/PureJuMP/hs110.jl +++ b/src/PureJuMP/hs110.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 110. -# -# Source: -# Problem 110 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification GBR-AN-10-0 -# -# A. Montoison, Montreal, 05/2018. - export hs110 "HS110 model" diff --git a/src/PureJuMP/hs111.jl b/src/PureJuMP/hs111.jl index 5aa0e677d..fb8459577 100644 --- a/src/PureJuMP/hs111.jl +++ b/src/PureJuMP/hs111.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 111. -# -# Source: -# Problem 111 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification OOR2-AN-10-3 -# -# N. Antunes, Curitiba, 10/2016. - export hs111 "HS111 model" diff --git a/src/PureJuMP/hs112.jl b/src/PureJuMP/hs112.jl index 9411db65c..c0c4e12c1 100644 --- a/src/PureJuMP/hs112.jl +++ b/src/PureJuMP/hs112.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 112. -# -# Source: -# Problem 112 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification OLR2-MY-10-3 -# -# N. Antunes, Curitiba, 10/2016. - export hs112 "HS112 model" diff --git a/src/PureJuMP/hs113.jl b/src/PureJuMP/hs113.jl index bec2acdcf..23259dc3f 100644 --- a/src/PureJuMP/hs113.jl +++ b/src/PureJuMP/hs113.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 113. -# -# Source: -# Problem 113 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR-AN-10-8 -# -# A. Montoison, Montreal, 05/2018. - export hs113 "HS113 model" diff --git a/src/PureJuMP/hs114.jl b/src/PureJuMP/hs114.jl index b6537e397..40bdfa1b3 100644 --- a/src/PureJuMP/hs114.jl +++ b/src/PureJuMP/hs114.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 114. -# -# Source: -# Problem 114 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QGR-AN-10-11 -# -# A. Montoison, Montreal, 05/2018. - export hs114 "HS114 model" diff --git a/src/PureJuMP/hs116.jl b/src/PureJuMP/hs116.jl index 84d346a69..d7cdbe1e1 100644 --- a/src/PureJuMP/hs116.jl +++ b/src/PureJuMP/hs116.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 116. -# -# Source: -# Problem 116 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QGR-AN-13-14 -# -# A. Montoison, Montreal, 05/2018. - export hs116 "HS116 model" diff --git a/src/PureJuMP/hs117.jl b/src/PureJuMP/hs117.jl index 7bbf6599e..a15567b83 100644 --- a/src/PureJuMP/hs117.jl +++ b/src/PureJuMP/hs117.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 117. -# -# Source: -# Problem 117 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PQR-AN-15-5 -# -# A. Montoison, Montreal, 05/2018. - export hs117 "HS117 model" diff --git a/src/PureJuMP/hs118.jl b/src/PureJuMP/hs118.jl index 45078c3a4..0b45043d1 100644 --- a/src/PureJuMP/hs118.jl +++ b/src/PureJuMP/hs118.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 118. -# -# Source: -# Problem 118 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QLR-AN-15-17 -# -# A. Montoison, Montreal, 05/2018. - export hs118 "HS118 model" diff --git a/src/PureJuMP/hs119.jl b/src/PureJuMP/hs119.jl index 2263268cd..a99af115b 100644 --- a/src/PureJuMP/hs119.jl +++ b/src/PureJuMP/hs119.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 119. -# -# Source: -# Problem 119 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PLR-AN-16-8 -# -# A. Montoison, Montreal, 05/2018. - export hs119 "HS119 model" diff --git a/src/PureJuMP/hs12.jl b/src/PureJuMP/hs12.jl index f4bd81de9..68eb2c062 100644 --- a/src/PureJuMP/hs12.jl +++ b/src/PureJuMP/hs12.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 12. -# -# Source: -# Problem 12 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR2-AN-2-1 -# -# N. Antunes, Curitiba, 10/2016. - export hs12 "HS12 model" diff --git a/src/PureJuMP/hs13.jl b/src/PureJuMP/hs13.jl index 968e1eb3b..88ce5b956 100644 --- a/src/PureJuMP/hs13.jl +++ b/src/PureJuMP/hs13.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 13. -# -# Source: -# Problem 13 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR2-AN-2-1 -# -# N. Antunes, Curitiba, 10/2016. - export hs13 "HS13 model" diff --git a/src/PureJuMP/hs14.jl b/src/PureJuMP/hs14.jl index 98cd3071e..7c821b87e 100644 --- a/src/PureJuMP/hs14.jl +++ b/src/PureJuMP/hs14.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 14. -# -# Source: -# Problem 14 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification SQR2-AN-2-2 -# -# N. Antunes, Curitiba, 10/2016. - export hs14 "HS14 model" diff --git a/src/PureJuMP/hs15.jl b/src/PureJuMP/hs15.jl index 17c354400..2491ce315 100644 --- a/src/PureJuMP/hs15.jl +++ b/src/PureJuMP/hs15.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 15. -# -# Source: -# Problem 15 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification SQR2-AN-2-2 -# -# N. Antunes, Curitiba, 10/2016. - export hs15 "HS15 model" diff --git a/src/PureJuMP/hs16.jl b/src/PureJuMP/hs16.jl index 8dac8659b..126b21e0f 100644 --- a/src/PureJuMP/hs16.jl +++ b/src/PureJuMP/hs16.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 16. -# -# Source: -# Problem 16 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification SQR2-AN-2-2 -# -# N. Antunes, Curitiba, 10/2016. - export hs16 "HS16 model" diff --git a/src/PureJuMP/hs17.jl b/src/PureJuMP/hs17.jl index 3f1e164d7..5b42fdd3b 100644 --- a/src/PureJuMP/hs17.jl +++ b/src/PureJuMP/hs17.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 17. -# -# Source: -# Problem 17 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification SQR2-AN-2-2 -# -# N. Antunes, Curitiba, 10/2016. - export hs17 "HS17 model" diff --git a/src/PureJuMP/hs18.jl b/src/PureJuMP/hs18.jl index c2d6d7802..5ddf04add 100644 --- a/src/PureJuMP/hs18.jl +++ b/src/PureJuMP/hs18.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 18. -# -# Source: -# Problem 18 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification SQR2-AN-2-2 -# -# N. Antunes, Curitiba, 10/2016. - export hs18 "HS18 model" diff --git a/src/PureJuMP/hs19.jl b/src/PureJuMP/hs19.jl index f36bbe3db..74deaa4ac 100644 --- a/src/PureJuMP/hs19.jl +++ b/src/PureJuMP/hs19.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 19. -# -# Source: -# Problem 19 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PQR2-AN-2-2 -# -# A. Montoison, Montreal, 04/2018. - export hs19 "HS19 model" diff --git a/src/PureJuMP/hs2.jl b/src/PureJuMP/hs2.jl index 75f60d3c1..f48903b43 100644 --- a/src/PureJuMP/hs2.jl +++ b/src/PureJuMP/hs2.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 2. -# -# Source: -# Problem 2 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PBR2-AN-2-0 -# -# A. Montoison, Montreal, 04/2018. - export hs2 "HS2 model" diff --git a/src/PureJuMP/hs20.jl b/src/PureJuMP/hs20.jl index f5163d140..0a67ead9a 100644 --- a/src/PureJuMP/hs20.jl +++ b/src/PureJuMP/hs20.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 20. -# -# Source: -# Problem 20 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification SQR2-AN-2-3 -# -# N. Antunes, Curitiba, 10/2016. - export hs20 "HS20 model" diff --git a/src/PureJuMP/hs201.jl b/src/PureJuMP/hs201.jl index 9f0e82afc..323769e35 100644 --- a/src/PureJuMP/hs201.jl +++ b/src/PureJuMP/hs201.jl @@ -1,12 +1,3 @@ -# Hock and Schittkowski problem number 201. -# -# Source: -# Problem 201 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# export hs201 "HS201 model" function hs201(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/hs21.jl b/src/PureJuMP/hs21.jl index 5c7f6bc09..ae765c02c 100644 --- a/src/PureJuMP/hs21.jl +++ b/src/PureJuMP/hs21.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 21. -# -# Source: -# Problem 21 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QLR2-AN-2-1 -# -# A. Montoison, Montreal, 04/2018. - export hs21 "HS21 model" diff --git a/src/PureJuMP/hs211.jl b/src/PureJuMP/hs211.jl index 76b9e6fed..eeae9f6dd 100644 --- a/src/PureJuMP/hs211.jl +++ b/src/PureJuMP/hs211.jl @@ -1,12 +1,3 @@ -# Hock and Schittkowski problem number 211. -# -# Source: -# Problem 211 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# export hs211 "HS211 model" diff --git a/src/PureJuMP/hs219.jl b/src/PureJuMP/hs219.jl index 66be3f09c..765a47f1e 100644 --- a/src/PureJuMP/hs219.jl +++ b/src/PureJuMP/hs219.jl @@ -1,16 +1,3 @@ -# Schittkowski problem number 219. -# -# Source: -# Problem 219 in -# Schittkowski, K. (1987). -# More Test Examples for Nonlinear Programming Codes. -# Lecture Notes in Economics and Mathematical Systems. -# doi:10.1007/978-3-642-61582-5 -# -# classification LPR-T1-1 -# -# Solution is: (1, 1, 0, 0) with f(x^*) = -1 - export hs219 function hs219(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/hs22.jl b/src/PureJuMP/hs22.jl index 82e607aff..8a450088f 100644 --- a/src/PureJuMP/hs22.jl +++ b/src/PureJuMP/hs22.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 22. -# -# Source: -# Problem 22 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR2-AN-2-2 -# -# A. Montoison, Montreal, 04/2018. - export hs22 "HS22 model" diff --git a/src/PureJuMP/hs220.jl b/src/PureJuMP/hs220.jl index f7fe7e82c..1166d6597 100644 --- a/src/PureJuMP/hs220.jl +++ b/src/PureJuMP/hs220.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 220. -# -# Source: -# Problem 220 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs220 "HS220 model" diff --git a/src/PureJuMP/hs221.jl b/src/PureJuMP/hs221.jl index 7013200c9..520b8a958 100644 --- a/src/PureJuMP/hs221.jl +++ b/src/PureJuMP/hs221.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 221. -# -# Source: -# Problem 221 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs221 "HS221 model" diff --git a/src/PureJuMP/hs222.jl b/src/PureJuMP/hs222.jl index 3f2337f7f..04afafb2e 100644 --- a/src/PureJuMP/hs222.jl +++ b/src/PureJuMP/hs222.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 222. -# -# Source: -# Problem 222 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs222 "HS222 model" diff --git a/src/PureJuMP/hs223.jl b/src/PureJuMP/hs223.jl index 14b6b8ac7..66060555a 100644 --- a/src/PureJuMP/hs223.jl +++ b/src/PureJuMP/hs223.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 223. -# -# Source: -# Problem 223 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs223 "HS223 model" diff --git a/src/PureJuMP/hs224.jl b/src/PureJuMP/hs224.jl index 26ab094a8..780d292f1 100644 --- a/src/PureJuMP/hs224.jl +++ b/src/PureJuMP/hs224.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 224. -# -# Source: -# Problem 224 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs224 "HS224 model" diff --git a/src/PureJuMP/hs225.jl b/src/PureJuMP/hs225.jl index 6334bd0bb..f6c09c907 100644 --- a/src/PureJuMP/hs225.jl +++ b/src/PureJuMP/hs225.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 225. -# -# Source: -# Problem 225 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs225 "HS225 model" diff --git a/src/PureJuMP/hs226.jl b/src/PureJuMP/hs226.jl index ea6386c28..99c5660e7 100644 --- a/src/PureJuMP/hs226.jl +++ b/src/PureJuMP/hs226.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 226. -# -# Source: -# Problem 226 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs226 "HS226 model" diff --git a/src/PureJuMP/hs227.jl b/src/PureJuMP/hs227.jl index b4db98e90..cd41e969c 100644 --- a/src/PureJuMP/hs227.jl +++ b/src/PureJuMP/hs227.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 227. -# -# Source: -# Problem 227 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs227 "HS227 model" diff --git a/src/PureJuMP/hs228.jl b/src/PureJuMP/hs228.jl index 5da3e1f2d..65a255593 100644 --- a/src/PureJuMP/hs228.jl +++ b/src/PureJuMP/hs228.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 228. -# -# Source: -# Problem 228 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs228 "HS228 model" diff --git a/src/PureJuMP/hs229.jl b/src/PureJuMP/hs229.jl index f5a64a128..db4cfda88 100644 --- a/src/PureJuMP/hs229.jl +++ b/src/PureJuMP/hs229.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 229. -# -# Source: -# Problem 229 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs229 "HS229 model" diff --git a/src/PureJuMP/hs23.jl b/src/PureJuMP/hs23.jl index 6f731cb4b..244164f9d 100644 --- a/src/PureJuMP/hs23.jl +++ b/src/PureJuMP/hs23.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 23. -# -# Source: -# Problem 23 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR2-AN-2-5 -# -# A. Montoison, Montreal, 04/2018. - export hs23 "HS23 model" diff --git a/src/PureJuMP/hs230.jl b/src/PureJuMP/hs230.jl index 3c4aa9e77..08e65c963 100644 --- a/src/PureJuMP/hs230.jl +++ b/src/PureJuMP/hs230.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 230. -# -# Source: -# Problem 230 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs230 "HS230 model" diff --git a/src/PureJuMP/hs231.jl b/src/PureJuMP/hs231.jl index 9c598ff81..cd3b94fc6 100644 --- a/src/PureJuMP/hs231.jl +++ b/src/PureJuMP/hs231.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 231. -# -# Source: -# Problem 231 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs231 "HS231 model" diff --git a/src/PureJuMP/hs232.jl b/src/PureJuMP/hs232.jl index d7e73dfcf..2e568139e 100644 --- a/src/PureJuMP/hs232.jl +++ b/src/PureJuMP/hs232.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 232. -# -# Source: -# Problem 232 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs232 "HS232 model" diff --git a/src/PureJuMP/hs233.jl b/src/PureJuMP/hs233.jl index ccafae2b8..4ded8643b 100644 --- a/src/PureJuMP/hs233.jl +++ b/src/PureJuMP/hs233.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 233. -# -# Source: -# Problem 233 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs233 "HS233 model" diff --git a/src/PureJuMP/hs234.jl b/src/PureJuMP/hs234.jl index 3025d105d..34aa9d92e 100644 --- a/src/PureJuMP/hs234.jl +++ b/src/PureJuMP/hs234.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 234. -# -# Source: -# Problem 234 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs234 "HS234 model" diff --git a/src/PureJuMP/hs235.jl b/src/PureJuMP/hs235.jl index f690113aa..30df97668 100644 --- a/src/PureJuMP/hs235.jl +++ b/src/PureJuMP/hs235.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 235. -# -# Source: -# Problem 235 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs235 "HS235 model" diff --git a/src/PureJuMP/hs236.jl b/src/PureJuMP/hs236.jl index b1cc31dac..9e64796f5 100644 --- a/src/PureJuMP/hs236.jl +++ b/src/PureJuMP/hs236.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 236. -# -# Source: -# Problem 236 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs236 "HS236 model" diff --git a/src/PureJuMP/hs237.jl b/src/PureJuMP/hs237.jl index d2ff6c546..a9a967745 100644 --- a/src/PureJuMP/hs237.jl +++ b/src/PureJuMP/hs237.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 237. -# -# Source: -# Problem 237 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs237 "HS237 model" diff --git a/src/PureJuMP/hs238.jl b/src/PureJuMP/hs238.jl index 764da0814..a2e82e811 100644 --- a/src/PureJuMP/hs238.jl +++ b/src/PureJuMP/hs238.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 238. -# -# Source: -# Problem 238 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs238 "HS238 model" diff --git a/src/PureJuMP/hs239.jl b/src/PureJuMP/hs239.jl index b5d3865e8..f0c55829b 100644 --- a/src/PureJuMP/hs239.jl +++ b/src/PureJuMP/hs239.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 239. -# -# Source: -# Problem 239 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs239 "HS239 model" diff --git a/src/PureJuMP/hs24.jl b/src/PureJuMP/hs24.jl index 03236ec0c..dce42b286 100644 --- a/src/PureJuMP/hs24.jl +++ b/src/PureJuMP/hs24.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 24. -# -# Source: -# Problem 24 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PLR2-AN-2-3 -# -# A. Montoison, Montreal, 04/2018. - export hs24 "HS24 model" diff --git a/src/PureJuMP/hs240.jl b/src/PureJuMP/hs240.jl index e0ae7914c..763fb34ff 100644 --- a/src/PureJuMP/hs240.jl +++ b/src/PureJuMP/hs240.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 240. -# -# Source: -# Problem 240 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs240 "HS240 model" diff --git a/src/PureJuMP/hs241.jl b/src/PureJuMP/hs241.jl index 4c8c24289..76df2b50f 100644 --- a/src/PureJuMP/hs241.jl +++ b/src/PureJuMP/hs241.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 241. -# -# Source: -# Problem 241 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs241 "HS241 model" diff --git a/src/PureJuMP/hs242.jl b/src/PureJuMP/hs242.jl index c5506a7b0..4b4e3ab6b 100644 --- a/src/PureJuMP/hs242.jl +++ b/src/PureJuMP/hs242.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 242. -# -# Source: -# Problem 242 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs242 "HS242 model" diff --git a/src/PureJuMP/hs243.jl b/src/PureJuMP/hs243.jl index f8a0f7359..176edba78 100644 --- a/src/PureJuMP/hs243.jl +++ b/src/PureJuMP/hs243.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 243. -# -# Source: -# Problem 243 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs243 "HS243 model" diff --git a/src/PureJuMP/hs244.jl b/src/PureJuMP/hs244.jl index 4a680d4d6..d7e291a02 100644 --- a/src/PureJuMP/hs244.jl +++ b/src/PureJuMP/hs244.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 244. -# -# Source: -# Problem 244 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs244 "HS244 model" diff --git a/src/PureJuMP/hs245.jl b/src/PureJuMP/hs245.jl index 607c5cd56..53812ad21 100644 --- a/src/PureJuMP/hs245.jl +++ b/src/PureJuMP/hs245.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 245. -# -# Source: -# Problem 245 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs245 "HS245 model" diff --git a/src/PureJuMP/hs246.jl b/src/PureJuMP/hs246.jl index 39c61a695..aeb9063e0 100644 --- a/src/PureJuMP/hs246.jl +++ b/src/PureJuMP/hs246.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 246. -# -# Source: -# Problem 246 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs246 "HS246 model" diff --git a/src/PureJuMP/hs248.jl b/src/PureJuMP/hs248.jl index ccb0008f7..64bec8082 100644 --- a/src/PureJuMP/hs248.jl +++ b/src/PureJuMP/hs248.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 248. -# -# Source: -# Problem 248 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs248 "HS248 model: around the world problem" diff --git a/src/PureJuMP/hs249.jl b/src/PureJuMP/hs249.jl index 2ef1c84ef..c3237d019 100644 --- a/src/PureJuMP/hs249.jl +++ b/src/PureJuMP/hs249.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 249. -# -# Source: -# Problem 249 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs249 "HS249 model" diff --git a/src/PureJuMP/hs25.jl b/src/PureJuMP/hs25.jl index 483b98768..847706b7b 100644 --- a/src/PureJuMP/hs25.jl +++ b/src/PureJuMP/hs25.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 25. -# -# Source: -# Problem 25 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification SBR2-AN-3-0 -# -# A. Montoison, Montreal, 04/2018. - export hs25 "HS25 model" diff --git a/src/PureJuMP/hs250.jl b/src/PureJuMP/hs250.jl index 32f8820d7..ed32bc295 100644 --- a/src/PureJuMP/hs250.jl +++ b/src/PureJuMP/hs250.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 250. -# -# Source: -# Problem 250 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs250 "HS250 model: Rosenbrock's post office problem" diff --git a/src/PureJuMP/hs251.jl b/src/PureJuMP/hs251.jl index d3150335d..30134a878 100644 --- a/src/PureJuMP/hs251.jl +++ b/src/PureJuMP/hs251.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 251. -# -# Source: -# Problem 251 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs251 "HS251 model" diff --git a/src/PureJuMP/hs252.jl b/src/PureJuMP/hs252.jl index ccc9c3d42..51f75046f 100644 --- a/src/PureJuMP/hs252.jl +++ b/src/PureJuMP/hs252.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 252. -# -# Source: -# Problem 252 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs252 "HS252 model" diff --git a/src/PureJuMP/hs253.jl b/src/PureJuMP/hs253.jl index f350ca6fb..e464a0f21 100644 --- a/src/PureJuMP/hs253.jl +++ b/src/PureJuMP/hs253.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 253. -# -# Source: -# Problem 253 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs253 "HS253 model" diff --git a/src/PureJuMP/hs254.jl b/src/PureJuMP/hs254.jl index 350104323..487b51f5c 100644 --- a/src/PureJuMP/hs254.jl +++ b/src/PureJuMP/hs254.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 254. -# -# Source: -# Problem 254 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs254 "HS254 model" diff --git a/src/PureJuMP/hs255.jl b/src/PureJuMP/hs255.jl index 24b2763d8..822c555c4 100644 --- a/src/PureJuMP/hs255.jl +++ b/src/PureJuMP/hs255.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 255. -# -# Source: -# Problem 255 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs255 "HS255 model" diff --git a/src/PureJuMP/hs256.jl b/src/PureJuMP/hs256.jl index c54f7be06..93f49a9e5 100644 --- a/src/PureJuMP/hs256.jl +++ b/src/PureJuMP/hs256.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 256. -# -# Source: -# Problem 256 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs256 "HS256 model: Powell's function" diff --git a/src/PureJuMP/hs257.jl b/src/PureJuMP/hs257.jl index 2684372cb..4961d3d38 100644 --- a/src/PureJuMP/hs257.jl +++ b/src/PureJuMP/hs257.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 257. -# -# Source: -# Problem 257 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs257 "HS257 model" diff --git a/src/PureJuMP/hs258.jl b/src/PureJuMP/hs258.jl index 82fbf88eb..067b659d3 100644 --- a/src/PureJuMP/hs258.jl +++ b/src/PureJuMP/hs258.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 258. -# -# Source: -# Problem 258 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs258 "HS258 model: Powell's function" diff --git a/src/PureJuMP/hs259.jl b/src/PureJuMP/hs259.jl index d145da3f4..4ff1ec0f5 100644 --- a/src/PureJuMP/hs259.jl +++ b/src/PureJuMP/hs259.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 259. -# -# Source: -# Problem 259 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs259 "HS259 model" diff --git a/src/PureJuMP/hs26.jl b/src/PureJuMP/hs26.jl index 3cadbb828..63555890c 100644 --- a/src/PureJuMP/hs26.jl +++ b/src/PureJuMP/hs26.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 26. -# -# Source: -# Problem 26 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification OOR2-AY-3-1 -# -# A. Cebola, Curitiba 10/2016. - export hs26 "HS26 Model" diff --git a/src/PureJuMP/hs260.jl b/src/PureJuMP/hs260.jl index f3ccc7a58..9038be71d 100644 --- a/src/PureJuMP/hs260.jl +++ b/src/PureJuMP/hs260.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 260. -# -# Source: -# Problem 260 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs260 "HS260 model" diff --git a/src/PureJuMP/hs261.jl b/src/PureJuMP/hs261.jl index ec6a5f166..22151a434 100644 --- a/src/PureJuMP/hs261.jl +++ b/src/PureJuMP/hs261.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 261. -# -# Source: -# Problem 261 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs261 "HS261 model" diff --git a/src/PureJuMP/hs262.jl b/src/PureJuMP/hs262.jl index 2a72a2ed7..1d80cc190 100644 --- a/src/PureJuMP/hs262.jl +++ b/src/PureJuMP/hs262.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 262. -# -# Source: -# Problem 262 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs262 "HS262 model" diff --git a/src/PureJuMP/hs263.jl b/src/PureJuMP/hs263.jl index 954a59718..98eaaea67 100644 --- a/src/PureJuMP/hs263.jl +++ b/src/PureJuMP/hs263.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 263. -# -# Source: -# Problem 263 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs263 "HS263 model" diff --git a/src/PureJuMP/hs264.jl b/src/PureJuMP/hs264.jl index e66c90d7c..eb9700528 100644 --- a/src/PureJuMP/hs264.jl +++ b/src/PureJuMP/hs264.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 264. -# -# Source: -# Problem 264 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs264 "HS264 model: modified Rosen-Suzuki problem" diff --git a/src/PureJuMP/hs265.jl b/src/PureJuMP/hs265.jl index 6970e76ab..d15005f7e 100644 --- a/src/PureJuMP/hs265.jl +++ b/src/PureJuMP/hs265.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 265. -# -# Source: -# Problem 265 in -# K. Schittkowski, -# More Test Examples for Nonlinear Programming Codes, -# Lectures Notes in Economics and Mathematical Systems 282, -# Springer Verlag, Heidelberg, 1987. -# -# -# -# T. Migot, Montreal, 2023. - export hs265 "HS265 model" diff --git a/src/PureJuMP/hs27.jl b/src/PureJuMP/hs27.jl index 231d70d9e..7174f4d58 100644 --- a/src/PureJuMP/hs27.jl +++ b/src/PureJuMP/hs27.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 27. -# -# Source: -# Problem 27 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification SQR2-AN-3-1 -# -# A. Cebola, Curitiba 10/2016. - export hs27 "HS27 Model" diff --git a/src/PureJuMP/hs28.jl b/src/PureJuMP/hs28.jl index 9aa494a73..404f0553d 100644 --- a/src/PureJuMP/hs28.jl +++ b/src/PureJuMP/hs28.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 28. -# -# Source: -# Problem 28 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QLR2-AN-3-1 -# -# A. Montoison, Montreal, 04/2018. - export hs28 "HS28 model" diff --git a/src/PureJuMP/hs29.jl b/src/PureJuMP/hs29.jl index cf43fadbf..59600a602 100644 --- a/src/PureJuMP/hs29.jl +++ b/src/PureJuMP/hs29.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 29. -# -# Source: -# Problem 29 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PQR2-AN-3-1 -# -# A. Montoison, Montreal, 04/2018. - export hs29 "HS29 model" diff --git a/src/PureJuMP/hs3.jl b/src/PureJuMP/hs3.jl index 72f44e7e2..b48fc43fd 100644 --- a/src/PureJuMP/hs3.jl +++ b/src/PureJuMP/hs3.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 3. -# -# Source: -# Problem 3 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QBR2-AN-2-0 -# -# N. Antunes, Curitiba, 10/2016. - export hs3 "HS3 model" diff --git a/src/PureJuMP/hs30.jl b/src/PureJuMP/hs30.jl index 56b13aa68..48fa43010 100644 --- a/src/PureJuMP/hs30.jl +++ b/src/PureJuMP/hs30.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 30. -# -# Source: -# Problem 30 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR2-AN-3-1 -# -# A. Montoison, Montreal, 04/2018. - export hs30 "HS30 model" diff --git a/src/PureJuMP/hs31.jl b/src/PureJuMP/hs31.jl index eae38245e..29919acbb 100644 --- a/src/PureJuMP/hs31.jl +++ b/src/PureJuMP/hs31.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 31. -# -# Source: -# Problem 31 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR2-AN-3-1 -# -# A. Montoison, Montreal, 05/2018. - export hs31 "HS31 model" diff --git a/src/PureJuMP/hs316.jl b/src/PureJuMP/hs316.jl index 9ba7aea8d..fb26c123b 100644 --- a/src/PureJuMP/hs316.jl +++ b/src/PureJuMP/hs316.jl @@ -1,15 +1,3 @@ -# Schittkowski problem number 316. -# -# Source: -# Problem 316 in -# Schittkowski, K. (1987). -# More Test Examples for Nonlinear Programming Codes. -# Lecture Notes in Economics and Mathematical Systems. -# doi:10.1007/978-3-642-61582-5 -# -# classification QQR2-AN-2-1 -# -# M. Gollier, Montréal, 05/2023 export hs316 "HS316 model" diff --git a/src/PureJuMP/hs317.jl b/src/PureJuMP/hs317.jl index bfedc26f8..d71e69c4d 100644 --- a/src/PureJuMP/hs317.jl +++ b/src/PureJuMP/hs317.jl @@ -1,15 +1,3 @@ -# Schittkowski problem number 317. -# -# Source: -# Problem 317 in -# Schittkowski, K. (1987). -# More Test Examples for Nonlinear Programming Codes. -# Lecture Notes in Economics and Mathematical Systems. -# doi:10.1007/978-3-642-61582-5 -# -# classification QQR2-AN-2-1 -# -# M. Gollier, Montréal, 05/2023 export hs317 "HS317 model" diff --git a/src/PureJuMP/hs318.jl b/src/PureJuMP/hs318.jl index 0c6dc0125..4d5b259b5 100644 --- a/src/PureJuMP/hs318.jl +++ b/src/PureJuMP/hs318.jl @@ -1,15 +1,3 @@ -# Schittkowski problem number 318. -# -# Source: -# Problem 318 in -# Schittkowski, K. (1987). -# More Test Examples for Nonlinear Programming Codes. -# Lecture Notes in Economics and Mathematical Systems. -# doi:10.1007/978-3-642-61582-5 -# -# classification QQR2-AN-2-1 -# -# M. Gollier, Montréal, 05/2023 export hs318 "HS318 model" diff --git a/src/PureJuMP/hs319.jl b/src/PureJuMP/hs319.jl index a0f79bbe1..72f5472e5 100644 --- a/src/PureJuMP/hs319.jl +++ b/src/PureJuMP/hs319.jl @@ -1,15 +1,3 @@ -# Schittkowski problem number 319. -# -# Source: -# Problem 319 in -# Schittkowski, K. (1987). -# More Test Examples for Nonlinear Programming Codes. -# Lecture Notes in Economics and Mathematical Systems. -# doi:10.1007/978-3-642-61582-5 -# -# classification QQR2-AN-2-1 -# -# M. Gollier, Montréal, 05/2023 export hs319 "HS319 model" diff --git a/src/PureJuMP/hs32.jl b/src/PureJuMP/hs32.jl index 9a79a5f77..f4bdccfb9 100644 --- a/src/PureJuMP/hs32.jl +++ b/src/PureJuMP/hs32.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 32. -# -# Source: -# Problem 32 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QPR2-AN-3-2 -# -# A. Montoison, Montreal, 05/2018. - export hs32 "HS32 model" diff --git a/src/PureJuMP/hs320.jl b/src/PureJuMP/hs320.jl index 1acea65dd..483c678b6 100644 --- a/src/PureJuMP/hs320.jl +++ b/src/PureJuMP/hs320.jl @@ -1,15 +1,3 @@ -# Schittkowski problem number 320. -# -# Source: -# Problem 320 in -# Schittkowski, K. (1987). -# More Test Examples for Nonlinear Programming Codes. -# Lecture Notes in Economics and Mathematical Systems. -# doi:10.1007/978-3-642-61582-5 -# -# classification QQR2-AN-2-1 -# -# M. Gollier, Montréal, 05/2023 export hs320 "HS320 model" diff --git a/src/PureJuMP/hs321.jl b/src/PureJuMP/hs321.jl index 1404c1dcc..0c5d88207 100644 --- a/src/PureJuMP/hs321.jl +++ b/src/PureJuMP/hs321.jl @@ -1,15 +1,3 @@ -# Schittkowski problem number 321. -# -# Source: -# Problem 321 in -# Schittkowski, K. (1987). -# More Test Examples for Nonlinear Programming Codes. -# Lecture Notes in Economics and Mathematical Systems. -# doi:10.1007/978-3-642-61582-5 -# -# classification QQR2-AN-2-1 -# -# M. Gollier, Montréal, 05/2023 export hs321 "HS321 model" diff --git a/src/PureJuMP/hs322.jl b/src/PureJuMP/hs322.jl index 07762e536..46130c53d 100644 --- a/src/PureJuMP/hs322.jl +++ b/src/PureJuMP/hs322.jl @@ -1,15 +1,3 @@ -# Schittkowski problem number 322. -# -# Source: -# Problem 322 in -# Schittkowski, K. (1987). -# More Test Examples for Nonlinear Programming Codes. -# Lecture Notes in Economics and Mathematical Systems. -# doi:10.1007/978-3-642-61582-5 -# -# classification QQR2-AN-2-1 -# -# M. Gollier, Montréal, 05/2023 export hs322 "HS322 model" diff --git a/src/PureJuMP/hs33.jl b/src/PureJuMP/hs33.jl index 60ec4f09e..ac9f33f8a 100644 --- a/src/PureJuMP/hs33.jl +++ b/src/PureJuMP/hs33.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 33. -# -# Source: -# Problem 33 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PQR2-AN-3-2 -# -# A. Montoison, Montreal, 05/2018. - export hs33 "HS33 model" diff --git a/src/PureJuMP/hs34.jl b/src/PureJuMP/hs34.jl index b95ea91b5..1a193a84a 100644 --- a/src/PureJuMP/hs34.jl +++ b/src/PureJuMP/hs34.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 34. -# -# Source: -# Problem 34 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification LGR2-AN-3-2 -# -# A. Montoison, Montreal, 05/2018. - export hs34 "HS34 model" diff --git a/src/PureJuMP/hs35.jl b/src/PureJuMP/hs35.jl index fa362f84d..d89e9c445 100644 --- a/src/PureJuMP/hs35.jl +++ b/src/PureJuMP/hs35.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 35. -# -# Source: -# Problem 35 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QLR2-AN-3-1 -# -# A. Montoison, Montreal, 05/2018. - export hs35 "HS35 model" diff --git a/src/PureJuMP/hs36.jl b/src/PureJuMP/hs36.jl index 88f6d52ff..2759f977e 100644 --- a/src/PureJuMP/hs36.jl +++ b/src/PureJuMP/hs36.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 36. -# -# Source: -# Problem 36 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PLR2-AN-3-1 -# -# A. Montoison, Montreal, 05/2018. - export hs36 "HS36 model" diff --git a/src/PureJuMP/hs37.jl b/src/PureJuMP/hs37.jl index 66048207a..be1f739c9 100644 --- a/src/PureJuMP/hs37.jl +++ b/src/PureJuMP/hs37.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 37. -# -# Source: -# Problem 37 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PLR2-AN-3-2 -# -# A. Montoison, Montreal, 05/2018. - export hs37 "HS37 model" diff --git a/src/PureJuMP/hs378.jl b/src/PureJuMP/hs378.jl index e5140af1a..43bb8795f 100644 --- a/src/PureJuMP/hs378.jl +++ b/src/PureJuMP/hs378.jl @@ -1,15 +1,3 @@ -# Schittkowski problem number 378. -# -# Source: -# Problem 378 in -# Schittkowski, K. (1987). -# More Test Examples for Nonlinear Programming Codes. -# Lecture Notes in Economics and Mathematical Systems. -# doi:10.1007/978-3-642-61582-5 -# -# classification OOR2-AN-10-3 -# -# M. Gollier, Montréal, 05/2023 export hs378 "HS378 model" diff --git a/src/PureJuMP/hs38.jl b/src/PureJuMP/hs38.jl index 6147716c5..a63658964 100644 --- a/src/PureJuMP/hs38.jl +++ b/src/PureJuMP/hs38.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 38. -# -# Source: -# Problem 38 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PLR2-AN-4-0 -# -# A. Montoison, Montreal, 05/2018. - export hs38 "HS38 model" diff --git a/src/PureJuMP/hs39.jl b/src/PureJuMP/hs39.jl index 3d5240d69..d0586b190 100644 --- a/src/PureJuMP/hs39.jl +++ b/src/PureJuMP/hs39.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 39. -# -# Source: -# Problem 39 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification LOR2-AN-4-2 -# -# D. Cabral, Curitiba, 10/2016. - export hs39 "HS39 model" diff --git a/src/PureJuMP/hs4.jl b/src/PureJuMP/hs4.jl index bccf71ea9..80c0064b5 100644 --- a/src/PureJuMP/hs4.jl +++ b/src/PureJuMP/hs4.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 4. -# -# Source: -# Problem 4 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification OBR2-AN-2-0 -# -# N. Antunes, Curitiba, 10/2016. - export hs4 "HS4 model" diff --git a/src/PureJuMP/hs40.jl b/src/PureJuMP/hs40.jl index 5f073ac46..471c77557 100644 --- a/src/PureJuMP/hs40.jl +++ b/src/PureJuMP/hs40.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 40. -# -# Source: -# Problem 40 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification OOR2-AN-4-3 -# -# D. Cabral, Curitiba, 10/2016. - export hs40 "HS40 model" diff --git a/src/PureJuMP/hs41.jl b/src/PureJuMP/hs41.jl index 3020a868e..3b8a84e5c 100644 --- a/src/PureJuMP/hs41.jl +++ b/src/PureJuMP/hs41.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 41. -# -# Source: -# Problem 41 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PLR2-AN-4-1 -# -# A. Montoison, Montreal, 05/2018. - export hs41 "HS41 model" diff --git a/src/PureJuMP/hs42.jl b/src/PureJuMP/hs42.jl index 5820852e4..78c7e3660 100644 --- a/src/PureJuMP/hs42.jl +++ b/src/PureJuMP/hs42.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 42. -# -# Source: -# Problem 42 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR2-AN-4-1 -# -# A. Montoison, Montreal, 05/2018. - export hs42 "HS42 model" diff --git a/src/PureJuMP/hs43.jl b/src/PureJuMP/hs43.jl index 0ff1cf6b2..012442115 100644 --- a/src/PureJuMP/hs43.jl +++ b/src/PureJuMP/hs43.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 43. -# -# Source: -# Problem 43 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR2-AN-4-3 -# -# A. Montoison, Montreal, 05/2018. - export hs43 "HS43 model" diff --git a/src/PureJuMP/hs44.jl b/src/PureJuMP/hs44.jl index f235226e0..e44b59d75 100644 --- a/src/PureJuMP/hs44.jl +++ b/src/PureJuMP/hs44.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 44. -# -# Source: -# Problem 44 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QLR2-AN-4-6 -# -# A. Montoison, Montreal, 05/2018. - export hs44 "HS44 model" diff --git a/src/PureJuMP/hs45.jl b/src/PureJuMP/hs45.jl index 99abf4363..294a80513 100644 --- a/src/PureJuMP/hs45.jl +++ b/src/PureJuMP/hs45.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 45. -# -# Source: -# Problem 45 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PBR2-AN-5-0 -# -# A. Montoison, Montreal, 05/2018. - export hs45 "HS45 model" diff --git a/src/PureJuMP/hs46.jl b/src/PureJuMP/hs46.jl index dcb2e8a3d..1b87dd5b2 100644 --- a/src/PureJuMP/hs46.jl +++ b/src/PureJuMP/hs46.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 46. -# -# Source: -# Problem 46 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PGR2-AN-5-2 -# -# A. Montoison, Montreal, 05/2018. - export hs46 "HS46 model" diff --git a/src/PureJuMP/hs47.jl b/src/PureJuMP/hs47.jl index 88da0bed0..8ba5f8624 100644 --- a/src/PureJuMP/hs47.jl +++ b/src/PureJuMP/hs47.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 47. -# -# Source: -# Problem 47 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR2-AN-5-3 -# -# A. Montoison, Montreal, 05/2018. - export hs47 "HS47 model" diff --git a/src/PureJuMP/hs48.jl b/src/PureJuMP/hs48.jl index 1bcf73e27..2773ba6b6 100644 --- a/src/PureJuMP/hs48.jl +++ b/src/PureJuMP/hs48.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 48. -# -# Source: -# Problem 48 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QLR2-AN-5-2 -# -# A. Montoison, Montreal, 05/2018. - export hs48 "HS48 model" diff --git a/src/PureJuMP/hs49.jl b/src/PureJuMP/hs49.jl index 58c749eea..a3086bfa8 100644 --- a/src/PureJuMP/hs49.jl +++ b/src/PureJuMP/hs49.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 49. -# -# Source: -# Problem 49 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PLR2-AN-5-2 -# -# A. Montoison, Montreal, 05/2018. - export hs49 "HS49 model" diff --git a/src/PureJuMP/hs5.jl b/src/PureJuMP/hs5.jl index 212b63da4..e51374d2c 100644 --- a/src/PureJuMP/hs5.jl +++ b/src/PureJuMP/hs5.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 5. -# -# Source: -# Problem 5 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification OBR2-AN-2-0 -# -# N. Antunes, Curitiba, 10/2016. - export hs5 "HS5 model" diff --git a/src/PureJuMP/hs50.jl b/src/PureJuMP/hs50.jl index 97d743e31..f227582bd 100644 --- a/src/PureJuMP/hs50.jl +++ b/src/PureJuMP/hs50.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 50. -# -# Source: -# Problem 50 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PLR2-AN-5-3 -# -# A. Montoison, Montreal, 05/2018. - export hs50 "HS50 model" diff --git a/src/PureJuMP/hs51.jl b/src/PureJuMP/hs51.jl index 7a36d22be..482195a40 100644 --- a/src/PureJuMP/hs51.jl +++ b/src/PureJuMP/hs51.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 51. -# -# Source: -# Problem 51 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QLR2-AN-5-3 -# -# A. Montoison, Montreal, 05/2018. - export hs51 "HS51 model" diff --git a/src/PureJuMP/hs52.jl b/src/PureJuMP/hs52.jl index 7b58bf532..aef71149d 100644 --- a/src/PureJuMP/hs52.jl +++ b/src/PureJuMP/hs52.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 52. -# -# Source: -# Problem 52 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QLR2-AN-5-3 -# -# A. Montoison, Montreal, 05/2018. - export hs52 "HS52 model" diff --git a/src/PureJuMP/hs53.jl b/src/PureJuMP/hs53.jl index c93162362..3fadba605 100644 --- a/src/PureJuMP/hs53.jl +++ b/src/PureJuMP/hs53.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 53. -# -# Source: -# Problem 53 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QLR2-AN-5-3 -# -# A. Montoison, Montreal, 05/2018. - export hs53 "HS53 model" diff --git a/src/PureJuMP/hs54.jl b/src/PureJuMP/hs54.jl index 7e392c019..39240bd62 100644 --- a/src/PureJuMP/hs54.jl +++ b/src/PureJuMP/hs54.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 54. -# -# Source: -# Problem 54 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification GLR2-AN-6-1 -# -# A. Montoison, Montreal, 05/2018. - export hs54 "HS54 model" diff --git a/src/PureJuMP/hs55.jl b/src/PureJuMP/hs55.jl index 75fcfad70..7a5d451b4 100644 --- a/src/PureJuMP/hs55.jl +++ b/src/PureJuMP/hs55.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 55. -# -# Source: -# Problem 55 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification GLR2-AN-6-6 -# -# A. Montoison, Montreal, 05/2018. - export hs55 "HS55 model" diff --git a/src/PureJuMP/hs56.jl b/src/PureJuMP/hs56.jl index b99a3cac5..e05ca20cf 100644 --- a/src/PureJuMP/hs56.jl +++ b/src/PureJuMP/hs56.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 56. -# -# Source: -# Problem 56 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PGR2-AN-7-4 -# -# A. Montoison, Montreal, 05/2018. - export hs56 "HS56 model" diff --git a/src/PureJuMP/hs57.jl b/src/PureJuMP/hs57.jl index 8ba4fb81c..5384ca02c 100644 --- a/src/PureJuMP/hs57.jl +++ b/src/PureJuMP/hs57.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 57. -# -# Source: -# Problem 57 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification SQR-AN-2-1 -# -# A. Montoison, Montreal, 05/2018. - export hs57 "HS57 model" diff --git a/src/PureJuMP/hs59.jl b/src/PureJuMP/hs59.jl index 283ba69ce..e1f5f03dc 100644 --- a/src/PureJuMP/hs59.jl +++ b/src/PureJuMP/hs59.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 59. -# -# Source: -# Problem 59 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification GQR2-AN-2-3 -# -# A. Montoison, Montreal, 05/2018. - export hs59 "HS59 model" diff --git a/src/PureJuMP/hs6.jl b/src/PureJuMP/hs6.jl index c9b181113..dea8ff5a0 100644 --- a/src/PureJuMP/hs6.jl +++ b/src/PureJuMP/hs6.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 6. -# -# Source: -# Problem 6 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR2-AN-2-1 -# -# D. Orban, Montreal, 04/2016. - export hs6 "HS6 model" diff --git a/src/PureJuMP/hs60.jl b/src/PureJuMP/hs60.jl index f620d0eb2..6e854c969 100644 --- a/src/PureJuMP/hs60.jl +++ b/src/PureJuMP/hs60.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 60. -# -# Source: -# Problem 60 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR2-AN-3-1 -# -# A. Montoison, Montreal, 05/2018. - export hs60 "HS60 model" diff --git a/src/PureJuMP/hs61.jl b/src/PureJuMP/hs61.jl index 12607ed97..70a1addb2 100644 --- a/src/PureJuMP/hs61.jl +++ b/src/PureJuMP/hs61.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 61. -# -# Source: -# Problem 61 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR2-AN-3-2 -# -# A. Montoison, Montreal, 05/2018. - export hs61 "HS61 model" diff --git a/src/PureJuMP/hs62.jl b/src/PureJuMP/hs62.jl index e0806d8ae..3257e9111 100644 --- a/src/PureJuMP/hs62.jl +++ b/src/PureJuMP/hs62.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 62. -# -# Source: -# Problem 62 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification GLR2-AN-3-1 -# -# A. Montoison, Montreal, 05/2018. - export hs62 "HS62 model" diff --git a/src/PureJuMP/hs63.jl b/src/PureJuMP/hs63.jl index ec62356df..e87f00045 100644 --- a/src/PureJuMP/hs63.jl +++ b/src/PureJuMP/hs63.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 63. -# -# Source: -# Problem 63 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR2-AN-3-2 -# -# A. Montoison, Montreal, 05/2018. - export hs63 "HS63 model" diff --git a/src/PureJuMP/hs64.jl b/src/PureJuMP/hs64.jl index 6d1188af8..45820641f 100644 --- a/src/PureJuMP/hs64.jl +++ b/src/PureJuMP/hs64.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 64. -# -# Source: -# Problem 64 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR2-AN-3-1 -# -# A. Montoison, Montreal, 05/2018. - export hs64 "HS64 model" diff --git a/src/PureJuMP/hs65.jl b/src/PureJuMP/hs65.jl index b21ef38fa..357155e27 100644 --- a/src/PureJuMP/hs65.jl +++ b/src/PureJuMP/hs65.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 65. -# -# Source: -# Problem 65 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR2-AN-3-1 -# -# A. Montoison, Montreal, 05/2018. - export hs65 "HS65 model" diff --git a/src/PureJuMP/hs66.jl b/src/PureJuMP/hs66.jl index 41ed94b36..347d40dbc 100644 --- a/src/PureJuMP/hs66.jl +++ b/src/PureJuMP/hs66.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 66. -# -# Source: -# Problem 66 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification LGR2-AN-3-2 -# -# A. Montoison, Montreal, 05/2018. - export hs66 "HS66 model" diff --git a/src/PureJuMP/hs68.jl b/src/PureJuMP/hs68.jl index e18c4a381..6100d5d47 100644 --- a/src/PureJuMP/hs68.jl +++ b/src/PureJuMP/hs68.jl @@ -1,19 +1,3 @@ -# Hock and Schittkowski problem number 68. -# -# Source: -# Problem 68 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification GGR-P1-1 -# -# Original source: -# E. von Collani, Kostenoptimale Prufplane bei laufender -# Kontrolle eines normalverteilten Merkmals, Dissertation, -# Institut fur Angewandte Mathematik und Statistik, Universitat Wurzburg, 1978. - export hs68 function hs68(args...; kwargs...) diff --git a/src/PureJuMP/hs69.jl b/src/PureJuMP/hs69.jl index 7592c4689..1292da4a7 100644 --- a/src/PureJuMP/hs69.jl +++ b/src/PureJuMP/hs69.jl @@ -1,19 +1,3 @@ -# Hock and Schittkowski problem number 69. -# -# Source: -# Problem 69 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification GGR-P1-2 -# -# Original source: -# E. von Collani, Kostenoptimale Prufplane bei laufender -# Kontrolle eines normalverteilten Merkmals, Dissertation, -# Institut fur Angewandte Mathematik und Statistik, Universitat Wurzburg, 1978. - export hs69 function hs69(args...; kwargs...) diff --git a/src/PureJuMP/hs7.jl b/src/PureJuMP/hs7.jl index 776e1a671..fb1e8cb5b 100644 --- a/src/PureJuMP/hs7.jl +++ b/src/PureJuMP/hs7.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 7. -# -# Source: -# Problem 7 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification OOR2-AN-2-1 -# -# D. Orban, Montreal, 04/2016. - export hs7 "HS7 model" diff --git a/src/PureJuMP/hs70.jl b/src/PureJuMP/hs70.jl index d7a605363..7a967c027 100644 --- a/src/PureJuMP/hs70.jl +++ b/src/PureJuMP/hs70.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 70. -# -# Source: -# Problem 70 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification SQR2-AN-4-1 -# -# A. Montoison, Montreal, 05/2018. - export hs70 "HS70 model" diff --git a/src/PureJuMP/hs71.jl b/src/PureJuMP/hs71.jl index ea216273f..87fd299ef 100644 --- a/src/PureJuMP/hs71.jl +++ b/src/PureJuMP/hs71.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 71. -# -# Source: -# Problem 71 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR2-AN-4-2 -# -# A. Montoison, Montreal, 05/2018. - export hs71 "HS71 model" diff --git a/src/PureJuMP/hs72.jl b/src/PureJuMP/hs72.jl index 8e26f1005..4dd52f510 100644 --- a/src/PureJuMP/hs72.jl +++ b/src/PureJuMP/hs72.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 72. -# -# Source: -# Problem 72 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification LPR2-AN-4-2 -# -# A. Montoison, Montreal, 05/2018. - export hs72 "HS72 model" diff --git a/src/PureJuMP/hs73.jl b/src/PureJuMP/hs73.jl index 6db9223f1..9647590fa 100644 --- a/src/PureJuMP/hs73.jl +++ b/src/PureJuMP/hs73.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 73. -# -# Source: -# Problem 73 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification LGI-AN-4-3 -# -# A. Montoison, Montreal, 05/2018. - export hs73 "HS73 model" diff --git a/src/PureJuMP/hs74.jl b/src/PureJuMP/hs74.jl index 092ef3a62..c9edee333 100644 --- a/src/PureJuMP/hs74.jl +++ b/src/PureJuMP/hs74.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 74. -# -# Source: -# Problem 74 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PGR-AN-4-5 -# -# A. Montoison, Montreal, 05/2018. - export hs74 "HS74 model" diff --git a/src/PureJuMP/hs75.jl b/src/PureJuMP/hs75.jl index ab845a024..e3ea7e63a 100644 --- a/src/PureJuMP/hs75.jl +++ b/src/PureJuMP/hs75.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 75. -# -# Source: -# Problem 75 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PGR-AN-4-5 -# -# A. Montoison, Montreal, 05/2018. - export hs75 "HS75 model" diff --git a/src/PureJuMP/hs76.jl b/src/PureJuMP/hs76.jl index 70b7e32f1..3fd61c77d 100644 --- a/src/PureJuMP/hs76.jl +++ b/src/PureJuMP/hs76.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 76. -# -# Source: -# Problem 76 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QLR-AN-4-3 -# -# A. Montoison, Montreal, 05/2018. - export hs76 "HS76 model" diff --git a/src/PureJuMP/hs77.jl b/src/PureJuMP/hs77.jl index 9bb36374c..6a0dcb38b 100644 --- a/src/PureJuMP/hs77.jl +++ b/src/PureJuMP/hs77.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 77. -# -# Source: -# Problem 77 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PGR-AN-5-2 -# -# A. Montoison, Montreal, 05/2018. - export hs77 "HS77 model" diff --git a/src/PureJuMP/hs78.jl b/src/PureJuMP/hs78.jl index eaef92d75..376d8837a 100644 --- a/src/PureJuMP/hs78.jl +++ b/src/PureJuMP/hs78.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 78. -# -# Source: -# Problem 78 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR-AN-5-3 -# -# A. Montoison, Montreal, 05/2018. - export hs78 "HS78 model" diff --git a/src/PureJuMP/hs79.jl b/src/PureJuMP/hs79.jl index ca1260cfd..77fd9f109 100644 --- a/src/PureJuMP/hs79.jl +++ b/src/PureJuMP/hs79.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 79. -# -# Source: -# Problem 79 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR-AN-5-3 -# -# A. Montoison, Montreal, 05/2018. - export hs79 "HS79 model" diff --git a/src/PureJuMP/hs8.jl b/src/PureJuMP/hs8.jl index 51f4be3c9..617a6b891 100644 --- a/src/PureJuMP/hs8.jl +++ b/src/PureJuMP/hs8.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 8. -# -# Source: -# Problem 8 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification OOR2-AN-2-1 -# -# D. Orban, Montreal, 04/2016. - export hs8 "HS8 model" diff --git a/src/PureJuMP/hs80.jl b/src/PureJuMP/hs80.jl index 82a74c5a6..ead443ffe 100644 --- a/src/PureJuMP/hs80.jl +++ b/src/PureJuMP/hs80.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 80. -# -# Source: -# Problem 80 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification GPR-AN-5-3 -# -# A. Montoison, Montreal, 05/2018. - export hs80 "HS80 model" diff --git a/src/PureJuMP/hs81.jl b/src/PureJuMP/hs81.jl index 1e636cdc2..c44584f59 100644 --- a/src/PureJuMP/hs81.jl +++ b/src/PureJuMP/hs81.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 81. -# -# Source: -# Problem 81 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification GPR-AN-5-3 -# -# A. Montoison, Montreal, 05/2018. - export hs81 "HS81 model" diff --git a/src/PureJuMP/hs83.jl b/src/PureJuMP/hs83.jl index 942166084..45791bc90 100644 --- a/src/PureJuMP/hs83.jl +++ b/src/PureJuMP/hs83.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 83. -# -# Source: -# Problem 83 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR-AN-5-3 -# -# A. Montoison, Montreal, 05/2018. - export hs83 "HS83 model" diff --git a/src/PureJuMP/hs84.jl b/src/PureJuMP/hs84.jl index db3687579..319f196c9 100644 --- a/src/PureJuMP/hs84.jl +++ b/src/PureJuMP/hs84.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 84. -# -# Source: -# Problem 84 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification QQR-AN-5-3 -# -# A. Montoison, Montreal, 05/2018. - export hs84 "HS84 model" diff --git a/src/PureJuMP/hs86.jl b/src/PureJuMP/hs86.jl index 6f0461921..4bf1509c7 100644 --- a/src/PureJuMP/hs86.jl +++ b/src/PureJuMP/hs86.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 86. -# -# Source: -# Problem 86 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PLR-AN-5-10 -# -# A. Montoison, Montreal, 05/2018. - export hs86 "HS86 model" diff --git a/src/PureJuMP/hs87.jl b/src/PureJuMP/hs87.jl index ae41bb1cc..aaa49301c 100644 --- a/src/PureJuMP/hs87.jl +++ b/src/PureJuMP/hs87.jl @@ -1,14 +1,3 @@ -# Hock and Schittkowski problem number 87. -# -# Source: -# Problem 87 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PLR-AN-5-10 - export hs87 "HS87 model" diff --git a/src/PureJuMP/hs9.jl b/src/PureJuMP/hs9.jl index af7785e2f..d2e60b5df 100644 --- a/src/PureJuMP/hs9.jl +++ b/src/PureJuMP/hs9.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 9. -# -# Source: -# Problem 9 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification OLR2-AN-2-1 -# -# A. Cebola, Curitiba , 10/2016. - export hs9 "HS9 Model" diff --git a/src/PureJuMP/hs93.jl b/src/PureJuMP/hs93.jl index 38c9247b5..12158798f 100644 --- a/src/PureJuMP/hs93.jl +++ b/src/PureJuMP/hs93.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 93. -# -# Source: -# Problem 93 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR-AN-6-2 -# -# A. Montoison, Montreal, 05/2018. - export hs93 "HS93 model" diff --git a/src/PureJuMP/hs95.jl b/src/PureJuMP/hs95.jl index 5521c67a2..43d689ecf 100644 --- a/src/PureJuMP/hs95.jl +++ b/src/PureJuMP/hs95.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 95. -# -# Source: -# Problem 95 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR-AN-6-4 -# -# A. Montoison, Montreal, 05/2018. - export hs95 "HS95 model" diff --git a/src/PureJuMP/hs96.jl b/src/PureJuMP/hs96.jl index a6e9bfbb4..18fdc9165 100644 --- a/src/PureJuMP/hs96.jl +++ b/src/PureJuMP/hs96.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 96. -# -# Source: -# Problem 96 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR-AN-6-4 -# -# A. Montoison, Montreal, 05/2018. - export hs96 "HS96 model" diff --git a/src/PureJuMP/hs97.jl b/src/PureJuMP/hs97.jl index 20b862bea..e62be16ec 100644 --- a/src/PureJuMP/hs97.jl +++ b/src/PureJuMP/hs97.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 97. -# -# Source: -# Problem 97 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR-AN-6-4 -# -# A. Montoison, Montreal, 05/2018. - export hs97 "HS97 model" diff --git a/src/PureJuMP/hs98.jl b/src/PureJuMP/hs98.jl index 816efaac2..85051dda2 100644 --- a/src/PureJuMP/hs98.jl +++ b/src/PureJuMP/hs98.jl @@ -1,16 +1,3 @@ -# Hock and Schittkowski problem number 98. -# -# Source: -# Problem 98 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1981. -# -# classification PPR-AN-6-4 -# -# A. Montoison, Montreal, 05/2018. - export hs98 "HS98 model" diff --git a/src/PureJuMP/hs99.jl b/src/PureJuMP/hs99.jl index ea01f7191..90b2e87a4 100644 --- a/src/PureJuMP/hs99.jl +++ b/src/PureJuMP/hs99.jl @@ -1,15 +1,3 @@ -# Hock and Schittkowski problem number 99. -# -# Source: -# Problem 99 in -# W. Hock and K. Schittkowski, -# Test examples for nonlinear programming codes, -# Lectures Notes in Economics and Mathematical Systems 187, -# Springer Verlag, Heidelberg, 1991. -# -# classification PPR-AN-6-4 -# - export hs99 "HS99 model" diff --git a/src/PureJuMP/indef_mod.jl b/src/PureJuMP/indef_mod.jl index 9e08386e0..6fdde460b 100644 --- a/src/PureJuMP/indef_mod.jl +++ b/src/PureJuMP/indef_mod.jl @@ -1,17 +1,3 @@ -# Problem 37 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# based on the original problem by N. Gould -# -# classification OUR2-AN-V-0 - -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export indef_mod function indef_mod(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/integreq.jl b/src/PureJuMP/integreq.jl index ffc07d19a..e3d7b7720 100644 --- a/src/PureJuMP/integreq.jl +++ b/src/PureJuMP/integreq.jl @@ -1,17 +1,3 @@ -# The discrete integral problem. -# -# Source: problem 29 in -# J.J. More, B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# Also problem 165 (p. 74) in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# -# classification NOR2-AN-V-V - export integreq "Linear function with `n` parameters and `m` observations - full rank" diff --git a/src/PureJuMP/jennrichsampson.jl b/src/PureJuMP/jennrichsampson.jl index 7818251a2..9bac478f5 100644 --- a/src/PureJuMP/jennrichsampson.jl +++ b/src/PureJuMP/jennrichsampson.jl @@ -1,8 +1,3 @@ -# Source: problem 6 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - export jennrichsampson function jennrichsampson(args...; n::Int = default_nvar, m::Int = 10, kwargs...) diff --git a/src/PureJuMP/kirby2.jl b/src/PureJuMP/kirby2.jl index 5f394eccb..8861cdaa9 100644 --- a/src/PureJuMP/kirby2.jl +++ b/src/PureJuMP/kirby2.jl @@ -1,37 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/kirby2.dat - -NIST/ITL StRD -Dataset Name: Kirby2 (Kirby2.dat) - -File Format: ASCII - Starting Values (lines 41 to 45) - Certified Values (lines 41 to 50) - Data (lines 61 to 211) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study involving - scanning electron microscope line with standards. - -Reference: Kirby, R., NIST (197?). - Scanning electron microscope line width standards. - -Data: 1 Response (y) - 1 Predictor (x) - 151 Observations - Average Level of Difficulty - Observed Data - -Model: Rational Class (quadratic/quadratic) - 5 Parameters (b1 to b5) - - y = (b1 + b2*x + b3*x**2) / - (1 + b4*x + b5*x**2) + e -=# -# T. Migot, Montreal, 2023. - export kirby2 function kirby2(args...; kwargs...) diff --git a/src/PureJuMP/kowosb.jl b/src/PureJuMP/kowosb.jl index 0db8ee6d2..80dc090b8 100644 --- a/src/PureJuMP/kowosb.jl +++ b/src/PureJuMP/kowosb.jl @@ -1,9 +1,3 @@ -# Source: Problem 15 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# classification SUR2-MN-4-0 export kowosb function kowosb(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/lanczos1.jl b/src/PureJuMP/lanczos1.jl index 98af125a7..5596f9616 100644 --- a/src/PureJuMP/lanczos1.jl +++ b/src/PureJuMP/lanczos1.jl @@ -1,38 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/lanczos1.dat - -NIST/ITL StRD -Dataset Name: lanczos1 (lanczos1.dat) - -File Format: ASCII - Starting Values (lines 41 to 42) - Certified Values (lines 41 to 47) - Data (lines 61 to 74) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study regarding - dental research in monomolecular adsorption. The - response variable is volume, and the predictor - variable is pressure. - -Reference: Misra, D., NIST (1978). - Dental Research Monomolecular Adsorption Study. - -Data: 1 Response Variable (y = volume) - 1 Predictor Variable (x = pressure) - 14 Observations - Lower Level of Difficulty - Observed Data - -Model: Exponential Class - 2 Parameters (b1 and b2) - - y = b1*(1-exp[-b2*x]) + e -=# -# T. Migot, Montreal, 2023. - export lanczos1 function lanczos1(args...; kwargs...) diff --git a/src/PureJuMP/lanczos2.jl b/src/PureJuMP/lanczos2.jl index 0838fa539..ae7dc2e58 100644 --- a/src/PureJuMP/lanczos2.jl +++ b/src/PureJuMP/lanczos2.jl @@ -1,39 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/lanczos2.dat - -Dataset Name: Lanczos2 (Lanczos2.dat) - -File Format: ASCII - Starting Values (lines 41 to 46) - Certified Values (lines 41 to 51) - Data (lines 61 to 84) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are taken from an example discussed in - Lanczos (1956). The data were generated to 6-digits - of accuracy using - f(x) = 0.0951*exp(-x) + 0.8607*exp(-3*x) - + 1.5576*exp(-5*x). - -Reference: Lanczos, C. (1956). - Applied Analysis. - Englewood Cliffs, NJ: Prentice Hall, pp. 272-280. - -Data: 1 Response (y) - 1 Predictor (x) - 24 Observations - Average Level of Difficulty - Generated Data - -Model: Exponential Class - 6 Parameters (b1 to b6) - - y = b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x) + e -=# -# T. Migot, Montreal, 2023. - export lanczos2 function lanczos2(args...; kwargs...) diff --git a/src/PureJuMP/lanczos3.jl b/src/PureJuMP/lanczos3.jl index 01cca7b7f..b107e5bab 100644 --- a/src/PureJuMP/lanczos3.jl +++ b/src/PureJuMP/lanczos3.jl @@ -1,41 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/lanczos3.dat - -NIST/ITL StRD -Dataset Name: Lanczos3 (Lanczos3.dat) - -File Format: ASCII - Starting Values (lines 41 to 46) - Certified Values (lines 41 to 51) - Data (lines 61 to 84) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are taken from an example discussed in - Lanczos (1956). The data were generated to 5-digits - of accuracy using - f(x) = 0.0951*exp(-x) + 0.8607*exp(-3*x) - + 1.5576*exp(-5*x). - -Reference: Lanczos, C. (1956). - Applied Analysis. - Englewood Cliffs, NJ: Prentice Hall, pp. 272-280. - -Data: 1 Response (y) - 1 Predictor (x) - 24 Observations - Lower Level of Difficulty - Generated Data - -Model: Exponential Class - 6 Parameters (b1 to b6) - - y = b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x) + e - -=# -# T. Migot, Montreal, 2023. - export lanczos3 function lanczos3(args...; kwargs...) diff --git a/src/PureJuMP/liarwhd.jl b/src/PureJuMP/liarwhd.jl index 6e2a1ce01..84e53b750 100644 --- a/src/PureJuMP/liarwhd.jl +++ b/src/PureJuMP/liarwhd.jl @@ -1,26 +1,3 @@ -# G. Li, -# "The secant/finite difference algorithm for solving sparse -# nonlinear systems of equations", -# SIAM Journal on Optimization, (to appear), 1990. - -# classification SUR2-AN-V-0 - -# This is a simplified version of problem NONDIA. - -# Problem 38 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# based on the original problem by N. Gould -# -# classification OUR2-AN-V-0 - -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export liarwhd function liarwhd(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/marine.jl b/src/PureJuMP/marine.jl index c28a86b1a..fa0f180cd 100644 --- a/src/PureJuMP/marine.jl +++ b/src/PureJuMP/marine.jl @@ -1,20 +1,3 @@ -# Given observations of ns stages of a marine species over n timesteps, -# minimize the loss between the observation and the computed law of paraneters : growth, mortality and number of specimens (g,m,x) - -# This is problem 6 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) - -# classification OOR2-AN-V-V - -# Marine Population Dynamics Problem -# Collocation formulation -# Alexander S. Bondarenko - Summer 1998 -# COPS 2.0 - September 2000 -# COPS 3.0 - November 2002 -# COPS 3.1 - March 2004 - export marine function marine(args...; n::Int = default_nvar, nc::Int = 1, kwargs...) diff --git a/src/PureJuMP/methanol.jl b/src/PureJuMP/methanol.jl index bbf0f671a..402ebece4 100644 --- a/src/PureJuMP/methanol.jl +++ b/src/PureJuMP/methanol.jl @@ -1,10 +1,3 @@ -# 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, kwargs...) diff --git a/src/PureJuMP/meyer3.jl b/src/PureJuMP/meyer3.jl index 310e8b190..67b552978 100644 --- a/src/PureJuMP/meyer3.jl +++ b/src/PureJuMP/meyer3.jl @@ -1,14 +1,3 @@ -# Meyer function -# -# Source: Problem 10 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# -# See also Buckley #29 (p. 73). -# -# classification SUR2-RN-3-0 - export meyer3 "Meyer function" diff --git a/src/PureJuMP/mgh09.jl b/src/PureJuMP/mgh09.jl index a089c52b5..235edccdb 100644 --- a/src/PureJuMP/mgh09.jl +++ b/src/PureJuMP/mgh09.jl @@ -1,43 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/mgh09.dat - -NIST/ITL StRD -Dataset Name: MGH09 (MGH09.dat) - -File Format: ASCII - Starting Values (lines 41 to 44) - Certified Values (lines 41 to 49) - Data (lines 61 to 71) - -Procedure: Nonlinear Least Squares Regression - -Description: This problem was found to be difficult for some very - good algorithms. There is a local minimum at (+inf, - -14.07..., -inf, -inf) with final sum of squares - 0.00102734.... - - See More, J. J., Garbow, B. S., and Hillstrom, K. E. - (1981). Testing unconstrained optimization software. - ACM Transactions on Mathematical Software. 7(1): - pp. 17-41. - -Reference: Kowalik, J.S., and M. R. Osborne, (1978). - Methods for Unconstrained Optimization Problems. - New York, NY: Elsevier North-Holland. - -Data: 1 Response (y) - 1 Predictor (x) - 11 Observations - Higher Level of Difficulty - Generated Data - -Model: Rational Class (linear/quadratic) - 4 Parameters (b1 to b4) - - y = b1*(x**2+x*b2) / (x**2+x*b3+b4) + e -=# - export mgh09 function mgh09(args...; kwargs...) diff --git a/src/PureJuMP/mgh10.jl b/src/PureJuMP/mgh10.jl index 8c73cab9e..51137665b 100644 --- a/src/PureJuMP/mgh10.jl +++ b/src/PureJuMP/mgh10.jl @@ -1,43 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/mgh10.dat - -NIST/ITL StRD -Dataset Name: MGH10 (MGH10.dat) - -File Format: ASCII - Starting Values (lines 41 to 43) - Certified Values (lines 41 to 48) - Data (lines 61 to 76) - -Procedure: Nonlinear Least Squares Regression - -Description: This problem was found to be difficult for some very - good algorithms. - - See More, J. J., Garbow, B. S., and Hillstrom, K. E. - (1981). Testing unconstrained optimization software. - ACM Transactions on Mathematical Software. 7(1): - pp. 17-41. - -Reference: Meyer, R. R. (1970). - Theoretical and computational aspects of nonlinear - regression. In Nonlinear Programming, Rosen, - Mangasarian and Ritter (Eds). - New York, NY: Academic Press, pp. 465-486. - -Data: 1 Response (y) - 1 Predictor (x) - 16 Observations - Higher Level of Difficulty - Generated Data - -Model: Exponential Class - 3 Parameters (b1 to b3) - - y = b1 * exp[b2/(x+b3)] + e -=# - export mgh10 function mgh10(args...; kwargs...) diff --git a/src/PureJuMP/mgh17.jl b/src/PureJuMP/mgh17.jl index 2bc4176f6..f6b67c5b9 100644 --- a/src/PureJuMP/mgh17.jl +++ b/src/PureJuMP/mgh17.jl @@ -1,44 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/mgh17.dat - -NIST/ITL StRD -Dataset Name: MGH17 (MGH17.dat) - -File Format: ASCII - Starting Values (lines 41 to 45) - Certified Values (lines 41 to 50) - Data (lines 61 to 93) - -Procedure: Nonlinear Least Squares Regression - -Description: This problem was found to be difficult for some very - good algorithms. - - See More, J. J., Garbow, B. S., and Hillstrom, K. E. - (1981). Testing unconstrained optimization software. - ACM Transactions on Mathematical Software. 7(1): - pp. 17-41. - -Reference: Osborne, M. R. (1972). - Some aspects of nonlinear least squares - calculations. In Numerical Methods for Nonlinear - Optimization, Lootsma (Ed). - New York, NY: Academic Press, pp. 171-189. - -Data: 1 Response (y) - 1 Predictor (x) - 33 Observations - Average Level of Difficulty - Generated Data - -Model: Exponential Class - 5 Parameters (b1 to b5) - - y = b1 + b2*exp[-x*b4] + b3*exp[-x*b5] + e -=# -# T. Migot, Montreal, 2023. - export mgh17 function mgh17(args...; kwargs...) diff --git a/src/PureJuMP/minsurf.jl b/src/PureJuMP/minsurf.jl index 852beaeff..c1f5bb492 100644 --- a/src/PureJuMP/minsurf.jl +++ b/src/PureJuMP/minsurf.jl @@ -1,14 +1,3 @@ -# 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 = default_nvar, kwargs...) diff --git a/src/PureJuMP/misra1a.jl b/src/PureJuMP/misra1a.jl index c2d0d82cc..52b547208 100644 --- a/src/PureJuMP/misra1a.jl +++ b/src/PureJuMP/misra1a.jl @@ -1,38 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/misra1a.dat - -NIST/ITL StRD -Dataset Name: misra1a (misra1a.dat) - -File Format: ASCII - Starting Values (lines 41 to 42) - Certified Values (lines 41 to 47) - Data (lines 61 to 74) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study regarding - dental research in monomolecular adsorption. The - response variable is volume, and the predictor - variable is pressure. - -Reference: Misra, D., NIST (1978). - Dental Research Monomolecular Adsorption Study. - -Data: 1 Response Variable (y = volume) - 1 Predictor Variable (x = pressure) - 14 Observations - Lower Level of Difficulty - Observed Data - -Model: Exponential Class - 2 Parameters (b1 and b2) - - y = b1*(1-exp[-b2*x]) + e -=# -# T. Migot, Montreal, 2023. - export misra1a function misra1a(args...; kwargs...) diff --git a/src/PureJuMP/misra1b.jl b/src/PureJuMP/misra1b.jl index 3237cbc94..918ae409e 100644 --- a/src/PureJuMP/misra1b.jl +++ b/src/PureJuMP/misra1b.jl @@ -1,39 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/misra1b.dat - -NIST/ITL StRD -Dataset Name: Misra1b (Misra1b.dat) - -File Format: ASCII - Starting Values (lines 41 to 42) - Certified Values (lines 41 to 47) - Data (lines 61 to 74) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study regarding - dental research in monomolecular adsorption. The - response variable is volume, and the predictor - variable is pressure. - -Reference: Misra, D., NIST (1978). - Dental Research Monomolecular Adsorption Study. - -Data: 1 Response (y = volume) - 1 Predictor (x = pressure) - 14 Observations - Lower Level of Difficulty - Observed Data - -Model: Miscellaneous Class - 2 Parameters (b1 and b2) - - y = b1 * (1-(1+b2*x/2)**(-2)) + e - -=# -# T. Migot, Montreal, 2023. - export misra1b function misra1b(args...; kwargs...) diff --git a/src/PureJuMP/misra1c.jl b/src/PureJuMP/misra1c.jl index 1415b4f4f..4c702370a 100644 --- a/src/PureJuMP/misra1c.jl +++ b/src/PureJuMP/misra1c.jl @@ -1,38 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/misra1c.dat - -NIST/ITL StRD -Dataset Name: Misra1c (Misra1c.dat) - -File Format: ASCII - Starting Values (lines 41 to 42) - Certified Values (lines 41 to 47) - Data (lines 61 to 74) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study regarding - dental research in monomolecular adsorption. The - response variable is volume, and the predictor - variable is pressure. - -Reference: Misra, D., NIST (1978). - Dental Research Monomolecular Adsorption. - -Data: 1 Response (y = volume) - 1 Predictor (x = pressure) - 14 Observations - Average Level of Difficulty - Observed Data - -Model: Miscellaneous Class - 2 Parameters (b1 and b2) - - y = b1 * (1-(1+2*b2*x)**(-.5)) + e -=# -# T. Migot, Montreal, 2023. - export misra1c function misra1c(args...; kwargs...) diff --git a/src/PureJuMP/misra1d.jl b/src/PureJuMP/misra1d.jl index 044a7ce1a..df0e312c0 100644 --- a/src/PureJuMP/misra1d.jl +++ b/src/PureJuMP/misra1d.jl @@ -1,35 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/misra1d.dat - -File Format: ASCII - Starting Values (lines 41 to 42) - Certified Values (lines 41 to 47) - Data (lines 61 to 74) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study regarding - dental research in monomolecular adsorption. The - response variable is volume, and the predictor - variable is pressure. - -Reference: Misra, D., NIST (1978). - Dental Research Monomolecular Adsorption Study. - -Data: 1 Response (y = volume) - 1 Predictor (x = pressure) - 14 Observations - Average Level of Difficulty - Observed Data - -Model: Miscellaneous Class - 2 Parameters (b1 and b2) - - y = b1*b2*x*((1+b2*x)**(-1)) + e -=# -# T. Migot, Montreal, 2023. - export misra1d function misra1d(args...; kwargs...) diff --git a/src/PureJuMP/morebv.jl b/src/PureJuMP/morebv.jl index 48e639254..b22296719 100644 --- a/src/PureJuMP/morebv.jl +++ b/src/PureJuMP/morebv.jl @@ -1,25 +1,3 @@ -# The Boundary Value problem. -# This is the nonlinear least-squares version without fixed variables. - -# Source: problem 28 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# See also Buckley#17 (p. 75). - -# classification SUR2-MN-V-0 - -# Problem 39 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export morebv function morebv(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/nasty.jl b/src/PureJuMP/nasty.jl index 32a54930c..b091f2873 100644 --- a/src/PureJuMP/nasty.jl +++ b/src/PureJuMP/nasty.jl @@ -1,9 +1,3 @@ -# Nasty problem. -# -# Source: a very simple box-constrained quadratic -# -# classification QUR2-AN-2-0 - export nasty "Nasty problem" diff --git a/src/PureJuMP/nazareth.jl b/src/PureJuMP/nazareth.jl index f719ac16c..acea52329 100644 --- a/src/PureJuMP/nazareth.jl +++ b/src/PureJuMP/nazareth.jl @@ -1,13 +1,3 @@ -# Sparse modification of the Nazareth trigonometric function -# -# Problem 8 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization export nazareth function nazareth(; n::Int = default_nvar) diff --git a/src/PureJuMP/ncb20.jl b/src/PureJuMP/ncb20.jl index 5ee286193..399b62eff 100644 --- a/src/PureJuMP/ncb20.jl +++ b/src/PureJuMP/ncb20.jl @@ -1,21 +1,3 @@ -# A banded problem with semi-bandwidth 20. This problem exhibits frequent -# negative curvature in the exact Hessian. - -# Source: -# Ph. Toint, private communication, 1992. - -# classification OUR2-AN-V-0 - -# Problem 40 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export ncb20 function ncb20(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/ncb20b.jl b/src/PureJuMP/ncb20b.jl index fe738fea7..ff8e3e3e7 100644 --- a/src/PureJuMP/ncb20b.jl +++ b/src/PureJuMP/ncb20b.jl @@ -1,22 +1,3 @@ -# A banded problem with semi-bandwidth 20. This problem exhibits frequent -# negative curvature in the exact Hessian. It is a simplified version of -# problem NCB20. - -# Source: -# Ph. Toint, private communication, 1992. - -# classification OUR2-AN-V-0 - -# Problem 41 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export ncb20b function ncb20b(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/nelson.jl b/src/PureJuMP/nelson.jl index 8d76b2f5b..b3e9c6711 100644 --- a/src/PureJuMP/nelson.jl +++ b/src/PureJuMP/nelson.jl @@ -1,43 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/nelson.dat - -NIST/ITL StRD -Dataset Name: Nelson (Nelson.dat) - -File Format: ASCII - Starting Values (lines 41 to 43) - Certified Values (lines 41 to 48) - Data (lines 61 to 188) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a study involving - the analysis of performance degradation data from - accelerated tests, published in IEEE Transactions - on Reliability. The response variable is dialectric - breakdown strength in kilo-volts, and the predictor - variables are time in weeks and temperature in degrees - Celcius. - -Reference: Nelson, W. (1981). - Analysis of Performance-Degradation Data. - IEEE Transactions on Reliability. - Vol. 2, R-30, No. 2, pp. 149-155. - -Data: 1 Response ( y = dialectric breakdown strength) - 2 Predictors (x1 = time; x2 = temperature) - 128 Observations - Average Level of Difficulty - Observed Data - -Model: Exponential Class - 3 Parameters (b1 to b3) - - log[y] = b1 - b2*x1 * exp[-b3*x2] + e -=# -# T. Migot, Montreal, 2023. - export nelson function nelson(args...; kwargs...) diff --git a/src/PureJuMP/noncvxu2.jl b/src/PureJuMP/noncvxu2.jl index 3152b467b..7c4aab8b6 100644 --- a/src/PureJuMP/noncvxu2.jl +++ b/src/PureJuMP/noncvxu2.jl @@ -1,17 +1,3 @@ -# A nonconvex unconstrained function with a unique minimum value - -# classification OUR2-AN-V-0 - -# Problem 43 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export noncvxu2 function noncvxu2(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/noncvxun.jl b/src/PureJuMP/noncvxun.jl index 79f2997b8..20e1c9461 100644 --- a/src/PureJuMP/noncvxun.jl +++ b/src/PureJuMP/noncvxun.jl @@ -1,18 +1,3 @@ -# A nonconvex unconstrained function with a unique minimum value -# See discussion here https://github.com/JuliaSmoothOptimizers/CUTEst.jl/issues/321 - -# classification OUR2-AN-V-0 - -# Problem 42 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export noncvxun function noncvxun(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/nondia.jl b/src/PureJuMP/nondia.jl index b65b29d1e..078628100 100644 --- a/src/PureJuMP/nondia.jl +++ b/src/PureJuMP/nondia.jl @@ -1,28 +1,3 @@ -# The Shanno nondiagonal extension of Rosenbrock function. - -# Source: -# D. Shanno, -# " On Variable Metric Methods for Sparse Hessians II: the New -# Method", -# MIS Tech report 27, University of Arizona (Tucson, UK), 1978. - -# See also Buckley #37 (p. 76) and Toint #15. - -# classification SUR2-AN-V-0 - -# Problem 44 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - -# Note: discrepancy with CUTEst appears to be a bug in CUTEst, this (now) matches the original paper -# (See issue #36) - export nondia function nondia(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/nondquar.jl b/src/PureJuMP/nondquar.jl index f48d25718..1a60192e9 100644 --- a/src/PureJuMP/nondquar.jl +++ b/src/PureJuMP/nondquar.jl @@ -1,27 +1,3 @@ -# A nondiagonal quartic test problem. - -# This problem has an arrow-head type Hessian with a tridiagonal -# central part and a border of width 1. -# The Hessian is singular at the solution. - -# Source: problem 57 in -# A.R. Conn, N.I.M. Gould, M. Lescrenier and Ph.L. Toint, -# "Performance of a multi-frontal scheme for partially separable -# optimization" -# Report 88/4, Dept of Mathematics, FUNDP (Namur, B), 1988. - -# classification OUR2-AN-V-0 - -# Problem 45 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export nondquar function nondquar(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/osborne1.jl b/src/PureJuMP/osborne1.jl index 3291b6ea6..7a4bc2d4d 100644 --- a/src/PureJuMP/osborne1.jl +++ b/src/PureJuMP/osborne1.jl @@ -1,11 +1,3 @@ -# Source: Problem 17 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# See alos Buckley#32 (p. 77). - -# classification NOR2-MN-5-33 export osborne1 function osborne1(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/osborne2.jl b/src/PureJuMP/osborne2.jl index b9b76713e..556e4a65b 100644 --- a/src/PureJuMP/osborne2.jl +++ b/src/PureJuMP/osborne2.jl @@ -1,11 +1,3 @@ -# Source: Problem 19 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# See also Buckley#32 (p.78). - -# classification NOR2-MN-11-65 export osborne2 function osborne2(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/palmer1c.jl b/src/PureJuMP/palmer1c.jl index 30c399533..e8da55d8b 100644 --- a/src/PureJuMP/palmer1c.jl +++ b/src/PureJuMP/palmer1c.jl @@ -1,15 +1,3 @@ -# A linear least squares problem -# arising from chemical kinetics. -# -# model: H-N=N=N TZVP+MP2 -# fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + -# A10 X**10 + A12 X**12 + A14 X**14 -# -# Source: -# M. Palmer, Edinburgh, private communication. -# -# classification QUR2-RN-8-0 - export palmer1c "A linear least squares problem arising from chemical kinetics." diff --git a/src/PureJuMP/palmer1d.jl b/src/PureJuMP/palmer1d.jl index fca486090..1f3c5352a 100644 --- a/src/PureJuMP/palmer1d.jl +++ b/src/PureJuMP/palmer1d.jl @@ -1,15 +1,3 @@ -# A linear least squares problem -# arising from chemical kinetics. -# -# model: H-N=N=N TZVP+MP2 -# fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + -# A10 X**10 + A12 X**12 -# -# Source: -# M. Palmer, Edinburgh, private communication. -# -# classification QUR2-RN-7-0 - export palmer1d "A linear least squares problem arising from chemical kinetics." diff --git a/src/PureJuMP/palmer2c.jl b/src/PureJuMP/palmer2c.jl index 22f2b6598..3096a9985 100644 --- a/src/PureJuMP/palmer2c.jl +++ b/src/PureJuMP/palmer2c.jl @@ -1,15 +1,3 @@ -# A linear least squares problem -# arising from chemical kinetics. -# -# model: H-N=C=O TZVP+MP2 -# fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + -# A10 X**10 + A12 X**12 + A14 X**14 -# -# Source: -# M. Palmer, Edinburgh, private communication. -# -# classification QUR2-RN-8-0 - export palmer2c "A linear least squares problem arising from chemical kinetics." diff --git a/src/PureJuMP/palmer3c.jl b/src/PureJuMP/palmer3c.jl index 20889010b..c5d2bc528 100644 --- a/src/PureJuMP/palmer3c.jl +++ b/src/PureJuMP/palmer3c.jl @@ -1,15 +1,3 @@ -# A linear least squares problem -# arising from chemical kinetics. -# -# model: H-N=C=S TZVP+MP2 -# fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + -# A10 X**10 + A12 X**12 + A14 X**14 -# -# Source: -# M. Palmer, Edinburgh, private communication. -# -# classification QUR2-RN-8-0 - export palmer3c "A linear least squares problem arising from chemical kinetics." diff --git a/src/PureJuMP/palmer4c.jl b/src/PureJuMP/palmer4c.jl index 78172a4fd..07bc8f8a5 100644 --- a/src/PureJuMP/palmer4c.jl +++ b/src/PureJuMP/palmer4c.jl @@ -1,15 +1,3 @@ -# A linear least squares problem -# arising from chemical kinetics. -# -# model: H-N=C=Se TZVP+MP2 -# fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + -# A10 X**10 + A12 X**12 + A14 X**14 -# -# Source: -# M. Palmer, Edinburgh, private communication. -# -# classification QUR2-RN-8-0 - export palmer4c "A linear least squares problem arising from chemical kinetics." diff --git a/src/PureJuMP/palmer5c.jl b/src/PureJuMP/palmer5c.jl index 20091d4bf..cd8e2df6e 100644 --- a/src/PureJuMP/palmer5c.jl +++ b/src/PureJuMP/palmer5c.jl @@ -1,16 +1,3 @@ -# A linear least squares problem -# arising from chemical kinetics. -# -# model: H-N=C=Se TZVP+MP2 -# fitting Y to A0 T_0 + A2 T_2 + A4 T_4 + A6 T_6 + A8 T_8 + -# A10 T_10 + A12 T_12 + A14 T_14 -# where T_i is the i-th (shifted) Chebyshev polynomial -# -# Source: -# M. Palmer, Edinburgh, private communication. -# -# classification QUR2-RN-6-0 - export palmer5c "A linear least squares problem arising from chemical kinetics." diff --git a/src/PureJuMP/palmer5d.jl b/src/PureJuMP/palmer5d.jl index f46745546..dbf32ad5c 100644 --- a/src/PureJuMP/palmer5d.jl +++ b/src/PureJuMP/palmer5d.jl @@ -1,14 +1,3 @@ -# A linear least squares problem -# arising from chemical kinetics. -# -# model: H-N=C=Se TZVP+MP2 -# fitting Y to to A0 + A2 X**2 + A4 X**4 + A6 X**6 -# -# Source: -# M. Palmer, Edinburgh, private communication. -# -# classification QUR2-RN-4-0 - export palmer5d "A linear least squares problem arising from chemical kinetics." diff --git a/src/PureJuMP/palmer6c.jl b/src/PureJuMP/palmer6c.jl index ea677cebe..88d89eaa3 100644 --- a/src/PureJuMP/palmer6c.jl +++ b/src/PureJuMP/palmer6c.jl @@ -1,15 +1,3 @@ -# A linear least squares problem -# arising from chemical kinetics. -# -# model: H-N=C=Se TZVP+MP2 -# fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + -# A10 X**10 + A12 X**12 + A14 X**14 -# -# Source: -# M. Palmer, Edinburgh, private communication. -# -# classification QUR2-RN-8-0 - export palmer6c "A linear least squares problem arising from chemical kinetics." diff --git a/src/PureJuMP/palmer7c.jl b/src/PureJuMP/palmer7c.jl index 2151e01dc..a775b69ce 100644 --- a/src/PureJuMP/palmer7c.jl +++ b/src/PureJuMP/palmer7c.jl @@ -1,15 +1,3 @@ -# A linear least squares problem -# arising from chemical kinetics. -# -# model: H-N=C=Se TZVP+MP2 -# fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + -# A10 X**10 + A12 X**12 + A14 X**14 -# -# Source: -# M. Palmer, Edinburgh, private communication. -# -# classification QUR2-RN-8-0 - export palmer7c "A linear least squares problem arising from chemical kinetics." diff --git a/src/PureJuMP/palmer8c.jl b/src/PureJuMP/palmer8c.jl index c905b524b..d6d79edde 100644 --- a/src/PureJuMP/palmer8c.jl +++ b/src/PureJuMP/palmer8c.jl @@ -1,15 +1,3 @@ -# A linear least squares problem -# arising from chemical kinetics. -# -# model: H-N=C=Se TZVP+MP2 -# fitting Y to A0 + A2 X**2 + A4 X**4 + A6 X**6 + A8 X**8 + -# A10 X**10 + A12 X**12 + A14 X**14 -# -# Source: -# M. Palmer, Edinburgh, private communication. -# -# classification QUR2-RN-8-0 - export palmer8c "A linear least squares problem arising from chemical kinetics." diff --git a/src/PureJuMP/penalty1.jl b/src/PureJuMP/penalty1.jl index 8e7054354..419afc76b 100644 --- a/src/PureJuMP/penalty1.jl +++ b/src/PureJuMP/penalty1.jl @@ -1,17 +1,3 @@ -# A penalty function arising from -# min{ sum_1^n(x_i-1)^2 subject to sum_1^n x_i^2 = 1/4}. -# At the solution, the hessian has n-1 eigenvalues of order 1e-5 and -# one of order 1. -# -# Source: problem 23 in -# J.J. More, B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# -# See also Buckley #181 (p. 79) -# -# classification SUR2-AN-V-0 - export penalty1 "Linear function with `n` parameters and `m` observations - full rank" diff --git a/src/PureJuMP/penalty2.jl b/src/PureJuMP/penalty2.jl index ea44e7ca2..0ca87231e 100644 --- a/src/PureJuMP/penalty2.jl +++ b/src/PureJuMP/penalty2.jl @@ -1,13 +1,3 @@ -# Source: Problem 24 in -# J.J. Moré, B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# See also Buckley#112 (p. 80) - -# classification SUR2-AN-V-0 -# J.-P. Dussault, Clermont-Ferrand 06/2016. - export penalty2 "A penalty problem by Gill, Murray and Pitfield in size 'n' " diff --git a/src/PureJuMP/penalty3.jl b/src/PureJuMP/penalty3.jl index 8a1328e96..b89818275 100644 --- a/src/PureJuMP/penalty3.jl +++ b/src/PureJuMP/penalty3.jl @@ -1,24 +1,3 @@ -# A penalty problem by Gill, Murray and Pitfield. -# It has a dense Hessian matrix. - -# Source: problem 114 (p. 81) in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. - -# classification OUR2-AY-V-0 - -# Problem 46 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export penalty3 "A penalty problem by Gill, Murray and Pitfield in size 'n' " diff --git a/src/PureJuMP/pinene.jl b/src/PureJuMP/pinene.jl index 49f5a3137..19f93958f 100644 --- a/src/PureJuMP/pinene.jl +++ b/src/PureJuMP/pinene.jl @@ -1,15 +1,3 @@ -# 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(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/polygon.jl b/src/PureJuMP/polygon.jl index b1767a914..8c3de23ac 100644 --- a/src/PureJuMP/polygon.jl +++ b/src/PureJuMP/polygon.jl @@ -1,17 +1,3 @@ -# Find the polygon of maximal area, among polygons with nv sides and -# diameter d <= 1 - -# This is problem 1 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) - -# classification OOR2-AN-V-V - -# The initial guess is inspired from https://vanderbei.princeton.edu/ampl/nlmodels/polygon/polygon2.mod - -# See `polygon1`, `polygon2` and `polygon3` for similar variants. - export polygon function polygon(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/polygon1.jl b/src/PureJuMP/polygon1.jl index 38104341f..6db529562 100644 --- a/src/PureJuMP/polygon1.jl +++ b/src/PureJuMP/polygon1.jl @@ -1,16 +1,3 @@ -# Find the polygon of maximal area, among polygons with nv sides and -# diameter d <= 1 - -# JuMP model follows Laurent Lessard CS/ECE/ISyE 524, University of Wisconsin–Madison, -# Introduction to Optimization class. -# https://laurentlessard.com/teaching/524-intro-to-optimization/ - -# This implementation is similar to -# This is problem 1 in the COPS (Version 2) collection of -# E. Dolan and J. More' -# see "Benchmarking Optimization Software with COPS" -# Argonne National Labs Technical Report ANL/MCS-246 (2000) - export polygon1 function polygon1(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/polygon2.jl b/src/PureJuMP/polygon2.jl index 75924d513..c04fa5732 100644 --- a/src/PureJuMP/polygon2.jl +++ b/src/PureJuMP/polygon2.jl @@ -1,11 +1,3 @@ -# Find the polygon of maximal area, among polygons with nv sides and -# diameter d <= 1 -# Model 2: relative polar coordinates - -# JuMP model follows Laurent Lessard CS/ECE/ISyE 524, University of Wisconsin–Madison, -# Introduction to Optimization class. -# https://laurentlessard.com/teaching/524-intro-to-optimization/ - export polygon2 function polygon2(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/polygon3.jl b/src/PureJuMP/polygon3.jl index 9188d2371..bf85dcb94 100644 --- a/src/PureJuMP/polygon3.jl +++ b/src/PureJuMP/polygon3.jl @@ -1,11 +1,3 @@ -# Find the polygon of maximal area, among polygons with nv sides and -# diameter d <= 1 -# Model 3: rectangular coordinates - -# JuMP model follows Laurent Lessard CS/ECE/ISyE 524, University of Wisconsin–Madison, -# Introduction to Optimization class. -# https://laurentlessard.com/teaching/524-intro-to-optimization/ - export polygon3 function polygon3(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/powellbs.jl b/src/PureJuMP/powellbs.jl index 9010976bc..c26d2fcab 100644 --- a/src/PureJuMP/powellbs.jl +++ b/src/PureJuMP/powellbs.jl @@ -1,12 +1,3 @@ -# Source: problem 3 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# See also Toint#34, Buckley#22 (p. 82). - -# classification NOR2-AN-2-2 - export powellbs function powellbs(args...; kwargs...) diff --git a/src/PureJuMP/powellsg.jl b/src/PureJuMP/powellsg.jl index 31b9dcf60..ecc462efb 100644 --- a/src/PureJuMP/powellsg.jl +++ b/src/PureJuMP/powellsg.jl @@ -1,38 +1,3 @@ -# The extended Powell singular problem. -# This problem is a sum of n/4 sets of four terms, each of which is -# assigned its own group. - -# Source: Problem 13 & 22 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# See also Toint#19, Buckley#34 (p.85) - -# classification OUR2-AN-V-0 - -# Problem 47 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - -# Difference with the following is the initial guess. -# -# Problem 3 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization -# - export powellsg "The extended Powell singular problem in size 'n' " diff --git a/src/PureJuMP/power.jl b/src/PureJuMP/power.jl index f38630ae8..1e1f87115 100644 --- a/src/PureJuMP/power.jl +++ b/src/PureJuMP/power.jl @@ -1,14 +1,3 @@ -# The Power problem by Oren. -# -# Source: -# S.S. Oren, -# Self-scaling variable metric algorithms, -# Part II: implementation and experiments" -# Management Science 20(5):863-874, 1974. -# See also Buckley#179 (p. 83) -# -# classification OUR2-AN-V-0 - export power "The Power problem by Oren." diff --git a/src/PureJuMP/quartc.jl b/src/PureJuMP/quartc.jl index be702780b..93fca31b6 100644 --- a/src/PureJuMP/quartc.jl +++ b/src/PureJuMP/quartc.jl @@ -1,13 +1,3 @@ -# A simple quartic function. -# -# Source: problem 157 (p. 87) in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# -# classification OUR2-AN-V-0 - export quartc "A simple quartic function." diff --git a/src/PureJuMP/rat42.jl b/src/PureJuMP/rat42.jl index afd6cbf6b..21d5cbbd0 100644 --- a/src/PureJuMP/rat42.jl +++ b/src/PureJuMP/rat42.jl @@ -1,39 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/rat42.dat - -NIST/ITL StRD -Dataset Name: Rat42 (Rat42.dat) - -File Format: ASCII - Starting Values (lines 41 to 43) - Certified Values (lines 41 to 48) - Data (lines 61 to 69) - -Procedure: Nonlinear Least Squares Regression - -Description: This model and data are an example of fitting - sigmoidal growth curves taken from Ratkowsky (1983). - The response variable is pasture yield, and the - predictor variable is growing time. - -Reference: Ratkowsky, D.A. (1983). - Nonlinear Regression Modeling. - New York, NY: Marcel Dekker, pp. 61 and 88. - -Data: 1 Response (y = pasture yield) - 1 Predictor (x = growing time) - 9 Observations - Higher Level of Difficulty - Observed Data - -Model: Exponential Class - 3 Parameters (b1 to b3) - - y = b1 / (1+exp[b2-b3*x]) + e -=# -# T. Migot, Montreal, 2023. - export rat42 function rat42(args...; kwargs...) diff --git a/src/PureJuMP/rat43.jl b/src/PureJuMP/rat43.jl index 55fe3f9c8..602da3c77 100644 --- a/src/PureJuMP/rat43.jl +++ b/src/PureJuMP/rat43.jl @@ -1,39 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/rat43.dat - -NIST/ITL StRD -Dataset Name: Rat43 (Rat43.dat) - -File Format: ASCII - Starting Values (lines 41 to 44) - Certified Values (lines 41 to 49) - Data (lines 61 to 75) - -Procedure: Nonlinear Least Squares Regression - -Description: This model and data are an example of fitting - sigmoidal growth curves taken from Ratkowsky (1983). - The response variable is the dry weight of onion bulbs - and tops, and the predictor variable is growing time. - -Reference: Ratkowsky, D.A. (1983). - Nonlinear Regression Modeling. - New York, NY: Marcel Dekker, pp. 62 and 88. - -Data: 1 Response (y = onion bulb dry weight) - 1 Predictor (x = growing time) - 15 Observations - Higher Level of Difficulty - Observed Data - -Model: Exponential Class - 4 Parameters (b1 to b4) - - y = b1 / ((1+exp[b2-b3*x])**(1/b4)) + e -=# -# T. Migot, Montreal, 2023. - export rat43 function rat43(args...; kwargs...) diff --git a/src/PureJuMP/robotarm.jl b/src/PureJuMP/robotarm.jl index ff1a76a8a..6c1b0bc44 100644 --- a/src/PureJuMP/robotarm.jl +++ b/src/PureJuMP/robotarm.jl @@ -1,16 +1,3 @@ -# Minimize the time taken for a robot arm to travel between two points. - -# 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) - -# classification OOR2-AN-V-V - -# x : vector of variables, of the form : [ρ(t=t1); ρ(t=t2); ... ρ(t=tf), θ(t=t1), ..., then ρ_dot, ..., then ρ_acc, .. ϕ_acc, tf] -# There are N+1 values of each 9 variables -# x = [ρ, θ, ϕ, ρ_dot, θ_dot, ϕ_dot, ρ_acc, θ_acc, ϕ_acc, tf] - export robotarm function robotarm(; n::Int = default_nvar, L = 4.5, kwargs...) diff --git a/src/PureJuMP/rocket.jl b/src/PureJuMP/rocket.jl index 0d71255ee..505cc1b54 100644 --- a/src/PureJuMP/rocket.jl +++ b/src/PureJuMP/rocket.jl @@ -1,9 +1,3 @@ -# Goddard Rocket Problem -# Trapezoidal formulation -# COPS 2.0 - September 2000 -# COPS 3.0 - November 2002 -# COPS 3.1 - March 2004 - export rocket function rocket(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/rozman1.jl b/src/PureJuMP/rozman1.jl index 9531dbb8c..2b39a912e 100644 --- a/src/PureJuMP/rozman1.jl +++ b/src/PureJuMP/rozman1.jl @@ -1,39 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/rozman1.dat - -NIST/ITL StRD -Dataset Name: Roszman1 (Roszman1.dat) - -File Format: ASCII - Starting Values (lines 41 to 44) - Certified Values (lines 41 to 49) - Data (lines 61 to 85) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study involving - quantum defects in iodine atoms. The response - variable is the number of quantum defects, and the - predictor variable is the excited energy state. - The argument to the ARCTAN function is in radians. - -Reference: Roszman, L., NIST (19??). - Quantum Defects for Sulfur I Atom. - -Data: 1 Response (y = quantum defect) - 1 Predictor (x = excited state energy) - 25 Observations - Average Level of Difficulty - Observed Data - -Model: Miscellaneous Class - 4 Parameters (b1 to b4) - - pi = 3.141592653589793238462643383279E0 - y = b1 - b2*x - arctan[b3/(x-b4)]/pi + e -=# - export rozman1 function rozman1(args...; kwargs...) diff --git a/src/PureJuMP/sbrybnd.jl b/src/PureJuMP/sbrybnd.jl index 32271f337..a53249215 100644 --- a/src/PureJuMP/sbrybnd.jl +++ b/src/PureJuMP/sbrybnd.jl @@ -1,29 +1,3 @@ -# Broyden banded system of nonlinear equations, considered in the -# least square sense. -# NB: scaled version of BRYBND - -# Source: the *unscaled* version is problem 31 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# See also Buckley#73 (p. 41) and Toint#18 - -# classification SUR2-AN-V-0 - -# This scaled version is Problem 48 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# The terms in the sum should be squared --- corrected (it is not squared in Luksan, but -# comparing it against their brybnd that appears to be a typo) -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export sbrybnd "Broyden banded system of nonlinear equations in size 'n' " diff --git a/src/PureJuMP/schmvett.jl b/src/PureJuMP/schmvett.jl index 8dce714bf..d157532dc 100644 --- a/src/PureJuMP/schmvett.jl +++ b/src/PureJuMP/schmvett.jl @@ -1,27 +1,3 @@ -# The Schmidt and Vetters problem. - -# This problem has N-2 trivial groups, all of which have 3 nonlinear -# elements - -# Source: -# J.W. Schmidt and K. Vetters, -# "Albeitungsfreie Verfahren fur Nichtlineare Optimierungsproblem", -# Numerische Mathematik 15:263-282, 1970. - -# See also Toint#35 and Buckley#14 (p90) - -# classification OUR2-AY-V-0 - -# Problem 49 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export schmvett "Another function with nontrivial groups and repetitious elements in size 'n' " diff --git a/src/PureJuMP/scosine.jl b/src/PureJuMP/scosine.jl index 928556135..f26b39f06 100644 --- a/src/PureJuMP/scosine.jl +++ b/src/PureJuMP/scosine.jl @@ -1,25 +1,3 @@ -# Another function with nontrivial groups and -# repetitious elements. -# NB: scaled version of COSINE - -# Source: -# N. Gould, private communication. - -# classification OUR2-AN-V-0 - -# Problem 50 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - -# Note: discrepancy with CUTEst appears to be a bug in CUTEst, this matches the original paper -# (See issue #36) - export scosine "Another function with nontrivial groups and repetitious elements in size 'n' " diff --git a/src/PureJuMP/shpak1.jl b/src/PureJuMP/shpak1.jl index caad95529..a4fa59a09 100644 --- a/src/PureJuMP/shpak1.jl +++ b/src/PureJuMP/shpak1.jl @@ -1,12 +1,3 @@ -# first problem of -# Global optimization in one-dimensional case -# using analytically defined derivatives of -# objective function -# -#A.Shpak -# -#Computer Science Journal of Moldova, vol.3, no.2(8), 1995 - export Shpak1 "Univariate multimodal minimization problem Shpak1" diff --git a/src/PureJuMP/shpak2.jl b/src/PureJuMP/shpak2.jl index ce7c80339..0f125db7f 100644 --- a/src/PureJuMP/shpak2.jl +++ b/src/PureJuMP/shpak2.jl @@ -1,13 +1,3 @@ -# Second problem of -# Global optimization in one-dimensional case -# using analytically defined derivatives of -# objective function - -# A.Shpak - -# Computer Science Journal of Moldova, vol.3, no.2(8), 1995 -# S. Goyette, Sherbrooke 2016/2017 - export Shpak2 "Univariate multimodal minimization problem Shpak2" diff --git a/src/PureJuMP/shpak3.jl b/src/PureJuMP/shpak3.jl index 2cde66497..34cabd355 100644 --- a/src/PureJuMP/shpak3.jl +++ b/src/PureJuMP/shpak3.jl @@ -1,13 +1,3 @@ -#third problem of -#Global optimization in one-dimensional case -#using analytically defined derivatives of -#objective function -# -#A.Shpak -# -#Computer Science Journal of Moldova, vol.3, no.2(8), 1995 -# S. Goyette, Sherbrooke 2016/2017 - export Shpak3 "Univariate multimodal minimization problem Shpak3" diff --git a/src/PureJuMP/shpak4.jl b/src/PureJuMP/shpak4.jl index 84498d85b..e3b55e2db 100644 --- a/src/PureJuMP/shpak4.jl +++ b/src/PureJuMP/shpak4.jl @@ -1,14 +1,3 @@ -# 4th problem of -# Global optimization in one-dimensional case -# using analytically defined derivatives of -# objective function -# -# A.Shpak -# -# Computer Science Journal of Moldova, vol.3, no.2(8), 1995 -# -# S. Goyette, Sherbrooke 2016/2017 - export Shpak4 "Univariate multimodal minimization problem Shpak4" diff --git a/src/PureJuMP/shpak5.jl b/src/PureJuMP/shpak5.jl index 367c89b0c..43e6b66be 100644 --- a/src/PureJuMP/shpak5.jl +++ b/src/PureJuMP/shpak5.jl @@ -1,14 +1,3 @@ -# fifth problem of -# Global optimization in one-dimensional case -# using analytically defined derivatives of -# objective function -# -# A.Shpak -# -# Computer Science Journal of Moldova, vol.3, no.2(8), 1995 -# -# S. Goyette, Sherbrooke 2016/2017 - export Shpak5 "Univariate multimodal minimization problem Shpak5" diff --git a/src/PureJuMP/shpak6.jl b/src/PureJuMP/shpak6.jl index f2ed7b8d4..5ae767e8f 100644 --- a/src/PureJuMP/shpak6.jl +++ b/src/PureJuMP/shpak6.jl @@ -1,14 +1,3 @@ -# 6th problem of -# Global optimization in one-dimensional case -# using analytically defined derivatives of -# objective function -# -# A.Shpak -# -#Computer Science Journal of Moldova, vol.3, no.2(8), 1995 -# -# S. Goyette, Sherbrooke 2016/2017 - export Shpak6 "Univariate multimodal minimization problem Shpak6" diff --git a/src/PureJuMP/sinquad.jl b/src/PureJuMP/sinquad.jl index cd18df0b8..6e4d3ea3a 100644 --- a/src/PureJuMP/sinquad.jl +++ b/src/PureJuMP/sinquad.jl @@ -1,21 +1,3 @@ -# Another function with nontrivial groups and -# repetitious elements. - -# Source: -# N. Gould, private communication. - -# classification OUR2-AY-V-0 - -# Problem 51 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export sinquad "Another function with nontrivial groups and repetitious elements in size 'n' " diff --git a/src/PureJuMP/sparsine.jl b/src/PureJuMP/sparsine.jl index bb884af30..e0cc31b2c 100644 --- a/src/PureJuMP/sparsine.jl +++ b/src/PureJuMP/sparsine.jl @@ -1,17 +1,3 @@ -# A sparse problem involving sine functions - -# classification OUR2-AN-V-0 - -# Problem 52 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export sparsine "A sparse problem involving sine functions in size 'n' " diff --git a/src/PureJuMP/sparsqur.jl b/src/PureJuMP/sparsqur.jl index 966c805b1..27a2a7b00 100644 --- a/src/PureJuMP/sparsqur.jl +++ b/src/PureJuMP/sparsqur.jl @@ -1,17 +1,3 @@ -# A sparse quartic problem - -# classification OUR2-AN-V-0 - -# Problem 53 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export sparsqur "A sparse quartic problem in size 'n' " diff --git a/src/PureJuMP/spmsrtls.jl b/src/PureJuMP/spmsrtls.jl index 57a96a868..4c716b45f 100644 --- a/src/PureJuMP/spmsrtls.jl +++ b/src/PureJuMP/spmsrtls.jl @@ -1,23 +1,3 @@ -# Liu and Nocedal tridiagonal matrix square root problem. - -# Source: problem 151 (p. 93) in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. - -# See also -# -# problem 54 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf - -# classification SUR2-AN-V-V export spmsrtls function spmsrtls(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/srosenbr.jl b/src/PureJuMP/srosenbr.jl index 7333bf636..0fca80c90 100644 --- a/src/PureJuMP/srosenbr.jl +++ b/src/PureJuMP/srosenbr.jl @@ -1,22 +1,3 @@ -# The separable extension of Rosenbrock's function. - -# Source: problem 21 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# classification SUR2-AN-V-0 - -# Problem 55 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export srosenbr "The separable extension of Rosenbrock's function 'n' " diff --git a/src/PureJuMP/steering.jl b/src/PureJuMP/steering.jl index fae18b753..3e760a707 100644 --- a/src/PureJuMP/steering.jl +++ b/src/PureJuMP/steering.jl @@ -1,9 +1,3 @@ -# Rocket Steering Problem -# Trapezoidal formulation -# COPS 2.0 - September 2000 -# COPS 3.0 - November 2002 -# COPS 3.1 - March 2004 - export steering function steering(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/structural.jl b/src/PureJuMP/structural.jl index 474f4ff3b..3bbb867e2 100644 --- a/src/PureJuMP/structural.jl +++ b/src/PureJuMP/structural.jl @@ -1,8 +1,3 @@ - -# JuMP model follows Laurent Lessard CS/ECE/ISyE 524, University of Wisconsin–Madison, -# Introduction to Optimization class. -# https://laurentlessard.com/teaching/524-intro-to-optimization/ - export structural function structural(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/tetra.jl b/src/PureJuMP/tetra.jl index d0411ae27..f36fc2903 100644 --- a/src/PureJuMP/tetra.jl +++ b/src/PureJuMP/tetra.jl @@ -1,11 +1,3 @@ -# Minimize the sum of the inverse weighted mean ratio of the elements in a fixed–boundary -# tetrahedral mesh by adjusting the locations of the free vertices. - -# This is problem 19 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) - include("../../data/tetra.jl") export tetra diff --git a/src/PureJuMP/threepk.jl b/src/PureJuMP/threepk.jl index c27df67d0..8d76a1ac6 100644 --- a/src/PureJuMP/threepk.jl +++ b/src/PureJuMP/threepk.jl @@ -1,73 +1,3 @@ -# -# Converted in Julia from https://github.com/mpf/Optimization-Test-Problems -# -#************************** -# SET UP THE INITIAL DATA * -#************************** -# Problem : -# ********* -# A problem arising in the estimation of structured O/D matrix -# Source: -# M. Bierlaire, private communication -# see also -# M. Bierlaire and Ph. L. Toint, -# MEUSE: an origin-destination estimator that exploits structure, -# Transportation Research B, 29, 1, 47--60, 1995. -# SIF input: Ph. Toint, Dec 1989, Corrected July 1993. -# classification SUR2-MN-30-0 -# Parameters -# Number of parking columns -# Number of centroids -# Gamma : general trust in the countings -# Objective for fill-up coefficients -# Inverse of the weights for fill-up coefficients -# Number of available countings -# Inverse of the weight on unknow cells -# Trip ends -# Some interesting values... -# Countings -# Inverse of the trusts in countings -# Coefficients pour les parkings -# O/D matrix -# A priori information, but not parkings -# Parking coefficients -# Unknown parking entries -# Countings -# Parking columns -# 1,0 -# 2,0 -# 3,0 -# 4,0 -# 5,0 -# 0,1 -# 2,1 -# 3,1 -# 4,1 -# 5,1 -# 0,2 -# 1,2 -# 3,2 -# 4,2 -# 5,2 -# Other columns -# 0,3 -# 1,3 -# 2,3 -# 4,3 -# 5,3 -# 0,4 -# 1,4 -# 2,4 -# 3,4 -# 5,4 -# 0,5 -# 1,5 -# 2,5 -# 3,5 -# 4,5 -# Variance minimization -# A priori information, but not parkings -# Parking coefficients export threepk function threepk(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/thurber.jl b/src/PureJuMP/thurber.jl index 2f28695c9..dfb5185b1 100644 --- a/src/PureJuMP/thurber.jl +++ b/src/PureJuMP/thurber.jl @@ -1,39 +1,3 @@ - -#= -https://www.itl.nist.gov/div898/strd/nls/data/LINKS/DATA/thurber.dat - -NIST/ITL StRD -Dataset Name: Thurber (Thurber.dat) - -File Format: ASCII - Starting Values (lines 41 to 47) - Certified Values (lines 41 to 52) - Data (lines 61 to 97) - -Procedure: Nonlinear Least Squares Regression - -Description: These data are the result of a NIST study involving - semiconductor electron mobility. The response - variable is a measure of electron mobility, and the - predictor variable is the natural log of the density. - -Reference: Thurber, R., NIST (197?). - Semiconductor electron mobility modeling. - -Data: 1 Response Variable (y = electron mobility) - 1 Predictor Variable (x = log[density]) - 37 Observations - Higher Level of Difficulty - Observed Data - -Model: Rational Class (cubic/cubic) - 7 Parameters (b1 to b7) - - y = (b1 + b2*x + b3*x**2 + b4*x**3) / - (1 + b5*x + b6*x**2 + b7*x**3) + e -=# -# T. Migot, Montreal, 2023. - export thurber function thurber(args...; kwargs...) diff --git a/src/PureJuMP/toint.jl b/src/PureJuMP/toint.jl index 00914da93..a9569bb44 100644 --- a/src/PureJuMP/toint.jl +++ b/src/PureJuMP/toint.jl @@ -1,14 +1,3 @@ -# Toint trigonometric function -# -# Problem 10 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization -# export toint function toint(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/tointgss.jl b/src/PureJuMP/tointgss.jl index b78fbfefa..59a2e045f 100644 --- a/src/PureJuMP/tointgss.jl +++ b/src/PureJuMP/tointgss.jl @@ -1,26 +1,3 @@ -# Toint's Gaussian problem. - -# This problem has N-2 trivial groups, all of which have 1 nonlinear -# element - -# Source: problem 21 in -# Ph.L. Toint, -# "Test problems for partially separable optimization and results -# for the routine PSPMIN", -# Report 83/4, Department of Mathematics, FUNDP (Namur, B), 1983. - -# classification OUR2-AY-V-0 - -# Problem 56 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export tointgss "Toint's Gaussian problem in size 'n' " diff --git a/src/PureJuMP/torsion.jl b/src/PureJuMP/torsion.jl index 6ea03cec2..3f4f1eb6b 100644 --- a/src/PureJuMP/torsion.jl +++ b/src/PureJuMP/torsion.jl @@ -1,8 +1,3 @@ -# Torsion problem -# Liz Dolan - Summer 2000 -# Version 2.0 - October 2000 -# COPS 3.1 - March 2004 - export torsion function torsion(args...; n = default_nvar, kwargs...) diff --git a/src/PureJuMP/tquartic.jl b/src/PureJuMP/tquartic.jl index cfe94a58b..aa66eaa8c 100644 --- a/src/PureJuMP/tquartic.jl +++ b/src/PureJuMP/tquartic.jl @@ -1,21 +1,3 @@ -# A quartic function with nontrivial groups and -# repetitious elements. - -# Source: -# Ph. Toint, private communication. - -# classification SUR2-AN-V-0# - -# Problem 57 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# J.-P. Dussault, Clermont-Ferrand 05/2016. - export tquartic "A quartic function with nontrivial groups and repetitious elements in size 'n' " diff --git a/src/PureJuMP/triangle.jl b/src/PureJuMP/triangle.jl index ab781cd61..64ae30e5b 100644 --- a/src/PureJuMP/triangle.jl +++ b/src/PureJuMP/triangle.jl @@ -1,10 +1,3 @@ -# Minimize the time taken for a robot arm to travel between two points. - -# This is problem 18 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) - include("../../data/triangle.jl") export triangle diff --git a/src/PureJuMP/tridia.jl b/src/PureJuMP/tridia.jl index f8cba1f61..b4c67ced8 100644 --- a/src/PureJuMP/tridia.jl +++ b/src/PureJuMP/tridia.jl @@ -1,18 +1,3 @@ -# Shanno's TRIDIA quadratic tridiagonal problem. -# -# Source: problem 8 in -# Ph.L. Toint, -# "Test problems for partially separable optimization and results -# for the routine PSPMIN", -# Report 83/4, Department of Mathematics, FUNDP (Namur, B), 1983. -# -# See also Buckley#40 (p.96) -# -# classification QUR2-AN-V-0 -# -# This problem is decomposed in n linear groups, the last n-1 of which -# are 2 x 2 and singular. - export tridia "Shanno's TRIDIA quadratic tridiagonal problem." diff --git a/src/PureJuMP/trig.jl b/src/PureJuMP/trig.jl index eb7a9e194..e8c61b4a9 100644 --- a/src/PureJuMP/trig.jl +++ b/src/PureJuMP/trig.jl @@ -1,14 +1,3 @@ -# Another trigonometric function -# -# Problem 9 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization -# export trig function trig(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/trigb.jl b/src/PureJuMP/trigb.jl index 37ce6a375..8c3ce856d 100644 --- a/src/PureJuMP/trigb.jl +++ b/src/PureJuMP/trigb.jl @@ -1,14 +1,3 @@ -## Banded trigonometric problem -# -# Problem 16 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization -# export trigb function trigb(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/vardim.jl b/src/PureJuMP/vardim.jl index c5dc0a461..985223e9d 100644 --- a/src/PureJuMP/vardim.jl +++ b/src/PureJuMP/vardim.jl @@ -1,17 +1,3 @@ -# Variable dimension problem. -# This problem is a sum of n+2 least-squares groups, the first n of -# which have only a linear element. -# It Hessian matrix is dense. -# -# Source: problem 25 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# -# See also Buckley#72 (p.98). -# -# classification SUR2-AN-V-0 - export vardim "Variable dimension problem." diff --git a/src/PureJuMP/variational.jl b/src/PureJuMP/variational.jl index 846a38d8c..5c8d3a1a8 100644 --- a/src/PureJuMP/variational.jl +++ b/src/PureJuMP/variational.jl @@ -1,13 +1,3 @@ -# Discretization of a variational problem -# -# Problem 15 in -# L. Luksan, C. Matonoha and J. Vlcek -# Sparse Test Problems for Unconstrained Optimization, -# Technical Report 1064, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization export variational function variational(; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/vibrbeam.jl b/src/PureJuMP/vibrbeam.jl index 8d813277a..dbcfba196 100644 --- a/src/PureJuMP/vibrbeam.jl +++ b/src/PureJuMP/vibrbeam.jl @@ -1,29 +1,3 @@ -# https://bitbucket.org/optrove/sif/src/master/VIBRBEAM.SIF -# A nonlinear least-squares problem arising from laser-Doppler -# measurements of a vibrating beam. The data correspond to a simulated -# experiment where two laser-Doppler velocimeters take measurements -# at random points along the centreline of the beam. These measurements -# consist of a position (x), an incident angle (p) and the magnitude -# of the velocity along the line of sight (v). -# The problem is then to fit - -# 2 3 2 3 -# v = (c + c x + c x + c x ) cos[ d + d x + d x + d x - p ] -# 0 1 2 3 0 1 2 3 -# <---- magnitude -----> <------ phase -----> - -# in the least-squares sense. - -# Source: -# a modification of an exercize for L. Watson course on LANCELOT in -# the Spring 1993. Compared to the original proposal, the unnecessary -# elements were removed as well as an unnecessary constraint on the phase. - -# SIF input: Ph. L. Toint, May 1993, based on a proposal by -# D. E. Montgomery, Virginia Tech., April 1993. - -# classification SUR2-MN-8-0 - export vibrbeam function vibrbeam(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/watson.jl b/src/PureJuMP/watson.jl index 4dcca0612..ede1d343e 100644 --- a/src/PureJuMP/watson.jl +++ b/src/PureJuMP/watson.jl @@ -1,19 +1,3 @@ -# -# Watson problem in varaible dimension ( 2 <= n <= 31 ). -# This function is a nonlinear least squares with 31 groups. -# -# Source: problem 20 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. -# Also problem 128 (p. 100) in -# A.R. Buckley, -# "Test functions for unconstrained minimization", -# TR 1989CS-3, Mathematics, statistics and computing centre, -# Dalhousie University, Halifax (CDN), 1989. -# -# SUR2-AN-V-0 - export watson function watson(args...; n::Int = default_nvar, kwargs...) diff --git a/src/PureJuMP/woods.jl b/src/PureJuMP/woods.jl index 253de4349..e88e0bb23 100644 --- a/src/PureJuMP/woods.jl +++ b/src/PureJuMP/woods.jl @@ -1,40 +1,3 @@ -# The extended Woods problem. - -# This problem is a sum of n/4 sets of 6 terms, each of which is -# assigned its own group. For a given set i, the groups are -# A(i), B(i), C(i), D(i), E(i) and F(i). Groups A(i) and C(i) contain 1 -# nonlinear element each, denoted Y(i) and Z(i). - -# The problem dimension is defined from the number of these sets. -# The number of problem variables is then 4 times larger. - -# This version uses a slightly unorthodox expression of Woods -# function as a sum of squares (see Buckley) - -# Source: problem 14 in -# J.J. More', B.S. Garbow and K.E. Hillstrom, -# "Testing Unconstrained Optimization Software", -# ACM Transactions on Mathematical Software, vol. 7(1), pp. 17-41, 1981. - -# See also Toint#27, Buckley#17 (p. 101), Conn, Gould, Toint#7 - -# classification SUR2-AN-V-0 - -# See also -# -# problem 58 in -# L. Luksan, C. Matonoha and J. Vlcek -# Modified CUTE problems for sparse unconstrained optimization, -# Technical Report 1081, -# Institute of Computer Science, -# Academy of Science of the Czech Republic -# -# http://www.cs.cas.cz/matonoha/download/V1081.pdf -# -# classification SUR2-AN-V-0 -# -# J.-P. Dussault, Clermont-Ferrand, 05/2016. - export woods "The extended Woods problem `n` " diff --git a/src/PureJuMP/zangwil3.jl b/src/PureJuMP/zangwil3.jl index 7f04cdc8d..dc8a627c6 100644 --- a/src/PureJuMP/zangwil3.jl +++ b/src/PureJuMP/zangwil3.jl @@ -1,15 +1,3 @@ -# Source: problem 1 in -# P.T. Boggs and J.W. Tolle, -# "A strategy for global convergence in a sequential -# quadratic programming algorithm", -# SINUM 26(3), pp. 600-623, 1989. -# -# Problem from CUTE: https://github.com/mpf/Optimization-Test-Problems/blob/master/cute/zangwil3.mod -# -# classification NLR2-AN-3-3 -# -# A. Cebola, Paraná 10/2016. - export zangwil3 "Zangwil3 Model" diff --git a/src/utils.jl b/src/utils.jl new file mode 100644 index 000000000..19faebc30 --- /dev/null +++ b/src/utils.jl @@ -0,0 +1,160 @@ +""" + LIB_REFERENCES + +Canonical BibTeX entries for the external test-set collections referenced in the +`:lib` field of `OptimizationProblems.meta`. Keys are the collection names used +in `:lib` (e.g. `"CUTEst"`, `"HS"`). + +See also [`export_bibtex`](@ref). +""" +const LIB_REFERENCES = Dict( + "CUTEst" => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + "HS" => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} +""", + "HS2" => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987}, + doi = {10.1007/978-3-642-61582-5} +} +""", + "COPS" => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{\'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} +} +""", + "MGH" => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} +""", + "AMPGO" => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + "Luksan" => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic} +} +""", + "NIST" => raw""" +@misc{NIST_StRD, + author = {{Statistical Engineering Division, NIST}}, + title = {Statistical Reference Datasets for Nonlinear Least Squares Regression}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {2000} +} +""", + "LuksanSparse" => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} +} +""", +) + +export LIB_REFERENCES + +""" + export_bibtex(filename = "OptimizationProblems.bib"; include_lib_refs = true) + +Write all non-empty `:reference` BibTeX entries from `OptimizationProblems.meta` +to `filename`. Entries are deduplicated by their BibTeX key, so problems sharing +the same reference only appear once. + +If `include_lib_refs` is `true` (the default), one BibTeX entry per test-set +collection referenced in the `:lib` field is also appended. +""" +function export_bibtex(filename = "OptimizationProblems.bib"; include_lib_refs::Bool = true) + seen_keys = Set{String}() + count = 0 + open(filename, "w") do io + # Per-problem references (from :reference field) + for row in eachrow(OptimizationProblems.meta) + ref = strip(row[:reference]) + isempty(ref) && continue + # Extract the BibTeX citation key (first token after @type{) + m = match(r"@\w+\s*[{(]\s*([^,\s]+)\s*,"s, ref) + key = isnothing(m) ? ref : m.captures[1] + key in seen_keys && continue + push!(seen_keys, key) + println(io, ref) + println(io) + count += 1 + end + # One BibTeX entry per test-set collection that appears in any :lib value. + if include_lib_refs + collections = Set{String}() + for row in eachrow(OptimizationProblems.meta) + for entry in split(row[:lib], ",") + coll = strip(split(strip(entry), ":")[1]) + isempty(coll) || push!(collections, coll) + end + end + for coll in sort(collect(collections)) + haskey(LIB_REFERENCES, coll) || continue + ref = strip(LIB_REFERENCES[coll]) + m = match(r"@\w+\s*[{(]\s*([^,\s]+)\s*,"s, ref) + key = isnothing(m) ? ref : m.captures[1] + key in seen_keys && continue + push!(seen_keys, key) + println(io, ref) + println(io) + count += 1 + end + end + end + @info "Exported $count BibTeX entries to $filename" +end diff --git a/test/runtests.jl b/test/runtests.jl index 22ce11bfe..89d41e231 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -111,5 +111,6 @@ end pmap(test_one_problem, list_problems) include("test-scalable.jl") +include("test-meta-fields.jl") rmprocs() diff --git a/test/test-meta-fields.jl b/test/test-meta-fields.jl new file mode 100644 index 000000000..d843e5770 --- /dev/null +++ b/test/test-meta-fields.jl @@ -0,0 +1,78 @@ +""" + is_valid_url(s) -> Bool + +Return `true` if every comma-separated part of `s` is a syntactically valid +HTTP or HTTPS URL. A single URL (no commas) is the common case. +No network request is made; only the structure of each part is checked. +""" +function is_valid_url(s::String) + parts = strip.(split(s, ",")) + return all(p -> match(r"^https?://[^\s/$.?#][^\s]*$"i, p) !== nothing, parts) +end + +""" + is_valid_bibtex(s) -> Bool + +Return `true` if `s` looks like a structurally valid BibTeX entry, i.e.: +- Starts with `@entrytype{key,` (or parentheses variant). +- Has balanced curly braces. +""" +function is_valid_bibtex(s::String) + s = strip(s) + isempty(s) && return false + # Must match @entrytype{key, or @entrytype(key, + match(r"^@\w+\s*[{(]\s*[^,\s]+\s*,"s, s) === nothing && return false + # Braces must be balanced + depth = 0 + for c in s + if c == '{' + depth += 1 + elseif c == '}' + depth -= 1 + depth < 0 && return false + end + end + return depth == 0 +end + +@testset "Meta fields: :url format" begin + invalid = [ + (row[:name], row[:url]) for row in eachrow(OptimizationProblems.meta) if + !isempty(row[:url]) && !is_valid_url(row[:url]) + ] + for (name, url) in invalid + @error "Problem $name has an invalid :url format: $url" + end + @test isempty(invalid) +end + +@testset "Meta fields: :reference BibTeX structure" begin + invalid = [ + row[:name] for row in eachrow(OptimizationProblems.meta) if + !isempty(strip(row[:reference])) && !is_valid_bibtex(row[:reference]) + ] + for name in invalid + @error "Problem $name has an invalid BibTeX entry in :reference" + end + @test isempty(invalid) +end + +@testset "Meta fields: :lib format" begin + invalid = Tuple{String, String, String}[] + for row in eachrow(OptimizationProblems.meta) + isempty(row[:lib]) && continue + for entry in split(row[:lib], ",") + e = strip(entry) + m = match(r"^(\w+):\S+$", e) + if m === nothing + push!(invalid, (row[:name], e, "bad format (expected 'Collection:ID')")) + elseif !haskey(OptimizationProblems.LIB_REFERENCES, m.captures[1]) + push!(invalid, (row[:name], e, "unknown collection '$(m.captures[1])'")) + end + end + end + for (name, entry, reason) in invalid + @error "Problem $name has invalid :lib entry '$entry': $reason" + end + @test isempty(invalid) +end diff --git a/test/utils.jl b/test/utils.jl index 2d4300a46..765d94f7f 100644 --- a/test/utils.jl +++ b/test/utils.jl @@ -245,3 +245,36 @@ function test_one_problem(prob::Symbol) @info "Test compatibility between PureJuMP and ADNLPProblems" test_compatibility(prob, nlp_jump, nlp_ad, ndef) end + +""" + is_valid_url(s) -> Bool + +Return `true` if `s` is a syntactically valid HTTP or HTTPS URL. +No network request is made; only the string structure is checked. +""" +function is_valid_url(s::String) + return match(r"^https?://[^\s/$.?#][^\s]*$"i, s) !== nothing +end + +""" + is_valid_bibtex(s) -> Bool + +Return `true` if `s` looks like a structurally valid BibTeX entry, i.e.: +- Starts with `@entrytype{key,` (or parentheses variant). +- Has balanced curly braces. +""" +function is_valid_bibtex(s::String) + s = strip(s) + isempty(s) && return false + match(r"^@\w+\s*[{(]\s*[^,\s]+\s*,"s, s) === nothing && return false + depth = 0 + for c in s + if c == '{' + depth += 1 + elseif c == '}' + depth -= 1 + depth < 0 && return false + end + end + return depth == 0 +end From a95ade6447c871267f525c5bc91adec744c78e0f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 15 May 2026 12:35:20 -0400 Subject: [PATCH 13/21] :robot: Format .jl files (#418) Co-authored-by: tmigot <tmigot@users.noreply.github.com> --- src/Meta/BOX2.jl | 1 - src/Meta/auglag.jl | 1 - src/Meta/bdqrtic.jl | 1 - src/Meta/bearing.jl | 1 - src/Meta/booth.jl | 1 - src/Meta/boundary.jl | 1 - src/Meta/browngen1.jl | 1 - src/Meta/browngen2.jl | 1 - src/Meta/broyden7d.jl | 1 - src/Meta/broydn7d.jl | 1 - src/Meta/bt1.jl | 1 - src/Meta/camshape.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/cliff.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/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/dqrtic.jl | 1 - src/Meta/edensch.jl | 1 - src/Meta/eg2.jl | 1 - src/Meta/elec.jl | 1 - src/Meta/engval1.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/gasoil.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/hs1.jl | 19 +- src/Meta/hs10.jl | 19 +- src/Meta/hs100.jl | 19 +- src/Meta/hs101.jl | 19 +- src/Meta/hs102.jl | 19 +- src/Meta/hs103.jl | 19 +- src/Meta/hs104.jl | 19 +- src/Meta/hs105.jl | 19 +- src/Meta/hs106.jl | 19 +- src/Meta/hs107.jl | 19 +- src/Meta/hs108.jl | 19 +- src/Meta/hs109.jl | 29 ++- src/Meta/hs11.jl | 19 +- src/Meta/hs110.jl | 19 +- src/Meta/hs111.jl | 19 +- src/Meta/hs112.jl | 29 ++- src/Meta/hs113.jl | 29 ++- src/Meta/hs114.jl | 19 +- src/Meta/hs116.jl | 19 +- src/Meta/hs117.jl | 19 +- src/Meta/hs118.jl | 19 +- src/Meta/hs119.jl | 27 ++- src/Meta/hs12.jl | 19 +- src/Meta/hs13.jl | 19 +- src/Meta/hs14.jl | 19 +- src/Meta/hs15.jl | 19 +- src/Meta/hs16.jl | 19 +- src/Meta/hs17.jl | 19 +- src/Meta/hs18.jl | 19 +- src/Meta/hs19.jl | 19 +- src/Meta/hs2.jl | 19 +- src/Meta/hs20.jl | 19 +- src/Meta/hs201.jl | 1 - src/Meta/hs21.jl | 19 +- src/Meta/hs211.jl | 1 - src/Meta/hs219.jl | 19 +- src/Meta/hs22.jl | 19 +- 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 | 19 +- 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 | 19 +- 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 | 19 +- 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 | 19 +- 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 | 19 +- src/Meta/hs28.jl | 19 +- src/Meta/hs29.jl | 19 +- src/Meta/hs3.jl | 19 +- src/Meta/hs30.jl | 19 +- src/Meta/hs31.jl | 19 +- src/Meta/hs316.jl | 15 +- src/Meta/hs317.jl | 17 +- src/Meta/hs318.jl | 17 +- src/Meta/hs319.jl | 17 +- src/Meta/hs32.jl | 19 +- src/Meta/hs320.jl | 17 +- src/Meta/hs321.jl | 17 +- src/Meta/hs322.jl | 17 +- src/Meta/hs33.jl | 19 +- src/Meta/hs34.jl | 19 +- src/Meta/hs35.jl | 19 +- src/Meta/hs36.jl | 19 +- src/Meta/hs37.jl | 19 +- src/Meta/hs378.jl | 17 +- src/Meta/hs38.jl | 19 +- src/Meta/hs39.jl | 19 +- src/Meta/hs4.jl | 19 +- src/Meta/hs40.jl | 19 +- src/Meta/hs41.jl | 19 +- src/Meta/hs42.jl | 19 +- src/Meta/hs43.jl | 19 +- src/Meta/hs44.jl | 19 +- src/Meta/hs45.jl | 19 +- src/Meta/hs46.jl | 19 +- src/Meta/hs47.jl | 19 +- src/Meta/hs48.jl | 19 +- src/Meta/hs49.jl | 19 +- src/Meta/hs5.jl | 19 +- src/Meta/hs50.jl | 19 +- src/Meta/hs51.jl | 19 +- src/Meta/hs52.jl | 19 +- src/Meta/hs53.jl | 19 +- src/Meta/hs54.jl | 21 ++- src/Meta/hs55.jl | 19 +- src/Meta/hs56.jl | 12 +- src/Meta/hs57.jl | 1 - src/Meta/hs59.jl | 19 +- src/Meta/hs6.jl | 1 - src/Meta/hs60.jl | 14 +- src/Meta/hs61.jl | 1 - src/Meta/hs62.jl | 1 - src/Meta/hs63.jl | 1 - src/Meta/hs64.jl | 19 +- src/Meta/hs65.jl | 19 +- src/Meta/hs66.jl | 19 +- src/Meta/hs68.jl | 27 ++- src/Meta/hs69.jl | 27 ++- src/Meta/hs7.jl | 19 +- src/Meta/hs70.jl | 19 +- src/Meta/hs71.jl | 19 +- src/Meta/hs72.jl | 19 +- src/Meta/hs73.jl | 19 +- src/Meta/hs74.jl | 19 +- src/Meta/hs75.jl | 19 +- src/Meta/hs76.jl | 19 +- src/Meta/hs77.jl | 19 +- src/Meta/hs78.jl | 19 +- src/Meta/hs79.jl | 19 +- src/Meta/hs8.jl | 19 +- src/Meta/hs80.jl | 19 +- src/Meta/hs81.jl | 29 ++- src/Meta/hs83.jl | 19 +- src/Meta/hs84.jl | 19 +- src/Meta/hs86.jl | 19 +- src/Meta/hs87.jl | 31 ++-- src/Meta/hs9.jl | 19 +- src/Meta/hs93.jl | 19 +- src/Meta/hs95.jl | 19 +- src/Meta/hs96.jl | 19 +- src/Meta/hs97.jl | 19 +- src/Meta/hs98.jl | 19 +- src/Meta/hs99.jl | 19 +- src/Meta/liarwhd.jl | 1 - src/Meta/marine.jl | 1 - src/Meta/methanol.jl | 1 - src/Meta/minsurf.jl | 1 - src/Meta/nazareth.jl | 1 - src/Meta/ncb20.jl | 1 - src/Meta/ncb20b.jl | 1 - src/Meta/noncvxu2.jl | 1 - src/Meta/noncvxun.jl | 1 - src/Meta/nondia.jl | 1 - src/Meta/nondquar.jl | 1 - src/Meta/penalty3.jl | 1 - src/Meta/polygon.jl | 1 - src/Meta/polygon1.jl | 1 - src/Meta/quartc.jl | 1 - src/Meta/robotarm.jl | 1 - src/Meta/rocket.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/tetra.jl | 1 - src/Meta/tointgss.jl | 1 - src/Meta/tquartic.jl | 1 - src/Meta/triangle.jl | 1 - src/Meta/variational.jl | 1 - src/utils.jl | 320 +++++++++++++++++----------------- test/test-defined-problems.jl | 4 +- test/test-meta-fields.jl | 156 ++++++++--------- 252 files changed, 1271 insertions(+), 1522 deletions(-) diff --git a/src/Meta/BOX2.jl b/src/Meta/BOX2.jl index 749e32bbd..1af16ebfc 100644 --- a/src/Meta/BOX2.jl +++ b/src/Meta/BOX2.jl @@ -42,7 +42,6 @@ SIF input: Ph. Toint, Dec 1989. address = {Halifax, Canada} } """, - :lib => "CUTEst:BOX2", ) get_BOX2_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/auglag.jl b/src/Meta/auglag.jl index 312819c46..a8db10657 100644 --- a/src/Meta/auglag.jl +++ b/src/Meta/auglag.jl @@ -44,7 +44,6 @@ https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unco url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} } """, - :lib => "LuksanSparse:11", ) diff --git a/src/Meta/bdqrtic.jl b/src/Meta/bdqrtic.jl index b33e2cbf0..840876d56 100644 --- a/src/Meta/bdqrtic.jl +++ b/src/Meta/bdqrtic.jl @@ -55,7 +55,6 @@ D. Orban, Montreal, 08/2015. year = {1988} } """, - :lib => "CUTEst:BDQRTIC, Luksan:2", ) get_bdqrtic_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/bearing.jl b/src/Meta/bearing.jl index 4b174bee7..5eba9b610 100644 --- a/src/Meta/bearing.jl +++ b/src/Meta/bearing.jl @@ -46,7 +46,6 @@ COPS 3.1 - March 2004 doi = {10.2172/834714} } """, - :lib => "COPS:16", ) get_bearing_nvar(; diff --git a/src/Meta/booth.jl b/src/Meta/booth.jl index a6babc9f9..4a477f6f1 100644 --- a/src/Meta/booth.jl +++ b/src/Meta/booth.jl @@ -44,7 +44,6 @@ SIF input: Ph. Toint, Dec 1989. address = {Halifax, Canada} } """, - :lib => "CUTEst:BOOTH", ) get_booth_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/boundary.jl b/src/Meta/boundary.jl index db6bd6916..c684d4244 100644 --- a/src/Meta/boundary.jl +++ b/src/Meta/boundary.jl @@ -40,7 +40,6 @@ Academy of Science of the Czech Republic url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} } """, - :lib => "LuksanSparse:14", ) diff --git a/src/Meta/browngen1.jl b/src/Meta/browngen1.jl index 2005d80f2..4e68a0808 100644 --- a/src/Meta/browngen1.jl +++ b/src/Meta/browngen1.jl @@ -44,7 +44,6 @@ https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unco url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} } """, - :lib => "LuksanSparse:12", ) diff --git a/src/Meta/browngen2.jl b/src/Meta/browngen2.jl index 4e458a1db..a1b3d86c9 100644 --- a/src/Meta/browngen2.jl +++ b/src/Meta/browngen2.jl @@ -44,7 +44,6 @@ https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unco url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} } """, - :lib => "LuksanSparse:13", ) diff --git a/src/Meta/broyden7d.jl b/src/Meta/broyden7d.jl index 0200c8e4f..b741ce1e2 100644 --- a/src/Meta/broyden7d.jl +++ b/src/Meta/broyden7d.jl @@ -44,7 +44,6 @@ https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unco url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} } """, - :lib => "LuksanSparse:7", ) diff --git a/src/Meta/broydn7d.jl b/src/Meta/broydn7d.jl index 71c1e8858..c67f92c6b 100644 --- a/src/Meta/broydn7d.jl +++ b/src/Meta/broydn7d.jl @@ -77,7 +77,6 @@ D. Orban, Montreal, 08/2015. doi = {10.1090/s0025-5718-1978-0483452-7} } """, - :lib => "CUTEst:BROYDN7D, Luksan:3", ) get_broydn7d_nvar(; n::Integer = default_nvar, kwargs...) = 2 * max(1, div(n, 2)) diff --git a/src/Meta/bt1.jl b/src/Meta/bt1.jl index d9b2920eb..a08026bf8 100644 --- a/src/Meta/bt1.jl +++ b/src/Meta/bt1.jl @@ -50,7 +50,6 @@ SIF input: Ph. Toint, June 1993. address = {Halifax, Canada} } """, - :lib => "CUTEst:BT1", ) get_bt1_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/camshape.jl b/src/Meta/camshape.jl index df112acf7..ba2c0c923 100644 --- a/src/Meta/camshape.jl +++ b/src/Meta/camshape.jl @@ -42,7 +42,6 @@ SIF input: Nick Gould, November 2000 doi = {10.2172/834714} } """, - :lib => "CUTEst:CAMSHAPE, COPS:3", ) get_camshape_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/chain.jl b/src/Meta/chain.jl index e6f6554f1..2f8ecdeef 100644 --- a/src/Meta/chain.jl +++ b/src/Meta/chain.jl @@ -44,7 +44,6 @@ SIF input: Nick Gould, November 2000 doi = {10.2172/834714} } """, - :lib => "CUTEst:CHAIN, COPS:4", ) get_chain_nvar(; n::Integer = default_nvar, kwargs...) = 4 * (max(2, div(n - 4, 4)) + 1) diff --git a/src/Meta/chainwoo.jl b/src/Meta/chainwoo.jl index f92c3f00c..aca87a0e4 100644 --- a/src/Meta/chainwoo.jl +++ b/src/Meta/chainwoo.jl @@ -63,7 +63,6 @@ SIF input: Nick Gould and Ph. Toint, Dec 1995. doi = {10.1090/s0025-5718-1988-0929544-3} } """, - :lib => "CUTEst:CHAINWOO, Luksan:5, LuksanSparse:2", ) get_chainwoo_nvar(; n::Integer = default_nvar, kwargs...) = 4 * max(1, div(n, 4)) diff --git a/src/Meta/channel.jl b/src/Meta/channel.jl index 8b77ab2f2..ed4ef1b31 100644 --- a/src/Meta/channel.jl +++ b/src/Meta/channel.jl @@ -48,7 +48,6 @@ SIF input: Nick Gould, November 2000 doi = {10.2172/834714} } """, - :lib => "CUTEst:CHANNEL, COPS:7", ) get_channel_nvar(; n::Integer = default_nvar, kwargs...) = 8 * max(2, div(n, 8)) diff --git a/src/Meta/chnrosnb_mod.jl b/src/Meta/chnrosnb_mod.jl index 78a73a5cd..478f39da0 100644 --- a/src/Meta/chnrosnb_mod.jl +++ b/src/Meta/chnrosnb_mod.jl @@ -48,7 +48,6 @@ chnrosnb_mod_meta = Dict( url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "Luksan:27", ) get_chnrosnb_mod_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/cliff.jl b/src/Meta/cliff.jl index 79e9ead69..cae9bca23 100644 --- a/src/Meta/cliff.jl +++ b/src/Meta/cliff.jl @@ -42,7 +42,6 @@ SIF input: Ph. Toint, Dec 1989. address = {Halifax, Canada} } """, - :lib => "CUTEst:CLIFF", ) get_cliff_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/cosine.jl b/src/Meta/cosine.jl index b8f733e7e..c528185a7 100644 --- a/src/Meta/cosine.jl +++ b/src/Meta/cosine.jl @@ -53,7 +53,6 @@ SIF input: N. Gould, Jan 1996 url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:COSINE, Luksan:6", ) get_cosine_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/cragglvy.jl b/src/Meta/cragglvy.jl index 35533b4b5..aa2dff84f 100644 --- a/src/Meta/cragglvy.jl +++ b/src/Meta/cragglvy.jl @@ -56,7 +56,6 @@ D. Orban, Montreal, 08/2015. year = {1983} } """, - :lib => "CUTEst:CRAGGLVY, Luksan:7", ) get_cragglvy_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/cragglvy2.jl b/src/Meta/cragglvy2.jl index e57ad970d..e046f6d34 100644 --- a/src/Meta/cragglvy2.jl +++ b/src/Meta/cragglvy2.jl @@ -53,7 +53,6 @@ https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unco url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} } """, - :lib => "LuksanSparse:4", ) diff --git a/src/Meta/curly.jl b/src/Meta/curly.jl index ccfdb574c..dd77c1b1c 100644 --- a/src/Meta/curly.jl +++ b/src/Meta/curly.jl @@ -55,7 +55,6 @@ D. Orban, Montreal, 08/2015. url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "", ) get_curly_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/curly10.jl b/src/Meta/curly10.jl index a20658661..e60fdbafd 100644 --- a/src/Meta/curly10.jl +++ b/src/Meta/curly10.jl @@ -62,7 +62,6 @@ SIF input: Nick Gould, September 1997. url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:CURLY10", ) get_curly10_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/curly20.jl b/src/Meta/curly20.jl index 1309999d3..a99346673 100644 --- a/src/Meta/curly20.jl +++ b/src/Meta/curly20.jl @@ -62,7 +62,6 @@ SIF input: Nick Gould, September 1997. url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:CURLY20", ) get_curly20_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/curly30.jl b/src/Meta/curly30.jl index 3402bc87c..2312b7b0e 100644 --- a/src/Meta/curly30.jl +++ b/src/Meta/curly30.jl @@ -62,7 +62,6 @@ SIF input: Nick Gould, September 1997. url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:CURLY30", ) get_curly30_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/dixmaane.jl b/src/Meta/dixmaane.jl index 1a69ae670..14156cfec 100644 --- a/src/Meta/dixmaane.jl +++ b/src/Meta/dixmaane.jl @@ -49,7 +49,6 @@ Academy of Science of the Czech Republic year = {1988} } """, - :lib => "Luksan:11", ) get_dixmaane_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) diff --git a/src/Meta/dixmaanf.jl b/src/Meta/dixmaanf.jl index 70d23cf6f..9c3743f11 100644 --- a/src/Meta/dixmaanf.jl +++ b/src/Meta/dixmaanf.jl @@ -50,7 +50,6 @@ SIF input: Ph. Toint, Dec 1989. year = {1988} } """, - :lib => "CUTEst:DIXMAANF,Luksan:12", ) get_dixmaanf_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) diff --git a/src/Meta/dixmaang.jl b/src/Meta/dixmaang.jl index 09af8b768..92fa1c82d 100644 --- a/src/Meta/dixmaang.jl +++ b/src/Meta/dixmaang.jl @@ -50,7 +50,6 @@ SIF input: Ph. Toint, Dec 1989. year = {1988} } """, - :lib => "CUTEst:DIXMAANG,Luksan:13", ) get_dixmaang_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) diff --git a/src/Meta/dixmaanh.jl b/src/Meta/dixmaanh.jl index 693835b3b..8b95c8157 100644 --- a/src/Meta/dixmaanh.jl +++ b/src/Meta/dixmaanh.jl @@ -50,7 +50,6 @@ SIF input: Ph. Toint, Dec 1989. year = {1988} } """, - :lib => "CUTEst:DIXMAANH,Luksan:14", ) get_dixmaanh_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) diff --git a/src/Meta/dixmaani.jl b/src/Meta/dixmaani.jl index e636926c1..dcd6da66c 100644 --- a/src/Meta/dixmaani.jl +++ b/src/Meta/dixmaani.jl @@ -49,7 +49,6 @@ Academy of Science of the Czech Republic year = {1988} } """, - :lib => "Luksan:15", ) get_dixmaani_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) diff --git a/src/Meta/dixmaanj.jl b/src/Meta/dixmaanj.jl index 478664d56..9eb0a1492 100644 --- a/src/Meta/dixmaanj.jl +++ b/src/Meta/dixmaanj.jl @@ -50,7 +50,6 @@ SIF input: Ph. Toint, Dec 1989. year = {1988} } """, - :lib => "CUTEst:DIXMAANJ,Luksan:16", ) get_dixmaanj_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) diff --git a/src/Meta/dixmaank.jl b/src/Meta/dixmaank.jl index 5006383b3..e40c59584 100644 --- a/src/Meta/dixmaank.jl +++ b/src/Meta/dixmaank.jl @@ -50,7 +50,6 @@ SIF input: Ph. Toint, Dec 1989. year = {1988} } """, - :lib => "CUTEst:DIXMAANK,Luksan:17", ) get_dixmaank_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) diff --git a/src/Meta/dixmaanl.jl b/src/Meta/dixmaanl.jl index 12ddbe73c..783b1c60e 100644 --- a/src/Meta/dixmaanl.jl +++ b/src/Meta/dixmaanl.jl @@ -50,7 +50,6 @@ SIF input: Ph. Toint, Dec 1989. year = {1988} } """, - :lib => "CUTEst:DIXMAANL,Luksan:18", ) get_dixmaanl_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) diff --git a/src/Meta/dixmaanm.jl b/src/Meta/dixmaanm.jl index 370552570..dc738f5cb 100644 --- a/src/Meta/dixmaanm.jl +++ b/src/Meta/dixmaanm.jl @@ -47,7 +47,6 @@ Academy of Science of the Czech Republic year = {1988} } """, - :lib => "Luksan:19", ) get_dixmaanm_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) diff --git a/src/Meta/dixmaann.jl b/src/Meta/dixmaann.jl index e3e14373c..be8f01234 100644 --- a/src/Meta/dixmaann.jl +++ b/src/Meta/dixmaann.jl @@ -50,7 +50,6 @@ SIF input: Ph. Toint, Dec 1989. year = {1988} } """, - :lib => "CUTEst:DIXMAANN,Luksan:20", ) get_dixmaann_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) diff --git a/src/Meta/dixmaano.jl b/src/Meta/dixmaano.jl index 7cc935535..267886a2e 100644 --- a/src/Meta/dixmaano.jl +++ b/src/Meta/dixmaano.jl @@ -50,7 +50,6 @@ SIF input: Ph. Toint, Dec 1989. year = {1988} } """, - :lib => "CUTEst:DIXMAANO,Luksan:21", ) get_dixmaano_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) diff --git a/src/Meta/dixmaanp.jl b/src/Meta/dixmaanp.jl index b984451d9..a3c2294ea 100644 --- a/src/Meta/dixmaanp.jl +++ b/src/Meta/dixmaanp.jl @@ -50,7 +50,6 @@ SIF input: Ph. Toint, Dec 1989. year = {1988} } """, - :lib => "CUTEst:DIXMAANP,Luksan:22", ) get_dixmaanp_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(1, div(n, 3)) diff --git a/src/Meta/dixon3dq.jl b/src/Meta/dixon3dq.jl index caf490712..db2343ea5 100644 --- a/src/Meta/dixon3dq.jl +++ b/src/Meta/dixon3dq.jl @@ -42,7 +42,6 @@ SIF input: Ph. Toint, Dec 1989. address = {Halifax, Canada} } """, - :lib => "CUTEst:DIXON3DQ", ) get_dixon3dq_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/dqrtic.jl b/src/Meta/dqrtic.jl index 26a57bd77..b8f41e40a 100644 --- a/src/Meta/dqrtic.jl +++ b/src/Meta/dqrtic.jl @@ -53,7 +53,6 @@ D. Orban, Montreal, 08/2015. year = {1989} } """, - :lib => "CUTEst:DQRTIC, Luksan:23", ) get_dqrtic_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/edensch.jl b/src/Meta/edensch.jl index 46e54f130..f57d2491b 100644 --- a/src/Meta/edensch.jl +++ b/src/Meta/edensch.jl @@ -57,7 +57,6 @@ D. Orban, Montreal, 08/2015. doi = {10.1137/0725067} } """, - :lib => "CUTEst:EDENSCH, Luksan:24", ) get_edensch_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/eg2.jl b/src/Meta/eg2.jl index ebe90bd2f..91a034cf9 100644 --- a/src/Meta/eg2.jl +++ b/src/Meta/eg2.jl @@ -59,7 +59,6 @@ D. Orban, Montreal, 08/2015. doi = {10.1007/978-3-662-12211-2} } """, - :lib => "CUTEst:EG2, Luksan:25", ) get_eg2_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/elec.jl b/src/Meta/elec.jl index 68829f2fe..6f1227226 100644 --- a/src/Meta/elec.jl +++ b/src/Meta/elec.jl @@ -42,7 +42,6 @@ SIF input: Nick Gould, November 2000 doi = {10.2172/834714} } """, - :lib => "CUTEst:ELEC, COPS:2", ) get_elec_nvar(; n::Integer = default_nvar, kwargs...) = 3 * max(2, div(n, 3)) diff --git a/src/Meta/engval1.jl b/src/Meta/engval1.jl index c0b53c17b..237fe1898 100644 --- a/src/Meta/engval1.jl +++ b/src/Meta/engval1.jl @@ -58,7 +58,6 @@ D. Orban, Montreal, 08/2015. year = {1983} } """, - :lib => "CUTEst:ENGVAL1, Luksan:26", ) get_engval1_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/errinros_mod.jl b/src/Meta/errinros_mod.jl index a1851b592..df861c8a3 100644 --- a/src/Meta/errinros_mod.jl +++ b/src/Meta/errinros_mod.jl @@ -48,7 +48,6 @@ J,-P, Dussault, Rennes 09/2015. url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "Luksan:28", ) get_errinros_mod_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/extrosnb.jl b/src/Meta/extrosnb.jl index 6a6d3ef9f..dc525701c 100644 --- a/src/Meta/extrosnb.jl +++ b/src/Meta/extrosnb.jl @@ -53,7 +53,6 @@ J.-P. Dussault, Rennes 09/2015. year = {1983} } """, - :lib => "CUTEst:EXTROSNB, Luksan:29", ) get_extrosnb_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/fletcbv2.jl b/src/Meta/fletcbv2.jl index d36444e09..d3c5423b7 100644 --- a/src/Meta/fletcbv2.jl +++ b/src/Meta/fletcbv2.jl @@ -61,7 +61,6 @@ J,-P, Dussault, Rennes 09/2015. year = {1992} } """, - :lib => "CUTEst:FLETCBV2, Luksan:31", ) get_fletcbv2_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/fletcbv3_mod.jl b/src/Meta/fletcbv3_mod.jl index c70b12170..1c882430e 100644 --- a/src/Meta/fletcbv3_mod.jl +++ b/src/Meta/fletcbv3_mod.jl @@ -53,7 +53,6 @@ http://www.cs.cas.cz/matonoha/download/V1081.pdf url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "Luksan:30", ) get_fletcbv3_mod_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/fletchcr.jl b/src/Meta/fletchcr.jl index 4087dd325..906bc8970 100644 --- a/src/Meta/fletchcr.jl +++ b/src/Meta/fletchcr.jl @@ -63,7 +63,6 @@ J.-P. Dussault, Rennes 09/2015. year = {1992} } """, - :lib => "CUTEst:FLETCHCR, Luksan:32", ) get_fletchcr_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/fminsrf2.jl b/src/Meta/fminsrf2.jl index 9269639f9..e91e19992 100644 --- a/src/Meta/fminsrf2.jl +++ b/src/Meta/fminsrf2.jl @@ -69,7 +69,6 @@ J.-P. Dussault, Rennes 09/2015. doi = {10.1007/bf01399316} } """, - :lib => "CUTEst:FMINSRF2, Luksan:33", ) get_fminsrf2_nvar(; n::Integer = default_nvar, kwargs...) = 100 diff --git a/src/Meta/gasoil.jl b/src/Meta/gasoil.jl index f722c8692..09a31a63c 100644 --- a/src/Meta/gasoil.jl +++ b/src/Meta/gasoil.jl @@ -55,7 +55,6 @@ SIF input: Nick Gould, November 2000 doi = {10.2172/834714} } """, - :lib => "CUTEst:GASOIL, COPS:12", ) get_gasoil_nvar(; n::Integer = default_nvar, kwargs...) = 26 * n + 3 diff --git a/src/Meta/genbroydenb.jl b/src/Meta/genbroydenb.jl index bd4c45bf3..9d668a76c 100644 --- a/src/Meta/genbroydenb.jl +++ b/src/Meta/genbroydenb.jl @@ -40,7 +40,6 @@ Academy of Science of the Czech Republic url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} } """, - :lib => "LuksanSparse:6", ) diff --git a/src/Meta/genbroydentri.jl b/src/Meta/genbroydentri.jl index 6618485cb..1f0184db6 100644 --- a/src/Meta/genbroydentri.jl +++ b/src/Meta/genbroydentri.jl @@ -41,7 +41,6 @@ Academy of Science of the Czech Republic url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} } """, - :lib => "LuksanSparse:5", ) diff --git a/src/Meta/genhumps.jl b/src/Meta/genhumps.jl index e0d27ef1e..2435a0f0a 100644 --- a/src/Meta/genhumps.jl +++ b/src/Meta/genhumps.jl @@ -51,7 +51,6 @@ SDIF input: N. Gould and Ph. Toint, November 1997. url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:GENHUMPS, Luksan:35", ) get_genhumps_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/genrose.jl b/src/Meta/genrose.jl index a245099ee..96cadc522 100644 --- a/src/Meta/genrose.jl +++ b/src/Meta/genrose.jl @@ -50,7 +50,6 @@ SIF input: Nick Gould, Oct 1992. doi = {10.1137/0721052} } """, - :lib => "CUTEst:GENROSE, Luksan:36", ) get_genrose_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/genrose_nash.jl b/src/Meta/genrose_nash.jl index 440c89fef..2f09de168 100644 --- a/src/Meta/genrose_nash.jl +++ b/src/Meta/genrose_nash.jl @@ -87,7 +87,6 @@ Academy of Science of the Czech Republic doi = {10.1137/0721052} } """, - :lib => "Luksan:36, LuksanSparse:1", ) get_genrose_nash_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/glider.jl b/src/Meta/glider.jl index ad03afcac..a08ae5443 100644 --- a/src/Meta/glider.jl +++ b/src/Meta/glider.jl @@ -50,7 +50,6 @@ SIF input: Nick Gould, December 2000 doi = {10.2172/834714} } """, - :lib => "CUTEst:GLIDER, COPS:11", ) get_glider_nvar(; n::Integer = default_nvar, kwargs...) = 5 * n + 6 diff --git a/src/Meta/hs1.jl b/src/Meta/hs1.jl index 0fe399c6a..313f476a6 100644 --- a/src/Meta/hs1.jl +++ b/src/Meta/hs1.jl @@ -28,15 +28,15 @@ classification SBR2-AN-2-0 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 1 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 1 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, March 1990. -""", + SIF input: A.R. Conn, March 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -48,7 +48,6 @@ SIF input: A.R. Conn, March 1990. year = {1981} } """, - :lib => "CUTEst:HS1, HS:1", ) get_hs1_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -56,4 +55,4 @@ get_hs1_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs1_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs1_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs1_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs1_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs1_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs10.jl b/src/Meta/hs10.jl index 1f988136d..9e6e0ee6c 100644 --- a/src/Meta/hs10.jl +++ b/src/Meta/hs10.jl @@ -25,15 +25,15 @@ classification LQR2-AN-2-1 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 10 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 10 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS10, HS:10", ) get_hs10_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs10_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs10_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs10_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs10_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs10_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs10_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs100.jl b/src/Meta/hs100.jl index 2c8e25c27..cd464e671 100644 --- a/src/Meta/hs100.jl +++ b/src/Meta/hs100.jl @@ -27,15 +27,15 @@ classification PPR-AN-7-4 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 100 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 100 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Ph. Toint, April 1991. -""", + SIF input: Ph. Toint, April 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: Ph. Toint, April 1991. year = {1981} } """, - :lib => "CUTEst:HS100, HS:100", ) get_hs100_nvar(; n::Integer = default_nvar, kwargs...) = 7 @@ -55,4 +54,4 @@ get_hs100_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs100_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs100_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs100_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs100_nineq(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file +get_hs100_nineq(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs101.jl b/src/Meta/hs101.jl index f5eabff3e..24f0868a8 100644 --- a/src/Meta/hs101.jl +++ b/src/Meta/hs101.jl @@ -27,15 +27,15 @@ classification PPR-AN-7-6 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 101 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 101 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: N. Gould, December 1989. -""", + SIF input: N. Gould, December 1989. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: N. Gould, December 1989. year = {1981} } """, - :lib => "CUTEst:HS101, HS:101", ) get_hs101_nvar(; n::Integer = default_nvar, kwargs...) = 7 @@ -55,4 +54,4 @@ get_hs101_ncon(; n::Integer = default_nvar, kwargs...) = 5 get_hs101_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs101_nnln(; n::Integer = default_nvar, kwargs...) = 5 get_hs101_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs101_nineq(; n::Integer = default_nvar, kwargs...) = 5 \ No newline at end of file +get_hs101_nineq(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/hs102.jl b/src/Meta/hs102.jl index a7c3846a8..9a3006a20 100644 --- a/src/Meta/hs102.jl +++ b/src/Meta/hs102.jl @@ -27,15 +27,15 @@ classification PPR-AN-7-6 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 102 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 102 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: N. Gould, December 1989. -""", + SIF input: N. Gould, December 1989. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: N. Gould, December 1989. year = {1981} } """, - :lib => "CUTEst:HS102, HS:102", ) get_hs102_nvar(; n::Integer = default_nvar, kwargs...) = 7 @@ -55,4 +54,4 @@ get_hs102_ncon(; n::Integer = default_nvar, kwargs...) = 5 get_hs102_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs102_nnln(; n::Integer = default_nvar, kwargs...) = 5 get_hs102_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs102_nineq(; n::Integer = default_nvar, kwargs...) = 5 \ No newline at end of file +get_hs102_nineq(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/hs103.jl b/src/Meta/hs103.jl index 8e3d54bde..1b7446602 100644 --- a/src/Meta/hs103.jl +++ b/src/Meta/hs103.jl @@ -27,15 +27,15 @@ classification PPR-AN-7-6 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 103 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 103 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: N. Gould, December 1989. -""", + SIF input: N. Gould, December 1989. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: N. Gould, December 1989. year = {1981} } """, - :lib => "CUTEst:HS103, HS:103", ) get_hs103_nvar(; n::Integer = default_nvar, kwargs...) = 7 @@ -55,4 +54,4 @@ get_hs103_ncon(; n::Integer = default_nvar, kwargs...) = 5 get_hs103_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs103_nnln(; n::Integer = default_nvar, kwargs...) = 5 get_hs103_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs103_nineq(; n::Integer = default_nvar, kwargs...) = 5 \ No newline at end of file +get_hs103_nineq(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/hs104.jl b/src/Meta/hs104.jl index 06f777dd9..5c2295cee 100644 --- a/src/Meta/hs104.jl +++ b/src/Meta/hs104.jl @@ -27,15 +27,15 @@ classification PPR-AN-8-6 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 104 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 104 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Nick Gould, August 1991. -""", + SIF input: Nick Gould, August 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: Nick Gould, August 1991. year = {1981} } """, - :lib => "CUTEst:HS104, HS:104", ) get_hs104_nvar(; n::Integer = default_nvar, kwargs...) = 8 @@ -55,4 +54,4 @@ get_hs104_ncon(; n::Integer = default_nvar, kwargs...) = 5 get_hs104_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs104_nnln(; n::Integer = default_nvar, kwargs...) = 5 get_hs104_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs104_nineq(; n::Integer = default_nvar, kwargs...) = 5 \ No newline at end of file +get_hs104_nineq(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/hs105.jl b/src/Meta/hs105.jl index 5e8bf98fe..8b7dd1074 100644 --- a/src/Meta/hs105.jl +++ b/src/Meta/hs105.jl @@ -27,15 +27,15 @@ classification GLR-AN-8-1 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 105 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 105 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Nick Gould, August 1991. -""", + SIF input: Nick Gould, August 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: Nick Gould, August 1991. year = {1981} } """, - :lib => "CUTEst:HS105, HS:105", ) get_hs105_nvar(; n::Integer = default_nvar, kwargs...) = 8 @@ -55,4 +54,4 @@ get_hs105_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs105_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs105_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs105_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs105_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs105_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs106.jl b/src/Meta/hs106.jl index bea4034f2..449e39dfa 100644 --- a/src/Meta/hs106.jl +++ b/src/Meta/hs106.jl @@ -29,15 +29,15 @@ classification LQR-AN-8-6 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 106 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 106 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: J-M COLLIN. -""", + SIF input: J-M COLLIN. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -49,7 +49,6 @@ SIF input: J-M COLLIN. year = {1981} } """, - :lib => "CUTEst:HS106, HS:106", ) get_hs106_nvar(; n::Integer = default_nvar, kwargs...) = 8 @@ -57,4 +56,4 @@ get_hs106_ncon(; n::Integer = default_nvar, kwargs...) = 6 get_hs106_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs106_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs106_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs106_nineq(; n::Integer = default_nvar, kwargs...) = 6 \ No newline at end of file +get_hs106_nineq(; n::Integer = default_nvar, kwargs...) = 6 diff --git a/src/Meta/hs107.jl b/src/Meta/hs107.jl index 0c3230b8c..b383b3f48 100644 --- a/src/Meta/hs107.jl +++ b/src/Meta/hs107.jl @@ -32,15 +32,15 @@ classification PGR-AN-9-6 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 107 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 107 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Ph. Toint, April 1991. -""", + SIF input: Ph. Toint, April 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -52,7 +52,6 @@ SIF input: Ph. Toint, April 1991. year = {1981} } """, - :lib => "CUTEst:HS107, HS:107", ) get_hs107_nvar(; n::Integer = default_nvar, kwargs...) = 9 @@ -60,4 +59,4 @@ get_hs107_ncon(; n::Integer = default_nvar, kwargs...) = 6 get_hs107_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs107_nnln(; n::Integer = default_nvar, kwargs...) = 6 get_hs107_nequ(; n::Integer = default_nvar, kwargs...) = 6 -get_hs107_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs107_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs108.jl b/src/Meta/hs108.jl index 5ba77f439..622a3d4e3 100644 --- a/src/Meta/hs108.jl +++ b/src/Meta/hs108.jl @@ -27,15 +27,15 @@ classification QQR-AN-9-13 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 108 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 108 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: J-M Collin and Ph. Toint, Apr 1990. -""", + SIF input: J-M Collin and Ph. Toint, Apr 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: J-M Collin and Ph. Toint, Apr 1990. year = {1981} } """, - :lib => "CUTEst:HS108, HS:108", ) get_hs108_nvar(; n::Integer = default_nvar, kwargs...) = 9 @@ -55,4 +54,4 @@ get_hs108_ncon(; n::Integer = default_nvar, kwargs...) = 12 get_hs108_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs108_nnln(; n::Integer = default_nvar, kwargs...) = 12 get_hs108_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs108_nineq(; n::Integer = default_nvar, kwargs...) = 12 \ No newline at end of file +get_hs108_nineq(; n::Integer = default_nvar, kwargs...) = 12 diff --git a/src/Meta/hs109.jl b/src/Meta/hs109.jl index ee34a1060..21a45cccd 100644 --- a/src/Meta/hs109.jl +++ b/src/Meta/hs109.jl @@ -27,21 +27,21 @@ classification PGR-AN-9-10 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -Problem 109 in - W. Hock and K. Schittkowski, - Test examples for nonlinear programming codes, - Lectures Notes in Economics and Mathematical Systems 187, - Springer Verlag, Heidelberg, 1981. + :origin_notes => raw""" + Problem 109 in + W. Hock and K. Schittkowski, + Test examples for nonlinear programming codes, + Lectures Notes in Economics and Mathematical Systems 187, + Springer Verlag, Heidelberg, 1981. -problem 80 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + problem 80 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, June 1990. -""", + SIF input: A.R. Conn, June 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -53,7 +53,6 @@ SIF input: A.R. Conn, June 1990. year = {1981} } """, - :lib => "CUTEst:HS109, HS:109", ) get_hs109_nvar(; n::Integer = default_nvar, kwargs...) = 9 @@ -61,4 +60,4 @@ get_hs109_ncon(; n::Integer = default_nvar, kwargs...) = 9 get_hs109_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs109_nnln(; n::Integer = default_nvar, kwargs...) = 8 get_hs109_nequ(; n::Integer = default_nvar, kwargs...) = 6 -get_hs109_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file +get_hs109_nineq(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs11.jl b/src/Meta/hs11.jl index 477a8f367..98f836b4a 100644 --- a/src/Meta/hs11.jl +++ b/src/Meta/hs11.jl @@ -25,15 +25,15 @@ classification SQR2-AN-2-1 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 11 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 11 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Ph. L. Toint, October 1990. -""", + SIF input: Ph. L. Toint, October 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: Ph. L. Toint, October 1990. year = {1981} } """, - :lib => "CUTEst:HS11, HS:11", ) get_hs11_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs11_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs11_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs11_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs11_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs11_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs11_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs110.jl b/src/Meta/hs110.jl index c8553c2c1..2ddb1fd76 100644 --- a/src/Meta/hs110.jl +++ b/src/Meta/hs110.jl @@ -30,15 +30,15 @@ classification GBR-AN-10-0 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 110 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 110 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, Mar 1990. -""", + SIF input: A.R. Conn, Mar 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -50,7 +50,6 @@ SIF input: A.R. Conn, Mar 1990. year = {1981} } """, - :lib => "CUTEst:HS110, HS:110", ) get_hs110_nvar(; n::Integer = default_nvar, kwargs...) = 10 @@ -58,4 +57,4 @@ get_hs110_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs110_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs110_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs110_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs110_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs110_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs111.jl b/src/Meta/hs111.jl index b3df01e1b..1d119fcda 100644 --- a/src/Meta/hs111.jl +++ b/src/Meta/hs111.jl @@ -28,15 +28,15 @@ classification OOR2-AN-10-3 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 111 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 111 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Nick Gould, August 1991. -""", + SIF input: Nick Gould, August 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -48,7 +48,6 @@ SIF input: Nick Gould, August 1991. year = {1981} } """, - :lib => "CUTEst:HS111, HS:111", ) get_hs111_nvar(; n::Integer = default_nvar, kwargs...) = 10 @@ -56,4 +55,4 @@ get_hs111_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs111_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs111_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs111_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs111_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs111_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs112.jl b/src/Meta/hs112.jl index 4eff4c1be..2dc9157ca 100644 --- a/src/Meta/hs112.jl +++ b/src/Meta/hs112.jl @@ -28,21 +28,21 @@ classification OLR2-MY-10-3 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -Problem 112 in - W. Hock and K. Schittkowski, - Test examples for nonlinear programming codes, - Lectures Notes in Economics and Mathematical Systems 187, - Springer Verlag, Heidelberg, 1981. + :origin_notes => raw""" + Problem 112 in + W. Hock and K. Schittkowski, + Test examples for nonlinear programming codes, + Lectures Notes in Economics and Mathematical Systems 187, + Springer Verlag, Heidelberg, 1981. -problem 80 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + problem 80 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, Mar 1990. -""", + SIF input: A.R. Conn, Mar 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -54,7 +54,6 @@ SIF input: A.R. Conn, Mar 1990. year = {1981} } """, - :lib => "CUTEst:HS112, HS:112", ) get_hs112_nvar(; n::Integer = default_nvar, kwargs...) = 10 @@ -62,4 +61,4 @@ get_hs112_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs112_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs112_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs112_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs112_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs112_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs113.jl b/src/Meta/hs113.jl index 4128d1a7e..d16872e67 100644 --- a/src/Meta/hs113.jl +++ b/src/Meta/hs113.jl @@ -27,21 +27,21 @@ classification QQR-AN-10-8 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -Problem 113 in - W. Hock and K. Schittkowski, - Test examples for nonlinear programming codes, - Lectures Notes in Economics and Mathematical Systems 187, - Springer Verlag, Heidelberg, 1981. + :origin_notes => raw""" + Problem 113 in + W. Hock and K. Schittkowski, + Test examples for nonlinear programming codes, + Lectures Notes in Economics and Mathematical Systems 187, + Springer Verlag, Heidelberg, 1981. -problem 80 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + problem 80 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: J-M Collin, Mar 1990. -""", + SIF input: J-M Collin, Mar 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -53,7 +53,6 @@ SIF input: J-M Collin, Mar 1990. year = {1981} } """, - :lib => "CUTEst:HS113, HS:113", ) get_hs113_nvar(; n::Integer = default_nvar, kwargs...) = 10 @@ -61,4 +60,4 @@ get_hs113_ncon(; n::Integer = default_nvar, kwargs...) = 8 get_hs113_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs113_nnln(; n::Integer = default_nvar, kwargs...) = 5 get_hs113_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs113_nineq(; n::Integer = default_nvar, kwargs...) = 8 \ No newline at end of file +get_hs113_nineq(; n::Integer = default_nvar, kwargs...) = 8 diff --git a/src/Meta/hs114.jl b/src/Meta/hs114.jl index 6a6e13c7f..e12f14c3b 100644 --- a/src/Meta/hs114.jl +++ b/src/Meta/hs114.jl @@ -29,15 +29,15 @@ classification QGR-AN-10-11 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 114 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 114 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: J.M. Collin, Jan 1990. -""", + SIF input: J.M. Collin, Jan 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -49,7 +49,6 @@ SIF input: J.M. Collin, Jan 1990. year = {1981} } """, - :lib => "CUTEst:HS114, HS:114", ) get_hs114_nvar(; n::Integer = default_nvar, kwargs...) = 10 @@ -57,4 +56,4 @@ get_hs114_ncon(; n::Integer = default_nvar, kwargs...) = 11 get_hs114_nlin(; n::Integer = default_nvar, kwargs...) = 5 get_hs114_nnln(; n::Integer = default_nvar, kwargs...) = 6 get_hs114_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs114_nineq(; n::Integer = default_nvar, kwargs...) = 8 \ No newline at end of file +get_hs114_nineq(; n::Integer = default_nvar, kwargs...) = 8 diff --git a/src/Meta/hs116.jl b/src/Meta/hs116.jl index e8a9e13a2..1deeffda3 100644 --- a/src/Meta/hs116.jl +++ b/src/Meta/hs116.jl @@ -29,15 +29,15 @@ classification QGR-AN-13-14 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 116 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 116 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: B. Debarsy, Feb 1990. -""", + SIF input: B. Debarsy, Feb 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -49,7 +49,6 @@ SIF input: B. Debarsy, Feb 1990. year = {1981} } """, - :lib => "CUTEst:HS116, HS:116", ) get_hs116_nvar(; n::Integer = default_nvar, kwargs...) = 13 @@ -57,4 +56,4 @@ get_hs116_ncon(; n::Integer = default_nvar, kwargs...) = 15 get_hs116_nlin(; n::Integer = default_nvar, kwargs...) = 5 get_hs116_nnln(; n::Integer = default_nvar, kwargs...) = 10 get_hs116_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs116_nineq(; n::Integer = default_nvar, kwargs...) = 15 \ No newline at end of file +get_hs116_nineq(; n::Integer = default_nvar, kwargs...) = 15 diff --git a/src/Meta/hs117.jl b/src/Meta/hs117.jl index 19bbe319f..1463a5853 100644 --- a/src/Meta/hs117.jl +++ b/src/Meta/hs117.jl @@ -27,15 +27,15 @@ classification PQR-AN-15-5 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 117 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 117 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Nick Gould, August 1991. -""", + SIF input: Nick Gould, August 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: Nick Gould, August 1991. year = {1981} } """, - :lib => "CUTEst:HS117, HS:117", ) get_hs117_nvar(; n::Integer = default_nvar, kwargs...) = 15 @@ -55,4 +54,4 @@ get_hs117_ncon(; n::Integer = default_nvar, kwargs...) = 5 get_hs117_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs117_nnln(; n::Integer = default_nvar, kwargs...) = 5 get_hs117_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs117_nineq(; n::Integer = default_nvar, kwargs...) = 5 \ No newline at end of file +get_hs117_nineq(; n::Integer = default_nvar, kwargs...) = 5 diff --git a/src/Meta/hs118.jl b/src/Meta/hs118.jl index ecc31fe5e..42438ee1d 100644 --- a/src/Meta/hs118.jl +++ b/src/Meta/hs118.jl @@ -27,15 +27,15 @@ classification QLR-AN-15-17 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 118 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 118 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: B Baudson, Jan 1990. -""", + SIF input: B Baudson, Jan 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: B Baudson, Jan 1990. year = {1981} } """, - :lib => "CUTEst:HS118, HS:118", ) get_hs118_nvar(; n::Integer = default_nvar, kwargs...) = 15 @@ -55,4 +54,4 @@ get_hs118_ncon(; n::Integer = default_nvar, kwargs...) = 17 get_hs118_nlin(; n::Integer = default_nvar, kwargs...) = 17 get_hs118_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs118_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs118_nineq(; n::Integer = default_nvar, kwargs...) = 17 \ No newline at end of file +get_hs118_nineq(; n::Integer = default_nvar, kwargs...) = 17 diff --git a/src/Meta/hs119.jl b/src/Meta/hs119.jl index aff5d1277..d614b563f 100644 --- a/src/Meta/hs119.jl +++ b/src/Meta/hs119.jl @@ -27,19 +27,19 @@ classification PLR-AN-16-8 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 119 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. -Original Source: problem 7 in -A.R. Colville -"A comparative study on nonlinear programming" -IBM Scientific Center Report 320-2949, New York, 1968. + :origin_notes => raw""" + problem 119 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. + Original Source: problem 7 in + A.R. Colville + "A comparative study on nonlinear programming" + IBM Scientific Center Report 320-2949, New York, 1968. -SIF input: A.R. Conn, March 1991. -""", + SIF input: A.R. Conn, March 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -51,7 +51,6 @@ SIF input: A.R. Conn, March 1991. year = {1981} } """, - :lib => "CUTEst:HS119, HS:119", ) get_hs119_nvar(; n::Integer = default_nvar, kwargs...) = 16 @@ -59,4 +58,4 @@ get_hs119_ncon(; n::Integer = default_nvar, kwargs...) = 8 get_hs119_nlin(; n::Integer = default_nvar, kwargs...) = 8 get_hs119_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs119_nequ(; n::Integer = default_nvar, kwargs...) = 8 -get_hs119_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs119_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs12.jl b/src/Meta/hs12.jl index 8f689f74a..8d4f8d8a1 100644 --- a/src/Meta/hs12.jl +++ b/src/Meta/hs12.jl @@ -25,15 +25,15 @@ classification QQR2-AN-2-1 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 12 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 12 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS12, HS:12", ) get_hs12_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs12_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs12_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs12_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs12_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs12_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs12_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs13.jl b/src/Meta/hs13.jl index f960180bb..4f008bc37 100644 --- a/src/Meta/hs13.jl +++ b/src/Meta/hs13.jl @@ -30,15 +30,15 @@ classification QQR2-AN-2-1 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 13 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 13 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -50,7 +50,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS13, HS:13", ) get_hs13_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -59,4 +58,4 @@ get_hs13_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs13_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs13_nequ(; n::Integer = default_nvar, kwargs...) = 0 get_hs13_nineq(; n::Integer = default_nvar, kwargs...) = 1 -get_hs13_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs13_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs14.jl b/src/Meta/hs14.jl index 7b42948c5..7895e52b7 100644 --- a/src/Meta/hs14.jl +++ b/src/Meta/hs14.jl @@ -25,15 +25,15 @@ classification SQR2-AN-2-2 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 14 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 14 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS14, HS:14", ) get_hs14_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -54,4 +53,4 @@ get_hs14_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs14_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs14_nequ(; n::Integer = default_nvar, kwargs...) = 1 get_hs14_nineq(; n::Integer = default_nvar, kwargs...) = 1 -get_hs14_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs14_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs15.jl b/src/Meta/hs15.jl index 5e151529f..9ee244bf8 100644 --- a/src/Meta/hs15.jl +++ b/src/Meta/hs15.jl @@ -25,15 +25,15 @@ classification SQR2-AN-2-2 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 15 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 15 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS15, HS:15", ) get_hs15_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs15_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs15_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs15_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs15_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs15_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs15_nineq(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs16.jl b/src/Meta/hs16.jl index e80f8ceee..2c76ced1a 100644 --- a/src/Meta/hs16.jl +++ b/src/Meta/hs16.jl @@ -25,15 +25,15 @@ classification SQR2-AN-2-2 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 16 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 16 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS16, HS:16", ) get_hs16_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs16_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs16_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs16_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs16_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs16_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs16_nineq(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs17.jl b/src/Meta/hs17.jl index c174319d7..39d833877 100644 --- a/src/Meta/hs17.jl +++ b/src/Meta/hs17.jl @@ -25,15 +25,15 @@ classification SQR2-AN-2-2 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 17 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 17 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS17, HS:17", ) get_hs17_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs17_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs17_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs17_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs17_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs17_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs17_nineq(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs18.jl b/src/Meta/hs18.jl index 37a5c8987..c2b374400 100644 --- a/src/Meta/hs18.jl +++ b/src/Meta/hs18.jl @@ -25,15 +25,15 @@ classification SQR2-AN-2-2 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 18 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 18 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS18, HS:18", ) get_hs18_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs18_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs18_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs18_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs18_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs18_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs18_nineq(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs19.jl b/src/Meta/hs19.jl index 9dbce2db0..a4570334a 100644 --- a/src/Meta/hs19.jl +++ b/src/Meta/hs19.jl @@ -27,15 +27,15 @@ classification PQR2-AN-2-2 A. Montoison, Montreal, 04/2018. """, -:origin_notes => raw""" -problem 19 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 19 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn April 1990 -""", + SIF input: A.R. Conn April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn April 1990 year = {1981} } """, - :lib => "CUTEst:HS19, HS:19", ) get_hs19_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -55,4 +54,4 @@ get_hs19_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs19_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs19_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs19_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs19_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs19_nineq(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs2.jl b/src/Meta/hs2.jl index 00fe55bb5..4ee321850 100644 --- a/src/Meta/hs2.jl +++ b/src/Meta/hs2.jl @@ -30,15 +30,15 @@ classification PBR2-AN-2-0 A. Montoison, Montreal, 04/2018. """, -:origin_notes => raw""" -problem 2 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 2 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, March 1990. -""", + SIF input: A.R. Conn, March 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -50,7 +50,6 @@ SIF input: A.R. Conn, March 1990. year = {1981} } """, - :lib => "CUTEst:HS2, HS:2", ) get_hs2_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -58,4 +57,4 @@ get_hs2_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs2_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs2_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs2_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs2_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs2_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs20.jl b/src/Meta/hs20.jl index 520986f08..5098cb9ad 100644 --- a/src/Meta/hs20.jl +++ b/src/Meta/hs20.jl @@ -25,15 +25,15 @@ classification SQR2-AN-2-3 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 20 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 20 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS20, HS:20", ) get_hs20_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs20_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs20_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs20_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs20_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs20_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file +get_hs20_nineq(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs201.jl b/src/Meta/hs201.jl index e2ab9d0b4..7f98b488c 100644 --- a/src/Meta/hs201.jl +++ b/src/Meta/hs201.jl @@ -39,7 +39,6 @@ Problem 201 in year = {1987} } """, - :lib => "HS2:201", ) get_hs201_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs21.jl b/src/Meta/hs21.jl index b3c47e409..9b3422421 100644 --- a/src/Meta/hs21.jl +++ b/src/Meta/hs21.jl @@ -25,15 +25,15 @@ classification QLR2-AN-2-1 A. Montoison, Montreal, 04/2018. """, -:origin_notes => raw""" -problem 21 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 21 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS21, HS:21", ) get_hs21_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs21_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs21_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs21_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs21_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs21_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs21_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs211.jl b/src/Meta/hs211.jl index 295737b94..c2eb50cd0 100644 --- a/src/Meta/hs211.jl +++ b/src/Meta/hs211.jl @@ -39,7 +39,6 @@ Problem 211 in year = {1987} } """, - :lib => "HS2:211", ) get_hs211_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs219.jl b/src/Meta/hs219.jl index 090f73154..dc720fa2f 100644 --- a/src/Meta/hs219.jl +++ b/src/Meta/hs219.jl @@ -23,15 +23,15 @@ Schittkowski problem number 219. Solution is: (1, 1, 0, 0) with f(x^*) = -1 """, -:origin_notes => raw""" -Problem 219 in - Schittkowski, K. (1987). - More Test Examples for Nonlinear Programming Codes. - Lecture Notes in Economics and Mathematical Systems. - doi:10.1007/978-3-642-61582-5 + :origin_notes => raw""" + Problem 219 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 -classification LPR-T1-1 -""", + classification LPR-T1-1 + """, :reference => raw""" @book{Schittkowski1987, author = {Schittkowski, Klaus}, @@ -43,7 +43,6 @@ classification LPR-T1-1 year = {1987} } """, - :lib => "HS2:219", ) get_hs219_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -51,4 +50,4 @@ get_hs219_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs219_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs219_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs219_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs219_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs219_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs22.jl b/src/Meta/hs22.jl index a865525a9..74a6f82b7 100644 --- a/src/Meta/hs22.jl +++ b/src/Meta/hs22.jl @@ -25,15 +25,15 @@ classification QQR2-AN-2-2 A. Montoison, Montreal, 04/2018. """, -:origin_notes => raw""" -problem 22 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 22 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS22, HS:22", ) get_hs22_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -54,4 +53,4 @@ get_hs22_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs22_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs22_nequ(; n::Integer = default_nvar, kwargs...) = 0 get_hs22_nineq(; n::Integer = default_nvar, kwargs...) = 2 -get_hs22_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs22_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs220.jl b/src/Meta/hs220.jl index 846fdbf2f..3aa981e8a 100644 --- a/src/Meta/hs220.jl +++ b/src/Meta/hs220.jl @@ -39,7 +39,6 @@ Problem 220 in year = {1987} } """, - :lib => "HS2:220", ) get_hs220_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs221.jl b/src/Meta/hs221.jl index 4b3003a5e..9065f5e33 100644 --- a/src/Meta/hs221.jl +++ b/src/Meta/hs221.jl @@ -39,7 +39,6 @@ Problem 221 in year = {1987} } """, - :lib => "HS2:221", ) get_hs221_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs222.jl b/src/Meta/hs222.jl index 3638ffb30..1c9a82994 100644 --- a/src/Meta/hs222.jl +++ b/src/Meta/hs222.jl @@ -39,7 +39,6 @@ Problem 222 in year = {1987} } """, - :lib => "HS2:222", ) get_hs222_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs223.jl b/src/Meta/hs223.jl index 296670b5f..d0b098612 100644 --- a/src/Meta/hs223.jl +++ b/src/Meta/hs223.jl @@ -39,7 +39,6 @@ Problem 223 in year = {1987} } """, - :lib => "HS2:223", ) get_hs223_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs224.jl b/src/Meta/hs224.jl index e24708385..b41cd7de1 100644 --- a/src/Meta/hs224.jl +++ b/src/Meta/hs224.jl @@ -39,7 +39,6 @@ Problem 224 in year = {1987} } """, - :lib => "HS2:224", ) get_hs224_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs225.jl b/src/Meta/hs225.jl index c87d2d489..576f8fa75 100644 --- a/src/Meta/hs225.jl +++ b/src/Meta/hs225.jl @@ -39,7 +39,6 @@ Problem 225 in year = {1987} } """, - :lib => "HS2:225", ) get_hs225_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs226.jl b/src/Meta/hs226.jl index d47951b11..98b283076 100644 --- a/src/Meta/hs226.jl +++ b/src/Meta/hs226.jl @@ -39,7 +39,6 @@ Problem 226 in year = {1987} } """, - :lib => "HS2:226", ) get_hs226_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs227.jl b/src/Meta/hs227.jl index 0ffdd1e80..d370d87ff 100644 --- a/src/Meta/hs227.jl +++ b/src/Meta/hs227.jl @@ -39,7 +39,6 @@ Problem 227 in year = {1987} } """, - :lib => "HS2:227", ) get_hs227_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs228.jl b/src/Meta/hs228.jl index 58e8f2a5f..3c823bcdc 100644 --- a/src/Meta/hs228.jl +++ b/src/Meta/hs228.jl @@ -39,7 +39,6 @@ Problem 228 in year = {1987} } """, - :lib => "HS2:228", ) get_hs228_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs229.jl b/src/Meta/hs229.jl index f19668ed0..69f9882ae 100644 --- a/src/Meta/hs229.jl +++ b/src/Meta/hs229.jl @@ -39,7 +39,6 @@ Problem 229 in year = {1987} } """, - :lib => "HS2:229", ) get_hs229_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs23.jl b/src/Meta/hs23.jl index 91ec5b298..dd31e68a2 100644 --- a/src/Meta/hs23.jl +++ b/src/Meta/hs23.jl @@ -25,15 +25,15 @@ classification QQR2-AN-2-5 A. Montoison, Montreal, 04/2018. """, -:origin_notes => raw""" -problem 23 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 23 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS23, HS:23", ) get_hs23_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -54,4 +53,4 @@ get_hs23_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs23_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs23_nequ(; n::Integer = default_nvar, kwargs...) = 0 get_hs23_nineq(; n::Integer = default_nvar, kwargs...) = 5 -get_hs23_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs23_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs230.jl b/src/Meta/hs230.jl index 9b965759d..fcd8060fe 100644 --- a/src/Meta/hs230.jl +++ b/src/Meta/hs230.jl @@ -39,7 +39,6 @@ Problem 230 in year = {1987} } """, - :lib => "HS2:230", ) get_hs230_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs231.jl b/src/Meta/hs231.jl index f7e0bc0a1..aa556d282 100644 --- a/src/Meta/hs231.jl +++ b/src/Meta/hs231.jl @@ -39,7 +39,6 @@ Problem 231 in year = {1987} } """, - :lib => "HS2:231", ) get_hs231_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs232.jl b/src/Meta/hs232.jl index 3dc5b5d74..c81ad16f9 100644 --- a/src/Meta/hs232.jl +++ b/src/Meta/hs232.jl @@ -39,7 +39,6 @@ Problem 232 in year = {1987} } """, - :lib => "HS2:232", ) get_hs232_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs233.jl b/src/Meta/hs233.jl index 37280618c..d4c0a47f4 100644 --- a/src/Meta/hs233.jl +++ b/src/Meta/hs233.jl @@ -39,7 +39,6 @@ Problem 233 in year = {1987} } """, - :lib => "HS2:233", ) get_hs233_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs234.jl b/src/Meta/hs234.jl index efc870f5a..72fb081d5 100644 --- a/src/Meta/hs234.jl +++ b/src/Meta/hs234.jl @@ -39,7 +39,6 @@ Problem 234 in year = {1987} } """, - :lib => "HS2:234", ) get_hs234_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs235.jl b/src/Meta/hs235.jl index 091fbf2cf..db33e8454 100644 --- a/src/Meta/hs235.jl +++ b/src/Meta/hs235.jl @@ -39,7 +39,6 @@ Problem 235 in year = {1987} } """, - :lib => "HS2:235", ) get_hs235_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs236.jl b/src/Meta/hs236.jl index 8f11db378..4c8314bef 100644 --- a/src/Meta/hs236.jl +++ b/src/Meta/hs236.jl @@ -39,7 +39,6 @@ Problem 236 in year = {1987} } """, - :lib => "HS2:236", ) get_hs236_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs237.jl b/src/Meta/hs237.jl index ae5c7d5bb..38072ac3d 100644 --- a/src/Meta/hs237.jl +++ b/src/Meta/hs237.jl @@ -39,7 +39,6 @@ Problem 237 in year = {1987} } """, - :lib => "HS2:237", ) get_hs237_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs238.jl b/src/Meta/hs238.jl index 8c26ca49f..90c8287b0 100644 --- a/src/Meta/hs238.jl +++ b/src/Meta/hs238.jl @@ -39,7 +39,6 @@ Problem 238 in year = {1987} } """, - :lib => "HS2:238", ) get_hs238_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs239.jl b/src/Meta/hs239.jl index 2d22644d1..87fda8086 100644 --- a/src/Meta/hs239.jl +++ b/src/Meta/hs239.jl @@ -39,7 +39,6 @@ Problem 239 in year = {1987} } """, - :lib => "HS2:239", ) get_hs239_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs24.jl b/src/Meta/hs24.jl index 536d6e596..0b3e3f581 100644 --- a/src/Meta/hs24.jl +++ b/src/Meta/hs24.jl @@ -27,15 +27,15 @@ classification PLR2-AN-2-3 A. Montoison, Montreal, 04/2018. """, -:origin_notes => raw""" -problem 24 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 24 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS24, HS:24", ) get_hs24_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -55,4 +54,4 @@ get_hs24_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs24_nlin(; n::Integer = default_nvar, kwargs...) = 2 get_hs24_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs24_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs24_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs24_nineq(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs240.jl b/src/Meta/hs240.jl index 8a5aa9394..b73e2623b 100644 --- a/src/Meta/hs240.jl +++ b/src/Meta/hs240.jl @@ -39,7 +39,6 @@ Problem 240 in year = {1987} } """, - :lib => "HS2:240", ) get_hs240_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs241.jl b/src/Meta/hs241.jl index 7de3f27a7..a57599f74 100644 --- a/src/Meta/hs241.jl +++ b/src/Meta/hs241.jl @@ -39,7 +39,6 @@ Problem 241 in year = {1987} } """, - :lib => "HS2:241", ) get_hs241_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs242.jl b/src/Meta/hs242.jl index 716d06263..1333aca56 100644 --- a/src/Meta/hs242.jl +++ b/src/Meta/hs242.jl @@ -39,7 +39,6 @@ Problem 242 in year = {1987} } """, - :lib => "HS2:242", ) get_hs242_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs243.jl b/src/Meta/hs243.jl index a3eba172e..4cd1d8c2f 100644 --- a/src/Meta/hs243.jl +++ b/src/Meta/hs243.jl @@ -39,7 +39,6 @@ Problem 243 in year = {1987} } """, - :lib => "HS2:243", ) get_hs243_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs244.jl b/src/Meta/hs244.jl index 02941628b..749c40562 100644 --- a/src/Meta/hs244.jl +++ b/src/Meta/hs244.jl @@ -39,7 +39,6 @@ Problem 244 in year = {1987} } """, - :lib => "HS2:244", ) get_hs244_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs245.jl b/src/Meta/hs245.jl index 591100ed4..0996cbe1b 100644 --- a/src/Meta/hs245.jl +++ b/src/Meta/hs245.jl @@ -39,7 +39,6 @@ Problem 245 in year = {1987} } """, - :lib => "HS2:245", ) get_hs245_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs246.jl b/src/Meta/hs246.jl index 182de5cab..5a3f99e03 100644 --- a/src/Meta/hs246.jl +++ b/src/Meta/hs246.jl @@ -39,7 +39,6 @@ Problem 246 in year = {1987} } """, - :lib => "HS2:246", ) get_hs246_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs248.jl b/src/Meta/hs248.jl index 4352fa77c..ab67d81fc 100644 --- a/src/Meta/hs248.jl +++ b/src/Meta/hs248.jl @@ -39,7 +39,6 @@ Problem 248 in year = {1987} } """, - :lib => "HS2:248", ) get_hs248_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs249.jl b/src/Meta/hs249.jl index e17d46663..bd392943a 100644 --- a/src/Meta/hs249.jl +++ b/src/Meta/hs249.jl @@ -39,7 +39,6 @@ Problem 249 in year = {1987} } """, - :lib => "HS2:249", ) get_hs249_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs25.jl b/src/Meta/hs25.jl index 9b0cdb2bc..9f561e0eb 100644 --- a/src/Meta/hs25.jl +++ b/src/Meta/hs25.jl @@ -27,15 +27,15 @@ classification SBR2-AN-3-0 A. Montoison, Montreal, 04/2018. """, -:origin_notes => raw""" -problem 25 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 25 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: J-M Collin, Mar 1990. -""", + SIF input: J-M Collin, Mar 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: J-M Collin, Mar 1990. year = {1981} } """, - :lib => "CUTEst:HS25, HS:25", ) get_hs25_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -55,4 +54,4 @@ get_hs25_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs25_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs25_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs25_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs25_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs25_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs250.jl b/src/Meta/hs250.jl index 7027ef229..f8da69d48 100644 --- a/src/Meta/hs250.jl +++ b/src/Meta/hs250.jl @@ -39,7 +39,6 @@ Problem 250 in year = {1987} } """, - :lib => "HS2:250", ) get_hs250_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs251.jl b/src/Meta/hs251.jl index acd5fe396..87d52e430 100644 --- a/src/Meta/hs251.jl +++ b/src/Meta/hs251.jl @@ -39,7 +39,6 @@ Problem 251 in year = {1987} } """, - :lib => "HS2:251", ) get_hs251_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs252.jl b/src/Meta/hs252.jl index 6babf20a3..993868573 100644 --- a/src/Meta/hs252.jl +++ b/src/Meta/hs252.jl @@ -39,7 +39,6 @@ Problem 252 in year = {1987} } """, - :lib => "HS2:252", ) get_hs252_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs253.jl b/src/Meta/hs253.jl index dfeba50f0..12bfa449a 100644 --- a/src/Meta/hs253.jl +++ b/src/Meta/hs253.jl @@ -39,7 +39,6 @@ Problem 253 in year = {1987} } """, - :lib => "HS2:253", ) get_hs253_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs254.jl b/src/Meta/hs254.jl index 69da25fb3..0ef2bb3a6 100644 --- a/src/Meta/hs254.jl +++ b/src/Meta/hs254.jl @@ -39,7 +39,6 @@ Problem 254 in year = {1987} } """, - :lib => "HS2:254", ) get_hs254_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs255.jl b/src/Meta/hs255.jl index 6d87851af..04c764ceb 100644 --- a/src/Meta/hs255.jl +++ b/src/Meta/hs255.jl @@ -39,7 +39,6 @@ Problem 255 in year = {1987} } """, - :lib => "HS2:255", ) get_hs255_nvar(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs256.jl b/src/Meta/hs256.jl index 4d49d99f0..4c69cb832 100644 --- a/src/Meta/hs256.jl +++ b/src/Meta/hs256.jl @@ -39,7 +39,6 @@ Problem 256 in year = {1987} } """, - :lib => "HS2:256", ) get_hs256_nvar(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs257.jl b/src/Meta/hs257.jl index 34044715c..396cbb43f 100644 --- a/src/Meta/hs257.jl +++ b/src/Meta/hs257.jl @@ -39,7 +39,6 @@ Problem 257 in year = {1987} } """, - :lib => "HS2:257", ) get_hs257_nvar(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs258.jl b/src/Meta/hs258.jl index d6c20541b..03495b40c 100644 --- a/src/Meta/hs258.jl +++ b/src/Meta/hs258.jl @@ -39,7 +39,6 @@ Problem 258 in year = {1987} } """, - :lib => "HS2:258", ) get_hs258_nvar(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs259.jl b/src/Meta/hs259.jl index 24c513afd..66b704d26 100644 --- a/src/Meta/hs259.jl +++ b/src/Meta/hs259.jl @@ -39,7 +39,6 @@ Problem 259 in year = {1987} } """, - :lib => "HS2:259", ) get_hs259_nvar(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs26.jl b/src/Meta/hs26.jl index e0778fdd8..e4aa0851d 100644 --- a/src/Meta/hs26.jl +++ b/src/Meta/hs26.jl @@ -25,15 +25,15 @@ classification OOR2-AY-3-1 A. Cebola, Curitiba 10/2016. """, -:origin_notes => raw""" -problem 26 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 26 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS26, HS:26", ) get_hs26_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -53,4 +52,4 @@ get_hs26_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs26_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs26_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs26_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs26_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs26_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs260.jl b/src/Meta/hs260.jl index 582e10f62..d6c2c78ef 100644 --- a/src/Meta/hs260.jl +++ b/src/Meta/hs260.jl @@ -39,7 +39,6 @@ Problem 260 in year = {1987} } """, - :lib => "HS2:260", ) get_hs260_nvar(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs261.jl b/src/Meta/hs261.jl index b296a1815..4b7ad13b9 100644 --- a/src/Meta/hs261.jl +++ b/src/Meta/hs261.jl @@ -39,7 +39,6 @@ Problem 261 in year = {1987} } """, - :lib => "HS2:261", ) get_hs261_nvar(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs262.jl b/src/Meta/hs262.jl index 215a4fcd6..cbc40e6ed 100644 --- a/src/Meta/hs262.jl +++ b/src/Meta/hs262.jl @@ -39,7 +39,6 @@ Problem 262 in year = {1987} } """, - :lib => "HS2:262", ) get_hs262_nvar(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs263.jl b/src/Meta/hs263.jl index b77e0e8bb..03327c451 100644 --- a/src/Meta/hs263.jl +++ b/src/Meta/hs263.jl @@ -39,7 +39,6 @@ Problem 263 in year = {1987} } """, - :lib => "HS2:263", ) get_hs263_nvar(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs264.jl b/src/Meta/hs264.jl index 3bc35e1a6..4ff1636e3 100644 --- a/src/Meta/hs264.jl +++ b/src/Meta/hs264.jl @@ -39,7 +39,6 @@ Problem 264 in year = {1987} } """, - :lib => "HS2:264", ) get_hs264_nvar(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs265.jl b/src/Meta/hs265.jl index 4df6daaa2..3fbbf84ac 100644 --- a/src/Meta/hs265.jl +++ b/src/Meta/hs265.jl @@ -39,7 +39,6 @@ Problem 265 in year = {1987} } """, - :lib => "HS2:265", ) get_hs265_nvar(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs27.jl b/src/Meta/hs27.jl index 4c83f987c..9f8971a4a 100644 --- a/src/Meta/hs27.jl +++ b/src/Meta/hs27.jl @@ -25,15 +25,15 @@ classification SQR2-AN-3-1 A. Cebola, Curitiba 10/2016. """, -:origin_notes => raw""" -problem 27 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 27 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS27, HS:27", ) get_hs27_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -53,4 +52,4 @@ get_hs27_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs27_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs27_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs27_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs27_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs27_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs28.jl b/src/Meta/hs28.jl index 16713492d..ffd6f7407 100644 --- a/src/Meta/hs28.jl +++ b/src/Meta/hs28.jl @@ -27,15 +27,15 @@ classification QLR2-AN-3-1 A. Montoison, Montreal, 04/2018. """, -:origin_notes => raw""" -problem 28 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 28 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS28, HS:28", ) get_hs28_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -56,4 +55,4 @@ get_hs28_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs28_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs28_nequ(; n::Integer = default_nvar, kwargs...) = 1 get_hs28_nineq(; n::Integer = default_nvar, kwargs...) = 0 -get_hs28_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs28_nls_nequ(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs29.jl b/src/Meta/hs29.jl index 6ec86ac7a..0e814d0fd 100644 --- a/src/Meta/hs29.jl +++ b/src/Meta/hs29.jl @@ -27,15 +27,15 @@ classification PQR2-AN-3-1 A. Montoison, Montreal, 04/2018. """, -:origin_notes => raw""" -problem 29 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 29 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS29, HS:29", ) get_hs29_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -55,4 +54,4 @@ get_hs29_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs29_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs29_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs29_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs29_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs29_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs3.jl b/src/Meta/hs3.jl index 2a0801108..0abde29d8 100644 --- a/src/Meta/hs3.jl +++ b/src/Meta/hs3.jl @@ -25,15 +25,15 @@ classification QBR2-AN-2-0 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 3 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 3 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS3, HS:3", ) get_hs3_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs3_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs3_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs3_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs3_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs3_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs3_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs30.jl b/src/Meta/hs30.jl index 3368caa65..c59adb823 100644 --- a/src/Meta/hs30.jl +++ b/src/Meta/hs30.jl @@ -25,15 +25,15 @@ classification QQR2-AN-3-1 A. Montoison, Montreal, 04/2018. """, -:origin_notes => raw""" -problem 30 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 30 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS30, HS:30", ) get_hs30_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -54,4 +53,4 @@ get_hs30_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs30_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs30_nequ(; n::Integer = default_nvar, kwargs...) = 0 get_hs30_nineq(; n::Integer = default_nvar, kwargs...) = 1 -get_hs30_nls_nequ(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file +get_hs30_nls_nequ(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs31.jl b/src/Meta/hs31.jl index 979126898..6fa19be62 100644 --- a/src/Meta/hs31.jl +++ b/src/Meta/hs31.jl @@ -25,15 +25,15 @@ classification QQR2-AN-3-1 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 31 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 31 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: N. Gould, Dec 1989. -""", + SIF input: N. Gould, Dec 1989. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: N. Gould, Dec 1989. year = {1981} } """, - :lib => "CUTEst:HS31, HS:31", ) get_hs31_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -53,4 +52,4 @@ get_hs31_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs31_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs31_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs31_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs31_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs31_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs316.jl b/src/Meta/hs316.jl index a28f23aeb..ac4f9d19c 100644 --- a/src/Meta/hs316.jl +++ b/src/Meta/hs316.jl @@ -25,12 +25,12 @@ Schittkowski problem number 316. M. Gollier, Montréal, 05/2023 """, -:origin_notes => raw""" -Problem 316 in - Schittkowski, K. (1987). - More Test Examples for Nonlinear Programming Codes. - Lecture Notes in Economics and Mathematical Systems. -""", + :origin_notes => raw""" + Problem 316 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + """, :reference => raw""" @book{Schittkowski1987, author = {Schittkowski, Klaus}, @@ -42,7 +42,6 @@ Problem 316 in year = {1987} } """, - :lib => "HS2:316", ) get_hs316_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -50,4 +49,4 @@ get_hs316_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs316_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs316_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs316_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs316_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs316_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs317.jl b/src/Meta/hs317.jl index a6e6be951..e37f3bf02 100644 --- a/src/Meta/hs317.jl +++ b/src/Meta/hs317.jl @@ -25,13 +25,13 @@ Schittkowski problem number 317. M. Gollier, Montréal, 05/2023 """, -:origin_notes => raw""" -Problem 317 in - Schittkowski, K. (1987). - More Test Examples for Nonlinear Programming Codes. - Lecture Notes in Economics and Mathematical Systems. - doi:10.1007/978-3-642-61582-5 -""", + :origin_notes => raw""" + Problem 317 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 + """, :reference => raw""" @book{Schittkowski1987, author = {Schittkowski, Klaus}, @@ -43,7 +43,6 @@ Problem 317 in year = {1987} } """, - :lib => "HS2:317", ) get_hs317_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -51,4 +50,4 @@ get_hs317_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs317_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs317_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs317_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs317_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs317_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs318.jl b/src/Meta/hs318.jl index f06e32815..39bc583f7 100644 --- a/src/Meta/hs318.jl +++ b/src/Meta/hs318.jl @@ -25,13 +25,13 @@ Schittkowski problem number 318. M. Gollier, Montréal, 05/2023 """, -:origin_notes => raw""" -Problem 318 in - Schittkowski, K. (1987). - More Test Examples for Nonlinear Programming Codes. - Lecture Notes in Economics and Mathematical Systems. - doi:10.1007/978-3-642-61582-5 -""", + :origin_notes => raw""" + Problem 318 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 + """, :reference => raw""" @book{Schittkowski1987, author = {Schittkowski, Klaus}, @@ -43,7 +43,6 @@ Problem 318 in year = {1987} } """, - :lib => "HS2:318", ) get_hs318_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -51,4 +50,4 @@ get_hs318_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs318_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs318_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs318_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs318_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs318_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs319.jl b/src/Meta/hs319.jl index c0ee33804..6dda1a661 100644 --- a/src/Meta/hs319.jl +++ b/src/Meta/hs319.jl @@ -25,13 +25,13 @@ Schittkowski problem number 319. M. Gollier, Montréal, 05/2023 """, -:origin_notes => raw""" -Problem 319 in - Schittkowski, K. (1987). - More Test Examples for Nonlinear Programming Codes. - Lecture Notes in Economics and Mathematical Systems. - doi:10.1007/978-3-642-61582-5 -""", + :origin_notes => raw""" + Problem 319 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 + """, :reference => raw""" @book{Schittkowski1987, author = {Schittkowski, Klaus}, @@ -43,7 +43,6 @@ Problem 319 in year = {1987} } """, - :lib => "HS2:319", ) get_hs319_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -51,4 +50,4 @@ get_hs319_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs319_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs319_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs319_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs319_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs319_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs32.jl b/src/Meta/hs32.jl index cfa59bd96..03062a460 100644 --- a/src/Meta/hs32.jl +++ b/src/Meta/hs32.jl @@ -27,15 +27,15 @@ classification QPR2-AN-3-2 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 32 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 32 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: J-M COLLIN, April 1990. -""", + SIF input: J-M COLLIN, April 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: J-M COLLIN, April 1990. year = {1981} } """, - :lib => "CUTEst:HS32, HS:32", ) get_hs32_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -55,4 +54,4 @@ get_hs32_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs32_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs32_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs32_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs32_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs32_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs320.jl b/src/Meta/hs320.jl index 358634c59..6664c4938 100644 --- a/src/Meta/hs320.jl +++ b/src/Meta/hs320.jl @@ -25,13 +25,13 @@ Schittkowski problem number 320. M. Gollier, Montréal, 05/2023 """, -:origin_notes => raw""" -Problem 320 in - Schittkowski, K. (1987). - More Test Examples for Nonlinear Programming Codes. - Lecture Notes in Economics and Mathematical Systems. - doi:10.1007/978-3-642-61582-5 -""", + :origin_notes => raw""" + Problem 320 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 + """, :reference => raw""" @book{Schittkowski1987, author = {Schittkowski, Klaus}, @@ -43,7 +43,6 @@ Problem 320 in year = {1987} } """, - :lib => "HS2:320", ) get_hs320_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -51,4 +50,4 @@ get_hs320_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs320_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs320_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs320_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs320_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs320_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs321.jl b/src/Meta/hs321.jl index 2616e79b8..90c50b04a 100644 --- a/src/Meta/hs321.jl +++ b/src/Meta/hs321.jl @@ -25,13 +25,13 @@ Schittkowski problem number 321. M. Gollier, Montréal, 05/2023 """, -:origin_notes => raw""" -Problem 321 in - Schittkowski, K. (1987). - More Test Examples for Nonlinear Programming Codes. - Lecture Notes in Economics and Mathematical Systems. - doi:10.1007/978-3-642-61582-5 -""", + :origin_notes => raw""" + Problem 321 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 + """, :reference => raw""" @book{Schittkowski1987, author = {Schittkowski, Klaus}, @@ -43,7 +43,6 @@ Problem 321 in year = {1987} } """, - :lib => "HS2:321", ) get_hs321_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -51,4 +50,4 @@ get_hs321_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs321_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs321_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs321_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs321_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs321_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs322.jl b/src/Meta/hs322.jl index a2f9decbb..61b355f8b 100644 --- a/src/Meta/hs322.jl +++ b/src/Meta/hs322.jl @@ -25,13 +25,13 @@ Schittkowski problem number 322. M. Gollier, Montréal, 05/2023 """, -:origin_notes => raw""" -Problem 322 in - Schittkowski, K. (1987). - More Test Examples for Nonlinear Programming Codes. - Lecture Notes in Economics and Mathematical Systems. - doi:10.1007/978-3-642-61582-5 -""", + :origin_notes => raw""" + Problem 322 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 + """, :reference => raw""" @book{Schittkowski1987, author = {Schittkowski, Klaus}, @@ -43,7 +43,6 @@ Problem 322 in year = {1987} } """, - :lib => "HS2:322", ) get_hs322_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -51,4 +50,4 @@ get_hs322_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs322_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs322_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs322_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs322_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs322_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs33.jl b/src/Meta/hs33.jl index 67444ea56..24eef1f11 100644 --- a/src/Meta/hs33.jl +++ b/src/Meta/hs33.jl @@ -27,15 +27,15 @@ classification PQR2-AN-3-2 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 33 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 33 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS33, HS:33", ) get_hs33_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -55,4 +54,4 @@ get_hs33_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs33_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs33_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs33_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs33_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs33_nineq(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs34.jl b/src/Meta/hs34.jl index ae539cd2a..0bfffc5eb 100644 --- a/src/Meta/hs34.jl +++ b/src/Meta/hs34.jl @@ -27,15 +27,15 @@ classification LGR2-AN-3-2 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 34 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 34 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS34, HS:34", ) get_hs34_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -55,4 +54,4 @@ get_hs34_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs34_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs34_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs34_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs34_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs34_nineq(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs35.jl b/src/Meta/hs35.jl index 994d73ccc..50a552bd4 100644 --- a/src/Meta/hs35.jl +++ b/src/Meta/hs35.jl @@ -25,15 +25,15 @@ classification QLR2-AN-3-1 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 35 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 35 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS35, HS:35", ) get_hs35_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -53,4 +52,4 @@ get_hs35_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs35_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs35_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs35_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs35_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs35_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs36.jl b/src/Meta/hs36.jl index f0e6401ea..23a6a2fdb 100644 --- a/src/Meta/hs36.jl +++ b/src/Meta/hs36.jl @@ -27,15 +27,15 @@ classification PLR2-AN-3-1 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 36 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 36 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS36, HS:36", ) get_hs36_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -55,4 +54,4 @@ get_hs36_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs36_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs36_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs36_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs36_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs36_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs37.jl b/src/Meta/hs37.jl index e6249c5b7..130eab990 100644 --- a/src/Meta/hs37.jl +++ b/src/Meta/hs37.jl @@ -27,15 +27,15 @@ classification PLR2-AN-3-2 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 37 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 37 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS37, HS:37", ) get_hs37_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -55,4 +54,4 @@ get_hs37_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs37_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs37_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs37_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs37_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs37_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs378.jl b/src/Meta/hs378.jl index 268ace4ac..38805f625 100644 --- a/src/Meta/hs378.jl +++ b/src/Meta/hs378.jl @@ -25,13 +25,13 @@ Schittkowski problem number 378. M. Gollier, Montréal, 05/2023 """, -:origin_notes => raw""" -Problem 378 in - Schittkowski, K. (1987). - More Test Examples for Nonlinear Programming Codes. - Lecture Notes in Economics and Mathematical Systems. - doi:10.1007/978-3-642-61582-5 -""", + :origin_notes => raw""" + Problem 378 in + Schittkowski, K. (1987). + More Test Examples for Nonlinear Programming Codes. + Lecture Notes in Economics and Mathematical Systems. + doi:10.1007/978-3-642-61582-5 + """, :reference => raw""" @book{Schittkowski1987, author = {Schittkowski, Klaus}, @@ -43,7 +43,6 @@ Problem 378 in year = {1987} } """, - :lib => "HS2:378", ) get_hs378_nvar(; n::Integer = default_nvar, kwargs...) = 10 @@ -51,4 +50,4 @@ get_hs378_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs378_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs378_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs378_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs378_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs378_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs38.jl b/src/Meta/hs38.jl index d4ea277ef..6cd0cbe59 100644 --- a/src/Meta/hs38.jl +++ b/src/Meta/hs38.jl @@ -29,15 +29,15 @@ classification PLR2-AN-4-0 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 38 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 38 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -49,7 +49,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS38, HS:38", ) get_hs38_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -57,4 +56,4 @@ get_hs38_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs38_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs38_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs38_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs38_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs38_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs39.jl b/src/Meta/hs39.jl index 4e35e491d..d1826e76e 100644 --- a/src/Meta/hs39.jl +++ b/src/Meta/hs39.jl @@ -25,15 +25,15 @@ classification LOR2-AN-4-2 D. Cabral, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 39 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 39 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS39, HS:39", ) get_hs39_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -53,4 +52,4 @@ get_hs39_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs39_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs39_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs39_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs39_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs39_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs4.jl b/src/Meta/hs4.jl index a7fddad95..ef4fe0706 100644 --- a/src/Meta/hs4.jl +++ b/src/Meta/hs4.jl @@ -25,15 +25,15 @@ classification OBR2-AN-2-0 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 4 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 4 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS4, HS:4", ) get_hs4_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs4_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs4_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs4_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs4_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs4_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs4_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs40.jl b/src/Meta/hs40.jl index 546499dc3..5402f0b26 100644 --- a/src/Meta/hs40.jl +++ b/src/Meta/hs40.jl @@ -25,15 +25,15 @@ classification OOR2-AN-4-3 D. Cabral, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 40 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 40 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS40, HS:40", ) get_hs40_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -53,4 +52,4 @@ get_hs40_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs40_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs40_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs40_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs40_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs40_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs41.jl b/src/Meta/hs41.jl index 69c28b894..671ca3a0b 100644 --- a/src/Meta/hs41.jl +++ b/src/Meta/hs41.jl @@ -27,15 +27,15 @@ classification PLR2-AN-4-1 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 41 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 41 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS41, HS:41", ) get_hs41_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -55,4 +54,4 @@ get_hs41_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs41_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs41_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs41_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs41_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs41_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs42.jl b/src/Meta/hs42.jl index 420b46810..4014a2091 100644 --- a/src/Meta/hs42.jl +++ b/src/Meta/hs42.jl @@ -27,15 +27,15 @@ classification QQR2-AN-4-1 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 42 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 42 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS42, HS:42", ) get_hs42_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -56,4 +55,4 @@ get_hs42_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs42_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs42_nequ(; n::Integer = default_nvar, kwargs...) = 2 get_hs42_nineq(; n::Integer = default_nvar, kwargs...) = 0 -get_hs42_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file +get_hs42_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs43.jl b/src/Meta/hs43.jl index 0ba24dd5c..bda82dd9f 100644 --- a/src/Meta/hs43.jl +++ b/src/Meta/hs43.jl @@ -27,15 +27,15 @@ classification QQR2-AN-4-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 43 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 43 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS43, HS:43", ) get_hs43_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -55,4 +54,4 @@ get_hs43_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs43_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs43_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs43_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs43_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file +get_hs43_nineq(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs44.jl b/src/Meta/hs44.jl index dcb24bbd6..fb85f5333 100644 --- a/src/Meta/hs44.jl +++ b/src/Meta/hs44.jl @@ -25,15 +25,15 @@ classification QLR2-AN-4-6 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 44 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 44 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Ph.L. Toint, October 1990. -""", + SIF input: Ph.L. Toint, October 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: Ph.L. Toint, October 1990. year = {1981} } """, - :lib => "CUTEst:HS44, HS:44", ) get_hs44_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -53,4 +52,4 @@ get_hs44_ncon(; n::Integer = default_nvar, kwargs...) = 6 get_hs44_nlin(; n::Integer = default_nvar, kwargs...) = 6 get_hs44_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs44_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs44_nineq(; n::Integer = default_nvar, kwargs...) = 6 \ No newline at end of file +get_hs44_nineq(; n::Integer = default_nvar, kwargs...) = 6 diff --git a/src/Meta/hs45.jl b/src/Meta/hs45.jl index 66b5d5f93..2b9daa66b 100644 --- a/src/Meta/hs45.jl +++ b/src/Meta/hs45.jl @@ -27,15 +27,15 @@ classification PBR2-AN-5-0 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 45 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 45 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Ph.L. Toint, October 1990. -""", + SIF input: Ph.L. Toint, October 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: Ph.L. Toint, October 1990. year = {1981} } """, - :lib => "CUTEst:HS45, HS:45", ) get_hs45_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -55,4 +54,4 @@ get_hs45_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs45_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs45_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs45_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs45_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs45_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs46.jl b/src/Meta/hs46.jl index 7b06a46cb..c091da4a5 100644 --- a/src/Meta/hs46.jl +++ b/src/Meta/hs46.jl @@ -27,15 +27,15 @@ classification PGR2-AN-5-2 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 46 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 46 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Ph.L. Toint, October 1990. -""", + SIF input: Ph.L. Toint, October 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: Ph.L. Toint, October 1990. year = {1981} } """, - :lib => "CUTEst:HS46, HS:46", ) get_hs46_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -55,4 +54,4 @@ get_hs46_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs46_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs46_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs46_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs46_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs46_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs47.jl b/src/Meta/hs47.jl index 809ef1304..29b5391ef 100644 --- a/src/Meta/hs47.jl +++ b/src/Meta/hs47.jl @@ -27,15 +27,15 @@ classification PPR2-AN-5-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 47 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 47 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS47, HS:47", ) get_hs47_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -55,4 +54,4 @@ get_hs47_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs47_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs47_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs47_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs47_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs47_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs48.jl b/src/Meta/hs48.jl index deecc4a5c..d45bc7dc2 100644 --- a/src/Meta/hs48.jl +++ b/src/Meta/hs48.jl @@ -27,15 +27,15 @@ classification QLR2-AN-5-2 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 48 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 48 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS48, HS:48", ) get_hs48_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -56,4 +55,4 @@ get_hs48_nlin(; n::Integer = default_nvar, kwargs...) = 2 get_hs48_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs48_nequ(; n::Integer = default_nvar, kwargs...) = 2 get_hs48_nineq(; n::Integer = default_nvar, kwargs...) = 0 -get_hs48_nls_nequ(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file +get_hs48_nls_nequ(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs49.jl b/src/Meta/hs49.jl index f8d506906..4792dd871 100644 --- a/src/Meta/hs49.jl +++ b/src/Meta/hs49.jl @@ -27,15 +27,15 @@ classification PLR2-AN-5-2 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 49 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 49 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS49, HS:49", ) get_hs49_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -55,4 +54,4 @@ get_hs49_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs49_nlin(; n::Integer = default_nvar, kwargs...) = 2 get_hs49_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs49_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs49_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs49_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs5.jl b/src/Meta/hs5.jl index e7ad80157..179441fa0 100644 --- a/src/Meta/hs5.jl +++ b/src/Meta/hs5.jl @@ -25,15 +25,15 @@ classification OBR2-AN-2-0 N. Antunes, Curitiba, 10/2016. """, -:origin_notes => raw""" -problem 5 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 5 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS5, HS:5", ) get_hs5_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs5_ncon(; n::Integer = default_nvar, kwargs...) = 0 get_hs5_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs5_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs5_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs5_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs5_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs50.jl b/src/Meta/hs50.jl index 773c52594..25c07b77f 100644 --- a/src/Meta/hs50.jl +++ b/src/Meta/hs50.jl @@ -27,15 +27,15 @@ classification PLR2-AN-5-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 50 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 50 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS50, HS:50", ) get_hs50_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -55,4 +54,4 @@ get_hs50_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs50_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs50_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs50_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs50_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs50_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs51.jl b/src/Meta/hs51.jl index 7d0fbd3c4..b243c363f 100644 --- a/src/Meta/hs51.jl +++ b/src/Meta/hs51.jl @@ -27,15 +27,15 @@ classification QLR2-AN-5-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 51 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 51 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS51, HS:51", ) get_hs51_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -56,4 +55,4 @@ get_hs51_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs51_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs51_nequ(; n::Integer = default_nvar, kwargs...) = 3 get_hs51_nineq(; n::Integer = default_nvar, kwargs...) = 0 -get_hs51_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file +get_hs51_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs52.jl b/src/Meta/hs52.jl index 998aa31ac..37b9df79c 100644 --- a/src/Meta/hs52.jl +++ b/src/Meta/hs52.jl @@ -26,15 +26,15 @@ classification QLR2-AN-5-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 52 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 52 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -46,7 +46,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS52, HS:52", :implementation => :both, ) @@ -56,4 +55,4 @@ get_hs52_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs52_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs52_nequ(; n::Integer = default_nvar, kwargs...) = 3 get_hs52_nineq(; n::Integer = default_nvar, kwargs...) = 0 -get_hs52_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file +get_hs52_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs53.jl b/src/Meta/hs53.jl index 97813ab63..3017aeaa0 100644 --- a/src/Meta/hs53.jl +++ b/src/Meta/hs53.jl @@ -27,15 +27,15 @@ classification QLR2-AN-5-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 53 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 53 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS53, HS:53", ) get_hs53_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -56,4 +55,4 @@ get_hs53_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs53_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs53_nequ(; n::Integer = default_nvar, kwargs...) = 3 get_hs53_nineq(; n::Integer = default_nvar, kwargs...) = 0 -get_hs53_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file +get_hs53_nls_nequ(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs54.jl b/src/Meta/hs54.jl index 9187549da..ef0653ee1 100644 --- a/src/Meta/hs54.jl +++ b/src/Meta/hs54.jl @@ -27,16 +27,16 @@ classification GLR2-AN-6-1 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 54, incorrectly stated in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. -Betts problem 11.7, JOTA 21, 1977, pp.137-174. + :origin_notes => raw""" + problem 54, incorrectly stated in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. + Betts problem 11.7, JOTA 21, 1977, pp.137-174. -SIF input: A.R. Conn, April 1990 and Nick Gould, October 1990 -""", + SIF input: A.R. Conn, April 1990 and Nick Gould, October 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -48,7 +48,6 @@ SIF input: A.R. Conn, April 1990 and Nick Gould, October 1990 year = {1981} } """, - :lib => "CUTEst:HS54, HS:54", ) get_hs54_nvar(; n::Integer = default_nvar, kwargs...) = 6 @@ -56,4 +55,4 @@ get_hs54_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs54_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs54_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs54_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs54_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs54_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs55.jl b/src/Meta/hs55.jl index 70f0dd97f..e52555317 100644 --- a/src/Meta/hs55.jl +++ b/src/Meta/hs55.jl @@ -27,15 +27,15 @@ classification GLR2-AN-6-1 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 55 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 55 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, April 1990 -""", + SIF input: A.R. Conn, April 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS55, HS:55", ) get_hs55_nvar(; n::Integer = default_nvar, kwargs...) = 6 @@ -55,4 +54,4 @@ get_hs55_ncon(; n::Integer = default_nvar, kwargs...) = 6 get_hs55_nlin(; n::Integer = default_nvar, kwargs...) = 6 get_hs55_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs55_nequ(; n::Integer = default_nvar, kwargs...) = 6 -get_hs55_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs55_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs56.jl b/src/Meta/hs56.jl index 8eacdedda..386e1cec0 100644 --- a/src/Meta/hs56.jl +++ b/src/Meta/hs56.jl @@ -18,14 +18,13 @@ hs56_meta = Dict( :origin => :unknown, :implementation => :both, :url => "https://bitbucket.org/optrove/sif/src/master/HS56.SIF", - :notes => - raw""" -classification OOR2-AN-7-4 + :notes => raw""" + classification OOR2-AN-7-4 -classification PGR2-AN-7-4 + classification PGR2-AN-7-4 -A. Montoison, Montreal, 05/2018. -""", + A. Montoison, Montreal, 05/2018. + """, :origin_notes => raw""" problem 56 in W. Hock and K. Schittkowski, @@ -46,7 +45,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS56, HS:56", ) get_hs56_nvar(; n::Integer = default_nvar, kwargs...) = 7 diff --git a/src/Meta/hs57.jl b/src/Meta/hs57.jl index 00dc29996..535e97234 100644 --- a/src/Meta/hs57.jl +++ b/src/Meta/hs57.jl @@ -45,7 +45,6 @@ SIF input: A.R. Conn, April 1990 year = {1981} } """, - :lib => "CUTEst:HS57, HS:57", ) get_hs57_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs59.jl b/src/Meta/hs59.jl index b23609190..6f39b25b4 100644 --- a/src/Meta/hs59.jl +++ b/src/Meta/hs59.jl @@ -27,15 +27,15 @@ classification GLR2-AN-6-1 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 59 (corrected) in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 59 (corrected) in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn and Ph.L. Toint, November 1990. -""", + SIF input: A.R. Conn and Ph.L. Toint, November 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn and Ph.L. Toint, November 1990. year = {1981} } """, - :lib => "CUTEst:HS59, HS:59", ) get_hs59_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -55,4 +54,4 @@ get_hs59_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs59_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs59_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs59_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs59_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file +get_hs59_nineq(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs6.jl b/src/Meta/hs6.jl index 51e801f78..cd3a45a31 100644 --- a/src/Meta/hs6.jl +++ b/src/Meta/hs6.jl @@ -43,7 +43,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS6, HS:6", ) get_hs6_nvar(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs60.jl b/src/Meta/hs60.jl index db6fee846..eacffedd9 100644 --- a/src/Meta/hs60.jl +++ b/src/Meta/hs60.jl @@ -18,16 +18,15 @@ hs60_meta = Dict( :origin => :unknown, :implementation => :both, :url => "https://bitbucket.org/optrove/sif/src/master/HS60.SIF", - :notes => - raw""" -Hock and Schittkowski problem number 60. + :notes => raw""" + Hock and Schittkowski problem number 60. -classification OOR2-AY-3-1 + classification OOR2-AY-3-1 -classification PPR2-AN-3-1 + classification PPR2-AN-3-1 -A. Montoison, Montreal, 05/2018. -""", + A. Montoison, Montreal, 05/2018. + """, :origin_notes => raw""" problem 60 in W. Hock and K. Schittkowski, @@ -48,7 +47,6 @@ SIF input: J-M Collin, April 1990. year = {1981} } """, - :lib => "CUTEst:HS60, HS:60", ) get_hs60_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs61.jl b/src/Meta/hs61.jl index a8af2f33f..8de92db1d 100644 --- a/src/Meta/hs61.jl +++ b/src/Meta/hs61.jl @@ -44,7 +44,6 @@ SIF input: Ph.L. Toint, November 1990. year = {1981} } """, - :lib => "CUTEst:HS61, HS:61", ) get_hs61_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs62.jl b/src/Meta/hs62.jl index 257e30f67..c57087f0f 100644 --- a/src/Meta/hs62.jl +++ b/src/Meta/hs62.jl @@ -46,7 +46,6 @@ SIF input: J-M Collin and Ph. Toint, April 1990. year = {1981} } """, - :lib => "CUTEst:HS62, HS:62", ) get_hs62_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs63.jl b/src/Meta/hs63.jl index d3b15fdf1..6aae5b6c4 100644 --- a/src/Meta/hs63.jl +++ b/src/Meta/hs63.jl @@ -46,7 +46,6 @@ SIF input: J-M COLLIN, April 1990. year = {1981} } """, - :lib => "CUTEst:HS63, HS:63", ) get_hs63_nvar(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs64.jl b/src/Meta/hs64.jl index f4879625b..8806721bd 100644 --- a/src/Meta/hs64.jl +++ b/src/Meta/hs64.jl @@ -27,15 +27,15 @@ classification PPR2-AN-3-1 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 64 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 64 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: N. Gould, Dec 1989. -""", + SIF input: N. Gould, Dec 1989. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: N. Gould, Dec 1989. year = {1981} } """, - :lib => "CUTEst:HS64, HS:64", ) get_hs64_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -55,4 +54,4 @@ get_hs64_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs64_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs64_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs64_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs64_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs64_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs65.jl b/src/Meta/hs65.jl index e995b2e5b..3dae5b888 100644 --- a/src/Meta/hs65.jl +++ b/src/Meta/hs65.jl @@ -25,15 +25,15 @@ classification QQR2-AN-3-1 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 65 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 65 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Ph. Toint and Nick Gould, June 1991. -""", + SIF input: Ph. Toint and Nick Gould, June 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: Ph. Toint and Nick Gould, June 1991. year = {1981} } """, - :lib => "CUTEst:HS65, HS:65", ) get_hs65_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -53,4 +52,4 @@ get_hs65_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs65_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs65_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs65_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs65_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs65_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs66.jl b/src/Meta/hs66.jl index fc5f264ac..70e5e4bc3 100644 --- a/src/Meta/hs66.jl +++ b/src/Meta/hs66.jl @@ -27,15 +27,15 @@ classification LGR2-AN-3-2 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 66 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 66 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: B Baudson, March 1990. -""", + SIF input: B Baudson, March 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: B Baudson, March 1990. year = {1981} } """, - :lib => "CUTEst:HS66, HS:66", ) get_hs66_nvar(; n::Integer = default_nvar, kwargs...) = 3 @@ -55,4 +54,4 @@ get_hs66_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs66_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs66_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs66_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs66_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs66_nineq(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs68.jl b/src/Meta/hs68.jl index 6abffb944..ecf44d88d 100644 --- a/src/Meta/hs68.jl +++ b/src/Meta/hs68.jl @@ -27,20 +27,20 @@ classification OOR2-MN-4-2 classification GGR-P1-1 """, -:origin_notes => raw""" -Original source: -E. von Collani, Kostenoptimale Prufplane bei laufender -Kontrolle eines normalverteilten Merkmals, Dissertation, -Institut fur Angewandte Mathematik und Statistik, Universitat Wurzburg, 1978. + :origin_notes => raw""" + Original source: + E. von Collani, Kostenoptimale Prufplane bei laufender + Kontrolle eines normalverteilten Merkmals, Dissertation, + Institut fur Angewandte Mathematik und Statistik, Universitat Wurzburg, 1978. -problem 68 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + problem 68 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Nick Gould, August 1991. -""", + SIF input: Nick Gould, August 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -52,7 +52,6 @@ SIF input: Nick Gould, August 1991. year = {1981} } """, - :lib => "CUTEst:HS68, HS:68", ) get_hs68_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -60,4 +59,4 @@ get_hs68_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs68_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs68_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs68_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs68_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs68_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs69.jl b/src/Meta/hs69.jl index 84ba7935f..06b1005c4 100644 --- a/src/Meta/hs69.jl +++ b/src/Meta/hs69.jl @@ -27,20 +27,20 @@ classification OOR2-MN-4-2 classification GGR-P1-2 """, -:origin_notes => raw""" -Original source: -E. von Collani, Kostenoptimale Prufplane bei laufender -Kontrolle eines normalverteilten Merkmals, Dissertation, -Institut fur Angewandte Mathematik und Statistik, Universitat Wurzburg, 1978. + :origin_notes => raw""" + Original source: + E. von Collani, Kostenoptimale Prufplane bei laufender + Kontrolle eines normalverteilten Merkmals, Dissertation, + Institut fur Angewandte Mathematik und Statistik, Universitat Wurzburg, 1978. -problem 69 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + problem 69 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Nick Gould, August 1991. -""", + SIF input: Nick Gould, August 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -52,7 +52,6 @@ SIF input: Nick Gould, August 1991. year = {1981} } """, - :lib => "CUTEst:HS69, HS:69", ) get_hs69_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -60,4 +59,4 @@ get_hs69_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs69_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs69_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs69_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs69_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs69_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs7.jl b/src/Meta/hs7.jl index 13d20b179..08795e582 100644 --- a/src/Meta/hs7.jl +++ b/src/Meta/hs7.jl @@ -25,15 +25,15 @@ classification OOR2-AN-2-1 D. Orban, Montreal, 04/2016. """, -:origin_notes => raw""" -problem 7 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 7 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS7, HS:7", ) get_hs7_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs7_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs7_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs7_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs7_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs7_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs7_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs70.jl b/src/Meta/hs70.jl index 6a91777cd..3c56e4603 100644 --- a/src/Meta/hs70.jl +++ b/src/Meta/hs70.jl @@ -29,15 +29,15 @@ classification SQR2-AN-4-1 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 70 incorrectly stated in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 70 incorrectly stated in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Nick Gould, August 1991, modified May 2024 -""", + SIF input: Nick Gould, August 1991, modified May 2024 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -49,7 +49,6 @@ SIF input: Nick Gould, August 1991, modified May 2024 year = {1981} } """, - :lib => "CUTEst:HS70, HS:70", ) get_hs70_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -57,4 +56,4 @@ get_hs70_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs70_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs70_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs70_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs70_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs70_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs71.jl b/src/Meta/hs71.jl index 08b26d0ff..990ec215c 100644 --- a/src/Meta/hs71.jl +++ b/src/Meta/hs71.jl @@ -27,15 +27,15 @@ classification PPR2-AN-4-2 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 71 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 71 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: B Baudson, Apr 1989. -""", + SIF input: B Baudson, Apr 1989. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: B Baudson, Apr 1989. year = {1981} } """, - :lib => "CUTEst:HS71, HS:71", ) get_hs71_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -55,4 +54,4 @@ get_hs71_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs71_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs71_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs71_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs71_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs71_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs72.jl b/src/Meta/hs72.jl index 3c6cb7de1..d2531a78c 100644 --- a/src/Meta/hs72.jl +++ b/src/Meta/hs72.jl @@ -29,15 +29,15 @@ classification LPR2-AN-4-2 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 72 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 72 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, March 1990. -""", + SIF input: A.R. Conn, March 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -49,7 +49,6 @@ SIF input: A.R. Conn, March 1990. year = {1981} } """, - :lib => "CUTEst:HS72, HS:72", ) get_hs72_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -57,4 +56,4 @@ get_hs72_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs72_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs72_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs72_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs72_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs72_nineq(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs73.jl b/src/Meta/hs73.jl index c5fa00407..b8fe2fa89 100644 --- a/src/Meta/hs73.jl +++ b/src/Meta/hs73.jl @@ -29,15 +29,15 @@ classification LGI-AN-4-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 73 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 73 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: B Debarsy, Apr 1990. -""", + SIF input: B Debarsy, Apr 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -49,7 +49,6 @@ SIF input: B Debarsy, Apr 1990. year = {1981} } """, - :lib => "CUTEst:HS73, HS:73", ) get_hs73_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -57,4 +56,4 @@ get_hs73_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs73_nlin(; n::Integer = default_nvar, kwargs...) = 2 get_hs73_nnln(; n::Integer = default_nvar, kwargs...) = 1 get_hs73_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs73_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs73_nineq(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs74.jl b/src/Meta/hs74.jl index 40e56618d..cba05f6c0 100644 --- a/src/Meta/hs74.jl +++ b/src/Meta/hs74.jl @@ -27,15 +27,15 @@ classification PGR-AN-4-5 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 74 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 74 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: B Debarsy, Apr 1990. -""", + SIF input: B Debarsy, Apr 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: B Debarsy, Apr 1990. year = {1981} } """, - :lib => "CUTEst:HS74, HS:74", ) get_hs74_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -55,4 +54,4 @@ get_hs74_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs74_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs74_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs74_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs74_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs74_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs75.jl b/src/Meta/hs75.jl index b689a9afd..b22b017ca 100644 --- a/src/Meta/hs75.jl +++ b/src/Meta/hs75.jl @@ -27,15 +27,15 @@ classification PGR-AN-4-5 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 75 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 75 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: B Debarsy, Apr 1990. -""", + SIF input: B Debarsy, Apr 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: B Debarsy, Apr 1990. year = {1981} } """, - :lib => "CUTEst:HS75, HS:75", ) get_hs75_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -55,4 +54,4 @@ get_hs75_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs75_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs75_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs75_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs75_nineq(; n::Integer = default_nvar, kwargs...) = 1 \ No newline at end of file +get_hs75_nineq(; n::Integer = default_nvar, kwargs...) = 1 diff --git a/src/Meta/hs76.jl b/src/Meta/hs76.jl index ed920a7c3..a442484fc 100644 --- a/src/Meta/hs76.jl +++ b/src/Meta/hs76.jl @@ -27,15 +27,15 @@ classification QLR-AN-4-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 76 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 76 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, March 1991. -""", + SIF input: A.R. Conn, March 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, March 1991. year = {1981} } """, - :lib => "CUTEst:HS76, HS:76", ) get_hs76_nvar(; n::Integer = default_nvar, kwargs...) = 4 @@ -55,4 +54,4 @@ get_hs76_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs76_nlin(; n::Integer = default_nvar, kwargs...) = 3 get_hs76_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs76_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs76_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file +get_hs76_nineq(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs77.jl b/src/Meta/hs77.jl index 3dc63998d..db905bb72 100644 --- a/src/Meta/hs77.jl +++ b/src/Meta/hs77.jl @@ -27,15 +27,15 @@ classification PGR-AN-5-2 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 77 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 77 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A. Conn and Ph. Toint, March 1991 -""", + SIF input: A. Conn and Ph. Toint, March 1991 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A. Conn and Ph. Toint, March 1991 year = {1981} } """, - :lib => "CUTEst:HS77, HS:77", ) get_hs77_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -55,4 +54,4 @@ get_hs77_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs77_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs77_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs77_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs77_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs77_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs78.jl b/src/Meta/hs78.jl index 479f0d9c3..145b70a0f 100644 --- a/src/Meta/hs78.jl +++ b/src/Meta/hs78.jl @@ -27,15 +27,15 @@ classification PPR-AN-5-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 78 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 78 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: B.Debarsy, Jan 1990. -""", + SIF input: B.Debarsy, Jan 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: B.Debarsy, Jan 1990. year = {1981} } """, - :lib => "CUTEst:HS78, HS:78", ) get_hs78_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -55,4 +54,4 @@ get_hs78_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs78_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs78_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs78_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs78_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs78_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs79.jl b/src/Meta/hs79.jl index 91aa9d4e5..6641034f3 100644 --- a/src/Meta/hs79.jl +++ b/src/Meta/hs79.jl @@ -27,15 +27,15 @@ classification PPR-AN-5-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 79 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 79 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: B Debarsy, Apr 1990. -""", + SIF input: B Debarsy, Apr 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: B Debarsy, Apr 1990. year = {1981} } """, - :lib => "CUTEst:HS79, HS:79", ) get_hs79_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -55,4 +54,4 @@ get_hs79_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs79_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs79_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs79_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs79_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs79_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs8.jl b/src/Meta/hs8.jl index 8ff11d8d0..1a90b20ae 100644 --- a/src/Meta/hs8.jl +++ b/src/Meta/hs8.jl @@ -27,15 +27,15 @@ classification OOR2-AN-2-1 D. Orban, Montreal, 04/2016. """, -:origin_notes => raw""" -problem 8 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 8 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS8, HS:8", ) get_hs8_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -55,4 +54,4 @@ get_hs8_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs8_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs8_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs8_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs8_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs8_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs80.jl b/src/Meta/hs80.jl index ac33e8eba..18f125529 100644 --- a/src/Meta/hs80.jl +++ b/src/Meta/hs80.jl @@ -27,15 +27,15 @@ classification GPR-AN-5-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 80 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 80 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: B.Debarsy, Jan 1990. -""", + SIF input: B.Debarsy, Jan 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: B.Debarsy, Jan 1990. year = {1981} } """, - :lib => "CUTEst:HS80, HS:80", ) get_hs80_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -55,4 +54,4 @@ get_hs80_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs80_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs80_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs80_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs80_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs80_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs81.jl b/src/Meta/hs81.jl index 48bc33cd9..c73b2e708 100644 --- a/src/Meta/hs81.jl +++ b/src/Meta/hs81.jl @@ -27,21 +27,21 @@ classification GPR-AN-5-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -Problem 81 in - W. Hock and K. Schittkowski, - Test examples for nonlinear programming codes, - Lectures Notes in Economics and Mathematical Systems 187, - Springer Verlag, Heidelberg, 1981. + :origin_notes => raw""" + Problem 81 in + W. Hock and K. Schittkowski, + Test examples for nonlinear programming codes, + Lectures Notes in Economics and Mathematical Systems 187, + Springer Verlag, Heidelberg, 1981. -problem 80 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + problem 80 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: B.Debarsy, Jan 1990. -""", + SIF input: B.Debarsy, Jan 1990. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -53,7 +53,6 @@ SIF input: B.Debarsy, Jan 1990. year = {1981} } """, - :lib => "CUTEst:HS81, HS:81", ) get_hs81_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -61,4 +60,4 @@ get_hs81_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs81_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs81_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs81_nequ(; n::Integer = default_nvar, kwargs...) = 3 -get_hs81_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs81_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs83.jl b/src/Meta/hs83.jl index 410ef2fe3..83e07befe 100644 --- a/src/Meta/hs83.jl +++ b/src/Meta/hs83.jl @@ -27,15 +27,15 @@ classification QQR-AN-5-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 83 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 83 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: B Baudson, Apr 1989. -""", + SIF input: B Baudson, Apr 1989. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: B Baudson, Apr 1989. year = {1981} } """, - :lib => "CUTEst:HS83, HS:83", ) get_hs83_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -55,4 +54,4 @@ get_hs83_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs83_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs83_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs83_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs83_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file +get_hs83_nineq(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs84.jl b/src/Meta/hs84.jl index d516750f6..9173e8186 100644 --- a/src/Meta/hs84.jl +++ b/src/Meta/hs84.jl @@ -27,15 +27,15 @@ classification QQR-AN-5-3 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 84 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 84 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn, March 1991. -""", + SIF input: A.R. Conn, March 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: A.R. Conn, March 1991. year = {1981} } """, - :lib => "CUTEst:HS84, HS:84", ) get_hs84_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -55,4 +54,4 @@ get_hs84_ncon(; n::Integer = default_nvar, kwargs...) = 3 get_hs84_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs84_nnln(; n::Integer = default_nvar, kwargs...) = 3 get_hs84_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs84_nineq(; n::Integer = default_nvar, kwargs...) = 3 \ No newline at end of file +get_hs84_nineq(; n::Integer = default_nvar, kwargs...) = 3 diff --git a/src/Meta/hs86.jl b/src/Meta/hs86.jl index 51d81f8a3..684ed5b05 100644 --- a/src/Meta/hs86.jl +++ b/src/Meta/hs86.jl @@ -27,15 +27,15 @@ classification PLR-AN-5-10 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 86 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 86 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Nick Gould, August 1991. -""", + SIF input: Nick Gould, August 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: Nick Gould, August 1991. year = {1981} } """, - :lib => "CUTEst:HS86, HS:86", ) get_hs86_nvar(; n::Integer = default_nvar, kwargs...) = 5 @@ -55,4 +54,4 @@ get_hs86_ncon(; n::Integer = default_nvar, kwargs...) = 10 get_hs86_nlin(; n::Integer = default_nvar, kwargs...) = 10 get_hs86_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs86_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs86_nineq(; n::Integer = default_nvar, kwargs...) = 10 \ No newline at end of file +get_hs86_nineq(; n::Integer = default_nvar, kwargs...) = 10 diff --git a/src/Meta/hs87.jl b/src/Meta/hs87.jl index 552eacdde..5aee8dcec 100644 --- a/src/Meta/hs87.jl +++ b/src/Meta/hs87.jl @@ -27,21 +27,21 @@ classification OOI2-MN-6-4 classification PLR-AN-5-10 """, -:origin_notes => raw""" -problem 87 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. -Note: There are two variants described in the papers -D.H. Himmelblau "Applied nonlinear programming", -McGraw-Hill, New-York, 1972, problem 15, -and -A.R. Colville, "A comparative study on nonlinear programming", -IBM Scientific Center Report 320-2949, New York, 1968, problem 6. + :origin_notes => raw""" + problem 87 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. + Note: There are two variants described in the papers + D.H. Himmelblau "Applied nonlinear programming", + McGraw-Hill, New-York, 1972, problem 15, + and + A.R. Colville, "A comparative study on nonlinear programming", + IBM Scientific Center Report 320-2949, New York, 1968, problem 6. -SIF input: Nick Gould, August 1991. -""", + SIF input: Nick Gould, August 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -53,7 +53,6 @@ SIF input: Nick Gould, August 1991. year = {1981} } """, - :lib => "CUTEst:HS87, HS:87", ) get_hs87_nvar(; n::Integer = default_nvar, kwargs...) = 6 @@ -61,4 +60,4 @@ get_hs87_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs87_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs87_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs87_nequ(; n::Integer = default_nvar, kwargs...) = 4 -get_hs87_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs87_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs9.jl b/src/Meta/hs9.jl index fd561d69f..ccd842b67 100644 --- a/src/Meta/hs9.jl +++ b/src/Meta/hs9.jl @@ -25,15 +25,15 @@ classification OLR2-AN-2-1 A. Cebola, Curitiba , 10/2016. """, -:origin_notes => raw""" -problem 9 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 9 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: A.R. Conn March 1990 -""", + SIF input: A.R. Conn March 1990 + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: A.R. Conn March 1990 year = {1981} } """, - :lib => "CUTEst:HS9, HS:9", ) get_hs9_nvar(; n::Integer = default_nvar, kwargs...) = 2 @@ -53,4 +52,4 @@ get_hs9_ncon(; n::Integer = default_nvar, kwargs...) = 1 get_hs9_nlin(; n::Integer = default_nvar, kwargs...) = 1 get_hs9_nnln(; n::Integer = default_nvar, kwargs...) = 0 get_hs9_nequ(; n::Integer = default_nvar, kwargs...) = 1 -get_hs9_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs9_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/hs93.jl b/src/Meta/hs93.jl index 0958ac00f..289090bcc 100644 --- a/src/Meta/hs93.jl +++ b/src/Meta/hs93.jl @@ -29,15 +29,15 @@ classification PPR-AN-6-2 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 93 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 93 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Nick Gould, August 1991. -""", + SIF input: Nick Gould, August 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -49,7 +49,6 @@ SIF input: Nick Gould, August 1991. year = {1981} } """, - :lib => "CUTEst:HS93, HS:93", ) get_hs93_nvar(; n::Integer = default_nvar, kwargs...) = 6 @@ -57,4 +56,4 @@ get_hs93_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs93_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs93_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs93_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs93_nineq(; n::Integer = default_nvar, kwargs...) = 2 \ No newline at end of file +get_hs93_nineq(; n::Integer = default_nvar, kwargs...) = 2 diff --git a/src/Meta/hs95.jl b/src/Meta/hs95.jl index 2252c8cae..79b104a71 100644 --- a/src/Meta/hs95.jl +++ b/src/Meta/hs95.jl @@ -27,15 +27,15 @@ classification PPR-AN-6-4 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 95 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 95 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Ph. Toint, April 1991. -""", + SIF input: Ph. Toint, April 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: Ph. Toint, April 1991. year = {1981} } """, - :lib => "CUTEst:HS95, HS:95", ) get_hs95_nvar(; n::Integer = default_nvar, kwargs...) = 6 @@ -55,4 +54,4 @@ get_hs95_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs95_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs95_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs95_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs95_nineq(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file +get_hs95_nineq(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs96.jl b/src/Meta/hs96.jl index 33a3ca460..caff79e4a 100644 --- a/src/Meta/hs96.jl +++ b/src/Meta/hs96.jl @@ -27,15 +27,15 @@ classification PPR-AN-6-4 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 96 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 96 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Ph. Toint, April 1991. -""", + SIF input: Ph. Toint, April 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: Ph. Toint, April 1991. year = {1981} } """, - :lib => "CUTEst:HS96, HS:96", ) get_hs96_nvar(; n::Integer = default_nvar, kwargs...) = 6 @@ -55,4 +54,4 @@ get_hs96_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs96_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs96_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs96_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs96_nineq(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file +get_hs96_nineq(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs97.jl b/src/Meta/hs97.jl index 88598e533..f87205080 100644 --- a/src/Meta/hs97.jl +++ b/src/Meta/hs97.jl @@ -27,15 +27,15 @@ classification PPR-AN-6-4 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 97 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 97 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Ph. Toint, April 1991. -""", + SIF input: Ph. Toint, April 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: Ph. Toint, April 1991. year = {1981} } """, - :lib => "CUTEst:HS97, HS:97", ) get_hs97_nvar(; n::Integer = default_nvar, kwargs...) = 6 @@ -55,4 +54,4 @@ get_hs97_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs97_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs97_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs97_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs97_nineq(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file +get_hs97_nineq(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs98.jl b/src/Meta/hs98.jl index d06450bfd..8ab2689ee 100644 --- a/src/Meta/hs98.jl +++ b/src/Meta/hs98.jl @@ -27,15 +27,15 @@ classification PPR-AN-6-4 A. Montoison, Montreal, 05/2018. """, -:origin_notes => raw""" -problem 98 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 98 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Ph. Toint, April 1991. -""", + SIF input: Ph. Toint, April 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -47,7 +47,6 @@ SIF input: Ph. Toint, April 1991. year = {1981} } """, - :lib => "CUTEst:HS98, HS:98", ) get_hs98_nvar(; n::Integer = default_nvar, kwargs...) = 6 @@ -55,4 +54,4 @@ get_hs98_ncon(; n::Integer = default_nvar, kwargs...) = 4 get_hs98_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs98_nnln(; n::Integer = default_nvar, kwargs...) = 4 get_hs98_nequ(; n::Integer = default_nvar, kwargs...) = 0 -get_hs98_nineq(; n::Integer = default_nvar, kwargs...) = 4 \ No newline at end of file +get_hs98_nineq(; n::Integer = default_nvar, kwargs...) = 4 diff --git a/src/Meta/hs99.jl b/src/Meta/hs99.jl index 7733cf1ce..89a2777bd 100644 --- a/src/Meta/hs99.jl +++ b/src/Meta/hs99.jl @@ -25,15 +25,15 @@ classification OOR2-AN-7-2 classification PPR-AN-6-4 """, -:origin_notes => raw""" -problem 99 in -W. Hock and K. Schittkowski, -"Test examples for nonlinear programming codes", -Lectures Notes in Economics and Mathematical Systems 187, Springer -Verlag, Heidelberg, 1981. + :origin_notes => raw""" + problem 99 in + W. Hock and K. Schittkowski, + "Test examples for nonlinear programming codes", + Lectures Notes in Economics and Mathematical Systems 187, Springer + Verlag, Heidelberg, 1981. -SIF input: Ph. Toint, April 1991. -""", + SIF input: Ph. Toint, April 1991. + """, :reference => raw""" @book{HockSchittkowski1981, author = {Hock, W. and Schittkowski, K.}, @@ -45,7 +45,6 @@ SIF input: Ph. Toint, April 1991. year = {1981} } """, - :lib => "CUTEst:HS99, HS:99", ) get_hs99_nvar(; n::Integer = default_nvar, kwargs...) = 7 @@ -53,4 +52,4 @@ get_hs99_ncon(; n::Integer = default_nvar, kwargs...) = 2 get_hs99_nlin(; n::Integer = default_nvar, kwargs...) = 0 get_hs99_nnln(; n::Integer = default_nvar, kwargs...) = 2 get_hs99_nequ(; n::Integer = default_nvar, kwargs...) = 2 -get_hs99_nineq(; n::Integer = default_nvar, kwargs...) = 0 \ No newline at end of file +get_hs99_nineq(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/src/Meta/liarwhd.jl b/src/Meta/liarwhd.jl index 2c0344623..838faebed 100644 --- a/src/Meta/liarwhd.jl +++ b/src/Meta/liarwhd.jl @@ -62,7 +62,6 @@ SIF input: Ph. Toint, Aug 1990. doi = {10.1137/0725067} } """, - :lib => "CUTEst:LIARWHD, Luksan:38", ) get_liarwhd_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/marine.jl b/src/Meta/marine.jl index d538c26c9..5d571cee3 100644 --- a/src/Meta/marine.jl +++ b/src/Meta/marine.jl @@ -50,7 +50,6 @@ SIF input: Nick Gould, November 2000 doi = {10.2172/834714} } """, - :lib => "CUTEst:MARINE, COPS:6", ) get_marine_nvar(; n::Integer = default_nvar, nc::Int = 1, kwargs...) = diff --git a/src/Meta/methanol.jl b/src/Meta/methanol.jl index 1c2a53491..d8200432b 100644 --- a/src/Meta/methanol.jl +++ b/src/Meta/methanol.jl @@ -57,7 +57,6 @@ SIF input: Nick Gould, November 2000 doi = {10.2172/834714} } """, - :lib => "CUTEst:METHANOL, COPS:13", ) get_methanol_nvar(; n::Integer = default_nvar, kwargs...) = 30 * n + 5 diff --git a/src/Meta/minsurf.jl b/src/Meta/minsurf.jl index 800d4af16..c01175d48 100644 --- a/src/Meta/minsurf.jl +++ b/src/Meta/minsurf.jl @@ -50,7 +50,6 @@ SIF input: Ph. Toint, Jan 1991. doi = {10.2172/834714} } """, - :lib => "CUTEst:MINSURF, COPS:17", ) get_minsurf_nvar(; diff --git a/src/Meta/nazareth.jl b/src/Meta/nazareth.jl index 43991e33e..7ba160097 100644 --- a/src/Meta/nazareth.jl +++ b/src/Meta/nazareth.jl @@ -42,7 +42,6 @@ https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unco url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} } """, - :lib => "LuksanSparse:8", ) diff --git a/src/Meta/ncb20.jl b/src/Meta/ncb20.jl index c6d7a5c1e..06511a950 100644 --- a/src/Meta/ncb20.jl +++ b/src/Meta/ncb20.jl @@ -48,7 +48,6 @@ SIF input: Ph. Toint, October 1992. url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:NCB20, Luksan:40", ) get_ncb20_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/ncb20b.jl b/src/Meta/ncb20b.jl index da830019e..66fbf77b1 100644 --- a/src/Meta/ncb20b.jl +++ b/src/Meta/ncb20b.jl @@ -49,7 +49,6 @@ SIF input: Ph. Toint, April 1993. url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:NCB20B, Luksan:41", ) get_ncb20b_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/noncvxu2.jl b/src/Meta/noncvxu2.jl index eead0d3ba..b9b26868b 100644 --- a/src/Meta/noncvxu2.jl +++ b/src/Meta/noncvxu2.jl @@ -46,7 +46,6 @@ SIF input: Nick Gould, April 1996 url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:NONCVXU2, Luksan:43", ) get_noncvxu2_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/noncvxun.jl b/src/Meta/noncvxun.jl index 39551deb2..24a736ed8 100644 --- a/src/Meta/noncvxun.jl +++ b/src/Meta/noncvxun.jl @@ -49,7 +49,6 @@ SIF input: Nick Gould, April 1996 url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:NONCVXUN, Luksan:42", ) get_noncvxun_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/nondia.jl b/src/Meta/nondia.jl index 3a65b99bd..4cf12111b 100644 --- a/src/Meta/nondia.jl +++ b/src/Meta/nondia.jl @@ -55,7 +55,6 @@ SIF input: Ph. Toint, Dec 1989. year = {1978} } """, - :lib => "CUTEst:NONDIA, Luksan:44", ) get_nondia_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/nondquar.jl b/src/Meta/nondquar.jl index 8a9329b81..02ff8777f 100644 --- a/src/Meta/nondquar.jl +++ b/src/Meta/nondquar.jl @@ -55,7 +55,6 @@ SIF input: Ph. Toint, Dec 1989. year = {1988} } """, - :lib => "CUTEst:NONDQUAR, Luksan:45", ) get_nondquar_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/penalty3.jl b/src/Meta/penalty3.jl index 04d29f91e..d3afa34bb 100644 --- a/src/Meta/penalty3.jl +++ b/src/Meta/penalty3.jl @@ -52,7 +52,6 @@ SIF input: Nick Gould, Dec 1990. year = {1989} } """, - :lib => "CUTEst:PENALTY3, Luksan:46", ) get_penalty3_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/polygon.jl b/src/Meta/polygon.jl index c82793937..8300b00d4 100644 --- a/src/Meta/polygon.jl +++ b/src/Meta/polygon.jl @@ -45,7 +45,6 @@ SIF input: Nick Gould, December 2000 doi = {10.2172/834714} } """, - :lib => "CUTEst:POLYGON, COPS:1", ) get_polygon_nvar(; n::Integer = default_nvar, kwargs...) = 2 * div(n, 2) diff --git a/src/Meta/polygon1.jl b/src/Meta/polygon1.jl index 0cbf6e3cb..6dd2bd161 100644 --- a/src/Meta/polygon1.jl +++ b/src/Meta/polygon1.jl @@ -44,7 +44,6 @@ Argonne National Labs Technical Report ANL/MCS-246 (2000) doi = {10.2172/834714} } """, - :lib => "", ) get_polygon1_nvar(; n::Integer = default_nvar, kwargs...) = 2 * div(n, 2) diff --git a/src/Meta/quartc.jl b/src/Meta/quartc.jl index eec9c90ad..6ae53c11b 100644 --- a/src/Meta/quartc.jl +++ b/src/Meta/quartc.jl @@ -42,7 +42,6 @@ SIF input: Ph. Toint, March 1991. address = {Halifax, Canada} } """, - :lib => "CUTEst:QUARTC", ) get_quartc_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/robotarm.jl b/src/Meta/robotarm.jl index 5af0fc80c..c7911c5dc 100644 --- a/src/Meta/robotarm.jl +++ b/src/Meta/robotarm.jl @@ -39,7 +39,6 @@ Argonne National Labs Technical Report ANL/MCS-246 (2004) doi = {10.2172/834714} } """, - :lib => "CUTEst:ROBOTARM, COPS:8", ) get_robotarm_nvar(; n::Integer = default_nvar, kwargs...) = 9 * (max(2, div(n, 9)) + 1) + 1 diff --git a/src/Meta/rocket.jl b/src/Meta/rocket.jl index b6e781d38..95a0b0d17 100644 --- a/src/Meta/rocket.jl +++ b/src/Meta/rocket.jl @@ -50,7 +50,6 @@ SIF input: Nick Gould, November 2000 doi = {10.2172/834714} } """, - :lib => "CUTEst:ROCKET, COPS:10", ) get_rocket_nvar(; n::Integer = default_nvar, kwargs...) = 4 * n + 5 diff --git a/src/Meta/schmvett.jl b/src/Meta/schmvett.jl index b1ea7262e..1c5dd043f 100644 --- a/src/Meta/schmvett.jl +++ b/src/Meta/schmvett.jl @@ -56,7 +56,6 @@ SIF input: Ph. Toint, Dec 1989. doi = {10.1007/BF02165118} } """, - :lib => "CUTEst:SCHMVETT, Luksan:49", ) get_schmvett_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/scosine.jl b/src/Meta/scosine.jl index 345ed3502..120da81ad 100644 --- a/src/Meta/scosine.jl +++ b/src/Meta/scosine.jl @@ -54,7 +54,6 @@ SIF input: N. Gould, Nov 1997 url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:SCOSINE, Luksan:50", ) get_scosine_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/sinquad.jl b/src/Meta/sinquad.jl index fa6a4ae18..41b82f0a8 100644 --- a/src/Meta/sinquad.jl +++ b/src/Meta/sinquad.jl @@ -50,7 +50,6 @@ SIF input: N. Gould, Dec 1989. url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:SINQUAD, Luksan:51", ) get_sinquad_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/sparsine.jl b/src/Meta/sparsine.jl index f38e585dc..43935a169 100644 --- a/src/Meta/sparsine.jl +++ b/src/Meta/sparsine.jl @@ -47,7 +47,6 @@ SIF input: Nick Gould, November 1995 url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:SPARSINE, Luksan:52", ) get_sparsine_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/sparsqur.jl b/src/Meta/sparsqur.jl index 382f89399..a52e2c579 100644 --- a/src/Meta/sparsqur.jl +++ b/src/Meta/sparsqur.jl @@ -47,7 +47,6 @@ SIF input: Nick Gould, November 1995 url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:SPARSQUR, Luksan:53", ) get_sparsqur_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/spmsrtls.jl b/src/Meta/spmsrtls.jl index baf8ef9c2..0a568533c 100644 --- a/src/Meta/spmsrtls.jl +++ b/src/Meta/spmsrtls.jl @@ -43,7 +43,6 @@ SIF input: Ph. Toint, Dec 1989. year = {1989} } """, - :lib => "CUTEst:SPMSRTLS, Luksan:54", ) get_spmsrtls_nvar(; n::Integer = default_nvar, kwargs...) = max(Int(round((n + 2) / 3)), 34) * 3 - 2 diff --git a/src/Meta/srosenbr.jl b/src/Meta/srosenbr.jl index 88c326f0b..45c254bc2 100644 --- a/src/Meta/srosenbr.jl +++ b/src/Meta/srosenbr.jl @@ -64,7 +64,6 @@ SIF input: Ph. Toint, Dec 1989. doi = {10.1145/355934.355936} } """, - :lib => "CUTEst:SROSENBR, Luksan:55", ) get_srosenbr_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/steering.jl b/src/Meta/steering.jl index 18828e6c7..d3e556366 100644 --- a/src/Meta/steering.jl +++ b/src/Meta/steering.jl @@ -50,7 +50,6 @@ SIF input: Nick Gould, December 2000 doi = {10.2172/834714} } """, - :lib => "CUTEst:STEERING, COPS:9", ) get_steering_nvar(; n::Integer = default_nvar, kwargs...) = 5 * n + 6 diff --git a/src/Meta/tetra.jl b/src/Meta/tetra.jl index 0d2c0b4a1..b9f1280b2 100644 --- a/src/Meta/tetra.jl +++ b/src/Meta/tetra.jl @@ -38,7 +38,6 @@ Argonne National Labs Technical Report ANL/MCS-246 (2004) doi = {10.2172/834714} } """, - :lib => "COPS:19", ) get_tetra_nvar(; n::Integer = default_nvar, kwargs...) = 15 diff --git a/src/Meta/tointgss.jl b/src/Meta/tointgss.jl index e15868eaf..e6090d0a6 100644 --- a/src/Meta/tointgss.jl +++ b/src/Meta/tointgss.jl @@ -54,7 +54,6 @@ SIF input: Ph. Toint, Dec 1989, corrected Nick Gould, July 1993. year = {1983} } """, - :lib => "CUTEst:TOINTGSS, Luksan:56", ) get_tointgss_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/tquartic.jl b/src/Meta/tquartic.jl index 1e2134238..e0fb92707 100644 --- a/src/Meta/tquartic.jl +++ b/src/Meta/tquartic.jl @@ -50,7 +50,6 @@ SIF input: Ph. Toint, Dec 1989. url = {http://www.cs.cas.cz/matonoha/download/V1081.pdf}, } """, - :lib => "CUTEst:TQUARTIC, Luksan:57", ) get_tquartic_nvar(; n::Integer = default_nvar, kwargs...) = 1 * n + 0 diff --git a/src/Meta/triangle.jl b/src/Meta/triangle.jl index b45032311..2ab589688 100644 --- a/src/Meta/triangle.jl +++ b/src/Meta/triangle.jl @@ -37,7 +37,6 @@ Argonne National Labs Technical Report ANL/MCS-246 (2004) doi = {10.2172/834714} } """, - :lib => "COPS:18", ) get_triangle_nvar(; n::Integer = default_nvar, kwargs...) = 8 diff --git a/src/Meta/variational.jl b/src/Meta/variational.jl index dee4cd339..d9e8b49d5 100644 --- a/src/Meta/variational.jl +++ b/src/Meta/variational.jl @@ -44,7 +44,6 @@ Discretization of a variational problem url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} } """, - :lib => "LuksanSparse:15", ) diff --git a/src/utils.jl b/src/utils.jl index 19faebc30..ea3087a2c 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -1,160 +1,160 @@ -""" - LIB_REFERENCES - -Canonical BibTeX entries for the external test-set collections referenced in the -`:lib` field of `OptimizationProblems.meta`. Keys are the collection names used -in `:lib` (e.g. `"CUTEst"`, `"HS"`). - -See also [`export_bibtex`](@ref). -""" -const LIB_REFERENCES = Dict( - "CUTEst" => raw""" -@article{Gould2015CUTEst, - author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, - title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, - journal = {Computational Optimization and Applications}, - year = {2015}, - volume = {60}, - number = {3}, - pages = {545--557}, - doi = {10.1007/s10589-014-9687-3} -} -""", - "HS" => raw""" -@book{HockSchittkowski1981, - author = {Hock, W. and Schittkowski, K.}, - title = {Test Examples for Nonlinear Programming Codes}, - series = {Lecture Notes in Economics and Mathematical Systems}, - volume = {187}, - publisher = {Springer-Verlag}, - address = {Heidelberg}, - year = {1981} -} -""", - "HS2" => raw""" -@book{Schittkowski1987, - author = {Schittkowski, Klaus}, - title = {More Test Examples for Nonlinear Programming Codes}, - series = {Lecture Notes in Economics and Mathematical Systems}, - volume = {282}, - publisher = {Springer-Verlag}, - address = {Heidelberg}, - year = {1987}, - doi = {10.1007/978-3-642-61582-5} -} -""", - "COPS" => raw""" -@techreport{DolanMore2004COPS, - author = {Dolan, Elizabeth D. and Mor{\'e}, Jorge J.}, - title = {Benchmarking Optimization Software with {COPS} 3.0}, - institution = {Argonne National Laboratory}, - number = {ANL/MCS-TM-273}, - year = {2004}, - doi = {10.2172/834714} -} -""", - "MGH" => raw""" -@article{MoreGarbowHillstrom1981, - author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, - title = {Testing Unconstrained Optimization Software}, - journal = {ACM Transactions on Mathematical Software}, - year = {1981}, - volume = {7}, - number = {1}, - pages = {17--41}, - doi = {10.1145/355934.355936} -} -""", - "AMPGO" => raw""" -@misc{GavanaGOTestSuite, - author = {Gavana, Andrea}, - title = {Global Optimization Benchmarks}, - year = {2013}, - howpublished = {\url{http://infinity77.net/global_optimization/}}, - note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} -} -""", - "Luksan" => raw""" -@techreport{LuksanMatonohaVlcek2003, - author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, - title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, - institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, - number = {1081}, - year = {2003}, - address = {Prague, Czech Republic} -} -""", - "NIST" => raw""" -@misc{NIST_StRD, - author = {{Statistical Engineering Division, NIST}}, - title = {Statistical Reference Datasets for Nonlinear Least Squares Regression}, - howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, - year = {2000} -} -""", - "LuksanSparse" => raw""" -@techreport{LuksanMatonohaVlcek2010Sparse, - author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, - title = {Sparse Test Problems for Unconstrained Optimization}, - institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, - number = {V-1064}, - year = {2010}, - address = {Prague, Czech Republic}, - url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} -} -""", -) - -export LIB_REFERENCES - -""" - export_bibtex(filename = "OptimizationProblems.bib"; include_lib_refs = true) - -Write all non-empty `:reference` BibTeX entries from `OptimizationProblems.meta` -to `filename`. Entries are deduplicated by their BibTeX key, so problems sharing -the same reference only appear once. - -If `include_lib_refs` is `true` (the default), one BibTeX entry per test-set -collection referenced in the `:lib` field is also appended. -""" -function export_bibtex(filename = "OptimizationProblems.bib"; include_lib_refs::Bool = true) - seen_keys = Set{String}() - count = 0 - open(filename, "w") do io - # Per-problem references (from :reference field) - for row in eachrow(OptimizationProblems.meta) - ref = strip(row[:reference]) - isempty(ref) && continue - # Extract the BibTeX citation key (first token after @type{) - m = match(r"@\w+\s*[{(]\s*([^,\s]+)\s*,"s, ref) - key = isnothing(m) ? ref : m.captures[1] - key in seen_keys && continue - push!(seen_keys, key) - println(io, ref) - println(io) - count += 1 - end - # One BibTeX entry per test-set collection that appears in any :lib value. - if include_lib_refs - collections = Set{String}() - for row in eachrow(OptimizationProblems.meta) - for entry in split(row[:lib], ",") - coll = strip(split(strip(entry), ":")[1]) - isempty(coll) || push!(collections, coll) - end - end - for coll in sort(collect(collections)) - haskey(LIB_REFERENCES, coll) || continue - ref = strip(LIB_REFERENCES[coll]) - m = match(r"@\w+\s*[{(]\s*([^,\s]+)\s*,"s, ref) - key = isnothing(m) ? ref : m.captures[1] - key in seen_keys && continue - push!(seen_keys, key) - println(io, ref) - println(io) - count += 1 - end - end - end - @info "Exported $count BibTeX entries to $filename" -end +""" + LIB_REFERENCES + +Canonical BibTeX entries for the external test-set collections referenced in the +`:lib` field of `OptimizationProblems.meta`. Keys are the collection names used +in `:lib` (e.g. `"CUTEst"`, `"HS"`). + +See also [`export_bibtex`](@ref). +""" +const LIB_REFERENCES = Dict( + "CUTEst" => raw""" +@article{Gould2015CUTEst, + author = {Gould, N. I. M. and Orban, D. and Toint, Ph. L.}, + title = {{CUTEst}: a Constrained and Unconstrained Testing Environment with safe threads for mathematical optimization}, + journal = {Computational Optimization and Applications}, + year = {2015}, + volume = {60}, + number = {3}, + pages = {545--557}, + doi = {10.1007/s10589-014-9687-3} +} +""", + "HS" => raw""" +@book{HockSchittkowski1981, + author = {Hock, W. and Schittkowski, K.}, + title = {Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {187}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1981} +} +""", + "HS2" => raw""" +@book{Schittkowski1987, + author = {Schittkowski, Klaus}, + title = {More Test Examples for Nonlinear Programming Codes}, + series = {Lecture Notes in Economics and Mathematical Systems}, + volume = {282}, + publisher = {Springer-Verlag}, + address = {Heidelberg}, + year = {1987}, + doi = {10.1007/978-3-642-61582-5} +} +""", + "COPS" => raw""" +@techreport{DolanMore2004COPS, + author = {Dolan, Elizabeth D. and Mor{\'e}, Jorge J.}, + title = {Benchmarking Optimization Software with {COPS} 3.0}, + institution = {Argonne National Laboratory}, + number = {ANL/MCS-TM-273}, + year = {2004}, + doi = {10.2172/834714} +} +""", + "MGH" => raw""" +@article{MoreGarbowHillstrom1981, + author = {Mor{\'e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.}, + title = {Testing Unconstrained Optimization Software}, + journal = {ACM Transactions on Mathematical Software}, + year = {1981}, + volume = {7}, + number = {1}, + pages = {17--41}, + doi = {10.1145/355934.355936} +} +""", + "AMPGO" => raw""" +@misc{GavanaGOTestSuite, + author = {Gavana, Andrea}, + title = {Global Optimization Benchmarks}, + year = {2013}, + howpublished = {\url{http://infinity77.net/global_optimization/}}, + note = {Collection of benchmark functions and algorithm comparisons for global optimization (including AMPGO)} +} +""", + "Luksan" => raw""" +@techreport{LuksanMatonohaVlcek2003, + author = {Luksan, Ladislav and Matonoha, Cestmir and Vlcek, Jan}, + title = {Modified {CUTE} Problems for Sparse Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {1081}, + year = {2003}, + address = {Prague, Czech Republic} +} +""", + "NIST" => raw""" +@misc{NIST_StRD, + author = {{Statistical Engineering Division, NIST}}, + title = {Statistical Reference Datasets for Nonlinear Least Squares Regression}, + howpublished = {\url{https://www.itl.nist.gov/div898/strd/nls/nls_main.shtml}}, + year = {2000} +} +""", + "LuksanSparse" => raw""" +@techreport{LuksanMatonohaVlcek2010Sparse, + author = {Luksan, Ladislav and Matonoha, Ctirad and Vlcek, Jan}, + title = {Sparse Test Problems for Unconstrained Optimization}, + institution = {Institute of Computer Science, Academy of Sciences of the Czech Republic}, + number = {V-1064}, + year = {2010}, + address = {Prague, Czech Republic}, + url = {https://www.researchgate.net/publication/325314400_Sparse_Test_Problems_for_Unconstrained_Optimization} +} +""", +) + +export LIB_REFERENCES + +""" + export_bibtex(filename = "OptimizationProblems.bib"; include_lib_refs = true) + +Write all non-empty `:reference` BibTeX entries from `OptimizationProblems.meta` +to `filename`. Entries are deduplicated by their BibTeX key, so problems sharing +the same reference only appear once. + +If `include_lib_refs` is `true` (the default), one BibTeX entry per test-set +collection referenced in the `:lib` field is also appended. +""" +function export_bibtex(filename = "OptimizationProblems.bib"; include_lib_refs::Bool = true) + seen_keys = Set{String}() + count = 0 + open(filename, "w") do io + # Per-problem references (from :reference field) + for row in eachrow(OptimizationProblems.meta) + ref = strip(row[:reference]) + isempty(ref) && continue + # Extract the BibTeX citation key (first token after @type{) + m = match(r"@\w+\s*[{(]\s*([^,\s]+)\s*,"s, ref) + key = isnothing(m) ? ref : m.captures[1] + key in seen_keys && continue + push!(seen_keys, key) + println(io, ref) + println(io) + count += 1 + end + # One BibTeX entry per test-set collection that appears in any :lib value. + if include_lib_refs + collections = Set{String}() + for row in eachrow(OptimizationProblems.meta) + for entry in split(row[:lib], ",") + coll = strip(split(strip(entry), ":")[1]) + isempty(coll) || push!(collections, coll) + end + end + for coll in sort(collect(collections)) + haskey(LIB_REFERENCES, coll) || continue + ref = strip(LIB_REFERENCES[coll]) + m = match(r"@\w+\s*[{(]\s*([^,\s]+)\s*,"s, ref) + key = isnothing(m) ? ref : m.captures[1] + key in seen_keys && continue + push!(seen_keys, key) + println(io, ref) + println(io) + count += 1 + end + end + end + @info "Exported $count BibTeX entries to $filename" +end diff --git a/test/test-defined-problems.jl b/test/test-defined-problems.jl index c99ca714e..27aaac15a 100644 --- a/test/test-defined-problems.jl +++ b/test/test-defined-problems.jl @@ -27,7 +27,7 @@ end for prob_name in var_probs prob_sym = Symbol(prob_name) - + get_nvar_func = getfield(OptimizationProblems, Symbol("get_", prob_name, "_nvar")) for n in (50, 100) @@ -41,7 +41,7 @@ end constructor = getfield(mod, prob_sym) @test_logs (:warn, msg_re) constructor(; n = n) end - + break end end diff --git a/test/test-meta-fields.jl b/test/test-meta-fields.jl index d843e5770..28db9acc3 100644 --- a/test/test-meta-fields.jl +++ b/test/test-meta-fields.jl @@ -1,78 +1,78 @@ -""" - is_valid_url(s) -> Bool - -Return `true` if every comma-separated part of `s` is a syntactically valid -HTTP or HTTPS URL. A single URL (no commas) is the common case. -No network request is made; only the structure of each part is checked. -""" -function is_valid_url(s::String) - parts = strip.(split(s, ",")) - return all(p -> match(r"^https?://[^\s/$.?#][^\s]*$"i, p) !== nothing, parts) -end - -""" - is_valid_bibtex(s) -> Bool - -Return `true` if `s` looks like a structurally valid BibTeX entry, i.e.: -- Starts with `@entrytype{key,` (or parentheses variant). -- Has balanced curly braces. -""" -function is_valid_bibtex(s::String) - s = strip(s) - isempty(s) && return false - # Must match @entrytype{key, or @entrytype(key, - match(r"^@\w+\s*[{(]\s*[^,\s]+\s*,"s, s) === nothing && return false - # Braces must be balanced - depth = 0 - for c in s - if c == '{' - depth += 1 - elseif c == '}' - depth -= 1 - depth < 0 && return false - end - end - return depth == 0 -end - -@testset "Meta fields: :url format" begin - invalid = [ - (row[:name], row[:url]) for row in eachrow(OptimizationProblems.meta) if - !isempty(row[:url]) && !is_valid_url(row[:url]) - ] - for (name, url) in invalid - @error "Problem $name has an invalid :url format: $url" - end - @test isempty(invalid) -end - -@testset "Meta fields: :reference BibTeX structure" begin - invalid = [ - row[:name] for row in eachrow(OptimizationProblems.meta) if - !isempty(strip(row[:reference])) && !is_valid_bibtex(row[:reference]) - ] - for name in invalid - @error "Problem $name has an invalid BibTeX entry in :reference" - end - @test isempty(invalid) -end - -@testset "Meta fields: :lib format" begin - invalid = Tuple{String, String, String}[] - for row in eachrow(OptimizationProblems.meta) - isempty(row[:lib]) && continue - for entry in split(row[:lib], ",") - e = strip(entry) - m = match(r"^(\w+):\S+$", e) - if m === nothing - push!(invalid, (row[:name], e, "bad format (expected 'Collection:ID')")) - elseif !haskey(OptimizationProblems.LIB_REFERENCES, m.captures[1]) - push!(invalid, (row[:name], e, "unknown collection '$(m.captures[1])'")) - end - end - end - for (name, entry, reason) in invalid - @error "Problem $name has invalid :lib entry '$entry': $reason" - end - @test isempty(invalid) -end +""" + is_valid_url(s) -> Bool + +Return `true` if every comma-separated part of `s` is a syntactically valid +HTTP or HTTPS URL. A single URL (no commas) is the common case. +No network request is made; only the structure of each part is checked. +""" +function is_valid_url(s::String) + parts = strip.(split(s, ",")) + return all(p -> match(r"^https?://[^\s/$.?#][^\s]*$"i, p) !== nothing, parts) +end + +""" + is_valid_bibtex(s) -> Bool + +Return `true` if `s` looks like a structurally valid BibTeX entry, i.e.: +- Starts with `@entrytype{key,` (or parentheses variant). +- Has balanced curly braces. +""" +function is_valid_bibtex(s::String) + s = strip(s) + isempty(s) && return false + # Must match @entrytype{key, or @entrytype(key, + match(r"^@\w+\s*[{(]\s*[^,\s]+\s*,"s, s) === nothing && return false + # Braces must be balanced + depth = 0 + for c in s + if c == '{' + depth += 1 + elseif c == '}' + depth -= 1 + depth < 0 && return false + end + end + return depth == 0 +end + +@testset "Meta fields: :url format" begin + invalid = [ + (row[:name], row[:url]) for + row in eachrow(OptimizationProblems.meta) if !isempty(row[:url]) && !is_valid_url(row[:url]) + ] + for (name, url) in invalid + @error "Problem $name has an invalid :url format: $url" + end + @test isempty(invalid) +end + +@testset "Meta fields: :reference BibTeX structure" begin + invalid = [ + row[:name] for row in eachrow(OptimizationProblems.meta) if + !isempty(strip(row[:reference])) && !is_valid_bibtex(row[:reference]) + ] + for name in invalid + @error "Problem $name has an invalid BibTeX entry in :reference" + end + @test isempty(invalid) +end + +@testset "Meta fields: :lib format" begin + invalid = Tuple{String, String, String}[] + for row in eachrow(OptimizationProblems.meta) + isempty(row[:lib]) && continue + for entry in split(row[:lib], ",") + e = strip(entry) + m = match(r"^(\w+):\S+$", e) + if m === nothing + push!(invalid, (row[:name], e, "bad format (expected 'Collection:ID')")) + elseif !haskey(OptimizationProblems.LIB_REFERENCES, m.captures[1]) + push!(invalid, (row[:name], e, "unknown collection '$(m.captures[1])'")) + end + end + end + for (name, entry, reason) in invalid + @error "Problem $name has invalid :lib entry '$entry': $reason" + end + @test isempty(invalid) +end From 5340562360c9e014ea107956635a0bf0c3cba2fc Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU <bpineau59@gmail.com> Date: Tue, 5 May 2026 12:00:57 -0400 Subject: [PATCH 14/21] add some problems defined in PureJuMP but not in ADNPProblems and vice versa --- Project.toml | 4 + 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/Shpak1.jl | 4 + src/Meta/Shpak2.jl | 4 + src/Meta/Shpak3.jl | 4 + src/Meta/Shpak4.jl | 4 + src/Meta/Shpak5.jl | 4 + src/Meta/Shpak6.jl | 4 + src/Meta/hs52.jl | 1 + src/PureJuMP/curly10.jl | 23 ++ src/PureJuMP/curly20.jl | 23 ++ src/PureJuMP/curly30.jl | 23 ++ test/runtests.jl | 6 +- 21 files changed, 2157 insertions(+), 4 deletions(-) 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 diff --git a/Project.toml b/Project.toml index 7f6e173be..48a83a1df 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/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/Shpak1.jl b/src/Meta/Shpak1.jl index 02303cc9f..fc71e6da4 100644 --- a/src/Meta/Shpak1.jl +++ b/src/Meta/Shpak1.jl @@ -16,9 +16,13 @@ shpak1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, +<<<<<<< HEAD <<<<<<< HEAD :implementation => :both, ======= +======= + :implementation => :both, +>>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", :notes => raw""" first problem of diff --git a/src/Meta/Shpak2.jl b/src/Meta/Shpak2.jl index 4bb3a8fbb..f90075950 100644 --- a/src/Meta/Shpak2.jl +++ b/src/Meta/Shpak2.jl @@ -16,9 +16,13 @@ shpak2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, +<<<<<<< HEAD <<<<<<< HEAD :implementation => :both, ======= +======= + :implementation => :both, +>>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", :notes => raw""" Second problem of diff --git a/src/Meta/Shpak3.jl b/src/Meta/Shpak3.jl index 47765a088..b17b39616 100644 --- a/src/Meta/Shpak3.jl +++ b/src/Meta/Shpak3.jl @@ -16,9 +16,13 @@ shpak3_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, +<<<<<<< HEAD <<<<<<< HEAD :implementation => :both, ======= +======= + :implementation => :both, +>>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", :notes => raw""" third problem of diff --git a/src/Meta/Shpak4.jl b/src/Meta/Shpak4.jl index 420da1c18..1da6ed01d 100644 --- a/src/Meta/Shpak4.jl +++ b/src/Meta/Shpak4.jl @@ -16,9 +16,13 @@ shpak4_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, +<<<<<<< HEAD <<<<<<< HEAD :implementation => :both, ======= +======= + :implementation => :both, +>>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", :notes => raw""" 4th problem of diff --git a/src/Meta/Shpak5.jl b/src/Meta/Shpak5.jl index 64eea9936..c205641f0 100644 --- a/src/Meta/Shpak5.jl +++ b/src/Meta/Shpak5.jl @@ -16,9 +16,13 @@ shpak5_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, +<<<<<<< HEAD <<<<<<< HEAD :implementation => :both, ======= +======= + :implementation => :both, +>>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", :notes => raw""" fifth problem of diff --git a/src/Meta/Shpak6.jl b/src/Meta/Shpak6.jl index c7103aa8e..33916abe1 100644 --- a/src/Meta/Shpak6.jl +++ b/src/Meta/Shpak6.jl @@ -16,9 +16,13 @@ shpak6_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, +<<<<<<< HEAD <<<<<<< HEAD :implementation => :both, ======= +======= + :implementation => :both, +>>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", :notes => raw""" 6th problem of diff --git a/src/Meta/hs52.jl b/src/Meta/hs52.jl index 37b9df79c..1da3f23ee 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, :url => "https://bitbucket.org/optrove/sif/src/master/HS52.SIF", :notes => raw""" Hock and Schittkowski problem number 52. 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/test/runtests.jl b/test/runtests.jl index 89d41e231..1357b8643 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 0bfd3ad1c3caee2977be36ea7e415984da24ea3b Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU <bpineau59@gmail.com> Date: Wed, 6 May 2026 16:09:48 -0400 Subject: [PATCH 15/21] :implementation features --- src/ADNLPProblems/glider.jl | 48 +++++++++++++++++++++++++++++++++++++ src/ADNLPProblems/pinene.jl | 13 ++++++---- 2 files changed, 57 insertions(+), 4 deletions(-) diff --git a/src/ADNLPProblems/glider.jl b/src/ADNLPProblems/glider.jl index 6485307f2..8ed5a84f4 100644 --- a/src/ADNLPProblems/glider.jl +++ b/src/ADNLPProblems/glider.jl @@ -34,6 +34,11 @@ function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs. cL_max = T(1.4) N = n +<<<<<<< HEAD +======= + nvar = 5*(N + 1) + 1 + ncon = 4*N +>>>>>>> 8828f799 (:implementation features) # ----------------------------- # Variable layout @@ -99,6 +104,16 @@ function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs. 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 +<<<<<<< HEAD +======= + # 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 +>>>>>>> 8828f799 (:implementation features) return cx end @@ -159,6 +174,39 @@ function glider(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs. lvar[idx_tf] = 0 +<<<<<<< HEAD +======= + 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 +>>>>>>> 8828f799 (:implementation features) for i = 0:N lvar[idx_x(i)] = 0 lvar[idx_vx(i)] = 0 diff --git a/src/ADNLPProblems/pinene.jl b/src/ADNLPProblems/pinene.jl index daec118b5..ae4f487c1 100644 --- a/src/ADNLPProblems/pinene.jl +++ b/src/ADNLPProblems/pinene.jl @@ -138,10 +138,15 @@ function pinene(args...; n::Int = default_nvar, type::Type{T} = Float64, kwargs. 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 = "pinene"; + kwargs..., ) end From f0e4abb9b57bb8f7bfe6c54d1aeb1224f65160e5 Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU <bpineau59@gmail.com> Date: Wed, 6 May 2026 16:47:16 -0400 Subject: [PATCH 16/21] 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 ----------------------- 15 files changed, 12 insertions(+), 81 deletions(-) delete mode 100644 src/PureJuMP/curly10.jl delete mode 100644 src/PureJuMP/curly20.jl delete mode 100644 src/PureJuMP/curly30.jl diff --git a/src/Meta/catmix.jl b/src/Meta/catmix.jl index f38525287..3801f658b 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, :url => "https://bitbucket.org/optrove/sif/src/master/CATMIX.SIF", :notes => raw""" Catalyst Mixing Problem diff --git a/src/Meta/curly10.jl b/src/Meta/curly10.jl index e60fdbafd..e3a00f1a9 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, :url => "https://bitbucket.org/optrove/sif/src/master/CURLY10.SIF", :notes => raw""" A banded function with semi-bandwidth b and diff --git a/src/Meta/curly20.jl b/src/Meta/curly20.jl index a99346673..ac98e2350 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, :url => "https://bitbucket.org/optrove/sif/src/master/CURLY20.SIF", :notes => raw""" A banded function with semi-bandwidth b and diff --git a/src/Meta/curly30.jl b/src/Meta/curly30.jl index 2312b7b0e..f54daaee8 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, :url => "https://bitbucket.org/optrove/sif/src/master/CURLY30.SIF", :notes => raw""" A banded function with semi-bandwidth b and diff --git a/src/Meta/gasoil.jl b/src/Meta/gasoil.jl index 09a31a63c..cf0651df1 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, :url => "https://bitbucket.org/optrove/sif/src/master/GASOIL.SIF", :notes => raw""" Catalytic Cracking of Gas Oil Problem diff --git a/src/Meta/glider.jl b/src/Meta/glider.jl index a08ae5443..9bb555ca9 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, :url => "https://bitbucket.org/optrove/sif/src/master/GLIDER.SIF", :notes => raw""" Hang Glider Problem diff --git a/src/Meta/methanol.jl b/src/Meta/methanol.jl index d8200432b..5c8213a99 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, :url => "https://bitbucket.org/optrove/sif/src/master/METHANOL.SIF", :notes => raw""" Methanol-to-Hydrocarbons Problem diff --git a/src/Meta/minsurf.jl b/src/Meta/minsurf.jl index c01175d48..a2e443f1d 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, :url => "https://bitbucket.org/optrove/sif/src/master/MINSURF.SIF", :notes => raw""" Minimal surface with obstacle problem diff --git a/src/Meta/pinene.jl b/src/Meta/pinene.jl index 7f4e8e947..14e3265d6 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, :url => "https://bitbucket.org/optrove/sif/src/master/PINENE.SIF", :notes => raw""" Isomerization of Alpha-Pinene Problem diff --git a/src/Meta/rocket.jl b/src/Meta/rocket.jl index 95a0b0d17..2313460e9 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, :url => "https://bitbucket.org/optrove/sif/src/master/ROCKET.SIF", :notes => raw""" Goddard Rocket Problem diff --git a/src/Meta/steering.jl b/src/Meta/steering.jl index d3e556366..86c412638 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, :url => "https://bitbucket.org/optrove/sif/src/master/STEERING.SIF", :notes => raw""" Rocket Steering Problem diff --git a/src/Meta/torsion.jl b/src/Meta/torsion.jl index 982c6c34a..80f5dc92d 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, :url => "https://doi.org/10.2172/834714", :notes => raw""" Torsion problem 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 From 1ff553b106c945aa3d2cc8ff38d7272cdf52dca1 Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU <bpineau59@gmail.com> Date: Tue, 26 May 2026 11:11:59 -0400 Subject: [PATCH 17/21] add unit test for :implementation consistency --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 15a83781f..7a3b58566 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.jl.*.cov *.jl.mem Manifest.toml +.DS_Store *.bib */settings.local.json .DS_Store \ No newline at end of file From 49720a88d97fc765c440ed7452bffb5b08273371 Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU <bpineau59@gmail.com> Date: Tue, 26 May 2026 15:24:50 -0400 Subject: [PATCH 18/21] rebase & 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 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Meta/catmix.jl b/src/Meta/catmix.jl index 3801f658b..f38525287 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 => :adnlpmodels, + :implementation => :jump, :url => "https://bitbucket.org/optrove/sif/src/master/CATMIX.SIF", :notes => raw""" Catalyst Mixing Problem diff --git a/src/Meta/curly10.jl b/src/Meta/curly10.jl index e3a00f1a9..0ce8e06be 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 => :jump, + :implementation => :adnlpmodel, :url => "https://bitbucket.org/optrove/sif/src/master/CURLY10.SIF", :notes => raw""" A banded function with semi-bandwidth b and diff --git a/src/Meta/curly20.jl b/src/Meta/curly20.jl index ac98e2350..6747f7d84 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 => :jump, + :implementation => :adnlpmodel, :url => "https://bitbucket.org/optrove/sif/src/master/CURLY20.SIF", :notes => raw""" A banded function with semi-bandwidth b and diff --git a/src/Meta/curly30.jl b/src/Meta/curly30.jl index f54daaee8..7be0da878 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 => :jump, + :implementation => :adnlpmodel, :url => "https://bitbucket.org/optrove/sif/src/master/CURLY30.SIF", :notes => raw""" A banded function with semi-bandwidth b and diff --git a/src/Meta/gasoil.jl b/src/Meta/gasoil.jl index cf0651df1..09a31a63c 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 => :adnlpmodels, + :implementation => :jump, :url => "https://bitbucket.org/optrove/sif/src/master/GASOIL.SIF", :notes => raw""" Catalytic Cracking of Gas Oil Problem diff --git a/src/Meta/glider.jl b/src/Meta/glider.jl index 9bb555ca9..a08ae5443 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 => :adnlpmodels, + :implementation => :jump, :url => "https://bitbucket.org/optrove/sif/src/master/GLIDER.SIF", :notes => raw""" Hang Glider Problem diff --git a/src/Meta/methanol.jl b/src/Meta/methanol.jl index 5c8213a99..d8200432b 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 => :adnlpmodels, + :implementation => :jump, :url => "https://bitbucket.org/optrove/sif/src/master/METHANOL.SIF", :notes => raw""" Methanol-to-Hydrocarbons Problem diff --git a/src/Meta/minsurf.jl b/src/Meta/minsurf.jl index a2e443f1d..c01175d48 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 => :adnlpmodels, + :implementation => :jump, :url => "https://bitbucket.org/optrove/sif/src/master/MINSURF.SIF", :notes => raw""" Minimal surface with obstacle problem diff --git a/src/Meta/pinene.jl b/src/Meta/pinene.jl index 14e3265d6..7f4e8e947 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 => :adnlpmodels, + :implementation => :jump, :url => "https://bitbucket.org/optrove/sif/src/master/PINENE.SIF", :notes => raw""" Isomerization of Alpha-Pinene Problem diff --git a/src/Meta/rocket.jl b/src/Meta/rocket.jl index 2313460e9..95a0b0d17 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 => :adnlpmodels, + :implementation => :jump, :url => "https://bitbucket.org/optrove/sif/src/master/ROCKET.SIF", :notes => raw""" Goddard Rocket Problem diff --git a/src/Meta/steering.jl b/src/Meta/steering.jl index 86c412638..d3e556366 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 => :adnlpmodels, + :implementation => :jump, :url => "https://bitbucket.org/optrove/sif/src/master/STEERING.SIF", :notes => raw""" Rocket Steering Problem diff --git a/src/Meta/torsion.jl b/src/Meta/torsion.jl index 80f5dc92d..982c6c34a 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 => :adnlpmodels, + :implementation => :jump, :url => "https://doi.org/10.2172/834714", :notes => raw""" Torsion problem From 772e1292f8149b6c278d6c2c33d6c95fc7c266b2 Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU <bpineau59@gmail.com> Date: Tue, 26 May 2026 16:42:58 -0400 Subject: [PATCH 19/21] rebase --- src/Meta/Shpak1.jl | 6 ------ src/Meta/Shpak2.jl | 6 ------ src/Meta/Shpak3.jl | 6 ------ src/Meta/Shpak4.jl | 6 ------ src/Meta/Shpak5.jl | 5 ----- src/Meta/Shpak6.jl | 6 ------ 6 files changed, 35 deletions(-) diff --git a/src/Meta/Shpak1.jl b/src/Meta/Shpak1.jl index fc71e6da4..a636762fb 100644 --- a/src/Meta/Shpak1.jl +++ b/src/Meta/Shpak1.jl @@ -16,13 +16,7 @@ shpak1_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, -<<<<<<< HEAD -<<<<<<< HEAD :implementation => :both, -======= -======= - :implementation => :both, ->>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", :notes => raw""" first problem of diff --git a/src/Meta/Shpak2.jl b/src/Meta/Shpak2.jl index f90075950..77522f906 100644 --- a/src/Meta/Shpak2.jl +++ b/src/Meta/Shpak2.jl @@ -16,13 +16,7 @@ shpak2_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, -<<<<<<< HEAD -<<<<<<< HEAD :implementation => :both, -======= -======= - :implementation => :both, ->>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", :notes => raw""" Second problem of diff --git a/src/Meta/Shpak3.jl b/src/Meta/Shpak3.jl index b17b39616..e8ae8ea70 100644 --- a/src/Meta/Shpak3.jl +++ b/src/Meta/Shpak3.jl @@ -16,13 +16,7 @@ shpak3_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, -<<<<<<< HEAD -<<<<<<< HEAD :implementation => :both, -======= -======= - :implementation => :both, ->>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", :notes => raw""" third problem of diff --git a/src/Meta/Shpak4.jl b/src/Meta/Shpak4.jl index 1da6ed01d..f39787a9f 100644 --- a/src/Meta/Shpak4.jl +++ b/src/Meta/Shpak4.jl @@ -16,13 +16,7 @@ shpak4_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, -<<<<<<< HEAD -<<<<<<< HEAD :implementation => :both, -======= -======= - :implementation => :both, ->>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", :notes => raw""" 4th problem of diff --git a/src/Meta/Shpak5.jl b/src/Meta/Shpak5.jl index c205641f0..8b31406d0 100644 --- a/src/Meta/Shpak5.jl +++ b/src/Meta/Shpak5.jl @@ -16,11 +16,6 @@ shpak5_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, -<<<<<<< HEAD -<<<<<<< HEAD - :implementation => :both, -======= -======= :implementation => :both, >>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", diff --git a/src/Meta/Shpak6.jl b/src/Meta/Shpak6.jl index 33916abe1..f546a5f43 100644 --- a/src/Meta/Shpak6.jl +++ b/src/Meta/Shpak6.jl @@ -16,13 +16,7 @@ shpak6_meta = Dict( :is_feasible => true, :defined_everywhere => missing, :origin => :unknown, -<<<<<<< HEAD -<<<<<<< HEAD :implementation => :both, -======= -======= - :implementation => :both, ->>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", :notes => raw""" 6th problem of From de664de79dfd623cccc251881ddf7ef2a06d23a6 Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU <bpineau59@gmail.com> Date: Tue, 26 May 2026 17:05:24 -0400 Subject: [PATCH 20/21] format post rebase --- src/ADNLPProblems/catmix.jl | 413 ------------------------------- src/ADNLPProblems/gasoil.jl | 194 --------------- src/ADNLPProblems/glider.jl | 409 ------------------------------- src/ADNLPProblems/methanol.jl | 440 ---------------------------------- src/ADNLPProblems/minsurf.jl | 91 ------- src/ADNLPProblems/pinene.jl | 303 ----------------------- src/ADNLPProblems/rocket.jl | 101 -------- src/ADNLPProblems/steering.jl | 110 --------- src/ADNLPProblems/torsion.jl | 49 ---- src/Meta/Shpak1.jl | 3 +- src/Meta/Shpak2.jl | 3 +- src/Meta/Shpak3.jl | 3 +- src/Meta/Shpak4.jl | 3 +- src/Meta/Shpak5.jl | 4 +- src/Meta/Shpak6.jl | 3 +- test/test-defined-problems.jl | 2 +- 16 files changed, 7 insertions(+), 2124 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 8ed5a84f4..000000000 --- a/src/ADNLPProblems/glider.jl +++ /dev/null @@ -1,409 +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 -<<<<<<< HEAD -======= - nvar = 5*(N + 1) + 1 - ncon = 4*N ->>>>>>> 8828f799 (:implementation features) - - # ----------------------------- - # 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 -<<<<<<< HEAD -======= - # 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 ->>>>>>> 8828f799 (:implementation features) - - 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 - -<<<<<<< HEAD -======= - 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 ->>>>>>> 8828f799 (:implementation features) - 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 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 ae4f487c1..000000000 --- a/src/ADNLPProblems/pinene.jl +++ /dev/null @@ -1,303 +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; - ] - - # ---------------- 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, - 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 diff --git a/src/Meta/Shpak1.jl b/src/Meta/Shpak1.jl index a636762fb..b1e3f450d 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, @@ -44,7 +44,6 @@ Computer Science Journal of Moldova, vol.3, no.2(8), 1995 } """, :lib => "", ->>>>>>> eb8362af (Move doc from comments to meta (#407)) ) 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 77522f906..585b5c026 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, @@ -45,7 +45,6 @@ Second problem of } """, :lib => "", ->>>>>>> eb8362af (Move doc from comments to meta (#407)) ) 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 e8ae8ea70..6c91f104a 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, @@ -45,7 +45,6 @@ Computer Science Journal of Moldova, vol.3, no.2(8), 1995 } """, :lib => "", ->>>>>>> eb8362af (Move doc from comments to meta (#407)) ) 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 f39787a9f..2c701407a 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, @@ -46,7 +46,6 @@ shpak4_meta = Dict( } """, :lib => "", ->>>>>>> eb8362af (Move doc from comments to meta (#407)) ) 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 8b31406d0..54675f8c3 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, @@ -17,7 +17,6 @@ shpak5_meta = Dict( :defined_everywhere => missing, :origin => :unknown, :implementation => :both, ->>>>>>> 0507b7c0 (add some problems defined in PureJuMP but not in ADNPProblems and vice versa) :url => "http://www.math.md/publications/csjm/issues/v3-n2/7902/", :notes => raw""" fifth problem of @@ -47,7 +46,6 @@ fifth problem of } """, :lib => "", ->>>>>>> eb8362af (Move doc from comments to meta (#407)) ) 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 f546a5f43..3e5932a12 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, @@ -46,7 +46,6 @@ Computer Science Journal of Moldova, vol.3, no.2(8), 1995 } """, :lib => "", ->>>>>>> eb8362af (Move doc from comments to meta (#407)) ) get_Shpak6_nvar(; n::Integer = default_nvar, kwargs...) = 1 get_Shpak6_ncon(; n::Integer = default_nvar, kwargs...) = 0 diff --git a/test/test-defined-problems.jl b/test/test-defined-problems.jl index 27aaac15a..e6229c9bc 100644 --- a/test/test-defined-problems.jl +++ b/test/test-defined-problems.jl @@ -49,4 +49,4 @@ end @test setdiff(union(names(ADNLPProblems), list_problems_not_ADNLPProblems), list_problems) == [:ADNLPProblems] -@test setdiff(union(names(PureJuMP), list_problems_not_PureJuMP), list_problems) == [:PureJuMP] +@test setdiff(union(names(PureJuMP), list_problems_not_PureJuMP), list_problems) == [:PureJuMP] \ No newline at end of file From 734df41e8cc918e3df77c5075d3925f2531cad3f Mon Sep 17 00:00:00 2001 From: BenjaminPINEAU <bpineau59@gmail.com> Date: Tue, 26 May 2026 17:09:14 -0400 Subject: [PATCH 21/21] project.toml --- Project.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Project.toml b/Project.toml index 48a83a1df..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"