From 6008f489e2dd75384158bb413869730ef9b18014 Mon Sep 17 00:00:00 2001 From: Tim Quatmann Date: Mon, 4 Nov 2019 15:45:51 +0100 Subject: [PATCH 1/4] bumped version of shipped glpk --- resources/3rdparty/glpk-4.57/doc/glpk.pdf | Bin 478810 -> 0 bytes resources/3rdparty/glpk-4.57/doc/gmpl_es.pdf | Bin 255373 -> 0 bytes resources/3rdparty/glpk-4.57/doc/graphs.pdf | Bin 214470 -> 0 bytes .../3rdparty/glpk-4.57/doc/notes/dfeas.pdf | Bin 63866 -> 0 bytes .../3rdparty/glpk-4.57/doc/notes/simplex1.pdf | Bin 398510 -> 0 bytes .../3rdparty/glpk-4.57/doc/notes/simplex2.pdf | Bin 209721 -> 0 bytes .../3rdparty/glpk-4.57/examples/glpsol.c | 10 - resources/3rdparty/glpk-4.57/src/Makefile.am | 178 - resources/3rdparty/glpk-4.57/src/glpapi11.c | 1235 --- resources/3rdparty/glpk-4.57/src/glpapi16.c | 330 - resources/3rdparty/glpk-4.57/src/glpapi17.c | 1269 --- resources/3rdparty/glpk-4.57/src/glpdmx.c | 1693 ---- resources/3rdparty/glpk-4.57/src/glpgmp.h | 190 - resources/3rdparty/glpk-4.57/src/glpsdf.c | 259 - resources/3rdparty/glpk-4.57/src/glpsdf.h | 63 - .../3rdparty/glpk-4.57/src/simplex/spychuzc.c | 222 - resources/3rdparty/glpk-4.57/w32/Makefile_VC | 204 - .../3rdparty/glpk-4.57/w32/Makefile_VC_DLL | 205 - resources/3rdparty/glpk-4.57/w64/makefile_VC | 204 - .../3rdparty/glpk-4.57/w64/makefile_VC_DLL | 205 - .../3rdparty/{glpk-4.57 => glpk-4.65}/AUTHORS | 0 .../3rdparty/{glpk-4.57 => glpk-4.65}/COPYING | 0 .../{glpk-4.57 => glpk-4.65}/ChangeLog | 522 ++ .../3rdparty/{glpk-4.57 => glpk-4.65}/INSTALL | 11 - .../{glpk-4.57 => glpk-4.65}/Makefile.am | 0 .../{glpk-4.57 => glpk-4.65}/Makefile.in | 1 + .../3rdparty/{glpk-4.57 => glpk-4.65}/NEWS | 188 + .../3rdparty/{glpk-4.57 => glpk-4.65}/README | 20 +- .../3rdparty/{glpk-4.57 => glpk-4.65}/THANKS | 26 +- .../{glpk-4.57 => glpk-4.65}/aclocal.m4 | 0 resources/3rdparty/glpk-4.65/autogen.sh | 27 + .../{glpk-4.57 => glpk-4.65}/config.guess | 0 .../{glpk-4.57 => glpk-4.65}/config.h.in | 3 + .../{glpk-4.57 => glpk-4.65}/config.sub | 0 .../{glpk-4.57 => glpk-4.65}/configure | 91 +- .../{glpk-4.57 => glpk-4.65}/configure.ac | 51 +- .../3rdparty/{glpk-4.57 => glpk-4.65}/depcomp | 0 .../{glpk-4.57 => glpk-4.65}/doc/cnfsat.pdf | Bin .../{glpk-4.57 => glpk-4.65}/doc/cnfsat.tex | 0 resources/3rdparty/glpk-4.65/doc/glpk.pdf | Bin 0 -> 493688 bytes .../{glpk-4.57 => glpk-4.65}/doc/glpk.tex | 45 +- .../{glpk-4.57 => glpk-4.65}/doc/glpk01.tex | 31 +- .../{glpk-4.57 => glpk-4.65}/doc/glpk02.tex | 252 +- .../{glpk-4.57 => glpk-4.65}/doc/glpk03.tex | 830 +- .../{glpk-4.57 => glpk-4.65}/doc/glpk04.tex | 37 +- .../{glpk-4.57 => glpk-4.65}/doc/glpk05.tex | 26 +- .../{glpk-4.57 => glpk-4.65}/doc/glpk06.tex | 2 + .../{glpk-4.57 => glpk-4.65}/doc/glpk07.tex | 0 .../{glpk-4.57 => glpk-4.65}/doc/glpk08.tex | 68 +- .../{glpk-4.57 => glpk-4.65}/doc/glpk09.tex | 49 +- .../{glpk-4.57 => glpk-4.65}/doc/glpk10.tex | 5 - .../{glpk-4.57 => glpk-4.65}/doc/glpk11.tex | 12 +- .../{glpk-4.57 => glpk-4.65}/doc/glpk12.tex | 51 +- .../{glpk-4.57 => glpk-4.65}/doc/gmpl.pdf | Bin 216194 -> 216307 bytes .../{glpk-4.57 => glpk-4.65}/doc/gmpl.tex | 22 +- resources/3rdparty/glpk-4.65/doc/gmpl_es.pdf | Bin 0 -> 234471 bytes .../{glpk-4.57 => glpk-4.65}/doc/gmpl_es.tex | 22 +- .../3rdparty/glpk-4.65/doc/gmpl_pt-BR.pdf | Bin 0 -> 256626 bytes .../3rdparty/glpk-4.65/doc/gmpl_pt-BR.tex | 7893 +++++++++++++++++ resources/3rdparty/glpk-4.65/doc/graphs.pdf | Bin 0 -> 210602 bytes .../{glpk-4.57 => glpk-4.65}/doc/graphs.tex | 266 +- .../{glpk-4.57 => glpk-4.65}/doc/miplib2.txt | 0 .../{glpk-4.57 => glpk-4.65}/doc/miplib3.txt | 0 .../{glpk-4.57 => glpk-4.65}/doc/netlib.txt | 0 .../doc/notes/gomory.pdf | Bin .../doc/notes/keller.pdf | Bin .../doc/notes/scf.pdf | Bin .../3rdparty/glpk-4.65/doc/notes/simplex1.pdf | Bin 0 -> 385190 bytes .../3rdparty/glpk-4.65/doc/notes/simplex2.pdf | Bin 0 -> 264051 bytes resources/3rdparty/glpk-4.65/doc/npp.txt | 283 + .../{glpk-4.57 => glpk-4.65}/examples/INDEX | 11 + .../examples/Makefile.am | 2 +- .../examples/Makefile.in | 3 +- .../examples/alloy.mps | 0 .../examples/assign.mod | 0 .../{glpk-4.57 => glpk-4.65}/examples/bpp.mod | 0 .../{glpk-4.57 => glpk-4.65}/examples/cal.mod | 0 .../examples/cf12a.mod | 0 .../examples/cf12b.mod | 0 .../examples/cflsq.mod | 0 .../examples/color.mod | 0 .../examples/cplex/README | 0 .../examples/cplex/concorde.txt | 0 .../examples/cplex/cplex.c | 0 .../examples/cplex/cplex.h | 0 .../{glpk-4.57 => glpk-4.65}/examples/cpp.mod | 0 .../examples/crypto.mod | 0 .../examples/csv/distances.csv | 0 .../examples/csv/markets.csv | 0 .../examples/csv/parameters.csv | 0 .../examples/csv/plants.csv | 0 .../examples/csv/transp_csv.mod | 0 .../dbf/ForestMgt_Model_I_GIS_dbf.mod | 0 .../examples/dbf/Forest_Cost.dbf | Bin .../examples/dbf/NetRev_Table.dbf | Bin .../examples/dbf/README | 0 .../examples/dbf/TCost_Table.dbf | Bin .../examples/dbf/Yield_Table_Vol.dbf | Bin .../examples/dbf/cultural_pres.dbf | Bin .../examples/dbf/mgt_year.dbf | Bin .../examples/dbf/stands.dbf | Bin .../examples/dbf/standtype.dbf | Bin .../{glpk-4.57 => glpk-4.65}/examples/dea.mod | 0 .../examples/diet.mod | 0 .../examples/dist.mod | 0 .../examples/egypt.mod | 0 .../examples/fctp.mod | 0 .../examples/food.mod | 0 .../examples/food2.mod | 0 .../examples/furnace.mps | 0 .../{glpk-4.57 => glpk-4.65}/examples/gap.mod | 0 .../examples/glpsol.c} | 154 +- .../3rdparty/glpk-4.65/examples/graceful.mod | 152 + .../examples/graph.mod | 0 .../examples/hashi.mod | 0 .../examples/huge.mod | 0 .../examples/icecream.mps | 0 .../examples/iptsamp.c | 0 .../examples/jssp.mod | 0 .../3rdparty/glpk-4.65/examples/life_goe.mod | 165 + .../examples/magic.mod | 0 .../examples/maxcut.mod | 0 .../examples/maxflow.mod | 0 .../examples/mfasp.mod | 0 .../examples/mfvsp.mod | 0 .../examples/min01ks.mod | 0 .../examples/misp.mod | 0 .../examples/misp1.dat | 0 .../examples/misp2.dat | 0 .../examples/money.mod | 0 .../examples/mplsamp1.c | 0 .../examples/mplsamp2.c | 0 .../examples/murtagh.mps | 0 .../examples/mvcp.mod | 0 .../examples/netgen.c | 0 .../3rdparty/glpk-4.65/examples/nppsamp.c | 48 + .../examples/numbrix.mod | 0 .../examples/oldapi/README | 0 .../examples/oldapi/lpx.c | 0 .../examples/oldapi/lpx.h | 0 .../examples/oldapi/lpxsamp.c | 0 .../examples/pbn/9dom.dat | 0 .../examples/pbn/README | 0 .../examples/pbn/bucks.dat | 0 .../examples/pbn/cat.dat | 0 .../examples/pbn/dancer.dat | 0 .../examples/pbn/disney.dat | 0 .../examples/pbn/dragon.dat | 0 .../examples/pbn/edge.dat | 0 .../examples/pbn/forever.dat | 0 .../examples/pbn/knot.dat | 0 .../examples/pbn/light.dat | 0 .../examples/pbn/mum.dat | 0 .../examples/pbn/pbn.mod | 8 +- .../examples/pbn/pbn.pdf | Bin .../examples/pbn/pbn.tex | 0 .../examples/pbn/petro.dat | 0 .../examples/pbn/skid.dat | 0 .../examples/pbn/swing.dat | 0 .../3rdparty/glpk-4.65/examples/pentomino.mod | 460 + .../{glpk-4.57 => glpk-4.65}/examples/plan.lp | 0 .../examples/plan.mod | 0 .../examples/plan.mps | 0 .../3rdparty/glpk-4.65/examples/planarity.mod | 109 + .../3rdparty/glpk-4.65/examples/powpl25h.mod | 203 + .../3rdparty/glpk-4.65/examples/powplant.mod | 200 + .../examples/prod.mod | 0 .../examples/qfit.mod | 0 .../examples/queens.mod | 0 .../examples/samp1.mps | 0 .../examples/samp2.mps | 0 .../examples/sample.asn | 0 .../examples/sample.c | 0 .../examples/sample.clq | 0 .../examples/sample.cnf | 0 .../examples/sample.col | 0 .../examples/sample.max | 0 .../examples/sample.min | 0 .../{glpk-4.57 => glpk-4.65}/examples/sat.mod | 0 .../examples/shiftcov.mod | 0 .../examples/shikaku.mod | 0 .../examples/sorting.mod | 0 .../{glpk-4.57 => glpk-4.65}/examples/spp.mod | 0 .../examples/spxsamp1.c | 0 .../examples/spxsamp2.c | 0 .../examples/sql/README | 0 .../examples/sql/mysql_setup.sh | 0 .../examples/sql/sudoku.sql | 0 .../examples/sql/sudoku_mysql.mod | 0 .../examples/sql/sudoku_odbc.mod | 0 .../examples/sql/transp.sql | 0 .../examples/sql/transp_mysql.mod | 0 .../examples/sql/transp_odbc.mod | 0 .../examples/stigler.mod | 0 .../examples/sudoku.dat | 0 .../examples/sudoku.mod | 0 .../{glpk-4.57 => glpk-4.65}/examples/t1.cs | 0 .../{glpk-4.57 => glpk-4.65}/examples/tas.mod | 0 .../examples/threads/Build_Multiseed.bat | 12 + .../glpk-4.65/examples/threads/Makefile | 5 + .../glpk-4.65/examples/threads/Makefile_VC | 26 + .../glpk-4.65/examples/threads/README | 66 + .../glpk-4.65/examples/threads/clustering.mod | 109 + .../glpk-4.65/examples/threads/multiseed.c | 259 + .../glpk-4.65/examples/threads/thread.h | 49 + .../3rdparty/glpk-4.65/examples/tiling.mod | 118 + .../examples/todd.mod | 0 .../3rdparty/glpk-4.65/examples/toto.mod | 135 + .../examples/train.mod | 0 .../examples/transp.mod | 0 .../examples/trick.mod | 0 .../{glpk-4.57 => glpk-4.65}/examples/tsp.mod | 0 .../examples/tsp/README | 0 .../examples/tsp/bench.txt | 0 .../examples/tsp/build.sh | 0 .../examples/tsp/dantzig42.tsp | 0 .../examples/tsp/gr120.tsp | 0 .../examples/tsp/main.c | 2 +- .../examples/tsp/maxflow.c | 0 .../examples/tsp/maxflow.h | 0 .../examples/tsp/mincut.c | 4 +- .../examples/tsp/mincut.h | 0 .../examples/tsp/misc.c | 0 .../examples/tsp/misc.h | 0 .../examples/tsp/moscow.tsp | 0 .../examples/tsp/sample.tsp | 0 .../examples/tsp/tsplib.c | 0 .../examples/tsp/tsplib.h | 2 +- .../examples/tsp/ulysses16.tsp | 0 .../examples/tsp/ulysses22.tsp | 0 .../3rdparty/glpk-4.65/examples/wolfra6d.lp | 596 ++ .../3rdparty/glpk-4.65/examples/wolfra6d.mod | 94 + .../examples/xyacfs.mod | 0 .../examples/yacfs.mod | 0 .../examples/zebra.mod | 0 .../{glpk-4.57 => glpk-4.65}/install-sh | 0 .../{glpk-4.57 => glpk-4.65}/ltmain.sh | 0 .../{glpk-4.57 => glpk-4.65}/m4/libtool.m4 | 0 .../{glpk-4.57 => glpk-4.65}/m4/ltoptions.m4 | 0 .../{glpk-4.57 => glpk-4.65}/m4/ltsugar.m4 | 0 .../{glpk-4.57 => glpk-4.65}/m4/ltversion.m4 | 0 .../m4/lt~obsolete.m4 | 0 .../3rdparty/{glpk-4.57 => glpk-4.65}/missing | 0 resources/3rdparty/glpk-4.65/src/Makefile.am | 222 + .../{glpk-4.57 => glpk-4.65}/src/Makefile.in | 1606 ++-- .../{glpk-4.57 => glpk-4.65}/src/amd/COPYING | 0 .../{glpk-4.57 => glpk-4.65}/src/amd/README | 0 .../{glpk-4.57 => glpk-4.65}/src/amd/amd.h | 0 .../{glpk-4.57 => glpk-4.65}/src/amd/amd_1.c | 0 .../{glpk-4.57 => glpk-4.65}/src/amd/amd_2.c | 0 .../src/amd/amd_aat.c | 0 .../src/amd/amd_control.c | 0 .../src/amd/amd_defaults.c | 0 .../src/amd/amd_dump.c | 0 .../src/amd/amd_info.c | 0 .../src/amd/amd_internal.h | 0 .../src/amd/amd_order.c | 0 .../src/amd/amd_post_tree.c | 0 .../src/amd/amd_postorder.c | 0 .../src/amd/amd_preprocess.c | 0 .../src/amd/amd_valid.c | 0 .../glpini01.c => glpk-4.65/src/api/advbas.c} | 4 +- .../3rdparty/glpk-4.65/src/api/asnhall.c | 163 + resources/3rdparty/glpk-4.65/src/api/asnlp.c | 104 + .../3rdparty/glpk-4.65/src/api/asnokalg.c | 154 + resources/3rdparty/glpk-4.65/src/api/ckasn.c | 78 + resources/3rdparty/glpk-4.65/src/api/ckcnf.c | 82 + .../glpcpx.c => glpk-4.65/src/api/cplex.c} | 29 +- resources/3rdparty/glpk-4.65/src/api/cpp.c | 185 + .../glpini02.c => glpk-4.65/src/api/cpxbas.c} | 7 +- .../glpapi15.c => glpk-4.65/src/api/graph.c} | 121 +- .../src/api/gridgen.c} | 2 +- .../src/api/intfeas1.c} | 20 +- .../3rdparty/glpk-4.65/src/api/maxffalg.c | 130 + resources/3rdparty/glpk-4.65/src/api/maxflp.c | 114 + resources/3rdparty/glpk-4.65/src/api/mcflp.c | 114 + .../3rdparty/glpk-4.65/src/api/mcfokalg.c | 221 + .../3rdparty/glpk-4.65/src/api/mcfrelax.c | 251 + .../src/api/minisat1.c} | 26 +- .../glpapi14.c => glpk-4.65/src/api/mpl.c} | 15 +- .../src/glpmps.c => glpk-4.65/src/api/mps.c} | 25 +- .../glpnet03.c => glpk-4.65/src/api/netgen.c} | 2 +- resources/3rdparty/glpk-4.65/src/api/npp.c | 143 + resources/3rdparty/glpk-4.65/src/api/pript.c | 186 + resources/3rdparty/glpk-4.65/src/api/prmip.c | 155 + .../src => glpk-4.65/src/api}/prob.h | 10 +- .../glpapi01.c => glpk-4.65/src/api/prob1.c} | 17 +- .../glpapi02.c => glpk-4.65/src/api/prob2.c} | 5 +- .../glpapi03.c => glpk-4.65/src/api/prob3.c} | 5 +- .../glpapi04.c => glpk-4.65/src/api/prob4.c} | 5 +- .../glpapi05.c => glpk-4.65/src/api/prob5.c} | 5 +- resources/3rdparty/glpk-4.65/src/api/prrngs.c | 302 + resources/3rdparty/glpk-4.65/src/api/prsol.c | 202 + resources/3rdparty/glpk-4.65/src/api/rdasn.c | 164 + resources/3rdparty/glpk-4.65/src/api/rdcc.c | 162 + resources/3rdparty/glpk-4.65/src/api/rdcnf.c | 136 + resources/3rdparty/glpk-4.65/src/api/rdipt.c | 185 + resources/3rdparty/glpk-4.65/src/api/rdmaxf.c | 163 + resources/3rdparty/glpk-4.65/src/api/rdmcf.c | 186 + resources/3rdparty/glpk-4.65/src/api/rdmip.c | 172 + resources/3rdparty/glpk-4.65/src/api/rdprob.c | 377 + resources/3rdparty/glpk-4.65/src/api/rdsol.c | 225 + .../glpnet05.c => glpk-4.65/src/api/rmfgen.c} | 2 +- resources/3rdparty/glpk-4.65/src/api/strong.c | 110 + .../3rdparty/glpk-4.65/src/api/topsort.c | 123 + .../src/api/wcliqex.c} | 7 +- resources/3rdparty/glpk-4.65/src/api/weak.c | 150 + resources/3rdparty/glpk-4.65/src/api/wrasn.c | 107 + resources/3rdparty/glpk-4.65/src/api/wrcc.c | 102 + resources/3rdparty/glpk-4.65/src/api/wrcnf.c | 87 + resources/3rdparty/glpk-4.65/src/api/wript.c | 124 + resources/3rdparty/glpk-4.65/src/api/wrmaxf.c | 104 + resources/3rdparty/glpk-4.65/src/api/wrmcf.c | 122 + resources/3rdparty/glpk-4.65/src/api/wrmip.c | 122 + resources/3rdparty/glpk-4.65/src/api/wrprob.c | 166 + resources/3rdparty/glpk-4.65/src/api/wrsol.c | 174 + .../{glpk-4.57 => glpk-4.65}/src/bflib/btf.c | 0 .../{glpk-4.57 => glpk-4.65}/src/bflib/btf.h | 0 .../src/bflib/btfint.c | 0 .../src/bflib/btfint.h | 0 .../{glpk-4.57 => glpk-4.65}/src/bflib/fhv.c | 0 .../{glpk-4.57 => glpk-4.65}/src/bflib/fhv.h | 0 .../src/bflib/fhvint.c | 0 .../src/bflib/fhvint.h | 0 .../{glpk-4.57 => glpk-4.65}/src/bflib/ifu.c | 0 .../{glpk-4.57 => glpk-4.65}/src/bflib/ifu.h | 0 .../{glpk-4.57 => glpk-4.65}/src/bflib/luf.c | 0 .../{glpk-4.57 => glpk-4.65}/src/bflib/luf.h | 2 +- .../src/bflib/lufint.c | 0 .../src/bflib/lufint.h | 0 .../{glpk-4.57 => glpk-4.65}/src/bflib/scf.c | 0 .../{glpk-4.57 => glpk-4.65}/src/bflib/scf.h | 0 .../src/bflib/scfint.c | 0 .../src/bflib/scfint.h | 0 .../{glpk-4.57 => glpk-4.65}/src/bflib/sgf.c | 29 +- .../{glpk-4.57 => glpk-4.65}/src/bflib/sgf.h | 2 +- .../{glpk-4.57 => glpk-4.65}/src/bflib/sva.c | 0 .../{glpk-4.57 => glpk-4.65}/src/bflib/sva.h | 0 .../src/colamd/COPYING | 0 .../src/colamd/README | 0 .../src/colamd/colamd.c | 0 .../src/colamd/colamd.h | 0 .../src => glpk-4.65/src/draft}/bfd.c | 36 + .../src => glpk-4.65/src/draft}/bfd.h | 16 + .../src => glpk-4.65/src/draft}/bfx.c | 0 .../src => glpk-4.65/src/draft}/bfx.h | 2 +- .../src => glpk-4.65/src/draft}/draft.h | 16 +- .../src => glpk-4.65/src/draft}/glpapi06.c | 35 +- .../src => glpk-4.65/src/draft}/glpapi07.c | 49 +- .../src => glpk-4.65/src/draft}/glpapi08.c | 2 +- .../src => glpk-4.65/src/draft}/glpapi09.c | 21 +- .../src => glpk-4.65/src/draft}/glpapi10.c | 0 .../src => glpk-4.65/src/draft}/glpapi12.c | 4 + .../src => glpk-4.65/src/draft}/glpapi13.c | 8 +- .../src => glpk-4.65/src/draft}/glphbm.c | 6 +- .../src => glpk-4.65/src/draft}/glphbm.h | 0 .../src => glpk-4.65/src/draft}/glpios01.c | 91 +- .../src => glpk-4.65/src/draft}/glpios02.c | 4 +- .../src => glpk-4.65/src/draft}/glpios03.c | 244 +- .../src => glpk-4.65/src/draft}/glpios07.c | 4 +- .../src => glpk-4.65/src/draft}/glpios09.c | 4 +- .../src => glpk-4.65/src/draft}/glpios11.c | 163 +- .../src => glpk-4.65/src/draft}/glpios12.c | 4 +- .../src => glpk-4.65/src/draft}/glpipm.c | 0 .../src => glpk-4.65/src/draft}/glpipm.h | 0 .../src => glpk-4.65/src/draft}/glpmat.c | 0 .../src => glpk-4.65/src/draft}/glpmat.h | 0 .../src => glpk-4.65/src/draft}/glprgr.c | 10 +- .../src => glpk-4.65/src/draft}/glprgr.h | 0 .../src => glpk-4.65/src/draft}/glpscl.c | 0 .../src => glpk-4.65/src/draft}/glpspm.c | 0 .../src => glpk-4.65/src/draft}/glpspm.h | 0 .../src => glpk-4.65/src/draft}/glpssx.h | 13 +- .../src => glpk-4.65/src/draft}/glpssx01.c | 0 .../src => glpk-4.65/src/draft}/glpssx02.c | 46 +- .../glpios.h => glpk-4.65/src/draft/ios.h} | 129 +- .../src => glpk-4.65/src/draft}/lux.c | 0 .../src => glpk-4.65/src/draft}/lux.h | 2 +- .../{glpk-4.57 => glpk-4.65}/src/env/alloc.c | 0 .../{glpk-4.57 => glpk-4.65}/src/env/dlsup.c | 0 .../{glpk-4.57 => glpk-4.65}/src/env/env.c | 81 +- .../{glpk-4.57 => glpk-4.65}/src/env/env.h | 14 +- .../{glpk-4.57 => glpk-4.65}/src/env/error.c | 0 resources/3rdparty/glpk-4.65/src/env/stdc.c | 98 + .../{glpk-4.57 => glpk-4.65}/src/env/stdc.h | 33 +- .../{glpk-4.57 => glpk-4.65}/src/env/stdout.c | 0 .../{glpk-4.57 => glpk-4.65}/src/env/stream.c | 34 +- .../{glpk-4.57 => glpk-4.65}/src/env/time.c | 57 +- .../{glpk-4.57 => glpk-4.65}/src/env/tls.c | 62 +- .../{glpk-4.57 => glpk-4.65}/src/glpk.h | 137 +- .../src/cglib => glpk-4.65/src/intopt}/cfg.c | 0 .../src/cglib => glpk-4.65/src/intopt}/cfg.h | 8 + .../src/cglib => glpk-4.65/src/intopt}/cfg1.c | 4 +- .../3rdparty/glpk-4.65/src/intopt/cfg2.c | 91 + .../src/intopt/clqcut.c} | 93 +- .../3rdparty/glpk-4.65/src/intopt/covgen.c | 885 ++ .../src/intopt/fpump.c} | 15 +- .../src/intopt/gmicut.c} | 268 +- .../3rdparty/glpk-4.65/src/intopt/gmigen.c | 142 + .../src/intopt/mirgen.c} | 361 +- .../glpios04.c => glpk-4.65/src/intopt/spv.c} | 89 +- resources/3rdparty/glpk-4.65/src/intopt/spv.h | 83 + .../src/minisat/LICENSE | 0 .../src/minisat/README | 0 .../src/minisat/minisat.c | 20 +- .../src/minisat/minisat.h | 0 .../src => glpk-4.65/src/misc}/avl.c | 3 +- .../src => glpk-4.65/src/misc}/avl.h | 3 +- .../src/misc/bignum.c | 0 .../src/misc/bignum.h | 2 +- .../3rdparty/glpk-4.65/src/misc/dimacs.c | 147 + .../3rdparty/glpk-4.65/src/misc/dimacs.h | 81 + .../{glpk-4.57 => glpk-4.65}/src/misc/dmp.c | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/dmp.h | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/ffalg.c | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/ffalg.h | 0 .../src/misc/fp2rat.c | 0 resources/3rdparty/glpk-4.65/src/misc/fvs.c | 137 + resources/3rdparty/glpk-4.65/src/misc/fvs.h | 76 + .../{glpk-4.57 => glpk-4.65}/src/misc/gcd.c | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/jd.c | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/jd.h | 0 .../src/misc/keller.c | 0 .../src/misc/keller.h | 0 resources/3rdparty/glpk-4.65/src/misc/ks.c | 466 + resources/3rdparty/glpk-4.65/src/misc/ks.h | 44 + .../{glpk-4.57 => glpk-4.65}/src/misc/mc13d.c | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/mc13d.h | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/mc21a.c | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/mc21a.h | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/misc.h | 0 resources/3rdparty/glpk-4.65/src/misc/mt1.c | 1110 +++ resources/3rdparty/glpk-4.65/src/misc/mt1.f | 277 + resources/3rdparty/glpk-4.65/src/misc/mt1.h | 34 + .../glpgmp.c => glpk-4.65/src/misc/mygmp.c} | 276 +- resources/3rdparty/glpk-4.65/src/misc/mygmp.h | 254 + .../{glpk-4.57 => glpk-4.65}/src/misc/okalg.c | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/okalg.h | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/qmd.c | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/qmd.h | 0 .../src/misc/relax4.c | 0 .../src/misc/relax4.h | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/rng.c | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/rng.h | 0 .../{glpk-4.57 => glpk-4.65}/src/misc/rng1.c | 0 .../src/misc/round2n.c | 0 .../src/misc/str2int.c | 0 .../src/misc/str2num.c | 0 .../src/misc/strspx.c | 0 .../src/misc/strtrim.c | 0 .../src/misc/triang.c | 0 .../src/misc/triang.h | 0 .../src/misc/wclique.c | 0 .../src/misc/wclique.h | 0 .../src/misc/wclique1.c | 4 +- .../src/misc/wclique1.h | 0 .../src/glpmpl.h => glpk-4.65/src/mpl/mpl.h} | 118 +- .../glpmpl01.c => glpk-4.65/src/mpl/mpl1.c} | 11 +- .../glpmpl02.c => glpk-4.65/src/mpl/mpl2.c} | 7 +- .../glpmpl03.c => glpk-4.65/src/mpl/mpl3.c} | 23 +- .../glpmpl04.c => glpk-4.65/src/mpl/mpl4.c} | 7 +- .../glpmpl05.c => glpk-4.65/src/mpl/mpl5.c} | 11 +- .../glpmpl06.c => glpk-4.65/src/mpl/mpl6.c} | 49 +- .../glpsql.c => glpk-4.65/src/mpl/mplsql.c} | 32 +- .../glpsql.h => glpk-4.65/src/mpl/mplsql.h} | 9 +- .../src/glpnpp.h => glpk-4.65/src/npp/npp.h} | 17 +- .../glpnpp01.c => glpk-4.65/src/npp/npp1.c} | 7 +- .../glpnpp02.c => glpk-4.65/src/npp/npp2.c} | 7 +- .../glpnpp03.c => glpk-4.65/src/npp/npp3.c} | 7 +- .../glpnpp04.c => glpk-4.65/src/npp/npp4.c} | 7 +- .../glpnpp05.c => glpk-4.65/src/npp/npp5.c} | 7 +- .../glpnpp06.c => glpk-4.65/src/npp/npp6.c} | 7 +- .../{glpk-4.57 => glpk-4.65}/src/proxy/main.c | 0 .../src/proxy/proxy.c | 14 +- .../src/proxy/proxy.h | 0 .../src/proxy/proxy1.c | 34 +- .../src/simplex/simplex.h | 4 +- .../src/simplex/spxat.c | 0 .../src/simplex/spxat.h | 0 .../src/simplex/spxchuzc.c | 0 .../src/simplex/spxchuzc.h | 0 .../src/simplex/spxchuzr.c | 208 +- .../src/simplex/spxchuzr.h | 36 +- .../src/simplex/spxlp.c | 145 + .../src/simplex/spxlp.h | 20 + .../src/simplex/spxnt.c | 43 + .../src/simplex/spxnt.h | 7 + .../src/simplex/spxprim.c | 877 +- .../src/simplex/spxprob.c | 0 .../src/simplex/spxprob.h | 0 .../3rdparty/glpk-4.65/src/simplex/spychuzc.c | 567 ++ .../src/simplex/spychuzc.h | 44 +- .../src/simplex/spychuzr.c | 77 + .../src/simplex/spychuzr.h | 11 + .../src/simplex/spydual.c | 1116 ++- .../{glpk-4.57 => glpk-4.65}/src/zlib/README | 0 .../src/zlib/adler32.c | 0 .../src/zlib/compress.c | 0 .../{glpk-4.57 => glpk-4.65}/src/zlib/crc32.c | 0 .../{glpk-4.57 => glpk-4.65}/src/zlib/crc32.h | 0 .../src/zlib/deflate.c | 0 .../src/zlib/deflate.h | 0 .../src/zlib/gzclose.c | 0 .../src/zlib/gzguts.h | 0 .../{glpk-4.57 => glpk-4.65}/src/zlib/gzlib.c | 0 .../src/zlib/gzread.c | 0 .../src/zlib/gzwrite.c | 0 .../src/zlib/inffast.c | 0 .../src/zlib/inffast.h | 0 .../src/zlib/inffixed.h | 0 .../src/zlib/inflate.c | 0 .../src/zlib/inflate.h | 0 .../src/zlib/inftrees.c | 0 .../src/zlib/inftrees.h | 0 .../{glpk-4.57 => glpk-4.65}/src/zlib/trees.c | 0 .../{glpk-4.57 => glpk-4.65}/src/zlib/trees.h | 0 .../src/zlib/uncompr.c | 0 .../{glpk-4.57 => glpk-4.65}/src/zlib/zconf.h | 0 .../{glpk-4.57 => glpk-4.65}/src/zlib/zio.c | 0 .../{glpk-4.57 => glpk-4.65}/src/zlib/zio.h | 0 .../{glpk-4.57 => glpk-4.65}/src/zlib/zlib.h | 0 .../{glpk-4.57 => glpk-4.65}/src/zlib/zutil.c | 0 .../{glpk-4.57 => glpk-4.65}/src/zlib/zutil.h | 0 .../w32/Build_GLPK_with_VC10.bat | 22 +- .../w32/Build_GLPK_with_VC10_DLL.bat | 22 +- .../w32/Build_GLPK_with_VC10_stdcall_DLL.bat | 11 + .../w32/Build_GLPK_with_VC14.bat | 22 +- .../w32/Build_GLPK_with_VC14_DLL.bat | 22 +- .../w32/Build_GLPK_with_VC9.bat | 22 +- .../w32/Build_GLPK_with_VC9_DLL.bat | 22 +- resources/3rdparty/glpk-4.65/w32/Makefile_VC | 251 + .../3rdparty/glpk-4.65/w32/Makefile_VC_DLL | 252 + .../glpk-4.65/w32/Makefile_VC_stdcall_DLL | 253 + .../w64 => glpk-4.65/w32}/config_VC | 29 +- .../w32/glpk_4_65.def} | 457 +- .../glpk-4.65/w32/glpk_4_65_stdcall.def | 234 + .../{glpk-4.57 => glpk-4.65}/w32/readme.txt | 48 +- .../w64/Build_GLPK_with_VC10.bat | 22 +- .../w64/Build_GLPK_with_VC10_DLL.bat | 22 +- .../w64/Build_GLPK_with_VC14.bat | 22 +- .../w64/Build_GLPK_with_VC14_DLL.bat | 22 +- .../w64/Build_GLPK_with_VC9.bat | 22 +- .../w64/Build_GLPK_with_VC9_DLL.bat | 22 +- .../w32 => glpk-4.65/w64}/config_VC | 29 +- .../w64/glpk_4_65.def} | 457 +- resources/3rdparty/glpk-4.65/w64/makefile_VC | 251 + .../3rdparty/glpk-4.65/w64/makefile_VC_DLL | 252 + .../{glpk-4.57 => glpk-4.65}/w64/readme.txt | 48 +- 548 files changed, 31363 insertions(+), 9506 deletions(-) delete mode 100644 resources/3rdparty/glpk-4.57/doc/glpk.pdf delete mode 100644 resources/3rdparty/glpk-4.57/doc/gmpl_es.pdf delete mode 100644 resources/3rdparty/glpk-4.57/doc/graphs.pdf delete mode 100644 resources/3rdparty/glpk-4.57/doc/notes/dfeas.pdf delete mode 100644 resources/3rdparty/glpk-4.57/doc/notes/simplex1.pdf delete mode 100644 resources/3rdparty/glpk-4.57/doc/notes/simplex2.pdf delete mode 100644 resources/3rdparty/glpk-4.57/examples/glpsol.c delete mode 100644 resources/3rdparty/glpk-4.57/src/Makefile.am delete mode 100644 resources/3rdparty/glpk-4.57/src/glpapi11.c delete mode 100644 resources/3rdparty/glpk-4.57/src/glpapi16.c delete mode 100644 resources/3rdparty/glpk-4.57/src/glpapi17.c delete mode 100644 resources/3rdparty/glpk-4.57/src/glpdmx.c delete mode 100644 resources/3rdparty/glpk-4.57/src/glpgmp.h delete mode 100644 resources/3rdparty/glpk-4.57/src/glpsdf.c delete mode 100644 resources/3rdparty/glpk-4.57/src/glpsdf.h delete mode 100644 resources/3rdparty/glpk-4.57/src/simplex/spychuzc.c delete mode 100644 resources/3rdparty/glpk-4.57/w32/Makefile_VC delete mode 100644 resources/3rdparty/glpk-4.57/w32/Makefile_VC_DLL delete mode 100644 resources/3rdparty/glpk-4.57/w64/makefile_VC delete mode 100644 resources/3rdparty/glpk-4.57/w64/makefile_VC_DLL rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/AUTHORS (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/COPYING (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/ChangeLog (83%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/INSTALL (93%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/Makefile.am (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/Makefile.in (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/NEWS (90%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/README (68%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/THANKS (88%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/aclocal.m4 (100%) create mode 100755 resources/3rdparty/glpk-4.65/autogen.sh rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/config.guess (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/config.h.in (89%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/config.sub (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/configure (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/configure.ac (72%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/depcomp (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/cnfsat.pdf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/cnfsat.tex (100%) create mode 100644 resources/3rdparty/glpk-4.65/doc/glpk.pdf rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk.tex (78%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk01.tex (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk02.tex (95%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk03.tex (62%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk04.tex (98%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk05.tex (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk06.tex (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk07.tex (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk08.tex (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk09.tex (93%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk10.tex (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk11.tex (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/glpk12.tex (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/gmpl.pdf (62%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/gmpl.tex (99%) create mode 100644 resources/3rdparty/glpk-4.65/doc/gmpl_es.pdf rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/gmpl_es.tex (99%) create mode 100644 resources/3rdparty/glpk-4.65/doc/gmpl_pt-BR.pdf create mode 100644 resources/3rdparty/glpk-4.65/doc/gmpl_pt-BR.tex create mode 100644 resources/3rdparty/glpk-4.65/doc/graphs.pdf rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/graphs.tex (97%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/miplib2.txt (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/miplib3.txt (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/netlib.txt (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/notes/gomory.pdf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/notes/keller.pdf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/doc/notes/scf.pdf (100%) create mode 100644 resources/3rdparty/glpk-4.65/doc/notes/simplex1.pdf create mode 100644 resources/3rdparty/glpk-4.65/doc/notes/simplex2.pdf create mode 100644 resources/3rdparty/glpk-4.65/doc/npp.txt rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/INDEX (82%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/Makefile.am (81%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/Makefile.in (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/alloy.mps (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/assign.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/bpp.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/cal.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/cf12a.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/cf12b.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/cflsq.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/color.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/cplex/README (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/cplex/concorde.txt (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/cplex/cplex.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/cplex/cplex.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/cpp.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/crypto.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/csv/distances.csv (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/csv/markets.csv (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/csv/parameters.csv (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/csv/plants.csv (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/csv/transp_csv.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/dbf/ForestMgt_Model_I_GIS_dbf.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/dbf/Forest_Cost.dbf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/dbf/NetRev_Table.dbf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/dbf/README (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/dbf/TCost_Table.dbf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/dbf/Yield_Table_Vol.dbf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/dbf/cultural_pres.dbf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/dbf/mgt_year.dbf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/dbf/stands.dbf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/dbf/standtype.dbf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/dea.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/diet.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/dist.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/egypt.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/fctp.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/food.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/food2.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/furnace.mps (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/gap.mod (100%) rename resources/3rdparty/{glpk-4.57/src/glpapi21.c => glpk-4.65/examples/glpsol.c} (93%) create mode 100644 resources/3rdparty/glpk-4.65/examples/graceful.mod rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/graph.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/hashi.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/huge.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/icecream.mps (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/iptsamp.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/jssp.mod (100%) create mode 100644 resources/3rdparty/glpk-4.65/examples/life_goe.mod rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/magic.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/maxcut.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/maxflow.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/mfasp.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/mfvsp.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/min01ks.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/misp.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/misp1.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/misp2.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/money.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/mplsamp1.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/mplsamp2.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/murtagh.mps (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/mvcp.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/netgen.c (100%) create mode 100644 resources/3rdparty/glpk-4.65/examples/nppsamp.c rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/numbrix.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/oldapi/README (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/oldapi/lpx.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/oldapi/lpx.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/oldapi/lpxsamp.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/9dom.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/README (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/bucks.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/cat.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/dancer.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/disney.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/dragon.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/edge.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/forever.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/knot.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/light.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/mum.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/pbn.mod (97%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/pbn.pdf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/pbn.tex (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/petro.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/skid.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/pbn/swing.dat (100%) create mode 100644 resources/3rdparty/glpk-4.65/examples/pentomino.mod rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/plan.lp (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/plan.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/plan.mps (100%) create mode 100644 resources/3rdparty/glpk-4.65/examples/planarity.mod create mode 100644 resources/3rdparty/glpk-4.65/examples/powpl25h.mod create mode 100644 resources/3rdparty/glpk-4.65/examples/powplant.mod rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/prod.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/qfit.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/queens.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/samp1.mps (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/samp2.mps (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sample.asn (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sample.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sample.clq (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sample.cnf (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sample.col (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sample.max (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sample.min (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sat.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/shiftcov.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/shikaku.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sorting.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/spp.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/spxsamp1.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/spxsamp2.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sql/README (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sql/mysql_setup.sh (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sql/sudoku.sql (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sql/sudoku_mysql.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sql/sudoku_odbc.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sql/transp.sql (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sql/transp_mysql.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sql/transp_odbc.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/stigler.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sudoku.dat (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/sudoku.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/t1.cs (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tas.mod (100%) create mode 100644 resources/3rdparty/glpk-4.65/examples/threads/Build_Multiseed.bat create mode 100644 resources/3rdparty/glpk-4.65/examples/threads/Makefile create mode 100644 resources/3rdparty/glpk-4.65/examples/threads/Makefile_VC create mode 100644 resources/3rdparty/glpk-4.65/examples/threads/README create mode 100644 resources/3rdparty/glpk-4.65/examples/threads/clustering.mod create mode 100644 resources/3rdparty/glpk-4.65/examples/threads/multiseed.c create mode 100644 resources/3rdparty/glpk-4.65/examples/threads/thread.h create mode 100644 resources/3rdparty/glpk-4.65/examples/tiling.mod rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/todd.mod (100%) create mode 100644 resources/3rdparty/glpk-4.65/examples/toto.mod rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/train.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/transp.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/trick.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/README (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/bench.txt (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/build.sh (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/dantzig42.tsp (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/gr120.tsp (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/main.c (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/maxflow.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/maxflow.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/mincut.c (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/mincut.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/misc.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/misc.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/moscow.tsp (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/sample.tsp (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/tsplib.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/tsplib.h (98%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/ulysses16.tsp (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/tsp/ulysses22.tsp (100%) create mode 100644 resources/3rdparty/glpk-4.65/examples/wolfra6d.lp create mode 100644 resources/3rdparty/glpk-4.65/examples/wolfra6d.mod rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/xyacfs.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/yacfs.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/examples/zebra.mod (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/install-sh (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/ltmain.sh (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/m4/libtool.m4 (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/m4/ltoptions.m4 (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/m4/ltsugar.m4 (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/m4/ltversion.m4 (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/m4/lt~obsolete.m4 (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/missing (100%) create mode 100644 resources/3rdparty/glpk-4.65/src/Makefile.am rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/Makefile.in (65%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/COPYING (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/README (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_1.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_2.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_aat.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_control.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_defaults.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_dump.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_info.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_internal.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_order.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_post_tree.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_postorder.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_preprocess.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/amd/amd_valid.c (100%) rename resources/3rdparty/{glpk-4.57/src/glpini01.c => glpk-4.65/src/api/advbas.c} (97%) create mode 100644 resources/3rdparty/glpk-4.65/src/api/asnhall.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/asnlp.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/asnokalg.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/ckasn.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/ckcnf.c rename resources/3rdparty/{glpk-4.57/src/glpcpx.c => glpk-4.65/src/api/cplex.c} (98%) create mode 100644 resources/3rdparty/glpk-4.65/src/api/cpp.c rename resources/3rdparty/{glpk-4.57/src/glpini02.c => glpk-4.65/src/api/cpxbas.c} (97%) rename resources/3rdparty/{glpk-4.57/src/glpapi15.c => glpk-4.65/src/api/graph.c} (82%) rename resources/3rdparty/{glpk-4.57/src/glpnet04.c => glpk-4.65/src/api/gridgen.c} (99%) rename resources/3rdparty/{glpk-4.57/src/glpapi20.c => glpk-4.65/src/api/intfeas1.c} (95%) create mode 100644 resources/3rdparty/glpk-4.65/src/api/maxffalg.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/maxflp.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/mcflp.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/mcfokalg.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/mcfrelax.c rename resources/3rdparty/{glpk-4.57/src/glpapi19.c => glpk-4.65/src/api/minisat1.c} (87%) rename resources/3rdparty/{glpk-4.57/src/glpapi14.c => glpk-4.65/src/api/mpl.c} (96%) rename resources/3rdparty/{glpk-4.57/src/glpmps.c => glpk-4.65/src/api/mps.c} (98%) rename resources/3rdparty/{glpk-4.57/src/glpnet03.c => glpk-4.65/src/api/netgen.c} (99%) create mode 100644 resources/3rdparty/glpk-4.65/src/api/npp.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/pript.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/prmip.c rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/api}/prob.h (98%) rename resources/3rdparty/{glpk-4.57/src/glpapi01.c => glpk-4.65/src/api/prob1.c} (99%) rename resources/3rdparty/{glpk-4.57/src/glpapi02.c => glpk-4.65/src/api/prob2.c} (98%) rename resources/3rdparty/{glpk-4.57/src/glpapi03.c => glpk-4.65/src/api/prob3.c} (96%) rename resources/3rdparty/{glpk-4.57/src/glpapi04.c => glpk-4.65/src/api/prob4.c} (96%) rename resources/3rdparty/{glpk-4.57/src/glpapi05.c => glpk-4.65/src/api/prob5.c} (96%) create mode 100644 resources/3rdparty/glpk-4.65/src/api/prrngs.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/prsol.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/rdasn.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/rdcc.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/rdcnf.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/rdipt.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/rdmaxf.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/rdmcf.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/rdmip.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/rdprob.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/rdsol.c rename resources/3rdparty/{glpk-4.57/src/glpnet05.c => glpk-4.65/src/api/rmfgen.c} (99%) create mode 100644 resources/3rdparty/glpk-4.65/src/api/strong.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/topsort.c rename resources/3rdparty/{glpk-4.57/src/glpapi18.c => glpk-4.65/src/api/wcliqex.c} (95%) create mode 100644 resources/3rdparty/glpk-4.65/src/api/weak.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/wrasn.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/wrcc.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/wrcnf.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/wript.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/wrmaxf.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/wrmcf.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/wrmip.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/wrprob.c create mode 100644 resources/3rdparty/glpk-4.65/src/api/wrsol.c rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/btf.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/btf.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/btfint.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/btfint.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/fhv.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/fhv.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/fhvint.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/fhvint.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/ifu.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/ifu.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/luf.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/luf.h (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/lufint.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/lufint.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/scf.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/scf.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/scfint.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/scfint.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/sgf.c (98%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/sgf.h (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/sva.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/bflib/sva.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/colamd/COPYING (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/colamd/README (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/colamd/colamd.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/colamd/colamd.h (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/bfd.c (94%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/bfd.h (90%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/bfx.c (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/bfx.h (99%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/draft.h (55%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpapi06.c (96%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpapi07.c (92%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpapi08.c (99%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpapi09.c (98%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpapi10.c (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpapi12.c (99%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpapi13.c (99%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glphbm.c (99%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glphbm.h (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpios01.c (95%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpios02.c (99%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpios03.c (90%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpios07.c (99%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpios09.c (99%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpios11.c (63%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpios12.c (98%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpipm.c (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpipm.h (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpmat.c (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpmat.h (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glprgr.c (96%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glprgr.h (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpscl.c (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpspm.c (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpspm.h (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpssx.h (97%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpssx01.c (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/glpssx02.c (93%) rename resources/3rdparty/{glpk-4.57/src/glpios.h => glpk-4.65/src/draft/ios.h} (87%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/lux.c (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/draft}/lux.h (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/env/alloc.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/env/dlsup.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/env/env.c (78%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/env/env.h (94%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/env/error.c (100%) create mode 100644 resources/3rdparty/glpk-4.65/src/env/stdc.c rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/env/stdc.h (64%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/env/stdout.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/env/stream.c (95%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/env/time.c (77%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/env/tls.c (50%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/glpk.h (90%) rename resources/3rdparty/{glpk-4.57/src/cglib => glpk-4.65/src/intopt}/cfg.c (100%) rename resources/3rdparty/{glpk-4.57/src/cglib => glpk-4.65/src/intopt}/cfg.h (97%) rename resources/3rdparty/{glpk-4.57/src/cglib => glpk-4.65/src/intopt}/cfg1.c (99%) create mode 100644 resources/3rdparty/glpk-4.65/src/intopt/cfg2.c rename resources/3rdparty/{glpk-4.57/src/glpios08.c => glpk-4.65/src/intopt/clqcut.c} (67%) create mode 100644 resources/3rdparty/glpk-4.65/src/intopt/covgen.c rename resources/3rdparty/{glpk-4.57/src/glpios10.c => glpk-4.65/src/intopt/fpump.c} (97%) rename resources/3rdparty/{glpk-4.57/src/glpios05.c => glpk-4.65/src/intopt/gmicut.c} (50%) create mode 100644 resources/3rdparty/glpk-4.65/src/intopt/gmigen.c rename resources/3rdparty/{glpk-4.57/src/glpios06.c => glpk-4.65/src/intopt/mirgen.c} (85%) rename resources/3rdparty/{glpk-4.57/src/glpios04.c => glpk-4.65/src/intopt/spv.c} (72%) create mode 100644 resources/3rdparty/glpk-4.65/src/intopt/spv.h rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/minisat/LICENSE (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/minisat/README (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/minisat/minisat.c (98%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/minisat/minisat.h (100%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/misc}/avl.c (98%) rename resources/3rdparty/{glpk-4.57/src => glpk-4.65/src/misc}/avl.h (94%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/bignum.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/bignum.h (96%) create mode 100644 resources/3rdparty/glpk-4.65/src/misc/dimacs.c create mode 100644 resources/3rdparty/glpk-4.65/src/misc/dimacs.h rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/dmp.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/dmp.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/ffalg.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/ffalg.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/fp2rat.c (100%) create mode 100644 resources/3rdparty/glpk-4.65/src/misc/fvs.c create mode 100644 resources/3rdparty/glpk-4.65/src/misc/fvs.h rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/gcd.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/jd.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/jd.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/keller.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/keller.h (100%) create mode 100644 resources/3rdparty/glpk-4.65/src/misc/ks.c create mode 100644 resources/3rdparty/glpk-4.65/src/misc/ks.h rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/mc13d.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/mc13d.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/mc21a.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/mc21a.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/misc.h (100%) create mode 100644 resources/3rdparty/glpk-4.65/src/misc/mt1.c create mode 100644 resources/3rdparty/glpk-4.65/src/misc/mt1.f create mode 100644 resources/3rdparty/glpk-4.65/src/misc/mt1.h rename resources/3rdparty/{glpk-4.57/src/glpgmp.c => glpk-4.65/src/misc/mygmp.c} (83%) create mode 100644 resources/3rdparty/glpk-4.65/src/misc/mygmp.h rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/okalg.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/okalg.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/qmd.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/qmd.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/relax4.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/relax4.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/rng.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/rng.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/rng1.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/round2n.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/str2int.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/str2num.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/strspx.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/strtrim.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/triang.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/triang.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/wclique.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/wclique.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/wclique1.c (98%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/misc/wclique1.h (100%) rename resources/3rdparty/{glpk-4.57/src/glpmpl.h => glpk-4.65/src/mpl/mpl.h} (96%) rename resources/3rdparty/{glpk-4.57/src/glpmpl01.c => glpk-4.65/src/mpl/mpl1.c} (99%) rename resources/3rdparty/{glpk-4.57/src/glpmpl02.c => glpk-4.65/src/mpl/mpl2.c} (99%) rename resources/3rdparty/{glpk-4.57/src/glpmpl03.c => glpk-4.65/src/mpl/mpl3.c} (99%) rename resources/3rdparty/{glpk-4.57/src/glpmpl04.c => glpk-4.65/src/mpl/mpl4.c} (99%) rename resources/3rdparty/{glpk-4.57/src/glpmpl05.c => glpk-4.65/src/mpl/mpl5.c} (99%) rename resources/3rdparty/{glpk-4.57/src/glpmpl06.c => glpk-4.65/src/mpl/mpl6.c} (97%) rename resources/3rdparty/{glpk-4.57/src/glpsql.c => glpk-4.65/src/mpl/mplsql.c} (98%) rename resources/3rdparty/{glpk-4.57/src/glpsql.h => glpk-4.65/src/mpl/mplsql.h} (91%) rename resources/3rdparty/{glpk-4.57/src/glpnpp.h => glpk-4.65/src/npp/npp.h} (98%) rename resources/3rdparty/{glpk-4.57/src/glpnpp01.c => glpk-4.65/src/npp/npp1.c} (99%) rename resources/3rdparty/{glpk-4.57/src/glpnpp02.c => glpk-4.65/src/npp/npp2.c} (99%) rename resources/3rdparty/{glpk-4.57/src/glpnpp03.c => glpk-4.65/src/npp/npp3.c} (99%) rename resources/3rdparty/{glpk-4.57/src/glpnpp04.c => glpk-4.65/src/npp/npp4.c} (99%) rename resources/3rdparty/{glpk-4.57/src/glpnpp05.c => glpk-4.65/src/npp/npp5.c} (99%) rename resources/3rdparty/{glpk-4.57/src/glpnpp06.c => glpk-4.65/src/npp/npp6.c} (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/proxy/main.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/proxy/proxy.c (99%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/proxy/proxy.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/proxy/proxy1.c (61%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/simplex.h (93%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxat.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxat.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxchuzc.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxchuzc.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxchuzr.c (64%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxchuzr.h (55%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxlp.c (83%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxlp.h (93%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxnt.c (87%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxnt.h (93%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxprim.c (59%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxprob.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spxprob.h (100%) create mode 100644 resources/3rdparty/glpk-4.65/src/simplex/spychuzc.c rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spychuzc.h (51%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spychuzr.c (84%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spychuzr.h (90%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/simplex/spydual.c (54%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/README (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/adler32.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/compress.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/crc32.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/crc32.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/deflate.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/deflate.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/gzclose.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/gzguts.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/gzlib.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/gzread.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/gzwrite.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/inffast.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/inffast.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/inffixed.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/inflate.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/inflate.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/inftrees.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/inftrees.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/trees.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/trees.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/uncompr.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/zconf.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/zio.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/zio.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/zlib.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/zutil.c (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/src/zlib/zutil.h (100%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w32/Build_GLPK_with_VC10.bat (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w32/Build_GLPK_with_VC10_DLL.bat (96%) create mode 100755 resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC10_stdcall_DLL.bat rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w32/Build_GLPK_with_VC14.bat (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w32/Build_GLPK_with_VC14_DLL.bat (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w32/Build_GLPK_with_VC9.bat (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w32/Build_GLPK_with_VC9_DLL.bat (96%) create mode 100644 resources/3rdparty/glpk-4.65/w32/Makefile_VC create mode 100644 resources/3rdparty/glpk-4.65/w32/Makefile_VC_DLL create mode 100644 resources/3rdparty/glpk-4.65/w32/Makefile_VC_stdcall_DLL rename resources/3rdparty/{glpk-4.57/w64 => glpk-4.65/w32}/config_VC (73%) rename resources/3rdparty/{glpk-4.57/w64/glpk_4_57.def => glpk-4.65/w32/glpk_4_65.def} (88%) create mode 100644 resources/3rdparty/glpk-4.65/w32/glpk_4_65_stdcall.def rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w32/readme.txt (97%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w64/Build_GLPK_with_VC10.bat (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w64/Build_GLPK_with_VC10_DLL.bat (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w64/Build_GLPK_with_VC14.bat (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w64/Build_GLPK_with_VC14_DLL.bat (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w64/Build_GLPK_with_VC9.bat (96%) rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w64/Build_GLPK_with_VC9_DLL.bat (96%) rename resources/3rdparty/{glpk-4.57/w32 => glpk-4.65/w64}/config_VC (73%) rename resources/3rdparty/{glpk-4.57/w32/glpk_4_57.def => glpk-4.65/w64/glpk_4_65.def} (88%) create mode 100644 resources/3rdparty/glpk-4.65/w64/makefile_VC create mode 100644 resources/3rdparty/glpk-4.65/w64/makefile_VC_DLL rename resources/3rdparty/{glpk-4.57 => glpk-4.65}/w64/readme.txt (97%) diff --git a/resources/3rdparty/glpk-4.57/doc/glpk.pdf b/resources/3rdparty/glpk-4.57/doc/glpk.pdf deleted file mode 100644 index 51f0a4a3d6a97d8385872fdafd84d06d886e7758..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478810 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

s9~sOg9j!esLQhJIC6J-~v>7FC(?{-2>v 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%0AFaKB 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 z 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

a(kEEArK5%{j-9m&PM67w$jNg|yh2 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öhG$tF>!89d$+$;J2ew_krMRZ2*V5RA`>Uw9XMqF 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

Ecp|TkpA-Qy9WCwnEAHA$&FCb4 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 b3UhQ}a&&ldWo8OAH#9XfI0_{tMNdWw_kIva diff --git a/resources/3rdparty/glpk-4.57/doc/gmpl_es.pdf b/resources/3rdparty/glpk-4.57/doc/gmpl_es.pdf deleted file mode 100644 index 2d5ca8e0c9805115612375e476f85f9fdcafe4b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255373 zcma&NLy&IU*0r0qohxnInQz**ZQHhOt@KLUwr$(Cx&D14ZsDBxPGQ$Z#4L>-bGG*M z*83z=5D}weqGy94JG#4mgW(`#B(yiOf&l;+#4K%GOr03SYz$pYMNEzDO-vbNOzq5F zEC`udS^4;2oL!tu4Q*jOHhAOvYB}nYNzfIbVdxakiuVoJ?5Kjk zKycr@R~$oZEU)TMJTdry1s{bR!dk<=d1!yNwFxq6X-d!G1}LOrkSZ11Ajr0&R?ZRl ze_4-_rly`1s%dQ@Rt>Fk?81+0@d2joe?CoF5Js=s+fBQGT_y~W?<1x}6GY2nvhQ3u zLztdElTR7thFsqMawz>#JmNe_p)XwvpOqmRp)whAYHpVib~Hn)26U)CT91{}<$A4BXRc+UKlO4`)SHD2~gIz_Q=ba_eRXi!Up((RLYL&FJ z>6&#=G$+ zs#i8f{n5_)>vjLG#q^C|BKnjky2n&UgpnL~ae6mbdLspc=kEv$uCguCayTt#10`f> zV9Y|PG}3WwuK~v_xkZ~SCw_EJ^kfye#bwrMifyB$no&#c?X;32y9voQOX^C3?#ap2 z7*XK-I}NGZi_j0ZU9H8w@+zb&@!0x}ONc}#!bujlRjuCv1%n0b9mMCQ5J%p}GVAY+ zNxDtC=f)orzp_QM$glbX7!zrJ(5&yIUrn~ zy6rlNuGG>kPW%!ywk<#F5`w5Wf8`|^!VV?Y)b@8JP=P|Zl_;{+Fhk6~7FoKnp;UQy zYSi?l!@86RAPgeleN|=Y*1BaOczhfj3AKA0cqnKk-Id>{`$F1r6qDn{H?#(xJ3p-G zBg5MAAd;EE%+Y!7YnGX*E~gi_@6+sbkx?>Wu1A$?``ESU)$c0E;(1jj&_SD@>M6W5 zE2EbiP@7%`b#v?$DdN>QwXAEJjxHxc__u+NE5Xg+lH`nlzT!wK&=zjRebN^a5O#V%|@{w_qYC;p70Uc}efoZ5s zQiBhj59Mh0tV?($_MY*saJMZhu65R(X}dwyodLcVY|ujWuG!!TKjS54p9njU3B1al zD80fi_p_RKi@8ZVFN0jIIKep*tUC>wXm59Z6|5|Av9$I0+u7pWPirz3HbNRq4IGGQ z%51u-o{f3n8A?C#8?Q^!_I1P^O|vgs#r8)n?IoTRcQd@$bsZmI?RfK~Un5=uv21{C zghG3hYOWR!IG%InE_#K;VK11U{{wqSv={Gt)lL?=0J+#)3RVkpvKZXamrVj(By6vG zHYvO&TLPiQXV_M|(pH--P$fW!?x9>MfEjea79qONJ3$dKoE4|B!Mkt=W}p$@zQc~M zk=W>4mUcqEU#M~v2^BDiWq>jZ6rS9(Dt+->CtKsqpEZ$kh@M=Iw1b*3s$lFrzN$>x zxEw_siCX#swO8G*6`x~8=Ii2U?{PYhsjxA)A_%W^Ya`7Z6V+}ZKf~Gpg5)Sq@vG1*++{WaSV;O^9mz7 zBuO4cG)_Am&pKrpbXl;a2qh}Pj~fYZB+>hOEdW!IBaHjNMw&%A)2-Hm4-_Fim*!|{ zC>3?D?q_GEgLOFpeIh8^>PrXS^@FPtxL8>YRg9pelwcBD{?G<~7^|n0ikkGduf#%G-68taA}N*68gw8t#361%CJC2J7azTRD{~C3)1>w!A zm6JB!6VLX7pp}}>=h(lG{$EG(8?)O$Bk`sn2`S^hIE8<04T_%Gd4I^+EJ1@2x5O(% zxC%p>gn?m+cy+S`GZnR4XK(5%n!eyjwu-uMnGSBx+Nzm;2Xtne>Y9{vE^&%hvW?cB z-!VF|3(6s>qx#&Bp$lRGoDLHG+t`Bl&eIPJXh#oUs8vQ-BN}$6p^Ltr9ephmK^(B@ zl1?JL#YLN5qrVGyPr{8ac?~X*)f#+v(%i-9Gv&Gtn$n~e)BDDne#Evwg1AJ@SR1v~zT(MVOWy`JXLsA`WOf$>T06L?Cm$sP;e$Zn)FLHEzEQn6yk|HruxQk+ zRqQ4v=2gR)D7aoS)cQs=?@(|BImdp0Qr7WwJ+pNE;QVdAS;)R0kp0*y>Qj@+E0_)Z z2xm#!=*wf9v3kORGu5E$wrQr9yA@*Le9iDVNj*FqI@)}iM7swWu_7Z$+HJBW{bF2C zQ~8i!i<6$h84l~7cZywW(5dzOam#baYpRU-$+b+z!N!~oK(uJ8R)`gF4~9y9o#&KWqGzXsrN+qi*dhnn zhLX%+A~fQ53?jWGb1Vc(T?`8SGm~C=Od2Q}qD%~y+gB)xG{O(j>%i8HZYUhMy2L!e>GF)K$0kl#jU9`!+zTycJ8f}h$H*HWuRoG9p zHaI2TH$7#*^bY+az>Lp72y$-luyyF)szl1W@=mGm-l!?Dd7wOxaiV6%rU2^$=|6<* z!Rix)4BNs0`0_4BkuG=uggH4f;!E|6W6z`(e|%H%X+btTqZ~b78JHhoQ30&-?jmr<%N+k!I~_ibM3!Of zuFNK4s`-smMT$Lh7Xa8dpA)p(M52swa)8``<#!Lq+-9x#VCG-*@ELD`#p{{OFy9H& zAbrATAf&=qkxZqCCkXi&I*zt$+WnSBk=`8BbLW!u^QFT9u#tSD?LgyXZEttN!NNf$ z?U@k%11Road=4UzwOAN9awUPvJ%)>cdl$0w&HREv0?uJzB1Gs{z4~%(c?e?$KlA5% zsyFI@KrbMuc?J##F{DfQyj*EWUx*tFG;;f452h-My2ra%6G`-3Z@|1DS}5Ijv!P;LuMq451_X>rXU%Li zlmo#Ga8z$#pXW*qY0=e?E-W6_fg*LTUb(MOElXC=ET~U`MgT9v8UaREH~eo1RDiA< zqxzNfsr_~H!26Ln63G}Uj9a)hUB>Co>)UsyKQL_6Ow|9?O|E~%(@d<)Z2zU3*^_pM z>}X-HzA$vhp&C03lXBS@SZI{os8c29LL@ZhB@L;G$AX)s4CSzrkZHo}nN2OBUgUv+kJruC z`Dxqu>uve(=nq3gPI4e4KCY=P2bKrJ6!w*f#Nz2u3rtzP(n*!x!>GURGCe2F{%}4<*8_AA0ZLmaVi=$q zzm;-vlOxtBu$FL3Ujs873&MSh5X?sc!Vdl-g#GqoIz>7Z6{wm zK;z2A4jq#9h_2pYA_hc~&WyeDBXWw@Z-1^GOhohSE1`astw-~Ds&eHzBAS+7JpYw4 ztSB9d67$x`?Mb=Z8|Yr|VgLucC`5qQ(hbxFSsiQS)|G7DB-?-<1pPb00BrQZ8wv(3%&`FcyYPtUdxL?CMrKA7bghr0UzZdDCvrcvqlJ`7 zDGHvt^X}j z>1Z}sD}E$eK(ZdGUmvN;aei!qQH=wIoukv7VVM#daezr}3a7%^R3!hy%U$VujDUHj zoYEv@e9*Fx)*qtUqc*KcqeqRBldIk65MwtYjO%C72aoXR5VAgDsdCVk&KujoZcWf4 zu0*-yiK4jR;zFn~qP(dVj<6-Z@|((ys`lk(dJTOI>Ugg^qZL-Vu>@79SgBl7no2IjDzfB0rkt@5GNzUN>A$vxdaC?RVI?$Nt z2tfay`XIiWZm7ISW=zi&Z`UZxXKW+;R%B*7U;iebjVcW%_xQ`NiYvg7F^)8)sf$Zm zp~xHUoSYU)R6fM@NfM6)dv3%62YhXZ*H{z%EgUcVi?!Gj_)xVto}6*=BBG_`mBYee zFdP{~r8PWzz2)Uq)w|Y6b4yT&;5p^nsCH+R)S3H?)49jh|b??!`LhTtFRPxupC7Y@?{&#n0h4FG*+-5+sIKtb9At4 zCY^8nL=SG9S#?TR{?d!fgqgRQDY94yEf<&d-#V^6uI+zbNbc~wwx9ZdqM=7V@vf8L z-<|<5L&J)gFjBxdUI8oj;TR&*I|+!JyjiAm4^+NXTsAnRY!+0ryQl2SZjALa{`mFH zNJRs$)>`i;=ZsKVCFc-dC4U!Atc1!n@K9SYErEuYXhWimGVI~pfkxQSdc-B3VE_}0 zSITH{o@i_Qa@5GuL!!+i{TPK|3gFg)>PNm&2jZn3VqXQ{q9&g$R?4e~0?qfSf?^hH zSPZ~h&R==$)WNA7aNgs?_K$aB^%X_h$MgF!{R;OJr~V?*$o`A@5U^%3!FfP=LkTPY zzD!H5u+guOCY&DZeYn_gThW^|OO*$?Hl(=Z#7GtNx(Jnc@{QTpPDuUL-C$xY&mK2m z<<Nf_&!3^{X8dUi>#af6k=hyhE4{la2tZQs7QhXeaUb1aY+vfSw-LPa+u`>Tmw` zojJ#c!Y^L3xtr+rU)EFg5p)maT9@F55~23Dmra}wLAI;O#W?n|TLOiTO&XTT?^%f{ zBPIq$eXFZ?F$be-j1+$?X0O54m@?3h4N)OK8*B`|ZU6o$xhNOceQcz0f%Q)9`0UY? zYMPhK$y#!k>BwObVhmizPPi(Fuwa!0kL7+OJ%=WZS0aM61mwTv9o^%w+CY`lrL;m#6@NfQWw zv`h!#RSarXht=3&K4F021oz6Ipd_S<+7#`RQ`wt7-F)rsr}NhY(+kQii4eC{r4|ce zN3FSXqZ!y_-hC!_t&_C9!r$>&Dai~<{6o7n&AqE;%4hobqE|0&LyL+?q77Q%n{;sh zS^N(7T~FVrR@JD%7WHn=u+Dw!P9?ZB6X}%@PI9z_yBNf9)nAu`7kKHWl3ii!^{_e+ z9t}W3%h$?$fVUOZfF<;gd`bxg&{{8=YIOnVfgp*^B$To&*4TL}c|`nqL?{V-AbK{jXi zm3&t?#YcrJh79E<=7Bua$wnG%>Db127RF|f>D> zP4+>Jg~b3%>6lKdVR5088%I?ybo6z$*XCOBs#m7;h-uSNlI3wT-Sr+y9Xe}64vo6f zeT|0piD&Lk7}EC#txFaiI90q-ns@kVmMO6oOhV$>B;l@;Wi%9T)Cs`wqlHTDE#mjpQF_se0;3E!KGm1(l7%(Ehf}VpG30cm!#8EI?{0 zQS>8RqXtFFP-zEk@wi5k9G*Q*C(TX~3`igThG*Ryw2s)=xtJj6Z3zl#S;Pg`uO}|V zU|;kjo~c3CRgV46{3}Oz2#l zTixSdn@H&AkU1a$M#!cl#Djolq*k7>ckf1FR*KHa?rubQV8W`)20m4ut8wV~%T9#m z!g$&FHdpg-5qH)LwqZH#+mAsrSkRqhUfOa`Q0W7MwL^!O{B{|GR`=`yxub=e5SH+% zCvHGW=4el?yS>2U;uID(jFFSKWla}|GM z3yPrm96a-Qk^m8xfax;U-{@S);nN`Q>4PuV?m7SDFKKD}O~b~7K6&)9$xTfZ8p9mw zmEh0e(=*-M95wJLK5B3KEo(0~*0uHQv`qO$Mp=vVS}LN@9<~uK=&M7z8?CGe)(Pdm z!{bVO2!2RAeD4JX?>skFD2dCPGWr ztSc`rb1hcB+el4`$0{*jB3LGPk!nq!>dwgUeRzn)m_))o`h?8g&u3zjmm*nxs@K3K zz+>&qH^+>^=Q@CQ!CgernAm$*1n@+d}89Gz}F`en&#GJ zu?(tyalxBjaOs$-;%Owwn>7~J3u40ZMIOO)Wm{Ao>Ro;&juTXO<;pz9jay{lRP(5n z|B1dn{~cZ`fhjDPC*0l<;=~o~b#(YkKb~=GR}?Y*yHXi51_&-R9}=jHz9V3F_iL#=gx=hj75D9wzVIS{M0ial zy}le@Vrp=O!(RNuf(O5=xFWhtHC?gtXLRv;5Cjk{aRVD)I#TH@=mV8>5iHN>ijZ(z zC4SaT#rgBi$)SpDS8(&%IQt-+!%)mk0H;`u!=3!f>hu1|*wnKGWV@-{ zeA|XZ-AJoKcM|IF?dv>T_E}ikLit*NlsUY8M3fsUMO@+H`sg!PI9LJayQQg5Railj z8Szt6`PM^K;acC?DcF>)MrK-uXdsJsX-e3RJ(wm3fNal#cl>rOFxApYk*h>Kr1n6^b?sHvjJcc^RznNnc{!HNP)<$f z`w;S%MIy1jXs&I+NE043U&Ke4ECYp!O}@j~LAYVnUzq6Otv+Dd2xt zFe~%Fv0!FKcBcQd;A^ev+J9zzy|=Yv^ZmbOKbp3i!)-ly;qX@AYddLq-necmqlfIS z|5&`P#-kOBNTt-ixC#dr(9ue>Qay+(k}i&SLT8)Yh08i2_%}*+XMK6_yx(O0uA`-E zbaMKHNjG~dp=gcfPmW*AM4~Of>rXaiTkzhlwH!+p6;_t!xc93tQG&O1ZM7LW*Kg$y z1{wiC$E1(>jfhrAOe`cuO6I0=9nj3prj_l znKAF>v;{w@lCHLJh((ZSHc%7&zN9n;#OPpR=s*KiC%P+`5;2Cd7xKPrzKBV_sB?vI zT9lChNIm!iw?DpzIhHXlLw@cu(o_=eWUu&+bPd+qCu$Oq14l?Tu?;cO6D**eVwnHU zN3Mm5B_;8+>p0@pj2(H3LgJfAR?DutJrjz7*Zu0gn5i_LZMNN$_W(FAdccCi8~vDD zF_8Gl_sC6m#LJ})cm~V0@dsVl?F09~Kn7g;aUY5XF2jVxo*E~ zCu$5krJCI^d-z$fIA0MEdz2+J^AUNR(J+8^_X2y$jH|*S;{WN!$4^Nbth?4@6W&CO zW&6SZbp^s|24Gl}`S^KcwqkhB2mbDgnT0;P@DcFG9v0CJhy?VJZW@8ydvA3WKQ@4p zKL&LackE@PaD^RRi3H{opd~#vuVc<+9;|o%gz&J7kOIhvuv~_vGNZQmK@uFxbuFzY zcH--=Y2NNkmJe6)O9@d%i5A+t%HjM1;fiL^k&fTKo5>;pTJK0Ae)fT)2(fkUlQr1= z!YWGIKtWh#Ze~>y==c71W198Hh{A&~xzZfSFZ2e~9C%21M@y&u_rvAPo}HE$vf`7* zEOUKi0=$uZG)>m4JkXW7e0H7JNsH2k?RVP9X$bz&@+wwK7-l2wj*LOYJ zm@$_65-z>v688WO-aLQ-d*3P))KSv*fX@4d-h2ClDY8v_FnpIp|5faAdu4VafSPil z-=!?r6(sz#Lbo+~hq(8O?tsLGRf5aFaeJfs`nmXph|PQj0MdjnF6Aux4&>3H(84|2 zU@<>cK<%bJhI;T5h%aBr)+ED{9_E8%TP>j;JX#n$ad$NLL7*(*TkS=Oe4y^lu|~oy zFS8K~4+t?=w1s`SYhaKKjSL4zti^Ozb)Yb@Q^sTyj;oC4jbJG8lXVQi3I8L@xf>r5 zBv7yr^xmNl`9LJC-$}E<6&NO(RcXx%2XfpC=~$Jm>Z7=g$qT1GUE{a){^Du{iEw`Y z{UlV3=oGt{XHS!TsX9WlC+j-l-oEwnME|HOt#DPTv6mA`%1~$pMQdfQUHAxooQ;Ju z7TYy-KG7Ne?Ut_~F9GNkCN&PMAh|lb}FE1xfg!&iV zWL0l}R1xMd9CC577PYAEJKJ;leZHyC11jdOiMArNlF@lF=Y-nyqi*Q;%%4JilDl^| zMgyaL3ReixVwq!$2wpJyWDGfJFMCbL~_@Yx68rkZ2gl(@g@T)qZ=t%y93B-mB~+8_4W1K zla(b<{Wi;rR71nwvyk%n2Txs1WEDTRSB2dLkz*)GuU#s}k7MRxt!$gEX1u8S>%eU7 zkH5II*^CZC<@4}+EYOy9;K{{4Fya-o$@;e?EYo+dC`FZGG4lW|iY5QPSH6{NQfcG( zxECkm52#Q`rXFmwI}x*yz_c+ohH(_G7Wok`i(4pH=}p>=i5K)TSm5EA?AU8u1%FW7 z;$L%^>eF8N?M|}?VK;Snpbh-^oY8EjKk=rAMfsi zMKA6%BZPrAaG;FQ6LFbsbDjF@wx{93I||gjMXtthQ%Tcpz{9bQ`xhkI@GEE89YlpW zL1q*J&}urZ&t{tIxk#aDElTo?k&E=X!sGFL#B zxnD;@U;Bp7E#Yfi`XPdCm>G4k#9o040p1?FaZd#;{HQ16B_tF;33J3LWrH7UN=Lvo z-2HF$HkY{)&_-`7kye;$!z*7Cs-Y-qs^b0NBhGW}){%vb@Z|QTklpk+=Nm2qjY8Zud8&}((RaGLD zjl2j;>z#wO@2`hlo0VcGhu?Pks_(%(j}a4yH)G1Bj;-ksy`z|nMk+gq+xHKi6xmzw z;fdvOfyx{Ri0OtDm$(}9AesDnTmA3={?15_y2T?t+DW;#11G?1_|H*TI{~D(3#&Tu z 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 z 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 n&{z5F_#xER^Jol9p!P zaGJEJYBRHT!l}Dq5?a1%e7g*Wv*_tYri5#80Ttj`zwK9i0Q&=&qyM2$W%zGW6UrX;CUkO!mP*bxbh7xY zY;>X)j!w?_tn|$PR@TlYj&!2d2F@nJCPsF~CUnv!wr0-e_>8RV|3lmRMsv#+>)!-z zUfup@KVp;{U=V-Tu!3=e zIyW_{T+8tU1O>OqK{Ki@g+L-TrE0wE_8~~dxk5x>wwMSKB?2RQK6KooEIFKrE?5Cz zs3%c~EBZkUq9{l$y0UuQ!=U*D-AN7>v4#e8hl7aq= z$gnk#N%5heGg4;!)TRV8l!?&@yJA78;9|FKs=yc+yfpqGagK!Ne`Yqr^TEhUApmz3)lD|sUiSIk&+XWq1)xSz?&AeEL(Bn zj%aYIUbm;Z1aY0l$GHZ3h#N?PM-UbKE4HIXBnG;~)4`>rdssyaV3?7DE&xD5 z>$TLIDInPQIQ+@_-UoaCQuEeC^t2mnETcDH1Jv>J@DEY)4%gYg= zCU)$hhiy14<}Z-PiO_r+KWj*oYMjvhwcOGbZNA`yxp?jCVHzd2zN8~lky-WBOnB=} zd&E^gTP#bwnPj0RiX{N>J&L|H;S-z>;?lHA)Pdy+Z@M$7<7TEUmo$^F zo+F(AMEc7fTb~XvKsa$U?4-4?5q*Y!F<%8UXBNJ0IFhLh-T!Z5h1tVf->YWY6*C*C znd61}=1m&^v@tYZZA9F$IQ6<{7V!Iz+{(&=qr_=L9Y-bR4^CBM?DIBNXZMO@80Hb% zvwx>(%RSJ(>eIls;-pD-^@&dAXLBrev-5GolgsJ%2>2-Ly4Z)!J7ckjpVG!Xxs0_= zP4%XJNF=In{M07x2r?B(9`*J_3LG~lV0^Xe^zKkZ<cbsZ{{XlxPy|@N(ALer1Zk;sb5jvuRI?GK<<)Eiu*-xY2v^+*LPG zrnFF@VCXbpiF{TAtpx+uA-FgAHT;5(+S{sEQ%Fay)VtM=2SnUqGO4!7%-re(S@ZhP zgmZKsepdv3MKQ)Ty#+AN81Gv-n!|Wlx-GrEVu~Fl-Zpn`X1wbp-Cv1$N)s;|>Uqkf zT9VyK?Nu$~BAX8A6ZbA4*lt;*lOOHL%R{DN070x-*hDE(8CrSGU;*}dig-tR9X(e7 z*oX+7ju;9sKS>ANBn?TjVpYk8&6nTDvD8OA%jY`y0bE^)jkI2;YQf|IoP^04)0JE$ zP8p6+jj_C}6cJ7f!%ic>lP=OHci(;a8vNs|RS&MSi-;)vin$|ZFr>2SLN;D|GmW8j zV+o`q!(^Fj>9TgNHu^fIwwXSWoX2Hu(g_up{K)yp>(r(R<*?$4jbsvImMgx2G3b!l zR8ws=yA6(`oX_dPxQ3~01_!Y?uXrEjkofn+>9lZ_ivf_yk1pQ{8m-husv8NUPg~j( zpfwZg_hhTl@s`ZZt-gQo%{JTLp5L1|zK^oscg~Buz1``LqQ2kE2Q=G%!23nm#+g^V z+U}x(pP#22-`2Oc2iVy^nYijp$ytN@qWR zJp+%hg>=a@W9j;&C6Az}@Bpb&^*b=tMe6{poH@6#vLC&P9x1B>O}c_i{{7%o@8nWP zMpO^TO9`xaR|lIa`=9j5gMyeisi`BmXq^|Trt@cE(PNU0(bB&|lyAL;RuF`*p;hqv$DAf;v zq&A{nG+6u5|4wr%?;{0n{I?qu@+Q8--Dq}#0qlxxO}_Wr9IukXu}mC z>-tRb`$ABTJVMci9MBA!n*>!CmZ^t4;tDKb1-&}l*myg{e#(K}94N%Ysly~&Xw4lq zKNXOAY?9v-mS#hsQk_R&P{LO|(s00;!NiHC+l5sMPZp>Jr76p0?xoUJ!JxF_(6G!E zZUk{M$J|4pY-@1h;o9(d|03pc!g8|zu#h7Rxg_SS5-v6kE(=UT9d!e)Ixf!VV98YJ z`h?ZJyT!>p0_4DK-u9Wbwtwwd-&a08FgjD&YFLuA4%oSe8~ZYHV3My03}L;#n?^=v zNe`q1LR(o#lxha$3OfS}OSf4EP5oZbpV=87L1h!~ZqLdbKuEg5KAz2ch;EhhK z=~&kHX55rqWDyW;&!c8E*qV-Zjz>q4IL97$W?)<;N^M|<6VMWD@nU1c z=pOF#VYO+y_cBqW?M+6V*_wE7VH~TcC>k2Q>ji*_ib!tPcN8h5P&BOOC>@#|J=n*& z9XGQ$JnTfU(*$urB8%ug^YYrF9JWX;$#)^{WJ4?8tcqUT7k*v&%PsrJeQvI$Qok>r2{d zG<6q&rED{PfSJD@Jp2=ih3@3&tr=X*aYLdJVp&Wr=z~xZAcQ(l#DJdF(3r`TiN%za_y2!~4xN&PrwJq* zJ3XD676U#LKBLb6CUs_D`=2m8%etAgsv3I#!_#&Y`JrGcxsbw(vH*g}NKd~4vH}9s zZI9T_p(-}J{o$^P!_n?$X@i8#;(D`;k(H*>R;kSQGIPT{ADo`A$0HwGT3TAxQ!biO z^!xn)gKTO?m|KHR3Y|2Ob+oUcw2%?DQFk=L`=QFSwu_0EDo}j{`bEtecoojM3`6>D zeiW`c6i)-|ssLSe)UG<*l@XA2c+5N)RuSDt0UxM7KI;I!b>z%^?;t$%2)%VI4ZU`> zS@BOS%{vYkW7{Bj^e}n!D0=h=d-NEv^f0mX=;}J?mLX)RA(wTW#X7*!LT|2YdO%JC zlbH-yuDdF;>*cI+p6 z;Mie>^thsiKV$o2>fs{nsAC82+4!SmDtZUPx&~^w6Y|Y|dlJ(J>yShYm_`h^NDLa$ zzZ5-Z#Cx>MX!iSjPg^?l6DLiBbui2AK?>! z=NXe0)uiJ!O4MlgCj+(#V3rz^(z~&HObOPY z5tYzuOb|@!(98#mx4RIC$M zi)-u@AHIu7HA4Pu6yL+O?Vj4td(bF z&>OKLRPtS1xvI8B&2W>Mf{~0EpUm9JPi&Mi{zjo;qu3H@-ClK!QlxAwJN4<3*&uMN zK7D$HH7Oh4;A>fzyWt^31G8wzJN-<*i&9QD_v7d5|ANOmFxnleB}`#^o+Q)$*Moyj{7sT7dpE+q#dCZc<{YAXjgChYqy5+%eja2@&e)8h*FL2;^i zPVvaguV&Tcsd?OYs(C5TYx06PRwU@9^Wovpt!DmEstrHpmYeFC40-x-2n@Zp>+dU( zy-%WvsaP9{q*_~oaFWS>VAt{{UmJz=UXnVRjCDBtZuwB69Qki%B?`}VP=Or}ZC_A3 z_@^B`?a)&@z{;MccIc0GL{&XZ>j?7nm@@RR>pJcdJr0*481*PAdazFe-pd$3ddNmQ zX4auQb_|j|q3qxUJ4n`n^7JrFI|AE*>2}~iJ4)MuEAjV+`yte4~QYgAMIKTKlrs(K-!Sw}aT&p$F@TVMpNqPXK8Gmi^p~ zWjGx_!6n!Vm*F@Zh=Xu24#AHw0*7KQ=HW;z!5KIcBXJha#xA%V=ipqNhfx@fF=#*C z?2~x__u@X>kH_#Jmg6Bjj7QLZLU}S@z~g9lo|9;Io6~p(&*C|>d&_yej2F@F8<+43 z-ovYS4X@)3ti+pm3vc5cyo*oqK0d&Q_y`}P-IML!_zdknY4kQ;v^%8T73-tj3GMD@cRW9|d!60i?4H&N127l^u?YrYQ*4Izds7I8Vi-2Z z78s5Z7=w`*h0&OZu^5N(n1D&x7L&0xw!sv%pQOXE6Q*H0_QVYAf<15m_Q#=^g*i9` z?Fo4#j>UW|!ZB!1_~X!iE3w}K?6(Pf4xf+q^gb8Ma2eV&_FA-O<~3+fp7wmZ5x3xO zv}a3ut~i4B^k~nAhw&hu#p7sCV)hhg&qC+Wo|Noq%AQ{Asph^o8I$#Cd>~GCw$2a5 z$vvaO0IR z(o#pLT*mKcFi7=v+`fJxXI+hQu(|M1xV2Ct_kl4Rf-jiW^c4H^uLGW!(H&P6Oe zr?)T=0P97w%q8gEop1GHM-M-vp8D`fvX(|JjF zY;8c`CdgVdYu}#$_2~^dmy95qllA)2Z%_K3K_0C%5J(6vJeOvE^=+u;?uZPb^hZde{^F+1l4l0 zgWOF*46Rw80<_;So25xyasvWD_(Hh4} z2h7HtGUY0A7JRfZPz!SwtVOP%^$e5->nk$kQBeTo+fTL21|k#HO_DCaVu@D5dOphI z!ER*|^;L#~R<_GhubR}h!dgwaqeO(6v-HFB_nK%6n|To_w2rnJnJIzT4@; zXV@vs#eW^d_Iu)QoW|hq{&c|wD^WiQGH#Sz)xr0SNyi3vKq#jz2fNotoWI2S3DQ|Z z=THqRxSwHaK@SRFrAAXZvX~326EBem#``8SNa=J?g}EaG^vb=|=qhw}e2;=2_c*He|aZicP( zW(Tkb{Mza2%xt2O-;^WthOLS$CKM_8T}C~($-Uy3#vQ~dz`!t93__Hdwk6_o5D*YV zO8ye}A+5ipH(I^@Q3QMy9hRUs*@q%M2+CK_D3ITP&pzO&b;6S*S&5*4J0ZBE(L>-O zF|JjZ$gJ;aSOm*Bvd}&ju6H9X(@gX3sd>#rVqzlOkJ$Cu7d@f0YiM+q1uyKplBsv9FCYbMb9fvIl(oCVA>-R zo>A?~Z-4#4VxeBD30jxeUygP%{eBpu%0Kxf){n*(k4 zm9`@VLnMN;(e@+Dy)3uvx$Yt;(K0kvlm`WsGuO`t_{hy{3hcTPmv@$o6=NjYg*qoV z7*nf<-cjk&zav5PhcWuO&(lwd?^7Kugjj3x=t$W>zY+ynN!Qj-$7j{!*E0P0=`E(< zIhWP}N~Llq*C5iU37&o(+F|tBbE6)kMoUrjEyDAv&FB4eet$cm-^D(>-MVIr1H(@5 z--p~!$BnJ-K&^}c$tB}Z?qAYzot`!J)?LzYszV@3g;x5P83o41cvm}pR;*B%Igr+ATB|xeII$6An6M(Viozd@Uk_W zO>N~%dz1dX*J<=hjO>?(;BHAw$oevLv!g{e3YE*jE#5Z0R9lBIWL7sciJ@0umKTtj z4dd?a2Pg+vQ8hJPOc+uITX^v(-$JY^O{&`{gJ{fUHlm4AY;0SKb4^~^NMJq+lth|P z#A4kbJJsoZA-34B>pJN$K|mkoHmMG5i7HfhALmP72!^B<_By<_aY( zRTx8)8aHa?17?~6ohr(=8qo|PAMxi>GQS9zH@#j5c~^D9ctBfoz5&CU3<*a4mHl>) zZq_Z7YFX_xmv6}jupp~}UnR*7erW^@ia952wS$f$CxsjF`6N6a{{$3lIZA;=aB5u*t|kH z>EvnQe!gY#(32E0p$<{LCv`%UI1y{aIy)H~h>koG;qna1Z6kkq^9GS*ZhPPaCsP3R zY>41B%wxX_NP2~8c}?1;vLdOX@@Y}X(( z-QW5!M6p+u%d;?cRwx4|Bngs7;}r>pRp6Egd(a(!**Ix)u!!o-ZsdtamlSPBh01wD z$Hz3QGX=Wwg+biGoV2DSdOu$mD}ZXFnm@@$p+5bjTsV-a>1QR8K1=B-Kg?v4H$>s? z{Jb3r1jR$aZp$}PND7JC^be>KM-Y^Ny8#@2&wnTa9D^TR10{xF65qW<4$2p+18E*g zM=}I;Sd^zWg4x)yumF18#HAU3%p$cs{E(^00yw96M^)aKq(iLy!8NYu&h+%>I|Fk1 zS#aJA1>1)g?KomZkkI{y#1S`U)4}SIB5#r!Yb~u)7W8bni6b*8*e|``nDXY2hN)Q2 z7|6pnwm7NejDxA1_w>$ZPfNMZ7*^Jko4jz8L8=BeT_7S8pKgZATp;X*art#T-F+>O ziA{3Y9cg~rExP(Pg<+Gf33Tu8h=7c>9zpd$hY4(_BMI=9u}J1MyM!`89GgpIf`W;> zwsU-CJzU-~FrPHKy8zd2yZ2$|KfEUAq5{rSz~1jE)i7#&ig~PYS2!SX$Ny|-zA|Rt zm%mkdBCaM!W+(*W+<&RBI7oMzu(59(668TI=n~|iKcQg5y&VxPXa3|F6?w;$3z+n9 zpbt)3HP}PFy{g5nOh=KCz0%lU9FyKEDe3Sy8wfd|keHxC6F5 zW}DsmuMo{!m<5eTYwn(|legXbuMt1Bi<>B)M}|mWSj9Usi{d{@HnYlL#CWHtS;3E|a*X4kW zg&r=o#|zhvo6FsB6Ym~w#5#f2-*^48Vzz3D07kXQ22QLzRxxvBY}{xBlWFMaNUOSW zyU34Ot!(UZ`FumZAxZK(VdlZEeS_Vm<3WsP`?DI0otvut>mB#;uG=niel~`=pmSb8 z_gG$7NAdFa!$|!E{+Yz9Av#lvLUoZOggUGFU>OLR8yy7~Ja^o1p+}r|m&4#VKrTL3 zik)C)E@+tOH>3c7Uz6j4-d1|NtRq$~Qx|nNxL;C?!?!0TVnjcaIhCDVTBv|_o)u~d z?rSv@A#(OKqSj%EZ!!%iTnXW8gD?ygMy{*T1Mp$jUB@5JLuc#nX?^(&$=}jFd?|O8 zucCC_xXDNc_&aRFsjqT?_8Gn#;j3_1Zmy|Z(>p2ocsJIQTOga9nE@^UrTa08%nrcw~HI?)Bc)!i*;t#!9Y#TQxT-N8ELy@0I4kqm$GX00Tz7j6eRg5p9?@VIy)N0`~lMKdDZ{lJb{zz-|z%xZjS%K^a0v3@!K3o zeXknl>hFf?KGHn)OJtJS1;6Q{K;#gkYFoj#lSplvw@C#1O5Rcc=$)|TyDj2DlCBfj zPJIsItfb=kBv|Bs5o44`ekc}gQTaP#{5<7JG6MJ}i>Iq2goG^F&;=XLoxi-ZAj zj2J?&7Lkk+-b{IuQ|{!{=CkxTGmT@886QZ{U)ulnSI>f#-am_f8&dj964{OT?@rve z*$LFiu-oaohW1ojJCWbVGa48~Y%1)(>SUroXpZHBfl7Z;c3N-A4Vs~Xm@s87k#QU3 zL=PD#KkdT0Ei=R=q?85h%OL}!NvEN7>(=P*OxorIj<96EWyY!`aL=R-JDKa?XZb+x zj6o@yhW?Tj&hjqFmJ;Xlx0bOPs?>o6@yjcqW7y6cl|;><4k}g*@`&x}^J2~X!}ci= z=q6NDIG_xL#WtWU*x&;kh@r`i2f2262V5O$Gb3L5&m!N<*$dei)}nE!--lazcIZBg(g{M=L9%2i0ihQ! zD~gw6OTrgs<}dgNxIxi}ABS+z`1q_fv8zdh@+Ox&wdrEEn<7<1=!zry!P_vHR2HAp z5P-&`{#J39Az1db&6!4@P3;jlY;@Lejwf|$OpaGsv7S4vtHFGT6dbwD>+O28`*>JK zM3n~%>nHy{g(9+o$O(Bsq(Czb3$T(zksKs~M*C%eQsK5@)=qUL-1GTcZ#7y@$-h6@ zL_q8z;Agp|nzS%hhHAUWM*F(~S~Py_uX{EYcy|6-e+JH{1@OxmEs+~gf(assdTh`E z5d={m^m#-$7ckZ1q=yAHI7qcphzI^_Pf@N+e6yzo&Mp6Iy>+AUSTK~-qz34`Jt`7V@x3F8BaSm+rvnO*fWE(xaoPD7*OFke~golz0=&(8r zI~V%BL9$=_A%~KAf&@${dbfe1)=gx<5HJzyKH%;K?9SJb8tQU77>}g*gb+mTA<+|8 z=r^)UnfgxMw-W}gNtzWN)8^+NmOZ9Ry97mD{BI50#UJu#_VXIWZfPJ|_{Vf98&pz2 z%_9hwrcvl4#BDh7sM|`cd(&)7Zu!o-J-pEX7v5#?#l*5QGR|$v*Ur>;OP$OFpq1=2 zuyu=wv(rj)4X-e z_7oT0nUZNRCI8n!@)=T1@J@-mVL{EoQzftIxB5M#{vH)NF|HUoVE zXZVtzJRdZ4CAzjIhYl4qpeD zmumvMgl{=tAGWD2+t6RebYnF})y2P2n~O2~i8=+`NIL4pus}H%(Z#Fj z`7~~;MSH2d7`1P^G@%_ebAp)|&&p^vaGszc0pQ!ELLOI{l&ZLuE$2Zn^XRp9B`)^Fk^J~j_M<}RRU04VK%Od zmk;n9!ZphA74fHfpjmC*adhWwDIiPGF(X^5<(XsN(X7@^N^l&$%HC z2v@y#wR)Be9=6+Z+}t|1JNIdN_oUeR&Z~Xloj6<&g`^NNo`(ab#A=A@2&Wn$6|2Q@ zKN@TYeZh@Se)SRF7kcUj^2%6sG)u|>4sq*wyUJ}Pvjp0nMmHJY<^M1r-%4Kf0#Ej6 zCU)%6juSN0;xKM#_XRqs{@+PhcoV`Nc*b`{b~ekTln$C8Nl!ixe@@WkGr3}xRJi`8 z80G=lQsX(k2-gHKg#NR0jH<_EjOh0hT>ii5niyBlM8@~dX)82WpPF{jZ7w(ydOtL} z>aE5-e!%!_Cgx(i^_Rwa&-rOTIkK!tc?6=}@L6GLZDfN*zsQBjs#<)f_^Yzer%<*< z2t!%@vQV90Xc&p&?6e$*vj$WXl!2Y=Y!o8H*#Z1_1Ao(J4v-bsqtLC)i*s<|CAcMK zZM%EBm#0l4k8?)2%D26ZFZ{=XYt%OG`FPya$$fxJ117L0t~T%%-^6rmLql2cewqMP za?j~}KN~;J_kT)zeviAvMrokrS;#`pOOgxMNMr0Mk)CE#CbsYZD1^o8wkzU9U znJM>Nts2AKErV?b7i8Mf&9Jbt8(XK6XeXsWpT=(!!c(lm7H%aS71x{Z&%&z(!@S4cflD1T)P|XpA9#AIz<-EM8FS8JZ3c2QO4*v zrO$2UsZmjzMas7Obe^q)vv15f=6`?W>&M8mCoaUOYMFH?Nznk~(GGQ*c`hEcK2Ce| zA6x6%=icDEcvngmjTW2+v;uDi1)Bbc*#9*19w!;7Lv|slhvCZvcmvNke!x_s;50DM7oLQ|ZZM13vMbPiS_7 zyHo4ft?KgNw8Dro6!k(rYs3n0xt#L{R&N3Un8aAhJ6}NkG{t|T1kH;&$R64*y})It zv-BEV>5sp`$Uhh#;i@%E?Q(C;ESTpZc#Zga;JPrdV~s|8bP)o39vDK_6}Kl-SSPGp z(%Nc@w}97}ev=!A&4<=VP7VpRNT0nab~Z>0s$&#U(&8I{Ckic#$tr0h|7ea-LeFRr z&g~W%bjE;l$Eb3EpJE%KIqIvb{Mj(zc-=`=R8ABI3FalIY-#b>s~C+*z1Y%PW-O|Q zCVKoCU+3%e*}h6OL4is9ew2hH3j%BjP5aHjLu*#adxHkcX$ zK@3)!#;c?|;>tb&q>n2S?dIL5k!W%`JcGV7G6jhe+!uv1?@eZE5u@!gVV6uN5Q=22X+lLI^urlT!qFr7;Mbs&+sx%SjU#fM+uD0Fv8q4l5Xf zn9h!HD64v`3pAoZSKELUO2W(!Mne#g-Zg5Vb2n>D^BC4(k2z}(-QmR6>#jPyaf@*r zpeo~=tF(v{J-Zp3_#F^b*a8aGW}bXm+V^Z5A5zx}0_T0(%+x4Ab60Kt87WH3+#(~8 zVu07844Jvbx1RGW5ON)RsUETfawzvY04wCD`&J-MKY~CVH3IO-u1d({8@nBxHZcn0 zuHE1mZ=5zJNa2oVf4i<%Jl|)gWR&-!d5AnTNN)i#4`IDiOID+ z5A`-_ypBK+_zDe5EAM%)3;H@THsBiv{T^j&uwt?nikNm=Ym+jRm*u>d%F}IV}67{^H29B{^0X-0q1kicGW!ZSMg%1xs@DS<}A2nK+p&uU&)+uA8`m+h%MO`N`f1tD3vE*~y1ywO3ZF8lO=GNf<2_U|1qQ`k+f zxWt7Y6HOY4o`;G}{jDr!p|?j+gCd~HUSs24fpokuM@VDiy|Dlw&Pm87M`RLN(Mz_&=XyFXNO(ENK{TTZrQr8pRftM|6ew^rO^F;>Yj z1T`-(GW#w9c9;Zem~Q3(saBvvkTT>~Ymb7Zu&C7~T?uiTEs8ia>T;iy0L3jbH1T?X zBnzjNtkLfju3(CzDM)4rV>%gm`n33d}zw`tn4NjU-QR#_+MPxjOnB@Oi}`4OAW4j^>`w)K8(0!QPbrc zgy9}G)$A@cdsznlF|XE)o8fAn0X09bDUle?F1`1TK0r5o9Tm@7cb?S62i^!e43;bl z3Q4cyMFZe2%_WN3rtSoM4!VP&Y@XGl<0W0!k!vv5#_7^Mg1^~t)6e<)cz$|%qh{*G zPB3yTD)ZtY_`Awp0xtFCM$3t%5Sq~1M7dy^nV-P$o-0e44#x-8@j6{I8U}T5#jC|5 zkph#=B=3O7gr$s+JrYE!spFUI@Z>|suN6+bq5frJMg8ywT(2EYQ3<9DMW5#Vst(eQ zH+zYYO{}{liV0W;RLto#hP{NE*&zMn(? z({t{#{{o=@>SXMnhMDa@0d!PLr+%9Q#qYL$p;&i>&Vi(q;l(VFA*;x;eM0N05E^E5 zjT?hTrab9-`MQ1|8^KDY&FA8RBpM7^4#8p~)4^W$!J7mH!C%yv{O{?cb@tz5;`hsZ z5sIMZAk4{O(i+D5a4CYd{t|`R$NJAI!fHW`Y1zxCX~tK79Usp(1da>K_zBHIBZE1X z)0ZzBV!N$XfXJT<&FARSIa?n0x7p>U=lwp$#2Zxl`YsIrShL+VK=OW5Wkg$Lc%t|& zsqd>KoJ6(8>Hx;H?#5Gg*_Qgq2%+-bc}kRvIcx_}o}-{kY)s}3)s5{ ze+M&LD1%HeFy8m)i*mbpQ9`DBwdmCHxYcO0OUZrnFsFe?ei13FlSY`2oaWqL3#ieL z!#iz}8pPX~rGjEixn&Fwsu&1346J0HULfvjhMqc?ARna8b?fsE9Cg&{TOtiVIzE8< zThJBKsc^KVCqpqEFOlZcE;KBtHRpA=f&*R9z6Bv8if<6;#zsGpR&Xfv1~dVms@r@t z?y2efNuc_wambyWYn*C&&{K_=(tNf3@?$(dSl#>D4#sY!%Gq^p$`68&|eD_ofsdhWD=;nL9@LR!6d(gs8Fs?Cc1O5`V_XPcM$V)(6gA zENUOZLcrft*Ub~VnrYqwByhq7BE16}W`^z3?=j(T9urbh51DchxyuYU$L0{@u&Q`} z)`{LjvVtP&Ii6L9tFADwqj;`5s|47KdQQHg0aw8c9Ek4blkZ1el_a_ut1BA`@6f>r zt;sJKqf980+_rf!5%Yv_&($O&gr4xm{n|0DmI}5z z2HGFGYu7Sgudvy#D2NbFyx9Z#^_vfS_AwnlU&wZZdE9nUnH0u0$ZDs30i? z=i`46Xfxrp{sfA&^b|$N5+={7^|La;v~8q--t(UXj3cnpm@DLqnlfDrfibAvVrEKB zcTo$5!JWWFn6L!SeEr>7NlCRjcG(vW+VtbkH(2;RQ&Ya~!Tlc3Z`#`g+%a&k>%MQt z{OIo*npOQkeu_`;Td{IOLJVAJVd2w8gDy^BlSx}gzna>GChr9a`P)GYhQX>(v}6g< zL8O#WzphK^-DNhVPk(mc$@``Yi1-Z#At-1I;*+Yf_ar6fw6oV$pGWkxkb{&{<`RwUrq^6M9sAoE zxBNCwM;>QLgpPqB=Fu;%AZH`2%W@1_>%XT@CL$MxM?rAjuy)Jsr1Tx%kgv;UEpZgg zfw`0<_#CkYH6Qfn9&k;*q1)-z!+rzcV))0}Ry~aIb~~zoWlplwHZ=z9PueOqojt5q1BOyE^TVZ;@2T`m!n#?V{>u&|H5}ysQj42}J4pWENda z2qQZVEGIAEa0Sd@BY~d_aHxz#)B_X^B8!AnF}1s4M_gS~@c4OBUPO=}3Tx{>zt9}y z?nLI}#)w|c})um!B9~dR>>Z+F)(R>0J%IZ?D+eW3zwD->|k2V z&`1|gQQI&i_^61g0T&(>GkPFmW~?@x2Q83tVQPr@J8o-EB`)Ak;o8|**cf-X+gq17 zIwSvTpZ}%O4ii81lw@xDj@US&ZSxI@=eM9EW+A}L1G^gVsCV=5NHT7FkJ}3-!t0I$ z-q7$N#%0xRZ-5zBDo z){|W%p;_V_56h&|UTuH%7&(~d;K)6D29)t|eZBH3OprR7!PzZSvlsHpA{}GC^ev0- z1G=eshUt&K(K!I~T=dYr`z8%I69E6yhdbQ9paK}qS{I<>0UUd93b>Ut=@PaWpp|@O z?23Li2yKN2E`LK;Ul;hk(j2zrTjc9~zN9@cKF4IvWT=nlE&lZFv63VbuQ`5pnj=Gv zNHte{i#B@}>c!~;`;=FF|Kt{}Jx#F%ew_RS4s6WQ9{QbQx6mT}x#W+!KqltDsQ)ej4=$ z=8=4N`Y(w8ua43=Ia&V`@JrRU?N^wPe9vhAo{Q-vZ*;=k2Z5nfh^W#X0V|$T?8UC` zWO-^$t+Sf&Zqv!BtypU`S@2=bbF(6J5)(roU?!yu3lfR_+OwaiekGo(La>-#%J%SldG?2tOO*AK$^18%0Csff^Lx(`HNds|2%FtnvsMgG zdHHav(v<|lC8`=nexOOH-o}Gwe37=5t?HjXha=U6IrU*MENBoA6kt!o&$ElhtsBFq zHQ9TCW93SG^|4lcIr+_CvAz|Aj52t%k){C$gSU;ZDcV>|DQ#Jepicl(o@jT$u`Rsm z=m>RKQ>EIPB|_GRcLsYZid|0FMsUuQK|FgL0M5KK#$rOhXEyxdM1rKWmwsPfDoOa2vkKNrX6^0?0(8X_xpkh_M-UQ5ms{$&sDv3)uE2)Jo$u-8~4eE4}u^F7M^f z9bbb3LLJISo%0k@_%)nI=Qxj8&0xP%Ossd;fR9%t3F%Ca54;CQlj{GX?a z?QFd>0;&ZN)8k~Qn!H~`0#CU*w@@*oqK3}WM4H?ngG0zrxC%sh)LJ~dD1jMA=Qc(V zv%_G2=>EhbLB(6MP%`})pJ=8QJ|qZahHbV$t@uZP$AAjC4gG@1(NzzLDL2g(&6LZK zPs3#V2H`5o5F zTi4y*0X1Q(gqVWhg1SiTnGniRd{P-XaiUqg&LY}DQl8t_JC%rmik;8|!DN`?+n_v% zZNgO{lRGWYdyxHfNE@Kc$kTpqAv)rT3GW1*F)b0R+}8wX#r6R zJg|xjN^zcR2ue8-BbuVO`CIm!E09gmy}wvcm%wa_!E=EU^_btm$lmDZBDv@d!rXY5 z_J&s#{j2mBOttB+FHbMK#SkL1*hrMpc3xK-F0OX};i|(n`JJLCTaf)7px7f`EHDDB z-Acw_GsPDi0Lq5>j-1eg%Lh^;o2RMP zZu}A*c$LYPzvB4RGG(b8(KD$MtsK=-C8!YF4?e5nS0O<$YAi1m3KY@RWpc(UQb@(0 zf%E5dkIBe$Md+A7K(2q5tnW`-Vbmpb3{-QSXbhj;FX`e|GXo12l@4$%D(2{rDKatS ztCm5RH#Jnwgwa-%7@Q5-`_+$q_Yv~(ft79;K$b#~H8Y!y-PP&wEkRTR{urY(xr4Fs z@G-0xq}3CLlpp4=nwNk_g_nAAJdbG?R(9>+=Fj(ff`qV<8|39r_7UV3;>0`RQmY;v zazq003Wje78}EGbF;8EkXwLILv4jB?%pJWBW(dLV@lFFqnO55AV;KkIRlzz7dqeT0 z4ckAPCiC>Bs^ez*=l?Q`iu`JOURWh3cbds2GL_EKkbHiqVDTKz^j~fTJ^P;3TYRkJ ze?*T4s$DvZ3P6KnevJxvH%qG!B??;s$Er>YtU!C496Gd$j&rpmHD4F{Zl5lZgJnW2 zBd=8kB9lGF4^{>MIr*4;p}dAQjz@VM(m1-{686#@jNlW+fdGYq^MqJvW4iZariY?R~wx0ILLEMuAo%6dQ!_!2P~MSw4J-RtE?U)1*38k3XAz1PQdVsfqis@C>%gozITB?y|Y!3G|X z)I3gtassnCgzBEgqYu=m!*Lca?HuaYOLf#<)q=p}fukn+O(>8B+8V~kk(c9s-Jtd- zxWYxI&?9T0*r4qypp2m!!+}*fYQG;`G&~cB5NG1qbm|K)t_%0$V~2>U)vd#2VQujx z=$51@t?!ew7h5eZgR2JeqfM{-TlIMtmL{BHff|}Ls0i5MSXCP3)o0f^y-?rQJ;HhW zdB8%)uKPQ3?2-2%tB?%u^qPP?X<8n_SF8Q7Dv^)AFCk?e#~ay^8+H(Q0hPn~fPViPNFOcLw=8$b z7s*;8NcAG~@F2!*Oyhy%6m}NNky)>M=Y?W#1cl+C!XV4n*yIiT)Z4hBp=1C2We+d0f4 z4$TM76lpLYP8qzPO4A`Yzdnf2PX-h_l5Z-w8eX>kju^Ubs{PQweZxb}|NiDu0g08B z89RC>z>>mPu1Le<#kkZN-5uapfpfJc$*zNTCSu(X@X-EzQ${tN?Y#}Zy2Y?L5j)Z2 zdB#VK8r;6>ZnlcXF35&S1OKY?_lH0{X~CVVaM<0Y<(em{>xOK z53>K#gvd1y9MMxgvk*KHp-s3*EbU{Q#}lYo3s~S9?e4e+*3JcRK(&8O+iHd z{wp+Yha3MYT{>D)9-<^j-e+z|b}G{{iatcToZ>HLHW%GTUzc5nKYra}aCcE>>pCVK z$75uk6tKk#U#G@iN|abmVkKw1T=!M=HWv|P?w*RJTSFv>#(?A*j z>Wsk(1v+_-;bQS6ZAOwDr9XspwK+2=dmH8kV@Cqcux9Ansi(whV{H{DJQk5>!XP|} z_Y+^?@N3uteVngB9Nf`#)T=>HK?`Y_U2g;FS`br-qrY}_h`~6~t3eAMiKiBkSlC8P zGUzyjOgp;)5>gFg%Plk`$T4u4l?muedhXX9WCat21v*9C5dO8XjS;R)-|(r7^VuqD zIU;th6s7XBj5HD76jx-rf4}E_2+FDGRvdrJ_HMwZ|H-)DdDR~bmh}?WTVIm?rN13doV`+AK1H{$3 zHeG%pop~3rGx(JTf)fJApEg(aW3FF~=2Suo0)v`izR#P_5!)g%7a_S#STJdRx4OmJ z?+Ww5<&$FCIQHwg^jJ0blbO+Yk_(!vF54}$m(2ieIGH5*yx8Y}oT|^Y*B;igpHur7!_#MF=&^R+Z@~Q$fs2w!C@zP?1hU%^xtsX+ zMvYF|!-tT8xq6>JwrB-0QS*6nwiHXpb;aH3(`*Y!zW#aO)QQvgPZ@O=T|Y()MaUF>qV?GF3CGR8(I?{tldsP_VUyGxXb zrZfY1*?Dp^uy}Dm?yK~T_8C4EccEisFisiaRpxrBX~46SDsDsE2(&K{{lS&CHF%yT zt}A#E;!R29c{MdjlHv6}t>clW*72+%mkR{;U=mOkg}(C)cc2b?nOC=4zIqIjfJ8CLbSs@$;$yIcTuL;#EAv=4>@5$BeH|S}5i}-&7Q}%xYrrccI|D$JB-*?#Ng7fSDr)hm*vRPx)8QMee zz;$#OesIT!nOD*#H0EvIb?4n7^iQE0mp)%XDJQ$4*6rsh~0=_{sU9uj*H8I&3>wp=hfje+6*-%Smzg+~Uu$z)c zZyU;!b{E>;+&ERky>BP8J;=3Xz-f{V`!=%X!JW(5DVeBDNI;htboK@BqpCoN!n!~nte*S2L~=$7NeH$S zfplddSch7iieY9t$e<=0b_lpdW(@zib!kkST5_4B^aCJ&1R;yycr^| zkil|X_Oly{%PuqiR-#i5R~jN%7E9G-Gj>8r4D$R$L6>bOd%;c`y`d)_p+moJWUrEh<#|{o zr+u7ugTfk~!IeEbV$c)lNhqXm2V~Cj;#DYOq;Mo0SY5CL#;RI7)Iw{`J&KIu-ocwF zJ<7k0`bSSK*aEC!BXf;eck>5(kh}}YQZ1fg8uH@%w2KVfbl?J1xl{QNfHJ~tWQ>x$ z8d6{7L?o-{1PZZwU0HmP-#iCp)N!Va8IhlVGh)-5Kd-;(Mhkzowq^7W`mq-(NGLF| ze^8t(9<;UA=Qj_3Z}o(H04Z;X2)C&}6E9nn#ba8b`+9z)}%Z0XKoj z#@QHAJ&T~7JWTD5zCY#!I#x`xO1hz+^f@zo%KjQh;xkQ6aQO~eudVGW>mCkOFyGjF z9==qOes;NibKXaWd&t25jO*O<*nx%`X}k@2PVGb8gg#yrJ7%tXp}(UGf1;{88n+%C zFuRJRY_b@y$G)Kah*3;P^6>@YRS!)Sf3!KH_qE$o7F6wzJH0WzgeguP98=7TQ~!9w zC^+yuHR~QcvchV5`D})+ZM75h;k|k3D_QA7GhU{`rdP-c%byPr>T5J)$MR~}Cdv1r zdY2~u5hCR&74hMpYYm=;iDaCA(0U$r_yHYX7svl^CF0+is99K<{?WRi~nB} z^_?WfTG;17lBk1Nc0q6HJv|LvR!NN*wK4@YImpK`Z*w!61_vp3CmKh=?&fbn0r@+; zJEAZ_f)bGLI#&%vIG^t%wxDNl?VmQl&0jZ7MCa@7V%=kvoiL%TY9KqL>Cmfv?noS)WH zNXtVE`BK$aEy2{@wZw93oWZ+18J&i}=NE>_?C6T4{GTBg_+9dX{e+*^dKvYjl*tt- zq*ozzaTdyQGEgfT1SC#9|3Qi&Bf?ryjI~m&aott)`^}LC%hJ#c&<31E%m{gAc)MZp z;kY{-qUAzig(fyS?N{$NYaEp)$}aU$%>^s0&tKdGA0G@s>PLs^wbZ1EVcRnNWnxE~ z!J$$5V{!Uo#xJr860%bRH9?_ECU7)|XIsN!A>`%|mGLPbky~t7L;`4}i&1OX zVkBMgjitW{z8jrNYEjFKk0;TGtgQ-|t56rO>dmnrXI%eG{`R|XxSYrzMBfZ`nUmU% zh04FCF@`}xeSph6;xH`|rL&lEeZ?)f*u1wsubx+i7-p%S?+oq2z2s*oCs>I7JU<1R z)6xU$km$)jw;c=2m^*$1F{Fszk9P%Op-Ro}cM9u*XB!+|{Adnv@o=T;c6VesZ9Ctk z<#|^p`db}#Xcx{ITp-zOLzH2cM@=C2l00`T_&-A7dZ3N;9YcjH%Dkid zOblStl-mK)kxLk<3*y_{I^onV%2%vKTiAi0*a@ap7WH3XfuBr6A0+-NrN~~#SCVAO zD+YTfc4Q*Z{@yOHxRNKEm6v7u8~YDB!_P2HVNv6U{xiX$^BK`WZojw=oY7dl;8?>K`&n--r6hT^#C_ z8n@dIm~M5_E??;XQ4TQ{{`kU1Eccb719a|glyUNDQS)g*K_0(F`Er-76A?HWYc1e0 z3BDKpxJ8a(Kh(7pbsqW{f4wdH8$(tm|sD!0>LZD z+o3+$0q0#)?d#)EcULTbU54tGPK}}W9B3L)Z_gvQN;CJF$b0>jYkS_T8QOuOc1$hR*8h znsT?Cc1oJZ16((!OA~Utzt7hcik2FOE16C?JD_gLHG6;FzO05UmCwA8jmLj7 zyN1EtPAPSyJ`5v_PU+XnD9^Z%qXwU=`AHfAQ)OW6$3!wT{6SB`NK8yDdj1j7$H*N6 z^U%$`fMC&de8FEKPt%#N;V$b5UAV|oD#>5X*|TETXIg<452d?bOsI)Jrq?+xvswXr zGGXlC5N+qZN0I$9Hb@(Po>P7j4I3%aWf>@TFqoI4JU46!z?XiCt(CfFgNAXtg^dMTk-){JdBHxYuYg6#^xPZ-J{lSt}#b3rrH7vr3LGk$3~FPe=XM0o4HC>&Z)tzL&J_1n8s9`*+5h^MdvokO@ve` z>Fv)MUuZl}KwQ+-7ZO+K#ISCyowRh|=|VOK6pF;jk6?3#q|haSayIPdc?8G*|6)coTbs1>#sRarT2TiXxvB@=9tD(oGRKK$$PhSoMH2 zv3vF<`h(`j8WAbV>K0`jjC;2q%={a8Oy4gV6%Fs{-J!5M;!FjT9k9NgAO*V?xcz!`RM$pa4^Tl%ZhLk<0wq>7!$>bJz?- zOhg5%--oN$)!dn7ybBC!A+2`5<2LZnXN4+o5*0XtYTob6;madkgzwf?kH=e{*tk}HX;_l;37^w^>LKd z8pgdv<1;PDDdn7~(Z<_%Zmutgaqmaz6mRoLx| z)$+}rSxf${mx!~D%$9MmQ?j;>jI|D|kvE%a+9tTh*B#m#DPM(}YwU6q3^ed6nuAp(u$G^-wQ9g57{4s z>4(XCTe3?V`(xInya}h^z~5fhlTaDIyjqJO+ zj`?ktclRsHJ2=Q&e0<~==({|Zq-6S?9;a$B= zvjPSrfW!!C4`|=)cyzF^vP+PkB2_Vf!^`Ua=MfS5GfNG({pY&t!j0-V z8LENe{+g|>SJ5DTXnX5jO%IffL5;fD`OxlVq;luF=Vg1_<8N1=arw)sh(^37SNy;2 z{wSGvGTV+9KKDQL+6+Krq&69~^bBSO`j6q9z+44s3~~H{?G(!%fAy-Rk=}j|;B`a` zZL;v)cs84+0>pgYicjWz$}W2j9aJ7(rmlMR^e~Thy!+apqI{mtly%XkdMqkErKGEf zkj;w*05pV$N-W?#%PsTR4WGP)kNKDuUYZDa_P=+wd-wb8_a8<^Z0Mszl-wG$FYi@jttif%ncy9yX2_)m$jeOgBX>;zjinAbO2` zGvEvr-Gj+MRgu8$XQxU{nTELd``JCVfl|f;IkNQC)z^t38;1rn6TM)CZc+1K- zZSEq9mT%njQyC(&ITzAbs^HaIRdQ}#Ig zRh%3N#k%qAkv!tdi}v7fxQs%@#-o15R{isxA#X9!X}RuD>aJODINjnTi3fWynP-@F z5a`s_JG5u5Gp`CC5+3x*S3&Ry+V>U~!4MMtrx-9*vuUSV*E?Sh?<*opKpKAHejRTj&jy+>Qtq?}b`-o5Uc`Xcv03JF*Wk>mSG%gWoi~TpmnRka-us zoe*-cXW(|=LCam#YpK2?AoTTorZd(*RSpzCE5eSl*LiyZ2|adgY~k{}cW+DtBTrbY z-2)UMRR{}ZCK?{>1~PpM$u>e(bwiNnrAG~tMl-;FC#-(h>MS~xu5PA=nSrY9dU9^8 ztHirrNKI0cl_dR(u{V0`HJ2}B2mED#bEc$I zz8FiWfkRaA> z-I4)%c*Ch~^$8LYdXjhOkJ*z}z`RjB)N*w=dbrc8CIFMfL9?53Ad8VMI(qHSnYlsN z3rp>^Lm6wm2FlOA6rW35uD_+*g)Ez7W6-j5jZtl6QIV??$VU}4(X3yT`Kgv{WWAC@ znh)j@RI(vpS>6h*v753v9{fOVpX<*hIb}Y9MiF&EjsS3xlP9)JHWb;wq`=$Qb~>sA zIWR%UA&W9LVUjw^)x1BTnX;B<%X?^K7&`wZPwwutS=>!{VK!+w7>onU{jH-cQH~MR z#Wt6EIlW`SOJ;`VVp2dNQBq4h)%Xg2sNl=>#EbO-oC?js@H}VWy>_}r!T5O!%hH;^ zp|xx83FOAtFDU!k$nDqB1v|-MHBtHlLOH(s{F3)hnzS&7ku?V1Z=yrVmo{E@Nb}FN ztEFT>XM0a`Kc^YPf}R?QhTZUoaTl)Nst>?qGPfF0lmxLVX&i05H5&>yI|@2-Xxq?H zy%KCZY43E>2l;!|PfZ|^fI_0_HfIsa-;`%202oXs0&~&+3Alc8)=;T&-dOKAXCnAw z{s_q9t26l4NH-ZNd1rb&`3vD##C2o5JCqT4nl!FvV#&jsN%Q=$%gqIWQ)IGXC9y>< zt5n0+AWUmYJFVZ5l_Vr&OxwWVcnZ)+(S78vY)TO&rfTw~UpT<+ij7MA6To4q5}olA z>R_pKLk`L$2O_$X?SyI{2jT<{e#Xx6lWLwHs#RYr_VrI&L8nC<@G`e~t=<^vpq$wq$(eh!bT!YZgRPTg$naE&@L1)Wcmk!IX zuU_Bx($!TBWPJ$Zw0B1`Q!)oNB3ms(1Gk=TBvi2)o=STLbJpk2c z2^MZnN9}%~3k?k6X{RyDb}cOjH>y zAS<=@3yCOndnaX~)8)Oj<#ad6cYc!T&3yM1l3`yYW#2Hk991M(ntzk-JazH>fkM~t zU~dX|bZlBOiSJeArDEahr1+H}$!9W&5~u!Jqv%72Q2;IJ5i-|@N=_#r(EHi(;h=V- zsm>zhW0LnYmpGHzD}p`gCKw(X5krBA#4rsDNUv63Hdz(u-3riiB%n#0=ZKuYgmc4p0jEjbyRM<8?3D|f zhgH62h&X2#3IRYzS1lFmv5<3FBLMhn+an}YCt#$Tw45S3@z&jq4&ubDEcV&2Fl@Ng z5+##2kG86C!_P7w_~)sdF*jT3ExDMWxRJ#-6I@3B?Vg6=?{t0j4Yt~C58f(@q-CZ! zGCYtfWoR+gq%dNVxKJxsUbNNs}E=;grhHSF^gU?Zob{wdJU zi6KUDaV6(iT%8(OvLN?Qfc+y4P{z&8a_cb1dg~x`xTgs;w?>cd);V;YKqh4ry4Hk7 z<;x0Xa;k8~k!f~XXGobaloP4Ld(72!_eKSD(?o7)#BG6ZmzzGM4&}f@tFg?|bPrZ? z`|7eqbY6)(AW4U3Z!d&nEpc(;&TbLiEp2M;ExmAz7#skRce|nrI+o_TV6iajk3Ex^ z>~{=BQ?(j^PDTgb0Y4)P(}!iH zuWt?LXB3Mtz0@%9_46Zc3E0IMHFz_vqA(zX>ov-IncoYIaZ{s&z|L7>SEmd+Yg)-` zv?e%n_gpoilE$^`f^Y%r2xZW`a$1ShhO9k^o26f=9}`xL)ZB7NHHWmF zY7?~j4<0$we>V%l!ScU6@+FP`Zx&=q7~+nAzoeAMEYSi!qpW?AmjQ{kK7~}Q=-~10 zpfd_oJibJFO?KY-5;JjPYse6Phc5rr=wBhox4SXOC;8kxk!MRdUaumeoO)WhAwyLd^tl_bZE(inevFq-Pbq znNz~hQ3Kac<9fA(P9xt9Q;?1cO^U19jhP2j6w8rW{J2XO)x}YMhxK#V`a~$+p2V~?9F@Fl zJ*Ablbh*3MRh5S1$i+FbXJ0pglQNc`mSOYu?lx8ds*6sw+fih0W_RIyNE62df6^1c zsU2$v?6gX19woR~jb+ERTk%%k<{HmQVsSYuk20+zsx{VMrB3V)?w6tl^@7<@5H8R- z{d(blD=LkIqE>hjwyj==oh=5UjI*u^Eaprk10Nb>@?y=xGkaFb4ZW7)U3n9;O(m~E zT~S(612R`SKq$@{DJMfqE%{*raEeUj=}O^xbQDkR5X3eZGX?DunDGjK%H%|_dVK{} zUgZ4VkB-DcCv)`E456_Za{o=^rUM)q^w3y}k;(3*W9nPLD+mC`{vl_888|KGH9`(@mi4dn0s+Zsh zfs^KKu1J|HB4rvUsb^-JkVU&SQ$bo@+NOypt-+FnY znpCnb2Dp^njzSw!oI)28g2N%V#WUved*eiO8IGK8)Mdo`g%(3xNtJB4 zfZE}6;=<27l{|z6bBk~Okot$)VJ%udyDT}UM<4kSEbFw>z1vN%yZNPreXUtn`AjMe zNvrSB=aULJ*t2f&a2)8|)cNNeqexBB>JQ2odf{w6K`D^KrQcm=i}L`OE-po^Uz=wY zx=H{{qF7!D#^f%V=JgY`UtpWt#sk`<;qh~O#^!yEk>olKW)uY!IQvVcvAgvvE*O+U z)+-aIoq}S}YruI~1oQw)8E909?N_SZZRZNPJqRj;$_)C6Ynl z#n0?3H2I&B3=j6lHFB0|y=OrMU7k1MRlD$0#PQdP>5zAu z0e4+m0JJ?0ceU#T;iAC8M%p%6Te5>(tJXAaHEG15Rj|=qn9NMf3=JK%;8aern0Tx& z9VhUF6-$WtQ9P|WHEXGaAu-JiVymtt)t@?0Vy4Y5leEBRj^SWSAJVWdlabk58)<65 zU2`(oE7cTl6;5UV@oK&^f*zP*f+i6quBL<;^U3yLzo08P!e3u*U_x*_Ga4eLcE!5a zUgagLJA>#jYPqc4S zNq}f&Hou~@RymC(Z6FQSx|$LMxPrV!wTv)pC2>I`X~vMT42fq2-!VZ+^rJyvl!U4u zU$B!~5MKbSK4B=V_FLb)4c>499@geIl*nbmResebfS@7+X8~qOi2Fr5^re-3)1%=V zWqRE-;S{T_XZgc8Hff%?Hiwf$LtfLXQ&-OA{&yKw`mc<1!lE*zj#el>6UnnSj%#+>4ChT_ z>;xt72VH+(Pk%$yZjJha@vm>(TWqA#E1KErjB7t-HYG|n3*1$t!EhI=%txQXVLYH&{5n?@6xbBO`fMIs9xR?MFK4Hzn`+p*-G02Bi#`V0bzFhsx<-ku-qCp}(-NWVKV@ISx3agf{*(r-zm{Foh@gmCGN*18h3%;6(@9s21 zNpK};FUL^u%HOQ^d^^m4vrGVgH%s`Z+v6l|hoKK!wO414Rln6#^v61?%>C2#6fMY{ zkk|pQpTe2&N!WSP^86qMl+gSEUC=)gJtQ92!6g`vC_(LKuY5t+p2Nxz`|(OJrjdl) z;{*``GK|LET}s^xACrQmu3^YqV(FYce|AlK6qqY&7C5q8= zqhzn9J=8b}h_SfcB!gV6s8YPvX`9mEZoQyy4^Z2vfZy|D(8n?C&`ix3cJt@&aQ_HD z7~D zU_+&UI^Y-z!VG||WBi(u)GW3gJC8N??+d=CF3<3ya-O=X zw~zZNyFYYIFn+#aUdU)FZ+E-bktLSv4cqaU6C9|Rmigc(wOOudFU}q>RIm(G3Zd_G zF(^#x73%*e33qr`rh2G59|+1JBcwx`_zevc7-TeFvY`-)UyL`sTHXU>yJ8?-ub-fG zqe&nN@hvGBO5k zT2Hq*pf`?Z)0!Vx%$~^-#0i)Y`O-q-$-#KdQJF$`Btl|FzF6c+q{+*a{YasUfuI*4 zy~+h}J(7M%u)U&CA?itcF|Rt ziPmVZ*<3uuD6n~La`{+xsS*A2WYmbWbew8XB#78Wz`k#&wtPfa>;4cN+J>g>?}aHF z?Z45b>yi1n5D|KH^weX6N8Ngn2Na`fum>bdkA*~c_|@KZR74M4H?E|k(1zFS3fGi62w^uz^+W26F7mrxEFp_i7aVy z52EW@qe;Jqry=0?fYO}SD%2sgl=d;Mqq(b!y|Q&=BVf$+$GM%naji)#6J~_1P`s~+0&UZ>f3!kFI={& zw!C2C)j0c=w{Dn^Wc?=rDFG9{rsXf>gSLYyC$r8bAS`gb!J=h2TK()9}qH(6oP);t7+pzY28j-3`pU1%JAzfj; zo6xQcIBq)hD*vvZ0q&D+eRx<&rtG$$FdDPD}&tHdq z8b1dBaPPVJjk5E^JG7z-@T^U<=unK{vAJPOU^FD zBJRw)Cl10Sm)65InBVT#Vc!D-4%%l<(&5B%MBs;*b`P1a`;q`2oGmUlh{mo9zV7X66XcO>ymtd& z7iV(9!-`tp?VEQFX3x(%$fu^pDx7R6HbnXD*Q$5lS#+e0Nj82WME;>-n8fQaC zGaT`J*_55<{V=)Z@(l1)pDVq^p5fifMuEn&_W(qzrO~ZmvQT*RHY8mNi}V9B6-bDu zKGET1{9~Ny`o(6H+1}i1u}x*utkY(FLQ_Lo>(J)BCkf(PEj4O}@RE3qWReZ6;;9ly zLSU~6PlRVeF45~ev{UGv_A09E^mdweHrpFF@ur%Dz$y-SDCIhr=h0pIusj>c;>bBv zFAdHxy~-j+?jJBMF~QX!E2Z^bGzfq!D>!J)?*btgzbV!Ou4>AdaQ|dm+z)M$3v3jV zESPtg)0WU~qtu)*qTVio-dAKN+mLMLa2NDYW^ADvD$N>CYKyw=PG3 zt#?mwXh=nv`IH`&GopPgIu15_^lT=-A}+hZ%KF%9^vse^azy;il0YIe1BH>q35n-9 z2A+?89?&P{%eA|7@vxGB?u?Ll_pu7i`c+#{oA3;X$b~KG8{C^dqGyOx8YimP!|^(J zDkVLaHYz>JS6J%@>60OAQV6^fRsxlU=hMHgP=*{dBkUV8v#EEz04hFmX4nK1fKHNS zNZ%-M30k?4ff}|d1@VsQyljH{UO&2j(+5#ld?e%t>%|fk|a3Wyv$V zdHVOW4q(elBUbb^LB7_}or%$W&L4DY!b#80T(K>d=98fyVZ}f;EVb`E>>jiV`+`YXd$iMBG78kD;LV!BCnj>=V|CKU;Kgdf3N_||5a5KGt2*8)Z$2M z!xm=*(Pu`D1_gu6$ce@0rUi!(LLYi8YERg%fPnc>QPaF#DoJWga@X${qvgrOwIXei zR4xF<=_8wYi`A$6e1pbUCwvIv=ih+DtDSbX9_{zL_uZ>lE5ZT7aGkp^d-?J zy4asjS67#AUA$iJZ@2g}QL;${7V$5AsZ?V#2<_S#Rcv9`i5*vn+*rZd@;1Fu4npjUBK+SR zXq^HR$`1o@_!+&y@P3SW9~n?Px?3?C6D4V#T11^Ii1w{5Yxdd|e8n1a$_N=2fTgZ0GVge5rTzsB&+te&|-p&m|-uFQ#YmhxOyz?zZVhr)uxH9ZMn7Uaf8ZkH2``+`PjhvU~V^ zk!OE$@W@XeUk@#W2|ajbk|t-x)Ml&syLEJwHGHfXG&SY>FM0~LGsfLRO(p+`Z=FwU zRQD9O^7t{$JYhQe4gX=hal(M)ZbnbkAarDa2yLe2$$C8U9&oFq2j2p>M#`hIH z7c1`kv+e~Kvzk3q)tCE8^*oz7^L&5r+Fp6=t(8f?Op|o?1iJ_{ihq@IyEJrmcC1j2 z{=7DEC1bm^bZ8*p6Eb@P>Fav${6MF)<1HjZ@koGTH@~$MRZFL9xZvb^vgnvvR8_en$z7rcpet18f~qv4&t_g3axAs zfOMjNug+TG40cZk-|RWCO>D1AP)lcK$ETpZ6LINB3qaKyZseY=bS{J zvyR$Q`5E*+YU3#1Tj?sX5Zk+LgbwmgcNRuTPm_USu)x?bgN@YMeUfPbSql%*9n1n(#^7Ya+5he1>a^x~tjA+%N;UD9VybG-rtn`2&G^k>w zy>Y<{gRAu15GY+Bu>m>ost=3poMde0Dr$^>d`}NBIBYRop3Rd?sX3zz>Jea~Q_ubu z8{ZJY8j%QB2*SHPn$YrVrw^MyRm+Y+Xaue(E;kHSC2zjX{az5+FI`;v+Q)e%rki@R zYQq}mke_~m<($Dxb%#>C+zVITrKptiAv0$n>QrYvMI-n?C_*3R#1rRf5)oM6w;9<*eKXt=K z#{AzsIa)S07O+nd5VJ>kA$@(|Vo4EZ{d5s=b1eWd_)mg5W>BC%Wm#EY56&v%?~olp z(b|YnIV;h{93>AxRuM~QG6tc1s{RQh_POd}jw%5e+C?hv#xX?g)d0lo8L%YqsQQPw z>QS{+MxdtpWN8-5s2b$rwp4wiE~d0&KA;%w#AqwXqAB~Io6rE z07`(OvHcSw@Bxl`fTGt-S>CqV6RP@TVZSq@{EjfXu}-LcRE8lW?Uew;tr;@Swxpo7 zAPo2MzZd`K>6U018yAysg8iOzOwtg#m;a@~95q!$p-QGtrZ%TWrV5#u^~-vWhRpvV zrqkCkS(0GJ`b%W;Ff$O{9a!=ImLc;0kzr2$R1$y~KI4f*4K;lXHiQm62xQ#m_bH53 z5qXpW5Wi%IY|w_({B}Jm(c(ISH8ieD8}&(M&#-$YEu0I&LgnUh&M1qrGC z<&LN(CBB)2{a4?(8e2PJwotIXUnS1+@!+6%$r$=BkQ#-O_M0O$Ms4S$Sov`DlfPz)>YiKNPv1^Y zeN*y?)#%bL=WXYvXjN*bMNCW!^J(WIXeBjQm|8_@YRjxAHAnp)N=ofkQCVXP(p6W? zHE84<9&nl>*F%IJa9XPyJ`tMIb}vn^+C%U0>JeiYPsJ27*&}MT0BS^dL!~F8eLHkk?EMck% zSH*Bugb!fUk>soIv^hWu3ZUzjhVnl=K%?17Z5pD{Y^Sz`Ob`MzUDJhi6<@7(t=_kw zm2$M(pgV4}LUW7akVOg0SAG-Caj!>DNy!6P`$3-L+6*6q*0?ou^p80$4jeVUkXkZM znCbr>4{-vBx}u--S+3E20p2!rK7ucgxf=C{A+@B(fc_5yHqZb~r?y%ES;XkJk^hXe z=eAG)mm^&#NTZ9}5?IN?U4_V_IlUP_IQhq28zJVux`_y6IuSw7X1BtC=3BG01z;LF zM?j0rTV@C{+(>~-Rr0qof%`(PmvQRYny~!@6tj)lzxi|7jTq4av_r02i0V9;(b#DL z>%L^9^kq5;p?)bLz$OBzZCk@e?vr$`VJUA#qLQ%pbf!RCZ$}Nq7y{h4kTfd5R5@L- zInScBuiBXFi>=r?0_W+tC1I-{t;0U%NjYRrZOO8o96Uj9Y~_G^)Lpgw8BMvm{s5-7 z@hSrFZ{A`C)qilUnrsK(;H?8#&U)q`QHRpKbbzQEXbPhRz*yk522{;@rT_=9>k#AY z`%TkF0ac4Mf{XOWb@74$^x0sPIN^6PIki=cr28Whp*wv3|_;&66`wC0og7o-3XeTf$hlr@87aSIBi zcUeze_eR5rdp_<^WIl#_F3R?ow1oHo!hDUJDb|{=LmGS@vF~;WS6pm4^0-YaHgEvl zZ4>uMfFIWG|}I8F7h_MUAUKJ7ha0cJw%kLBmGqq(huU#=NFL zm>_stC3*DyxgZLMHH7}UK+0IeD~1fH+6ZKxG3j5ZIM*l8*AHt5i z8z{EkaE;yOcIMb{n?DaYWHb1-e+)agG2?d0@DB!*DeGO|S-_sMz(?XwT6E=7O22&l zsmDH^s4lj+KUyBNVGiso(TRRE(fVF3@gBlJ-ss$V+Jf`b%fXfMdIanZ*08&y?rj~d zR7o%7?wv-$-{pV+| zH^GoB=0E-F{Z}=+jO_nA>!Mp-%I+5c}2Sb>M+RR1utxrgz!j@sp zFWX)x@(hTWq(WX4>h^--9F?OL z$3Wm$V15t#HD#4R;3h6}N1akOhmC6GrFF2(#mo$nh3WswRo}mBEZlsS=mBF*d00r5 z`TaS_39&R;fkQzFzClEN70IffAW$!c^mOqLM#O!;APqZpbJ}1UH9;aWRPVDcqiWV+ zRW>j@`Piw*FvT2e#%Ab9Ip__0t!e@AEZos@NtDkZSid%%!#-JvFqw-Gg2i7OHk!6t z#7McA7&xP%#Z40e0%Bo4b!!VyeoNrvL)U6x%$aT}4fvInFXA0F_AgNsF_KmCs$tA= zDi}bLHD*{3g=?qf4Unm_9sSbW-c;cloc0pQ;)jMcaEZYQq7g@Ri`E)j)u;$Su|I7L z5}zCy3SqzD%q1?ZQad)aR0y^(>*X$lM4hUa#+AfiY|X}DJ{ zl0%n8=Zxj%@Omb@4ZoG(n#QK3M++niC`iN4ClsH3m-u5Qr$C|8c#8GS|AGy?iX@B$ zTg+Hc5tyT4sojYyGdO6x(SQh}HgNz>LU{2bd6Sk;aUMW|;Y8!C16sATkuTTzKWT9Q zC{T7Guy35m_i`f6@z6Vzj!fL%apWqOYBoy>=oGrcNMyf^vZ!C{tgJhRc_D?sq`mpm z$b%#(Vu^$j-9TmQebC_)(vV6RCorMhMH3L`>wM2)E*e*C`Ee2f9`%#mdxoT*5;3?< zS3wzIeiFlA&FlF5A%Bh&NVq=~s zwv8YSmmYrCkiGz5PWc;49P72XtO>D38eR9|Tm3n9Jw^Ap+2mp|4&F%r1Yg|`Gl)7F z2BIlFCw~xPv88?}8IhYbIGU+K>b#5vcRO(zB`DO3kd>KQgRGN_E3Vu$pwijn)%kDE6zocqya=KEwjfn zoo)1$7&FHrLgIwBubcChEF+0`N&tLuiBWs=l5k*q0TV2*LiAI4sp-<^bpBJb*;DRW z4oAF1Zx;^&8wekz_Ya|WG`H>6z@Mdxcw#XYU_r2+&|sQbf}C`n=RpBqG2X@NbZ`o! zGhf(Ehyf>v&^xKooZNe|a3K9cIq`^*%v+>LH1xoraFm?4rjgWSA@)=6oH;M0LJ+yX z9*2t^0lNJ>&8&0($fjp&>7EgLv`GT;RZqwb3S%o8osT1r5Vxgmd#vm7j(NnkU-v71 z>ru)SRrZBzqy-30#Dkk4%5v1I@K#Q3zL6ojL-P)d6fem%H_O-~L#HRj{*(mi-&<(~<$0yzzS7`> zFNIV)VH!Q$4hbA(<#R%?i_15LWEt^aGiUpZF(Pl9whaje=&|?wPO3?p_l@lrjHseAti!YYJYn67Ap0x5$}UxFt5+dar#QXZ$3;)nF8M|VZQM+Y$=z=> zMVPXUitJIc+TQXhIAw4FrepW$T%ct_SMaZQ zfJ3p5`@hK-E>0|a4I?pH;%V|QR?WL5WEzu~PRw6i?sM83#iepGFqF#7$1IZF%e<6n zwJy+u*1OiZ0f86rOJXT9jVlD58fhY0Wr7GK+Peq2bwxM6ujmY#T37$cCjM7N>P!qA z{|m?TNOQ{$n;ph)N6*2hqPzcGVdp&l7x5NsL#wrmRV0g47Hbi|{GbVU_R0>QG-tY_ z(Ya+tcGgzC{?+}D0*XiiipS6hP$be%kf6e+8rsRi{*c7oA!(T)GO>w+qlUZ;1-+;| zQ9ehzJ8xU&W>+_c-0;NRM&;1j)W<^q-P!HQURKghyh^ZEbedb#nmtJwM)LQUdCb~Q z?DrulJxw)>tLTIXazD=Q%EVqcBb#~;{s(?3>8-@mhYl;2Ig563Fd;m7MM@k^FAZ`d z1c9J(+eq%#n>SmLWgSmv?v^GLY~y|ZkvCJuM%v$6Gqvv=qwmF9XbJR9wd~ zxzM65`lMd4b&djaa->>!rwxWI-en#qiC0}Z0=1%d8taa^uH z3YHg`2_^df{T><7vRj3z?Z<8(3O)sMyLjA4l-H0lt*U}ix4|WK4MXT z3OYqh01!ODAhE6r^lN@dja=(K+tAQLj7A)-f^x97Xmo#shFWE^%yzbQxizlj2%ZSY zcH34_(SZeiUX^=)m^S!E+PZ?4Ff~VwHT8K7jJxHh>nt4Lv+1o(d0zV$25@pW66nPC zUCZ$7(AX-Q4*waObk{8A0*iD8WW?n5Y7?Kewd0DE;k@!(!98xBp&gAML(he3pLV*u z&n8s|f(;RM*_UN0;i4}q6NpMk)H&*}0hx7~dNpP2)y$Up8vL~NaB6+*Ej1IO0{43h zyf)_hS0D5S{$uO-)sN;)jaCVCd$mxP+N|keF#*zi^~J~6X}@GB&|Zu7VfcDv$oJH{ zy##tb5*+`8^zMN15Bz4v_6tM1`s2f*OI`PG9QFCy<-ku~6%oy}-3q4Sb-PTBnZe=7 zo#CY)t^D>A;YnjLzLRpw{R&}Y=b4rJ0{vR?iAq8EknwWYchCgMg{+ znXgR7rzmL`djG(WPmgA}mHm5lhR(K9bz$?x+wvvB{M)<17g%ohHOkL5rm*u20rM;3 za@K|h;et0LpD(UDOQ>8h5zy=7dLx8VN=pO7VUmXM9PaG|c8f69k98_F;T&p(?<$`F z0~8N3^9nwtW|}aWz_IrkAru&0n&y0Dwxw_O=o(2>X@V! z4K=sWL>1UcxPW(0?qAUQEfpo@z>?N~HUfhxE#X%!@xA<6yB$gBz4K(E)Y5;M@;lqr zjy_fPWH~V3RF!?pIUYkmbbX~vzv711lx0SB+4^+kLGpqd3ajcG zl-&`ew#;ol((NiKNv=QKs+&J<7iD=1b%bD8c-$9J9`l1Z^Bi9LWqGNI@l7b-1-~^{Sy9vE& z0J0OYq}eG}D3{Xh$ve4(tv0M{Qgbo9efgwJK`J57mz1*|F&6E3wSt@C7+0XOvd$6d zoJkQjo z1B&QFpKKFX_sxs@60v^Hzz`8E!?>(U(QIong?6O>+ZkLEMoZKOMm5 zX|VSv1Rmx;cp5DKRiKrT^M899LmC=!8=^?QJ9_zIP<5Vb?3m=x9Q~f~)`2t(t7$nr zvzd4iEyCj@DG?7BN=r*5S&CM}vS{j)`lEd6FKQ}Vjqh#yl{mhy<4~_tY8waV8=Xsk zckWY0GZ-CRULYp2kiaWD!+uP6t|}LHJDxMmC@18=P@*8e0O8AJ99uO%sQfxMS``B}~PPAJ|BJ?<2t~!Ib>D28T_p?(p<9Lcf z=0=I_=hj-6(3;=sfH||m^Z}apIjJ9z{v2hdK=G|eqkms?c0+HBn`gyK17UC43->FS zg9f)+<(TQ(<9PJ{z18ub^|e6y46LR}rvV!Jxcs=;{&w#Tg>N4}$NS545oT!*&!YD9 z=xq%j=1Ob*yx90OjKcMihHY-K+BrR!cC(DFU>tkw_B8VvU}auiuol+gq(u@}VAIw- z3E?hTG8Wod!*$jFzV7dQ2!ANa414=X{JP+Z&u_07e^MXXZioO_w6~*3hCric@P$n< znV^!GXyDDVnlxx|YN)9axh{lZL!inB!E`;jS?gU3m7B_u3D(dwcVG2DbhU?B963& zF(&0gXFlp!kg!vbfbKU+0w%K`Bnhc+zMogoK^t1F7&)LS35gi9CQ&g7s7RR0a0T57|}Bgfbp2458@AW z;AHG$AnD)dCy-igG!K1OJ#EkX{Xj*^rBoz!)yYQ8 z*V@54;HLy=!{U@dRnamNlAoVLpVf6U>KsfZf{bO|3ESO&gwip1$FB6!i6sZ zDXv8M4}pyIVgRCt(+J*M= zEICX9)tecqiom_W{0k&C`j_b)ppG#e4myo!Xh2D@JZs5Eh^Cp3{eLlb4nd*>Tf1%B zw(Zk)_i5Xry;c}){!aAxrQftwMRi7@ zW4_%T7wQfLFi$KILM1lEGMk)-9V(TZ@;!N}zLknQR zxqH|>-wG&yDwF6ZTM|1DTyvCto0DWX=nuzNQ}o}02~C3Z%e`3+<;9necPA%lDv!%8 zTWJc&fOkCwLw`ozEoDR;sE5dRVCX`n&6YE5QPE6rSxF-n$2FZ4gp8Vz5!g~kDuHFM zHA)nhSouAcr9cV%=z(Sh}F#X$|+_viH$)Q+vDUPl!vXFC0&0MrL_F*VN%=AzRj z#gD)^@e(e%SsBp~XClK5js;zdgx#W#W&thMamIO)%{h`u%;NA76ozww{9>{V1LR*0 za-|V;pR|87A5~DOC5$+kR8;=UxL+vGVoIEk09&kRo5^CEHVcUGZIp~ZV>3`qCTi#d z!49Jv?Z_tsW%ut;v^r$qh;NEZ2g9)!*tb`0ugr!_64ESN{MF2A3zHkcmv#&EOo&OU zKz<~!VN)#3v%KmvVUcc&NOY2jd#Ul$&pvYy3H!x@>>i;1Fm9eW{VRqLv?Rhv&0;>U~gD2UlOk;lpdv6=k zusc&fiO72ExT&1x+wuk_>cgZoO?XHOzV8+f6my>Xb2qV2 zb8j9|o(LBS&1d9zwzpMw#BK$O_Kd44+<39*J)?7RJ1R=5wiZd8{rQjV@>1VAE>N`( zWsbh0&A%!;^;nw(QG2w9(oVyI-3pV(zh#O^y}~Mv>lG4*Jd)Jb?gb38sJr@ry!m6> zwO<6gFwV}L*FLISNaVjz!l_RD?hA<2MbUZphr*Z!d#;J`K<{pk1dR4FY$v`X8?9qs z?Ta!qt|#+y0ij9<*Ly+ZZ%MbvUX7Dd(Jty}7vMrgQC=@=%k@9J_+TXGED9~yV_(&8 zAuJ9xw7O9cG@JI=?fW|+x+2vrwFIkcy&z~GYhbheU^G6skDFs6%CKaOn(Q&qDGe*r zAC!M@9lek(57|2AO+6W#)(YGv~+h2g@zSX-7VP z3;lE3g|IAC4+$= z2wdDf$x*2g7hSfQFmXF!1qZ!Ycv&z{swj{qi4~(!R1y(3)L)d?y&oyNhljrDcRAz+ z$B6Fr3q(o#94;U5Il*D2BF?I4=@RHx73Vk z;be`bq+!B|Y9i|@{5Ha=x2H`WpD)&8_Mm(aOa(s4%r7n)gKj}97>*-yLaTp@J|ygG z*PJql=I9VA?%{gUdV-pjZPs28Rm@h_uI0-p{0R7r5w$415!tU8EdU&%lLr{vg%Txy zK;cQd#ZpIx(eJCJhQBcL6N)}{hrjGMaB_!Q4sym5$`}L7_*nlrBVo?T)Duet@XoZJ zbgeMS7f7BGz@o9LF?{i$SdzM^n9Dku)FRuT30(k5w^W`{Mp^TM24ygHa!=+Br!tm- zFydWGFyNrWV=OhNj=e48S@vvDqJ-$x0OfzVumrWqVbybi6s3NUEfE2@r-$7UVi`dw z0&;l*u%+Vmg;p*717n8aae+wHb%Qv4U+{Ke3PKMU(*tX5{SdK}y#0jSio8(6&A@=( z&Z@(C4v;Wbq_hh_@4F%bhVLBeYtuG`j0u-+cBBca1_WX{-xsz)f16J_F#F5Bqm0oX z2jmq0mlvUiq-PyCj4j-Ham;Ao1O`C73;L0srh%B^g$B=y$0dys0!<3w0Lhe3D?1eP zsrjbIXqPq|P|iN4dgE;-`IH5i%o|{#NIZ;A18;2NyX~Moe0>dSLjtB9m-B<2lr58< zZ>QoRhIgojK~Z<`vW?*)3x1w7ekg$88wwdeNen+4CNmyEoZFwoG^D;5U`Z@%G%Zt_ zJdp74?dhbW78;m5a%9~5I>GKNH|AX%Db+0im^j^~ngjWIFn*^%K!W3>Fz`eRJY)f17+65+LvmgC0LIRzK#=23ztu*CCO=u*4VWr9+;0nWO_?oJfSN@MSA69kK?GfKuUy;6APxn0`?2 z2rZnj{Imf;Hob12u6Qz0mj+mVe)j1B+2P!ks&Mu`ZBwFtnX;7tnm0NaiZZ>yo!0%i z#&Zw%t;_6dsJ^1O>a?hQe{JP-w*b)`Hi9e`;UND`v4gFn;@0W0ye0a*<8K)9gm3eG zM&3u5%xSIypS0cyZLx08&boUt%oPu33d)@TpT3}S>lSb3MrG{~Z>CpFp{Oe!{#y^T zaHrD1$_>*sih>=;^H=hrd{)@-ub5rD))d+YcZY5q(}TWvG#}fjWW*vS>l&@}k(}pz zi1eizmoIBMn1@yM1Bs_+P6H}0)y(*CJcL{NK`jPZ6d2&Zq+iPVQy-SKlEK?h3lw9c znF5m(#IF}Fs`B&8X#S!}+5E%83;2GFc@e0y=!EyOQ4kX_IkmB>vJ>wi!GL`I4}Ctq z5_meelJO?*tIlZIC*SobRFi5AJ<`;Zu*eB+^+hB|vv+*_UtJLRn+oUSnh~a#k1yHY zE}?V2UYBH^G=zm9r_9B;;;J%z9q}kHt95(!Agc1durIhVdn1Ps zHP@+*ohm0j`r5wd>|$IreS`IleQ}tpV$LV603d$=_&2q=y4uI}Lc=kp(U+09>uXXe ziTj1NTm<<_sup;3X!ZCR+V8q&i!^<>3 zAI})r9nylS!lNSj;=Hzl?A}Io=!4p*T)Z{(3<64}ecC=W2M*TJZ0~+HKWp;wI}IeQ z%y8=UZP4b8UM&T%$pBJ*^@T_lPCKa2%3)6emR4fI30Z2@P&mccrtp<60T>v_CYx z*w{zwykGWbD8yrywd#Csdja=Jo|)ZhmepQ0iq-H7S==HI(eFHf)!!cBO7*qjN8bAq zzZ0Ur+k+dd=t)4~V2l8RIC=8Uv9G|*qU}^VT>wY7a}=Z|b9t)!VQ<48bbd@qdjf?Z9hrd7!RS$PJZqK93?cw&OEq zR_#g2V&bh^52`Ep0L*kq`nBkkNKxDZn5!lTAwrmn3$kx^dcG_fL#vtXM^#>zvjfe5 z9^D4o(S^waW)Zh9I~>t@9R!;4;7F>tu&0cmW|G9XufK+cu$zF}ZK3TVk07-_XdOoKWnbhwr=LGzxSbJ@H5fS*JQcs}+o40drtK9pJy4g)sZ z?{zEhLH^yVW?)?K9t^h!q&-}1W5+;`#^-=O08)7w1>NM^tXNWCP|^B#U3EZJVZ?w! z>-DAG@c|*d1uk6H4h=PPP=ZcjgUsv~X~FE0(}BCTm(LXtdO_jFDP#=}&qe9xw#t!j z_mW)Z9J|?V-x->4KeNM9Px7*wWMY-5>6;4N6{^vZ9^Lu_JyhHKL0^dI_4;3K(^&qe zNoK}B4FA!$D^}BV+#Esu6%O-%DKHq;09?}1*?;VD#)z0NlGX1FM0EnCkXRt(0m?OH zo%!Byc*4;o?NKmcnukOVuRHd7LEjXjdjNh0>mc>}?j3{Q+_dg2w@yF<$AhN3c0LKv zG9Fjk6F=KT=6-EuK1NMTObQT$=g$Pil=rWgf zPVg2Qoh?C<_m@nItLb|PR(4hZ#+T<7zQWV%GX(=jA9kfsA=`spCka@N-gnXC9^*j( z4`%^iwN97QTl)NaF9A)hgYDl6VMt$^OeYEmi=gR$k>Iyl%?~5Ryxj$bMn)vv5evWy z?JpXeS2x^zDyQ?@aM*XEKDB(sEgvVW^Naguf;#-IUbP}Y^<&bB5hxVStSylQ&16i3 zMD~6W0IE;nG3MRFYlBWFka#fn|!IF@jl|YDmuS&^`qqqYI+kx2#{w>F_V-O9` zdeWoSOd$`%Dvos%%fg7VvM8*9zN9B$G$)9>=WtKupYYiwL!jEV>rO>94m~XQs5k5v*K_=q8XB zQcG*cWs;5G%CS9V6!9H4w&qUlk9~b!(MC5j+$p3P-0@d6hY^Wx^Wj+Q_q%c`sI8Y~ zb;vQ`d-Vp88@l;Ep)Q#J?6k=FHW(JPvo+jQfpS%o+DtcVbZN0ityoTu0(w>-?`-nb@4pp}|toPtif*stkh4f_N(4V^w4mgyQHLsUD zx@_?NrLxbxDALpZ_WdLg@}21#c1VQpL<`?$&p8Jc7^(DU&tKKl!_f*`%tMsy%X$${ ziqDA{Xq!*_p)<0CS_CnkU< zsGx~?o3KU^@U-6Ne6D!7oAaoT}M2=7Z%vO_Iw=1KG`pxeP^MmH4j9Hlk#0ZRO z^<0}Shj5kp;XN!*G3CA|Rx9YMVmyHB(g+~XnDA`VfH0!KS~(s-TV;l_aMh9_k}pL| zq;F!67V=?Ay_7=q5c8?2v}#fUJ$f)z2l-xux@AzwGeI$U+P>6qKTmwVui&R@!OH2c zrZYW=jC|p%X$B5x^dl><{5u}4WB^-sAe3(wQs`#;w*i~{n>^5zyUd}$Mt_{#Y#eIr z!$B7t^*UniDN}GMZCvZ3zO==+qjWAQ`J}r?`fYFw66O*oGD^VrU4=}HEDkx{n73pK z)}0~TkbPX(ZT1=~?^-0|2~g=b2wi_saPy#X$8-9N5|3sAQX!*-km5i9c_qOd4*OU% zUnEbI3h<_F_-dRgjFi4S;wFW_MQu7luJn1+^uN~Fvn6B409YHDvLOMsA}Nh|Hkh7; zzffANwZWa{DTHcmpLLAz4QS)H+rnBpOa-E=t4o3FX<_X8IyMVi*Y-_&7OyP87$TFH z=SqXd$Z5WhK~oAhQP1X4y63oE4AMf(ysA4~H=-*70U_!MoTNmbGoV8J)b#xz^XF#< zC?f)b&ZB@zzs(N$4p}71Jo8)S@M+{+Gq#7DzEV)yKZ19tzVc(Ag_zg5k6r7xY{@7h z`kPNplCa#)usFKgORpde7O78xeXGkg=7cNYB?6D^B#^1#KJ9Leq2K!Xn7-3-2{ajU zyYR$}fzW4cXpMDrcU_&85_Gt3FL24TA@EG?iSylVZ%8k0!%c(-y!NWjEt;GBY^PW6>z28~({BSfJBq|2DJv(}R zX6){EgEfq9OVMNoeOuIS(D`_2d|vm^s3a?^G`OwwJ%Y0h?&{uD?;q-Yw^%-oC)%ji zo3#_^e!gy1*YpE%YosJ$KkNnv9UZOo+G`SA{A$M&dMw-Q)589Ohu?J!IuuV9aooR_ z;91&u&m?X4`%_!OE_{*2e<`4kPcj(PN}UHHR0p3EyS8?l)?C{SswS8W163u7KV%jC z^H94CPHpkL z7aaBG`A%PR`{|pIGyZ+)~v-N53jx94KWmZZ* z8KH)B`$g_f%_Q9FR$u%bS!Ms!!oPTe@X$|iY+;^5NyaBKr3x0k|D5A>rlo4cOnZOT zitPy&NifC4gpOI-%5IXuT%GrY)gU9ui!1#lenkE&KjPIu;MsS8tS z#oY{riEF=&!ZC=OOtJQz9j*0r0pjFC|7u9iT$-uU$`j~h;rNT~Uqqpp8rf%MnVN@j z^A$8`1AJ;qm*l(`k2O3d5eLnImr3sMUM1$EdBR%mN)KC$J>kN*V;g@A21MaD`G4oV7v0;eVlI(Jg!BuA_~ig8OeSUEy0+xQHmuu6$$Z_Z_+Z}RXMUI&AI;o| z%nZZc*O5sqSRoJOW7jSf67KY_ZmHq->2kGps_Hdx5>Vf+!<*1v@AuQqhgy4M=AVOC z?E6~rWK`dX<8mt6NVRX48S(Goh?ocZoH5;r-Zj|d!;>6wFGrD?$xDkUX7_V$Z~!?H zk|T2+ogguS@1^gMiN`G+JE0s4iA*ePjaP2$+yyg4NsOB!nafwM*zP*vEjRA+QbYqN zzF#{cRf|Nn52^M!BW>5U0+}nUa99U#v{pUc81pld2!S{QX9!{=ttw34TaWMl=Ol6x zL6fW9U-YEIin%*p@@f*K=Q|%WQI5Tb1l+OC6BMGpS((j_lk%J!zbumCd#%<}3<}Qx zY8!E?=C>eI5_fX|%1QzFu6+re?vz%l>3@wNzm&P#sTFwn ze+7EQlCB%!=9s18^6Ybj_JvTHrnM_?hl3c0S~k-?98LWq(8%yvJgs!6`+IKQrq%L zVwS0*IMzt18|^5=M@_VlDm94@3>TVbb~}k^lFRSbO(sco?6{RSxolXrMGjJfK3zY% z_yH#;u4qHTgCBywwU_)56Yr6baR-B*09T{AeFecLD;2>UgB0vxNhx%hW`}C$D+n41 zB}&FfP*AAcZO&ogweylB@*ilyW|!F+XyJI~An3e-Z95W-^s5uP??^fo;&PTQsXkVe zG_|@Le5L&%C0Zakp&f`gE7I*}x3NL=Bez!MHE2-0nyC27*LvYmkHp{mA%CE8B7 z@_>Dx2AL7OmC~D>0#r~Nu|(XZk|m#?ZU9RdmHN7B`Ts=KUw`CK));NyxRs>U z$lPlmbklT6k85bLUhId@d*sw z+IgVV3clOw;KRd)Wb$s!mxva7DJ33bO}pr0KItF*$FF=!1%2~R|u;& zsEIqK)iVi$i{?*DOXoLqE17z|phx>ifUk+@)7AtRS0$NuA_+Jd6VIyZr#!1xhVJI} zoy~BjlZ$h3oc3^v(7zSOj?Zzjm7!J-Nfk`nFmJHTI3GW<`-H+GKyu*+YmZU5Tk5q<;C`K{xEQxW(`q*k70tIfag+kY9M zfRk~Q4GCq)A$%e{(%V>3jXqr@<;;KU z?vF>HtMW4uG?6p4`flUMuZY>T-%*ppjHpyH_2P!o(hUIN%;CuwUl*ULc^YU+nLask zljZU%w0y-Tr?h02YjzhMkIM?WwD9HOLr=VQD#0C7QqHc{BR;&XWhRKHdbG}U1z>Dg z0rq72`Z!iwRjo2tfPu%Y49S|!wg_RlY-KeL)b?D)U zfy{0SH6odrYw`7UHfc@g!8SDs(gWYR_?3b)|9z9jIPtDcJ@DA zPK{M;EUjciaVBQkCvM-T_cMX}*V0xK+DWBGAno`nxsk++n%$&AOs{(Z(SHUCd5e<6 zn6W8D#^yF8yFNCZS935Q@klvPt5K&6?kSzGtXE=Z0Qnuv&|OWEy$srH-tFC_;Ws)t z^P@!%cMZL`*RCn47uVPNrph+6QHEMZChq1PHvnON%9U!)S9%|nn+>gSTCK+=J!)R~ zK!McamXqpK(^In-`RAEeYfjb5a=a*%K$qdUy9QRycrV*FRvR1Vm;0&qQ;9=kd;l~? zB>PgRD*X`fMusGY!O|r8l<`e2;UI!ZVhm2AoQ_2O@R?!+tS(C_E+_AcRkbTF(y)K) zjyO%Jp6=M*z(ojtQWT&vZK4EFM<~P(tk(r8Mmpg0i~K9wwI3$|sNmvE^2SBjDy3OJ zyTUd-iiQV$wST@1>eV6&_)+++1QoVXjYP0|E2*V$(*0ho74t`E#o;y09@=WKgbI6X z=L&K$ALVxnV&SI#VIM_g9S?xpz=bCH-7utBE8`EtcJoDOjwCD@7?z>-$v{=vk{F_u zzMz4VNl?&0)%(kEED=8me6d!mcN9F8dvtfOML>UBmBO}{$lfdqe+MQ+OuBEs4m8n zaZ&9=^nyqJ3^UST(iAFe2CWPj;YlNzqS#0fykfX)UcEmgDtA+A4k=Kn;TsvX@BF2s zNmjV4yda39GSmPI=sx8V(ln!f6fEnp8wwdgzR+aaaLH@I3E3`bnTc*)RB14UfKH~t z163MHO7nk5Brd<3^5^B3C;T|}kmj*A4QsCeH#y8gjhf`IAD4*}sUO-mYsry=(J!3! zUf8OHNGF6%fsbW=y~xneq;C?%@_i&Rcbaf=Nnpm3rNA@qs~)#oSAEpK;Pu)zom6nR zwh!b_rW6?_o~3M|=x>?~d>Z7AlPdDT>w=~cGMvFPn%Y29j`}OBtx86;9fLt)E}H3_ zq}`pQBhM>C2jEqq;G^Kh((V?gMI}V%o}_hdpEi&RlPJmIFrKdEw<<(Eea8Jpq0zs8 z<*UIHp@Lu}TDd)lGL|N%D_cpFJ{w;LFAw1H-aSg`Dlx?as_`CZNcIUg#{W54ksqc- z526}1!ZnhNGc28lS44K(9MH=taJ7YAXiI-Eb_ieGKGdy)BKn>lKz^bwX z0RS?vcE<=ul3TGLIe#>Wv2sii5;JJ4K zO!fgh4wWI-0Yr^3*{#hLC?&t)XUryq)rHSz75Bbnpl3#vYhpo{yBtOezxt<@4)u>a z!vJu)%+Dkgsw}IvaTMy`k&)qceF)P8=Vu;JgrO4u!y1YdO&-y#72xy~smN5d@bk0zsddAvFsilDkIZ`?vN4ylp z_3 zP+DuUa9srfvL{VQe z@RaLX3sassHp6SV4YwCSwr!fgm!UW4Ojw zKR+=nQFGz1KquYTT#D4-RE4lml!&rD45kd=?G}JRL+i-B%z}5;ZzdTU)`HEj_Bf*sl%b~h%G8DyB5+94@@aMV@P)(zy@gG${ zZFTKb&zi|*DUm}=!CwTv-4$PRO%+y!`2yd4*I-&yZm*G_)7lN8%=zO`RbO@7z#`{c z0-H=?r<%BsGG$#qvuLueKDvmne6bnhBM~}e8KhHs1fflY_q?6xl4dGz{kPqk>3`X+ z85ucP|9@4{mHMvjAuH1Vd3FEsDDe(y$&&~}ZsN_k_~r?3NY=Yk*zq1UwIq~TYSxgD zPd9(zdY6TYY>GF?z26>iW)si{vRLxPOS7cRcKQB@yYn{0CtvWMm=B2 z$sP8~F{h3wl1}v}MsXxPYnnq=*{gA9`rGkM`|+Leoz$RUtnfn&l_u51Z>B&x2{Og< zr6XoXm=BB$Blwae)1%X><6Dda9Fb7uDoc_~rsAcj%BRkgt|`iQ6d#p7^Gb^3Zd>ZM z&BF5>82cQy<&telkB0F+GN=+vbW3rz#(Jl=64v<{_A5sh<3YD;9#JL>#cX10J%OsE zss4C-uw~uZ`4mm^xpar126MKsU4bT_&{euSV;a?cZz90Cd53n2OGB{xr;QzZ*k;4Q z)pB!pq#2wehG_+!VW{Vwh=C zt^j%(VXBk^^{0<+tt##r_-MxN{DnIny+KdfS5Mfm0oY^;WbBRY#WBtFfhNirfyYM6 zIl=V;w@phCb*UbpHV`qFKwj+zf}KV~Q=OU?NF9~hd0qwA!YbEr-Q`yYeXAL5#+YLO!YK|x z5IS|prE&rF4sq$sojxE3St=Hfdg$EJ{Qens&V zUG?XkkhyrBU+iC0(~}Jk-RG3nM@<8oGd!5`kvtlkrCm5;o-k(k$c8D4{e@=)S2|3) zZn`-SUtrV0UTO5CRf=YrDyfh@0!3#{&tH>@q^kK5tg9;dLYCWqBJnJ@diS88F)|^k z<~Xrij|OY118SmK}pLV z&U2B_K6Ms>;tc49VYL}NZcIi-Gfl`9e=H)rvR>g%{iv$nlQ~t4brohmoDEG_H?P5| zv`z#pN)&d}bz};n6Ag-kiuR>s$TV{+0j=mSoib22+;WZO((I>@M^@%E(#8t^9#}Q# z@<(0%_B#h7m76JBsUu=LG36??Zm6TQDgU?#@=w4_78{z%T7lb^(y4kOQWdZp2!4e( zSGO1oZNt{L?<%dZH_n2Q9YBU6eI@=H^IUOAdW2-pe?e?DnJFjqs~7P`eUHk^>N8X4<{(* z%!^y(uxTt(S}l?u1TA}ugqnGr2Y74{O8Iltc;T$Jul0`x7GSux@BqHHm$7tD9AO0E#~A0OYVSV02AaxdO$C{>Pgq7d&eoVkUM zAjJ)z$m1OV4Nh*iWR7ldqrRWx2C`ThlM=F%7BZg@*bwFpwc6;cx#m7XQ4~zqeE2dPTCFWV984WxYc{^Vgs+#n2 zx~8T*Nqz6*YP;TM9coV+spv=IGe+R9dw_NL#p1DCnbbi>B-2w6XO27>8Y++zl3&8) z8zJgp>XxpNEQA03XazF8zW{A6p08JlM)s!}x<$|uZV29S$-d%kTbe8jsa%$&RNh(y zC6ceF=|mj=s7^2>b0J6uPYOS%Iq+$A;@?TKJ@g@1sT-dO{Y{}Vz) zEvKfFB1D)P>a{oM z&jctQmH2UF?Jk@Dzk_t6s0d>sUBfpV*6N3{a4U(f)0c&^cH^dR#(pAoGw^uk({&(u zY6j32&85DoKOEA$_x+6X00ni%bC)# z6O|S~?hd9kfi(RT%Zh=E)x0gn6M?gnr7+cEmdn!L@7o3Hy0O-!mt!~F77(Zx)HB^7 z?XTX7b{(~(DO@tuGpd=GFRLk-+;*0kSgTGq7$Fc}#7_ShEZ)G|YoOUUru0SH z28RN^?<-j+hgR$VRz9)*FXaUzqS`Xn+Rn=6YJD!uDu{Xwq`{ezBbV?NPLes+3s>2rRe3{3I2p zHke`1X}J=?w4@$*_jz?WioO)z!Vu3SBp)}H#~vnz{^)b|24epb3MaA_MFw~(pbpmZ zW}%4cPthlUeFyO3UrVZgnNm%(vx7Pz$L$PrPLNsKQ%qRU?YzEJ30Sc`ybF*qCs0r%n6k)kkRoa;3oDkiD*5BQ)Xb+H{V#v(8(vi`6F_LD332&9!bvpv?Tsfw@(b5%a9<>%y8dLpKpPCK0+a8C;Dy7)`<>XOj6R^%qAU@^YS~3 zA17hD<$A8r=DpkHP~ug7%VucNJN|m!(K6iAqYvFo=QRymj@2{ z!8uqv(fz5ku6{s1g-&d~pt zpN;K*x>;o8U|{}_vxev=q^lX5`|_=;&tlq{#+i}aO?hUx@ib8Xf80G&}}SuxL+@YT1{XsT>v?K zI~=>IIu1Cx>KyMW;-r&Z{W}8Gh&p$sBi+Gm$Hok=&L__21JNrELwa$)Hi9XQvI&1d zpmQFnB(iFCz)Qa^GBix~CDDaLW7X!ho&%hA5st~J)*p8VkJ{Ai-kxl8#FOPGD>_5e zZ*bp(y6Q@LCd^<^<-cJLJc-;})o1>Q<4I_Uv6hz}qR3X6?+sK^Y`8ng+px}+uG?Kb z8M`UUs>~)#4?>Lo1!4#@VL$>)uu*E6&*b!p0K-v?C|)(}hy7YZG%`}BFT1QyEwq}Y z7#o$hA-6$y%xM=CzGWoCELDf zz7^-4gQ1gNo+d{J0-3NQcWMCtfGjutD?Pxm8ZQD4;7>m+@F;cDtlQIgvKNq57pyW% zX;Ms<(S3ZSffOoxIrkX%@JuCn-p1oB~_gwN%|q=N*^Ito+pg4fLC%m_vk z(ZmSPh4lnseeYItdEC1$(K;x@KHstt z2cJZ$S6^G^+z7!sgwv$?_&Yv`YfgP2CYRF!#+!t+wCVC@qAmw33*h^K9H)Tz5MV~$ zlxa-fRH=@l`Gk3%F;|B|Giili7+_Qcq(%g;s3ecFax2#&EGm0J{Z1P6w-HmJ`dPys zefP3S@wd_HmCa=!8GtNMLUU$c*I&M3l?>?^+)uy{iY5oU(bK6DJ z+p~dc<;_Gmwr?Y;o)rvx5{cc%5Y`8Jyhmi*^(ciHUU3e&S|d?eu~MFd`4O7!?PLQ* z__bdG_d@~r45gz=oV33A2&8gMQW6pQ_><0tA`b81277#ul%Om1Q7Gqzg(Q6uZhI zb?_GpHjeNJ4GPqzxV#@p+lF>(Il9#2c0jz$Y=g+8i)IWFAJbNFA_HR_Afq43TXAS? z%_AkI@d=wLnNc#3`(bZ*8^hVOb13`DmqG?f`OU}tfWX{kkNG8xm2e1f#KZxM_SJK_ z?A05Mdi(jJ}t{< zfg2~W)9{WeB#9gXX0JeRXgXL6Zg$?6BZwJbJt$*l&I-aYW+V+MeC(5l+#$k8?<0ws zNmcZ>BEr)X+h8L>9@3OV%P%Z@vk_!Ky=H~;V`#d0A$#^8V0V&V_yZ4fzKE%I%zG!M z&rxUB>YD3DLaxhDb$T}yZ<)mU@xI$75 zGijEOdvI#|Z`jabB4L7^pV@_l0LfAvJ03wl5QdW-E~n?rpFj(Pm?$mQmn*D_iG$@? zVuRwV^N^DzLHI<@Na^#cPevvbW3;DgunOqRk|9E4OT_S6iUg|#LRaThO&%9he0C?@+SynJ|DGgwlg?BRwdT9mfh*G5c;AeUq%^vZ;goO5->gA-op9OKKEX}t{a4ZAv<$*^b+fq+8>O>O z`DRnaf7+(z0uL?B5esyj1}?5@sL2Z1D4thig-H%5oyJ3tNE7X^2_ppd(zhGbI50PA ziizAQZTVJ`Uq!jhp~?(OL{(GF4^m@OQ%i}R43C!AZc82ebHHuOqW8BIZiQc;!4VZ7 z+@_YivXqBi;B)(sTzJ9dkb}j6hY|(kcs#Pdzh3R~TP0;=Xu+>z_z3!THA(Thl~#11mO2Bb^RHAh_frPGi7Z$@Q{rHHG>HbO~iGN%-nZ+=S#7TdA zN2aAhI1ozUZ{ipM7Nvq>&{=qcpx`-X)^9q#IkBE{rYqt1ah=&-F}d7QqTRY?8DUIU z^^^Fqzjyp#rUW6+CM-!&Ff`?kA_RmPeMUn(Mek?im|MSFpa~-2m?DC~pBRR--T2h+ z0#~;x*S8ee@PP7)zDEValH7XccgJc@sS1CMs+3SyVBqVX(B9W$Hmzq4GYVN?4mgpI z25jN1wDQfIP`-|{MPbciO5Zx93|LK1_^drT4%Q{zBIr6GqtBCt)-LEUK$Xv625Xo^ zXgf>N*JwEQEB|@lOjRjL0h5ax8EpMBCB*bWTgdt12Y$bO`dr^cUwU%iwn|Tz4L%)C zd0uc*@oSelcf@G)-DXckSZ+Wx5bU<@x_MA;I#WjsIZ{>saho#P1#5d?Ne~3u2SE7W!t(N2CuJ^zg(rRRVtHHqQl# z4UgjFmtoh?f}d_C90ynD0w>c^VLf1?cEK4t_6Iu?w?uekUdVm?+##Uv(8OVv`>W-n zOi7k~LdiiVhvp2sX$6+_eSYS4jc;N%?dCTpvLvVt=@kP>aCLQs!t#k4+6vq!v}G6g zYLYUSHyf&hJZrNPoRbqFMQvGAPN?r}`i%qPg|%Tm8J3#OV_iW$q`xZkW&_+u9RdTH zBinTPZH)lby|7kyTbFiUmUB9jv-CKkiR#YgyZcMjDwsI)_1>XHpV>6C@}D zI|8b&q(uGMU6`qD81c;6Kx!Zt7wo(fTeZ6_ zY0^1KkO`4PsF-*6hXfYC?03;Nt4Kxy-|Jf|I<#k#Bj-Js(qgD33_kBaa(BAjz7Azm zZF#ypWooH4T<|U}jlw&at?sKRYbHO{Kv0ibg%?>*jS&K2X6b9_X2Ne@v`sL=L6$V< zZ5K_PEkjwKH4_Wl`!KEMgccy+P^1ZUjkFKNDyproE}+o16-?8cF`K6#BSB11>ujV0 zJ0}`CT!)M*jAZuL5~$KB`hogf>JY(~BYZBbT4ylVcvbtCOU%ri{-`m`I1K8wCuf^j zfv~6R)Dv+w$VW?zpZf>svyD{7a|Bd< zzhmMI2{`X_Sy8KWdf85e)ZpepY4IO`V*r&{7gv|wSphZ2$G8e@9zB0tHLR@RXCQQ_ zZgil;qAl?M;=@MEZTxjZ+TzB_przCG@v{{|hhT+5uZ!ubU|vhN=}&k0+DfE(M5D!O z0?ntoqUZpC0YIs~w3aF|X`w~iE1){ocdk>7U15hqz}AZyS94&PbT}%Y?<9)Yv*kYy z)W8=Kj^iul>TlX6YBO!71JvIBPTGWq-G_UIg*clhh$AXRuF5Q1-S%vyeZBqd+;OR{ zT-Ak!J04pBSc$u(TmxbkfH5qSR>HZ{Y1t0cBpub-ZYu9l`rN$MY9=O}vx#D%(iN|A zHwWOJsa(GDQD_}82hpv*tOT3gSzs>G#Q{^MMstQu&)_o3Z&w#d?&=oN*_Do|-7!ig z2myMV1f1ugrFHp>7liacQp*uf5ZRZnF=Q`?T`>n>F3NcVDUYF*3$d07UZNKvsM(mq z#I_b6p@~9s@E0vgAI2`39Wuyz-qpV}AG3tWs%ZkmvPbbAn7wG@&oFROKvF}4)E z!dmnTonnL-^8*QTu7|cD1c>AT{LCF(YdE%-S`WC7J8mG;vR&Oq%pNqcIwrMM2SdBF zPBkFf{Xrzly6)CyZb?lzGnWK#fRkGDN_l};Iil65=&ln&q-Kb51J14A6=U#V@D|*i znu><%2wUWK=cqS&_s=@b=fT7Yh@I|+XisUiKRoY%%3mZ9%bd<;ez+!wgAZdeLZpC+ zVUDekcoD0h^W(;bHP-U65wL9=1vCvGv0ZSxyPYp8tQ&QFPEs1z)2Q_zGsuAq`&G|N z4S@sGvqxkvJc+Sn453{5&!`eEISA;+pT8kHYp$XJv2J4egBuJ_qpA@?kxKXR0L&7z zKspcd>?lmNco1RztJ&FvHd9#l>_L&AO(QF3<^wv`dy;wdmxCkRcb23v>Ylgh&jSqP za3+4YZOCXMX30=+C%j6=;PX%Mex7v5>hqX8*A216LyrQZF>&Y8B7{QPhcw5=e%Nzc zo<>F63K(?PJrpSd7mRiv1nYLfh>or8Crtp+y)#myGS(}L?UOSejpM^HAoeX=o$3uO z6^D7=iY1oy>2wKdZ?C+Dig-*3(r0oz9dd)-{W&vUUl)%kSIgNDekmIyN#o)+N>N6P zOJ}IWI7uhYglgIy&aS~m@t?8w(xbr4pE3v-4^8YV;Am#{G+!y~XoQ+CBy!&tI#gop zti}`b5To_2LhPX$9}uH^gGfjehp^(t_Apq!hbRd4#jnYQ@X17Y{tdjdK6|x97*Xv( z4QC|LJb1&AD{=p_i6OgqBi#oj(!=nD=~zYSI1e>J)S~bOL)4;3QM?03zoiRFduERNh;NiiOrhBmBvND*g_)V+LTU~$;Nl4JTL>h3cMwSR zT@#PTECQ!qQu-4c?Vb1-#*SAT9{^(ukBBp4uRa0wrrB`?0>xhi5Mod34})`ibg;qY zn*k#OK$Qj{&_tz$k@Mx0{zL-s2+rC>B}Jh=Bymo$VStClb6-t}hjXrC@eb$k1sz;V zbbFWNZI2>G8FT~33t1Hw9`}+2;gr{_M+UGPaw1j2S(2q&G3BPh|=ZrUB_wEW9ZX8o&jDm z|L8NBdtM`gv%(Spy!2Kh!@66hn?4zQrHtlK3q+AYTQdwfy=YOmS|fk{&}1}l&caNI z-t2>8mAZ#0$e59B0Htcp@;(YX=$Q`d8bXn>e|#;&qmS)%wJn9&yJfAPS9NaWy8jVQ zD^sgreoJfnL1ElcBc4LTgt!nobf-}M9>{0lRZe-L-I#Myo<|~o6^$^`F@oYO!lt~o zBhiacCpABbqYE#&w};kfIGaa(+gcKlYAgYMoaeGnTo5V-w&pJj0&n~jq2f+AQPpA( zk-6$h?KnU}Ei~j0K~Y5UOi^SoGj`G&V4Z-2e$Xu6vsk1}dyllqeP((6LHtZ_EXR{j zM_Y|67%Kb>hg--^_U`G~JS9L&V6oZ$qiKD)$M@7!&8Y-F&lOtCUQ1AJkjh5F;6jzQ5KZjx}0(F4%4YJmhfk`P{jj2fj{M zJkBo;F{^L1p2$?@P}nKOT05sczLhsSTO>y)Oa;8<4MfKejWTjo_(0t6XZsi6J0#8J zzipcT(=`kOJ@bFqF3YMiasMKwJ^#4!(ALCk1w@L)Bxcz7P|h)60s&|@lu$UeB3>aW z|1ze08w9^SLJ5u5QU7?0bi=gzkxY;5k8kY7&uJll(0}St5#HQthBrPuOnZ7q15i1Q zcH2y)=!viXhOtEPtx2fHAP_IEsU0n?E_c+-zMxLLlOItDc+oQoWrhfH8cI zp6gso35Lxn`JJ~Ri;%)?IJ`>2zqsi*pHD}HyzH6bT`|j;l4F%2qySRPw82-%!el(~n;fWmUfh$9(>}q4V(QYga&CZjn6_nhDO3TPOtP5FH)H53Idhm9Ja< zstU>5%@=+yPfV5$8R!#)jY&)d)#!6geCOwsnZ{isPY)(?@cpz-*V~wQAUC`u__tGD z9yH98Mg{2|F}wUs1GUgNu*qvU&X^EeqQuMz*)M651^KReWU;x6y@F8Ilov%lQKg!RWnyoL37k5R^b`gl#I0@ zFJzj(UZxQmsnPhOk8btj?W|J%5p0V@In1`IB%C{`KTXwQC2zGs^gLzz(Vae{MW{AR zxmj-5!u_<2so>q*w^v`65}j_;b-mL$jLuOwr>b&%bzyD259qAEdz}9TiC6 zC0ZFtrN8uG@b&SWnqH*&q-R2_0dOVLaa6(>#0es2;YbhX7)}S73Hf;Z5EYtxdE60HbK60lDA)1ug$4nvIk4JEw|zt zFc)l_Dia&bZbk1gKzQ&1OTy$c(!Q}ywemZf1Pp2C`~7X9M8Cz9zU`}>y{wCaJ3c6o zSWANLa{UEJde%?0JFKpW^F97)h|(_SNV5XjARDYjK^98N55w3;?Grw45u3Z+jnFqI2V=o{LKEL2i~%!e?DYlD^16TWCA%vR z*hGJ4R%V-QcliG9@&n9je(3uzuM0cF|KjN~va-?tzc$mh=4ISwJL2z7-(UP=*J;#U zu1OF?+xs8n$+SX%nM^>#Z{9R1Aim;lPB$PjqL;}*VVMq3Od~jhI zJz4h}P=0SyP;Xf?shjJoYE6@7TQfM5(HT11g0F#PcMM&cJ+iLLmFaZN@)2H)dJws# z|lDI(&0H=9-UbWDfYCYoU}n3IZ^K zuD;mN)ENMT?H~>2Ng`df{%kU;%!QpLyLC~WHj!;kgGt>5EDt(+9hQ;XI`PEs_nT>Y z-`(!_ahDx>2M-xJ1lx}}G zpwd5N>L;)lc3R4|m*0J5X!`to1!8RHKG~i-Imk}zSeL&k9Wrj|x{YZ`2}u?`X@Kbm z9!7=ITz0B~9aM1pQ3P=6&(0a~WhI^;Jb#=e12Rk&{7GUh&Pm@(%~M@EZmm7vrD0pj zG)lvDJYK3;!V6L4E-vO$yNIGOE4Co)ZNlk~_?GXNs47ex0Ne{VYOpkmfjU~>!T3Nt z9|xk&yEY=rZBW9ywbXC7#R+al&^*|jw-?=>Y;Om*Fv&?=%t30gi+Sa_M1xldiG-seL=XoGm5?QW-?*7Cy7o@|w`iKm z`6J8^rz;Vq?2#++V}J+K3swvWO zG|@!i-f+zwOtA`3OI0LpR+iT4%qOPo~orS_dxaTrS+NpxIgL zZzH9RdL@)~v}(AHwC}4!>#&rWp2c(Rq+!U8X27DD7zG|d?;OuB$1a|aDmdN$fuchx zR*mOAE>l`~g|N)^Ge6g+}c29P=m z=Z&{g=1-QHM_T6M{X#+$Xv1&RzHu9d3+%ns&ABzDsTadC8!1-OpH6#FQ;(iT&g@H?S+IX93>rw!Sk9z zs83be9B3*$Z0DZ@7lBG6n>Og%<<_o^tQi$GU|K6w;E*l2ON#^Rx z8-gD+b`9~9h88NCb9)mAQx~-4c|=*?ax)~kNa@5`s;%#Fe{nIr+xy{R_(^4A;oKpG zI#t+gSb>>&4F5X=)SdNjC>%>0lm1e36>W!E>VB)`o>h-Vi|o5@e^%}e)_;yX(^W{AuK}?? ziYF8U1oFkc^t2u=2UFIq`=aj~$vj~ph!uPRXAvK%9=OB`wLmys{z|i8oDJ!MX2EFs z1YjWw{V9b@i$wq?4#Gft53nE*?aDsMJVb#?Fyakj2yqXud8D#{Rcy#T6oZw=5l53=A9IcLsnn9>GztSsp+z4=}<(5ddKrKmji- zLGK(>K53&xIL1*4uCV_)mwh~C(+M-Y#5ATofcdQp1lv$We~?u#cHtm9Y7i*`uCZm9 z2ZZnT0v)O4+}UHi!L5dKzw}bJ2>51M6)!wsLuZJOw?1+4+#IJYKU(4=AR2cm=H-!7su0>XXmmE5AU@F0aY39#(v4PS<@2GFR=V z1h8DD|NA2;JD>T{z9(EmnU1vifnlu{4X!cs+p^hsKc^tV)gPeONq_1eMNpgX*o^fB+Ww(+0t$$$wislLe^`5Pn(}lHp1|baUk8_nJ=_k`rlA^ZXTa z;!P09X{;&W8U!dpd`3B7nq~MY7mJdIyN*utlg|?Gj+M!*hEGM2#z+rD7f1}34(h43 zh~`spw2BpWoWgAIN$DiVZfHZ$$K_}9X9sj9qHh$%I-p+?Gr=#1yOMp5XhHdle)4V= ziy*KD<3H<+=FmUzc@@1sR4kLp9fa$WxFsfXKFfU&U zp5$P9kCaC{7a5x`B>*$q9s`W>uxYqYQEMVQm(kiqEuU+D9O|#x*>>~+o`)2r z6B(-dT=la}2UEdf=TijwIi>6SrPe*&OWwU91h_L971%*Gq;zqfJhJfi1DwGK$?%i> zTL9Y-EH0La4_lng`zy%z#~5y!Om=3`K4iME44{Dab|R;ZDn4(z0YdeVo`}Xsf=<)r zP7k}-MLmZs>HW0pjhRCkkl!fHcxTmQ6V2e_E?EqL1SZE}+fVMTbSu?H2dD~Z{FMT& z$o2KY>}*+XSdDKMTnWg0550_y-x(iOVVMbefIK_@t+N}_u5isGs2SYSPwg52yobpD zcazk$$7Z7tru#lk8ItCcB|XTTuDeAS!6#bB`iQ0o0s)TL)&Ql4bb`6@=kDLqTAEe? z@!yu#|H*t|U}gDFN&F8_wZw|@4^OogYGEa$y7u5B$b>98HdhcJ=>9iHxuHcPXmw{} zV_LEFw?~XKkxm0yaF;U+^U~4wW2VgMYU(Gmg9+UChNkfDbgFUr>U{X>-pTKTlf)r$ zec12>jO5FG;u?+WXA4B%fJq~jVl#D8&tT_ z*Xi>~Av%a#+6)Dnej6V1|xB1fiI zaw0pRIS&%ZL{Q_ENAB_xwt}+fLS!eP_!DNffU|?JH*jM>x*)3r()e|}d(c_CDGy|)p%{4*2ddIw@NYrd48ZbAZdkTmoG7^9|17tT~&)`wjQ>m>R zd$@7nE?|V%SFG3<982FIV&AcKfSdu)`8zJh_s#0NOa%UR(C$wBj=|Qah-Z+TjGg*M z5nGH-u^YR9U7qkhUXR7u%Tp;K%aiJ%Zs2KF^l5wMa!vnyp{+e%6}G&f@+B2rr4>ql zx&b{&wX%3ksuR?7#Gpm`vc z(Lor=-7ob$m-P`yLxS70ZLSxdLpR~t8MwK7(_f}gbN>y=*t z#nINp0MIU?il=%S4Rg&wFo;Z(j0{j!OOt8 zHTp4gQc^vujuPk^iXz7`o)aWMsrmCwn0%Bv10=@ zD8wp{-&M4ivB9A2Mc~lWWU4xkUciqhM_*S@ykq6idRbo8@t70#nrfN;F)O2ML^kAFxi;AdA;s8Bb@IhwUk4_8UroabZF6J zYR-x}!{R_nR`Qg_pMeF97PpoWAwf6+We}bN`6$tpJlg7oTi5uZMMUeU)f{aW4dtSE zoN&$6I!ZHR;pu!%RPH*p^#qxb$|pn9tWV{RrvhT*&0%pdRQ2zi7g2zUu-k7XfmoCK ziHmM(Cz4NeU8+pRmyW8(6B6xV$~VT^7ooq7?29yD^e_r2lO)9d3a|SBkW;cXVuCES ziA;^vTHF=19rPVJ>Tm>S+irA43ZT; zX8@*Zkk~&g+#0qX+{J2e2E*nz66TyOFph#F2U^!YyxXmtzE#}nYL>cQ67T>$8vnei z9J|E1c=2oqh)>?LJs3N(5X5}+G4vcd;)%La^_EzqBcDVR**#L}1Rq7EX!MX@Hw1nX z{n)dHMf;+Uqc-`wKaczUg&6MCmbTsY<}YO_M;H+t@;WN%KQUk=yPi@Oeq?wea&CTJ3ndmcxY+WipTRI$RLku#?=TOx%oPbFSf|BY%m6o z$EvtF6IYO75$1X6)#LVab3Az;yQBYTJh?FP}w1p_nwz*16iA6TW<%tjJJ7= zp=hdfa8#f=``-|XKPnPOZ$it` zxt|HszyY0l?o$jHpSf>=2RQNkE`M7A;i7hJMwErP_7%t-2vy%J8F+4>9`sH?!92FvpuoMZ9SiEl&xG|>N&fDd%9@e zUIOLV&(nRaQkxLSz&CsObRkR+m^|Ygjcg}5wY$@ec>rl~HI{wgCZR)UD(8x*&$w_Bz;_RA^ zJWd}Zg3v(G5Tj3L0XPTq&P|cwI&hoP$gk!+Qg*aZWxZFX(#N10XFjglYF;h{{X@C! z!iZS#iO2PKdJLg0)RUUTP%H+Y zNF+nsd)=vuf#n+j=F!j)q9zYjXQnoboQ)ueENoEb>336b%SW3DZ#UZxxEAVm?%W<~ z&@C=Cu@HXyUAGQyS`ecC6xl4~(Gz>sHw-IJbD3yP^e0y@^Xnzmfy^)bUR?F09S>$( z8NX~69$OjjA=%~fmN?nUmzhC_)1`10?UBQ>X;66gQN9_j`(1v=iH^O2=E_kLL3|Bp ze0UDz4kZuRp2s(2QCcjPu%?5g71w8Wd-gCME3NnvIE=DD8VoZ+6au)UJ=OEl9;ftZ zVzbM$bP*`C{%b5QEAn_6D7Wve4#%D7>W0OQ8eo@ygkur#kQ=*??ogsmZSvv8(2sn^ z1RM6$!1CmtJVE*BrA|l+5!v8jt5*iYhXz&;pEj|M+`|TA^LD zz%39U(SRZBRPWr()_of0r{R!eajxU8EYD>esH7|n#TbbFzr?m^0uUa*Xt^mOMz@jM z!BiEieGhaUKQ%^D;F~AC#&cKqx#*!{%AxAqfn++w_zFb!R{DVUH8BZs{PcWh4)9si zMwfv6{OTgb66S0Ja%Z|SH`D5Nl(|)FdA2F2?e_OTZ}9u449KA%y(AdB%lVlkOGnUUp1feyoi8PV05(DF$Imc zxnJaq0+mWjlVU6bV?57yiH-8MkUfK0O$$6^$*3IP{#mh1oL+ps@!yqcc1-e4!itvk zc8lxL6Y~3wzbT9Q9Q2O3N%(wT%Q%sCyStx-!`bE#)ViwINw%?bbBf|b6nk168xT2* zg3qU28{F2uH^K~|*5Fn5u!j`RdH5`6>H&>e;DHFly^xnIdO$3XLOH}2)(L+0iR&Eb z4D~P!+6y%jvsdEY8I%c8{>ulrHMPNRNyqZRLX>!8;qDNChjV%ip}P;hM~WA?+MkE_ zS2>KHgI_&Q1o(8NA&%S;c6}go?)ei&lT#jNaE$$*J}n37bQGr$SG)By2*}bDdWYFN zxkJ6jDrRBaP{3?TTKi6&e`Ty_Y;G0wiZ*%$=ki>(-QZ(b(dWP9WsYw;VHRCQgf4x7zzjMj2LVVvtL{bNdiL(pZLJRE&^8mWWGs|}eR~NdIC=#gF6220808UoO3RZ?cP%OnF+*!y?P+y5Ka4 zf8B1|8G0u9BuxLh_qIMc!M)^Gu24iZ=hB@n{V3hqtQ@}t=oqz2C>7X$PT8>5jPO?)Qa3-mprySpK`An3;%**~ zMpP6r%VvDb(ux8)#<66uur{hz5^R}RmqjCHSAqUHV1~pfH@cwe8B+o*HtvU4-j?1o z!qjBdv0R@q;8a;|Mw?N5a#^)jA=Y{nj6F@B)hyt62?sWL)dx;KIjqsZV=^YyoL7;g z*_9R0IpUCA3OsR8aPP+-FRS1n)H^v%h{YVV39eWKsGDZ7&kjto{k zJi=)0fw6{Zj|49U#1T87pr~Rsd36rCpQ~8I!30)CzQ2zrM`z&GN0h63)2YclSh~4t z53_Q)-Dsg^8Xwql`}t|wg}71A7>zNaGdmkWg#r z`aEz15DwG$F;PnChr+$*)qpl(>}Gmq{NNQoVB>q(lrrslog1BDdci>*50kLG{K6-8 zar4RV+D!Xd+>%x)#? z-`N*f2gHI;2ns8O^yjWR^joT2XI0h|NXy=%;}Z_O^(fVGEU8sZMQd|~Sg_7>v21s_ zWDN$Tw+et0I}z-m?d*uu z9VAlHew`<9t{EbeOAVUTAvbukO$}Ic{^W9MN2ala5kVnP^elzPg7!r+H$PYs$T^*F zTVaV7q1+;(_7VDWrrh0-MWUVEPm)wtQ>3!$4=)N`5zuT+BJ{jypjpN8Chpvn8c{&| zu%caKx&H^OR3syrsUy6_Q1A#zlhm7OqjV^_Sg24UOtkULm|T)*pd!8UY>{Cis>6xo z_2hWE;SKV9!BFOrgQ6!zf0?0ZY4&`6Z%=kT@>}47sbkihK^o3f?k>>jbujK4t%i2L z#pvD{V?+XBiMR#DFcPDDWCLR{itk_+inq?QPm?7ZtJhwaVLr0!P!{l2dAG{F$Ex$+ zn=G5)IP35&)F`U{kHDiDQp91w)86rUM1ZjYvvbFQL}djMm!VdC=G{? z5B!B>Geb-u&sK)Fs3QWBnFJgx7FVfwoT-E&3Lr=RBF(Jk0L~jowdOIg-~d|t*4Dz6 z3fQcw+Krvpl{0Wivp>{MLTGQ5+30ofPC2YhIl}ir%{&P*g|DVDngeB@6TIpjhL6)u z6V8Q=>^a7sA}P?u$9&7(&W**C$xDmAX1 z{FLK>3UE2iWJ5DMHtbAu-7KqSciJ$eVd@196?ggdI<`TROA6Z5>L|xgiJf&DJz0(V z%X;NYVxYEmj<1Qfn^0JAI)Cq$CjLNF-VepeR&kd? zU^?R)v*0|692{#}mhM0eV-NYOQB8Qyx4EI8toJc%e#4eOU%nrc@E%&l%lCnxHUQh?g+8{v z74*pFXHu`3pJBq@(C8lFS^?&Cr~0HvK)pgK$pezmA?nK2s_1zgg?2K+OU}}@0Ph~Y zzP+7(JT=g?uyg0)1r~LCjYqzp1;T85r*+WT^?Rjb#k=}%#a(-;4atP>kHUADQ2m~*!X2Govitq>H9r6<5p89WmZD>!umfcE5F zGSZ!MPBY!31Y=5r5!;!qPk-C8is`jQ-KYlIzIr^x7v*1;+b!2VnzyavXHFM_m@^4! z@zt0G_ZD$zZ@&RSOn#;efMx&nvD~T94kRogQ zn2*)6cU7ld`_8*{35n^M16*GF{O}lmtJ`e|4Ry!;+I;%y&X+&WPqN?DYPC*UpXzx3 z#^=TD`F=W|vDTzd=OiUB;+yKu(`Z<(ClXTsEkghyCy@t9rYFPXV)zqEm#He)gCEEv zUu$fzn<`J&dg+ptgNxLhLm~;=>R>PoAP6hqrGCAmh=6C_`FMs!K8G$K05gtcOTwVG zA$Aex_<5N?gc36>E$}VwOEVT@>vx9c6&q!;Ec2f5Wno_X<(?MNv2hZ79L{~xh5|}r z^YkFSNz!hox_x4>ZOw~MB>APo`pr1{DGY``9)F6%po@>$H#=48%-M)7pr8JM2XL9! zHhy5DEu1g0$@Wde1E%#Wn4y;jifs1rQ~J?{MD=#z6QV3FSS=u`u2n-#!qS`>7NGJh z_PptFywIFW9BC*KMOI@;#o*LDvmz>qX`{%3RYDUZ=)bYx2WPWDH@XE9fiuU&xPvrT zpa|D|5+5mqB{Wu!Gyr}bt$?HKBwv&90G1zeKl&khaGL!f2#-{(A=%ijOib0dAghAS zDzE;fV$6kg%29NUi8RNhAy|!S?ra^tjVaH8uR@luB*1~qp3eu2RbfoQUsvJ~$-zl*+Fc08BL^1{x#^ zL(85S3dnfWL>42Oe-E*z5rg9ri2GoUdJjPY-i&j4q+kS4v_1?OD+LZymB~tGK~pu) zbe``Ilbp2SK3z&&pBw~uCLeUz9+@Z=mMB(>6_m(?+A)!Ww;0&0I?NYa9gd#REH7xx zQ>LUNtT_F+!!b(uEJDIgR}t&L0zYk1T)L(;#Ua4?rtq#t1tCA{hW&hCi!9p}bLf^u zzoWB)szHU~ZQUhc1-f?b84$pU=uU~eXVA}3y1FsC&$riV{xqzq8v zJ+*n(K?^mMshEkpn2e+$$tW@r{ag8;-XlFN3yks&jM*|~!wNzF2GLZ(fKe+*_MD#` zYuJOd&`9Y7*yrFtmiMUqkY%!x&j6YdzywaJalU{+Yu_jZ1LHuG5M!uQaCIyOUW#%d2YUFa+w8%o&Z%;luKQqsViIvEH`R4qX3JZ;Lt<;q;1clyCU%_ zTmsuR*4$aWh;8@2Q2rb>rmTE^#LtBb&P)gB!~%vK4f>K_bR9K!L~hgMEPn?8^< z`1zNR+53Soc_u)>^LXhD<)YN}Q*JdzQT$tBJIE!#JUv!G#HG_rMp=)nv29^)WLPk`6cE+?wNx%YwKd2ADsXebgsgj;mArotY5o1A!@oY)59cl^QvC6;puC-^C>5 z?&ghmqneCUR8eGBX!p-yiJRox!sq-P3I7mxY zs~y~CZWk_kk9n|z#5F!X>*jXvrraQd#VtEvZzlG~^ZJslQ~I<_?C7T9tBr?+Yux)L z`fA<7pu)%Y=8wa#cfCiKx$D%PtDk#{H53Aud=U&?tMh4$;|ECibb8;O)STb$Oz+88 zX&~iS@!{ik`R@HVECA=M_L&g^Dp2eOhLGfJSy|J>edpS66(4R$Cim~NTwm|F-0gu& z_w{QBG4iLt>-(TV{qb1b+SUZ)?1z}g-B26^=L2yM?WP-KZ)VzXxx$%5e_PiU54B80 z!6S+nqTdYnirlAdlAa&dhro0xMBk01)lHi3vdvI`B-COuWZ;fE!TU?csA7m87M%O@#@j4|9O=vhxFtRkV6UKF={cg$s1@6Y$>ZEfE#haWqb9>Qr#f`eBuQ95O* zQB|4O8S6Av-=6~xPWjvit3v4So7@}K?Lv(jUKDJ_AbZoZ3au0}RM_3u&F9g=8`&94 zi;%F0w%4$2H8r(K+ie=jGz(twoX&;s#r=SCs*U4CR1H@V=59TkT|M0I?a_kQp|Ps_ zN(|CRnw#=70y%I`DJz=iPcqC*obSUQ193&OLJFSnpO^LDb06)n|6e0B(*I8ynURU( zKQwZW#&*(XE27`+zq)Np%Z4{10Wu#;Y_F{_=Yt(B+Qa>b_*e!JUGa(2%cr?UuQCarstnPtl$ z;PZ>pFOJR*w#%3)lP7uS;Q^RZtzXASIrU+Ydg(z%K(E6{w^;qwKT#QZxA-gA1;kA? zwwP+AW!K;bMTI_U+*^z4UTr%h7Ee{{aCR%$!;R+V5oh5>?JrC}47Ne3rv3$E`UoukLVFIW14<(jf`#xlW)m333RE8rxb`i= z>rsGy73DVOL(J{(b3FT1X>zg?;~9?3^3S$5YEPsj4wJ+E5WY+Nj(WMwK*dINW zr=#nH`-}B+2D}H{_5nee++3`l8`8g?z`&7*l6jOMv&fh*Le6sL7&2BecMNOz{!zHR z-OKZERyeV!rwhy_KfXP3%FD~+MhuljZ{4KC2$`cobm`H}oV+5Y5Wii{Wgpq^?+ol@ zL2y9{QF&UkTp^mNaW8~(32o&R%F^5YJDmf)?j5waX*85aq<(sO8ft()EOO&@M^%x1;UmZO*|5U{7cEO5J$}WGo!_cL8iu*=GK(qiseu z>zFZmV(Mz=gPgi@1f}%?(B0#7n?8U*DB&4AfEYv$dk)lDI55;!7%voGhnYN9oDzm| zR~rSH?X58fK;#vtz!9)!^}sOTQM-VSh!WPAEqWVDyRH;TEka`?VZzg=j#~WK(4P?GF26__>=R_DoV?yAZ$}7hpn+>&j*~!HjEQm`2cRetG27l__-$y}c$_Y0z!aibpq}w_*QJQ0oH+A-WZEvBC(w_4*+2r{iH5Xq*-D3u21>w%4{OKkA z1r|6x<>_NXE?_1(K_FhVn^x)s+V7q*Q|(2;8$(V`t3C1;9bV18JbOd#tOOG;UJP3Z{j3WD~&5E4Q%$ibYPXkSA_9->OxM6btG-t=N z^p(j?jYNK=+-aF^gsmJ@=Y|pSsX_c*Zq4Q;N-x{vYK z?`xb7%&*s5!sp$Q1rBtww063My?eqRXyTliix21-eDAK>n`>Dwr#NJFPhmDu0n^Gh zNg>VFkAAShDiuqq_mso*FxDC zz!hn7k?}OXt+w9hAlGZrrjl9KW6H<_Bw&_7Lbn2>So|Tcr)Ko!%Pi|)iYmiut!a~r z?hHCoOSZ?NR*wG&aX}fG)4u3Hb5jR@sQF;{u^$3&LcBuXVk>#mkdy>algM!C+U7mmrWb^nU+!PlJEJ z`9uPGY_>MQ*P2V~oj;{gbPjN;46f`fGOBa+26Ac>a6kmI=T&6x@pi1;nq008@sTz5 z6;0a{%n^#f>hnA3C$ToM8d3+^!wia#i&|U`vq%ne?6m*RJiAdp82K(`@ZFy?a?h^O zi$TSWqbu$8d^+nUgH!9<%5Mw(5-qnA$O?Gq2bGe6lOo3&xezxzo2WjrCriOP#ilBM z=G<2MSskseu?Pkp8IPyd3(wCC@@eAH$O+_8=Y|jnbSBIsKQV^w_he352P&OEawrmO zdqN>%|G3;kh7Y4gJ}lS`d(BQHn3P`z(Fs8O`7BX8wM+pvJ`c+o?DxwjQV#CrHF9PW z$u#Ck5MK-ZvMwC&NNm0#2@t&fK`o7Aj~bNGw=1`s5swp4Mj<5*%{cf^Av3*Xsx!&- z;lx3wg0HZz5VUZz%HJ$oss8cx>=J!Y5EkCBaDjuLKK$to?~hp8491>6hglOw8KKLB z7+`$h`j-=&pvSTx-peTTF!TJ9ia(mxqa(lzp|V<#W^&o-gz#iLhDy6TD%N<3bPv|| zvSdF&AkhN6ClJ)+iVATW^lOzQ76=gR96lGDJULzzN(S}(#p0*CWnj_RId1pND_a>d z*z0RUMkL)ntYG5{OpH-3A|1F&QPToqbU`+hkC4GxAAAADtak>+f+Nl6Lu=D5w2xU8 zath99TIzG$-a-yH4V6}zknOX4u0cZTU|^9JZgLiG9ze)j=4fmTpTKI?anun%sHTYo zlACLLQ_0Jt4=#i{3F)+DA2z6y+*&+^of2@ARhqc@p(AqjKRvqNUe8IBi$_pIaWhxA z$gB!d8PO`da!cW?8UmonrKxDP+Of@?sRq7az0UyPiz=+3j{9O%^|_zTwIn{3VHJN$ zlH9RU$Bv~Y$RRL%IxY1SI7^D{UY}BS2Ue=+?{5Y_{klK*N8QP8suk!MF9{VzFw3R6 z&*lEL6IgghhyJ%M?SIS3F*5$gaYv21jNKtSOwVoIoDHsip(cLo@g)$~+V-S=eaH3G zfXvcLxlvgwlgRIPVxe)BzyW{-!|+fc#lyXV@l-uJnL5-j2sO!9iFKEmpY__d+O+V* zWV3M=_?qq^ky+NZ-}txXpQxeQ70I)s`PSAt(XPX)7FDwMPrzd;%)E;L<}+l{pRrb~ zD|BxfQ;lW2o(-#QW)dO3(693KIJS+%c1zLCHtK$+l|EI#RB2ZiyEdck7ChnO8hANe z%bt(J9T6eH-j9y=Fi4$;E&A{Tsbe5CS>IQcGZ%$#%k;rx=&e-aGpqM$3JVFv+QJ`Fu&p=4SQ}I zzPFsMjd?4Y_6CNl4j&>JjSdS#Ir(Ozk*@ zEmQB;-joUV)!CHLm&aDu)IDSE2s5s}csU;go$|&+AG2ts|SPB*GFiVBocF??iIg~DL-j@6gEz}{rN(QtF3ER>kxBLN- za{*`-{|bYeJ_;1`Y(usF=tRk1FrgopIU#oL429f!PHLlIef&9Jp)V01gbd%_q zV?ZV184U?$RAY16|J2|uMRqmQzqzev5k z2LFQj1hVyg1?j+%kM%VA3HK5PO8}R2$q)2zrtx``ZGQ6=_Hob4VO#liv=pA#kZS~+NZis2v%WDEjPfct1 z>G_baon9>cC}^|Zop!+eQh2weY)-cbV!zB@rH!;(Rl=vJ2nd9rPj1R^U$5CE-G-9MoLy8t(T^K^t>VtN4j{ zmRB-PRs%0{Dhcn>)j^724(kvEG>90uwxr<`aNJ=j%Fk7~5 z+qPY|Y}>YN+qP}n)-Bt%-M2^GZ>=|YKj4h=tjvtaFZTAr`I|DFt#AD2oFShY751!N zV5psU?Zn`E%md+9;^g$c0!#9IPr$had(OZ|4t;N(`?2(b5vTgX^yT2QP77T^yAbl9P`m=(G(h^kcyV zV3JJTuL$PNUBX5U-bim3zv0Z?yc)f4!BNJ}j|#qW*Y6YGzFMaFzioy8Qv;cq;Xmix zuCX^`H%Fg)^ajfOg=!d2Ck?iEI0V{64TfMXn*lq0^IJA_Hae?CYgT7hPqRB5Bw$JD znk8@uBoG|JhMfBT*^=^@GEwi~Xa0cwqOBX|e7~`I`4%u!L7-E4dBN75HWQ%o=za5> z1<#x$GbQxZ_OV=I(m#AYThB@*=%FdwI_wYp__S^I>d~$?x!L`ue1F%3NU4ZXRunt? ziwY_q10q`rOnr@cG9I%0x;Jg^*ww=LpP~~9Q$<4c6(=eaWid+@v+4Eq=ycksG{-Os zfSTKnVNHlCiVD(Jz`srVPiN3P#Qp^&6HwtoNPE9b6^l|uZZflxKBI2 z?%koUyURFnvGS{Ht6Fv)RsNYzT-Ux}@@v`JRQudKwzcT<=Feizp}+o+dBhx`XGin2 zY13xyItCgb4sfCZO+fu}3=9OBv~_*nrnOFi3UBrVAb@u@0p^&|yUV-2Ax5xWFBY9P zBZMg5Wcr9pCcvN!_WA_|C=I8AltirD9{mMcW%2{GR5AHs0!%^GZEZ3GP;U4dfFJ`@ zvsb(WV3*8)aF0>+cR|Ucd0dge#cN%4{br^z>DXkCDp{utNSj$X+qYcj(sb7aKfH8; zcre?khBSi`!ViY6AAW&{lSndMNtcl;q zpk4Lov21%&4z#(wT13i5E%vZV+b<$1k#;*#B9~Yext#4xPc>R0jd-!gGE%4djW^6e zhOpRaMS7r3(E8+~-3+wnop<18K)41Dax>lQb23GcxthMKU2k*sQP^FM8g)NjZEmJg z^rXAph65AKR3`0J3l@B07BfAHM-q@!&j_Iviz|Ul3I)Q?n!%TedYP?~EyLXp6GU|r zvaC-fg83Kef)`9af&Q9f5`;MoRv3%BZ$kQ_8R1kC@oZ^LamL3?UwtLmrJ)t_Ugh@!%ovoQQ4?8M#bKW z-xQDjvU%|HSVfXif@tNqc75xuPP#Fq3{MrUDxk|6plZgnK_@JZ@sdmAefxs%yb&Wn z_@GY$EOc*i&Kh)Go7*_HX_OEW#}G!3=GqX#lFq5{w2)DhNt1Z#wTAJ#J-CEN&$pAk zF;E;iwtUPGts1A|Yzk4oI+gY3dHv6zw{duJH@Vp3U{r!9{g_?1*ouNLh!J{gnaZCSm3 zVQ9kZ2Hlg$SjODR+|}j+RA!3&(;YEgHDpQwgw$%*Vp#H=uW%X_iGfNol{peHeU}KM zqMk4m+_DgrBE_&w6uXz8il&XbQQ1Kxe(V%U9Fb~dqk^tiJim<3;^v6M# zx;$37b=DjdT18#mU=@Ys-acSmKy0k;K@Ki!zJrl!jx3fO~QnQbdgEzwvx(1WQn%XF}xxLtv;~oEA+T z#F<$}?eZPgnEMyP*b9urq|&&*4R|hRoXy8SICXbj&SU-A#0ru2*onGb#Ng3N(RYwm zKr8AlhDLg=@{Q)$b`>!tySNEgZj^=hASgyEoC#-1Ah8Iz)T3`e&S_5Nf2d!^rL)4D z=LI#p3Jpc*^LzRa%fhEU^v{%vLp#cTh7a~%DX;S#jptewCl`t)1t*t{9TS7|P8<;a z=7%z!uCNs|@)4d#(ii?b`c z*2JMsyGAP&n=+vRnQYf~g&vzUX*21*=!ZISAHbO(1&~8ctp`^wXD{4?%CCZpk|8&vU1@n;K%;2M_2{8ROPp+26y-x>L>vc!jzMLv<(BT zi%&{zu^JI}coKEATyhrcPw#{X_r}`P9(dgHdOLGB8g^`Wd-l4@CH*wUR1V1+;?kK1 zzwH>iV|Fz(0H^ku04i7tvHF1zXQ1q!&DlN+UUb=Oy1Yl0GU6Z@F`(ir=ZfV;=Ed)F zf#z&~NauyFFCP<3n8j4+ zM8vHra`uOavop9QW;-MZ`COsgUUZX$o@p@VY$7W9ug?t5hB%>79(^MDYkS36ih)mp zi1u1|izeyq6vcvLf9zFLkzCB*d17L@&QD(_UZDI308Mt4)XXXXk6<5mTT{5x3K5#h zalt;16wnxs$1RllxJk^x{FcO<8GTj zyzIBSHeHcJGkJ)5IeR!p$`CzU)($6dWme@iIT+W=x~?oBXs}3PxJd5yqIr#?_|zXG z#Ma?-OPFqt;;!9@YS0r}6&xMKV(uVM{}gTT)szBr z+Rvd-nF$w-EXyS_0i;=)qLz#pbswZMsdyr_zKtv77uX@ZTTdUQGN{4+0h3NtLhr@L zGTcZX0#9X9LQ2kgNEucQcnV0Z6--<(Ab!-O23fI!sBs|diG-whn9`2;V>GBx(ERuY zQwE{MG!NkS$oqady^638N`~-s0dYhXFN$4aVWfI$I)wq;;v~ zanysiNT0-z)Fz=umZYp#-Z44bvS4sd5-&pifvij8LvW2odG7{2H?rju{U^A1DcZku zgC_a*hD~Gur}ucRb>_Hp4dI#Uk{L^d^_$Q4XX#bq`w;su2%U;>0RmJNlX$Xp+qmc5 z{e{JKo{L}9i5EA#|K6Bla816qqbAEn&4mr)s35x@qyYkHEJ|@7JhY_pGX!1Hm2SQQ z`mRiy{j)@)!?Nj`6_LmNB_0fTD(J?zgkN`p?!o$V9s@-}Z+y)iEz!(F$xS*<&y048 z;?i1)20iYC2TqxWMT{J=fQbnYU1vviv)9tn^dECbIN^fw{oMu7ATD{6t*f^Z`h*ig z@hFM{6o>fRLEY53xF8&eOnfmG<*8VbS-@BtAc6!~L=2380Ur?PFAM@kicJ%tLiap6 zJ8z6Ypl%Z}n0WomTZcFRlwmn1Zwxa4%wOPso)VHnNqO0mL*%y`HY-9{pM_abiWQ)f zqlc!B_~^W@>p|dSQQd+CP%v@`4h{x=|NZ(75P;yDO(JoW3IfN^(B7-MDjeQ+vL&z+ zMtg?+{(&ib ztVd=(Qq!VYE+dh>*HyXe3M8J#a=0HLPX*mzG{jFa$~&O4OW6RP>FNwGUl{B~$O4kb zwla5_k%NqJ)I4z2AGT;}Or6+jiBzJNZrkZ`9-*5+fs#z={>D&bl$g@}Mn#6a=6!T$M?l#=Md| zBqd5H zPM>PnYiqlH>j;itxtA<(c^de3>G$Eb?@% zy$exdjC_QTReH-XEs_9GLz}-$m~Ucii$)$EdNJN0k`F%XD8fn;(!XJ7$9Q>I{L6Ix zz%y*($v*7hM0(s{MUtK%$na%qjOvozuFowyv^sw~FGEPF6K>y8Nhrw3Q9q1=Ynd5| zdG!L+{#bseKg5hy!QvdX!Sa`(uog@_84|;p8v$c`{wQu;Ua&N2n2k~m|I`uIjR?Ek zPI~>VD70WH)L|slSf_1Mzs|(k;>^vO)*x^O^DiumG0hyy`B@NU=QxT^C7^(g!_i_h zXHfs!Ab&ekO{5^(Z4N52O^3B5(5}3o`$BsUd1_QfRWg6bKD}t4)#Z&8oqW1ti4Az% zHZ|_rJY^<#y2hrFq_KJa3!$V3+)HW~D_Y{UQ-bxDrTrjV`ovhFP5pGy-*3$EO`m1d zX`8QQcdG-m0^%U16`f|ArNu?Czou%!G;wVG)w=hw?B;CZ3fBoQbHi5?GNHI{`#RjN zNac6o5iR%!XtuM5n>Gzpf4UD2YBz2ke9foBPDA+#6A``nz53J4w#@AXvUp$$)CNwGz$HucUADCO0^q>r$T(J z?%?rLK9B>#Zi!!bk9u2fds*u#rOq(KP~pSc>CwN?3L64)%DYxESs>$m=Qa*=6osVu=6`}^%$ zgiS)Ba9?aWRf~id1NIS6hdncLD%u#nPp@%=^m91k+4gqt>Tpk}N76uX=;-hXuta@j z9JM)fyU=y%r$eWLq_a(s{l@ao1cF(8aMp3&&%mC;D02Q+FN91#i>F9CnP~ z_N(6AcbvojJsfkB@FKg%QaJ5kMai5%quR0AiLttmR4N;kM5dX1Zb&MXkZL<|y)ro3 zQEW7o9Si$ixz3MU4hb%6MONkcrIJu^)61qJOq|B9wmOwUQ)rdRwN{t(Y}m1w5nT%} z(rb&obpvqe<#rVXZ(=WxN=>Nn>^|OUSxpXAlAwu_Tk4ZPbb_sa}9pnt|{-s&h<&C@fQ}UrPF6CG})h^;8 zt`$H;Rgr&4ja7JJZy2ek91FaR54RUn+)nQTQN>2?-4O?#!}|~k=+bx|T>k(xi&lBO zaODHa14wY^hk&!Nbs6Q48JVYPvH}uGqI^bMM==a@lb;VVzj<0|7s_UsoM#WMW$T~3 zpZ9z8mj*056FlCg*M_=sB`;XIQXntEv4VO|<(Wgv+fl7n0#3c48=!DlWEfx_di7AF zGkopa%I)j^D8LQOBOLn(%!Mg+b9%12gC3Jfd+-?=&uWMnb3>^gi%b=>nb9ro9sn{G z*pQe?8}t77@)}|LvnJ>Z#L0j*3pVL(5572=O%I-8V%fcT1=2YNQ(jloRbumFPXt2Z zfhNIVp12jbpL~NCZwFZ2@9yw%Mfy3dOE`cjDzcJCAtM;v`lzA8X#>RhT5`)nUW;Xv zY<>R$NO;De&?8B6%gvgV(zYWYrMm+!0%77*p^vD>T*gMUjsuH*V&;+Cc&WswV*f{T zN~n=;?c$DYL-T>uU)Cq#MEvr@V!r386fbDmaVX1NJ z#lJZ=a%90U30QqUpWC0nER_>9Y1xnPY1@ z1+4e3#BPxde;sYH#%8tbhvnTEnz&1xx>e4<{Z(CGNYwfv`xZ6W6#lV^%{K^A(h;S~ z2K8i>@1$QSzylfIF^nH6l7Zws{tmaEpRXR*WlZViK<@?S>bP95Rb$2{cm~dM-1+~6 z!tN9wxdj5dABf$8m?=44OG^)%UFX+PT{m+Ug;XPSm{Lyk$f6b;#XI}ov5JLoDh4&ROQOLva#2gry_HWZ4b0EgHw}j1v9iNcG~A+ri|r@`GXr37773v^<#}CxjL+v2QMHF z=`Rftd_eb(L3pw_1`%=`=;3#3Y6fXDP~A-RT7>)rbv-?FLd<)`=500_w6sjbL$)3z zWunqJNNxaL1NRn^IX03ZnNx;SBZ~0@_q0loss&ld^aMt-{)`zILmiW;^PB6=kEuUo zngtH9o4>)N5e5sw(9XQKnb&B=GaxFUYMoxHDAvrNvtno1qdPl2WO?E$KqpM|oJSW8 zR9eJDVR1JuIL_U^gnNp8;G$i&$DOdNyX^!Kz8cZiezOuFT>D!R_`O+*kgBib)5wCX ziTt$ILWQvZ%@xZPu8}dDe(~27M#d=ViYSiX;Aobd+Fy4!C#jgKskl0Q6HhSeDCFvC zy|F*Hx+kCYity?gpz0bP!Ip36tZ^}v+NQ+Xm1jeZ@rW^2@HSbMz~n7i#B^>8+L)50 z=jsFHzUsA!G;u%Nx12U7WJAfad*G`A6=E4BF_KGo93DV7s*=Y`>U_nqI0=StSva#X4>sVR$v zsPq0|!Om83P3GwPwRHXTY>h3IV(hN;YvxnuXf8R69_IqJt;f1A5>#g1=Yf}Jogr+b z7bkdQJ`2mcwMYMnJv&*k8MA=UE;1E9hBDrc)#8wvuK<>k&JmobSWtPpMq0|Hm0=ax ze3*I@9+6DqsSG^1F%lUyafYqnGCmLnL~*26tgG9R?rp3+4c)5DXr$zi0sA%tf3EVe z@V56(M&^ch`IN2^6uRQT&faW4u$f0u(;g*e4tF{QSMk<`P(h0_D+?q-RHSo_DjpBP z`FK7sy~ng{Q#@~d) z1LZCiLVh3oLC6_sXuI=lnM8I5}J3z^qhq`TG;P zLo~N(>0U$bEb1`xbKW}|7x)a#EUeH=!`fV#$v+J6eyMi@oR_8#<6UdqFg)(hWDOto zy%`lH)53hI>nsNzEk9_RO9yuU8MPkwRnV{`%{>Q!A!oPK45it=mRE9wUinnq_kHcB zG-0~%-)_SH8{LDI?LSgCBWhCrcUGzQRqal-GMsG-T+iG~;)2Y6K40QcIH1$sBC;_< zqF9J-pX4m=c6wG`_fPV2ZX|}r%|q6Dh8-RbXdV!z$ekQmMPMHVMccqs)!sXG23W>; z5=pz}&}B)qKC*Vr4}@EkNwsu4E#ILq&PlUG)7#_442mWmJ}U{WWH~>ie$5K_a9J`M za>+%rpi;g;Hy@<2N+zq=seitLm;=a49#CUtI%}m7hnj|FqV;m^c2{0qJ6WQ@9|G!=Liq?p zO>RiiWdC?c$h0jR*P^vDfioUxyg&~03_{3?Ae(segp$v1GI#v$td1e!dtP`Qn=0b# z4n&U|i#aF6ilz--6sxep-dN);x@H)BG^w1-J3DQ|-c??p@*O&76gaKGdI^@utIii! zB^$^dDr-SG7vam1<4yGNpYxtaBg`@)aOPsXCHrmH%|NQ(_bQhDdJ#^nZWcue1`afb zi}>34=4HGEp0Kpss7$8=HpJ?+|xALA^@5ib#;Pk~(o zJ*k@1vt)vZ8KmQ9JX@%^!vm_@IHDFr4+({*{5)l2ZB=b8$mc#pDmBU9&ko~upNTfHA+e75)CI%`i5-^K#hOW*b=W;mT z;jd@pqeL+ydyFp_2sHuwJ7_W*xC*5`*+5%M$(RWerNwy#H0Ykwgr~9>T}3VX)`3 z0M5;QE?utXs?B9^7m)FncMKK-?Rf(NUr~*v;o9^d&IQt;X_vq$r`G*o;g^E7)o(_5 z;nTM~qWsv-?sGi4-CxHi*HOD>vHiEJmaLx*P-WgbV-LduXt3>!!2(x*Yku-v+4gBNEbHXa?CUe@$-MwtuS>)?~~N zr+`E~QdELr4V`4FgS33O%~6T`+HEMn;HS;BqS}w(&hshm%k-nVUSRc6M(!KfnUBTk z3L}xzpoN}F6Tr;wi&m>i9ImYqm~mHSm>0Ry1BXKG}8nqd15z^+yS@&-NuskIpYT zS69rAXfTqe^B*(W(H3o-W*$$Dq(7&n{MACj@vv!9j z6=^J9D5Z!SfIejKw4tPYg|!{Aj!mqV6m%fuiBYspiqsSL zjo1?x#=OpGT2g$T3|V~(I125)_iCWM@r&#QAn6jNxdY`&;13W39O>${h(90<4;ha09w<`q02vIyJWSVV#3d;5@OWd!oHl zn5q~dfN4??F8)QwsTP?@(z$E0!1o55CdK-x%a8J3BqGJR_bkFi2&a1 zO%EEfe=~7(V#&i`=%!n9Jpwf4!&7slOxUVf^b+)+fCM>Vo~>|`i9{`m6U4YIhDl(Z zx2clBxX4rlxG^#LPAZ6KLS_*|MBaQt&2g^6Y!cp}u#I@U(CWeTlTdP5``S zakFy;6kbxUG2AO-pdDq)IsVaFNAbt!GNk&28Tgx~Wo~1Xb-yeYk~d2)*xwDDGjm*XpVuLDd@?7~7{YDgSwSl0N#*l-t_yOB51$%M}io8Y=vS7~w?C zZ>m_OQaqy+{{dZnL4&NzlfO3%qZWn7Xe`*on>J{7HJSs

T7^^|zgghqWanB#-vH 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 AzyJUM diff --git a/resources/3rdparty/glpk-4.57/doc/notes/dfeas.pdf b/resources/3rdparty/glpk-4.57/doc/notes/dfeas.pdf deleted file mode 100644 index 35f5d3aa5c71ec885b00186fc93c3c608bc6b9d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63866 zcma%iV~{S*vh~=uvB$Q}J+^Jzwyiz3ZQHhO&mP;~yyx66;@-IT$NBSgKGm6PRb^#F zR%UmT$O((mFwn9Hf(@7cI zm^zseFtBnk@$y1BIyo5YTSK|6H>pd;qOc)!pQy5zJdke;AGP=kixack39ShgO2P3X z2@eMF3kbYEmeo(#JV%*&fQ6|PST|id@N`r99-&=>Km_{|1fUU;-|owNI8j~kfB_0v z*zG^bA|^?xOy(vq3v7OUT{N;GJPo^lly%+ueLvc;>e&rye3;_}GoCxUo8op?@bRUL zx&Ml|H!1mSq$Ze)8L7(qZVWEQEDwV!M-HDM{Oi-<{VOVYIZ{1Ps`q?dRxZ}1rlLMv z8J}_M#!A~cdxD^Aa{Qe!uEkNk$}_eJU~$a2L^O^tY>m8(g{mxR@bixGW`anZfUe_L zJPHxGk#o5bQGgU7IMrO>pJB8ziL|~eM~Hc{2l=GF=F2tc;=x~yYH^e{^AaK+`OnLL ze@P{fXaY9o%_Q^%JZMbnNT$@Ats=T0t>s6aDrrkJ2f@J~t{7mvqrbEXyNc4yD$Eq% z1Xns|#6LDSB0?`4i-g8`#%2KsH%S!M3-aZD#eC)}*KIL2HsnVML0LQU<_(ZDPRI!& zWD2P#7gS?lfv$720MDHcHCb0!nM5}kpgi(3_lB^5EUsa;Kd&+FsEgLs`W6xv86tlz`w!lQr) zftE(?ba^n%Gf0SW9|+*(1STUs4@u1%AK>%F2!oqnhTNu)R|^4=Wu27m8j zqz?*jN%{4?Hqu9{Ar1^a>N;QP=UeDCoh+-!TbZO9((>hU$S(qZvxXx!ucP6<%6>9x znB|;x$eiRw`nl`%_WDN`egQrUL-nkLZGldOvw!3w0vBhoVK@DYEb|(DXNoho)0}v0 zY&VvKM(swJ--N)N`D96tiU?Li!xW|p#_5>N*R;5}xEkYBBJ%XKyx>*I8CShLNTFuN zH58`5bnu8s6?TBS7B90Kuh805bNOUm(dB;R;?72Y>KCqk8)sRKiDWSLi~AG*U$@~X z=c`Hgz*3G-H|ZivZATBblXArnTd;{+;aTibRfRTC*5S;6XtI4f;_}ewTU@IztiQ%B z`p88tma9f@E=a8IjiJ)30nyLcwYR9O+xY#(a$_-2rXJ@hz-DWCh|8$rnUYfxgblTz zSW^1%PH-;zUXsYnl+!BfP=RzKJe#SWV!TRGF!t61%ED{L_$rnhM`ogGqIm@mE>k?? zOjA({4DJv-GcHAh6^`N-8;Z_pu!b`ysV3f;I&4K`?Wk~!CQ^)+;J7Xf(q4IYfwaeZ z!{M~Wqc{%umyVk5EPLR=rQ+MvyJGbZZ#_6g-35h3Pn;pjSNPeVyeSQgCmBQ({-flm z2#(c$#B(Mv7fFBC@r?S<%{m++w+J!<7WW!55?hPSavPOWWiV*jcQRX{U+3-##lu(2 zg%#!)9#bdX6AUtgB*i5n=F?$QJQ#P{Hdi@)Dm9Z&&Uv_zR)c4W;Py==Icz^F~2IiF5ut2idMd*%ge8=04dJVFUJ;c|~i3z)9PSnM?4>tpOxLVfbM&pAf`#Jzg@PVvgJPyoFVU{ok z`_SjiZ6@#>mc3Pe)=skAfc_A0D;lair=dBL%oqj9w;tBub_ab9c# z;BqEh&SiP6xJ|<&r!N0)tcu)NoTF<49C)V6+|(}1n{A8RwJpMyC0DZjy2E^R3DI7z zt#))wEThc?`Unjmvey4#*6sOp?p!51Dx%5EO)5xZ3xA#6^$AF3@%lBC!S|JX&F94z zhM(Ve9@yQPa$1`10;JphO0d)I%YhV3Ze=7NGoJsLH2km!;m21)uaV>Ph%cEbZ3ty- zWAtBn>PPw~voSLNCn=7Jo{90lr?@Fiaa)oW#Ge$`DC^UI>fB1F;w9#H7`H*tF2Z3X z;D?b0z&kWr18+&R_F2Bem;g9{A+G(APK_3+j30S*;l*OVEP%Ht!bAG{`^WJL z#62P7bboz&;~>kTc=&t{n&UV9Ztp0@9D@2bY~{9H3Mb8E@+F*FQ55G-C< z(<|425W3loR23~Wx3fQ3&7ws_Zz#XNYNmR~3dB_?e;~L8sd5SjKo<>_h;i(TO`ablEEZZ9qinEju{92R=l zBjH455U5SXf~KhHPjz5JRYaAfxgU+dqGf6--M5AinMKM8#kU5am>8@;Gld^wRg25_ zykuIr-SCnj75fTIAkb|4zqQMwc3dD>oeGxKK=?qQGASoyeVb6 zDEQSTma>E~{t&qBDP0R={@`;n#h)hE{Y(sbSdfd_@MnpNSB*{q{Rrc+P|N5RMy}#G z8dc}C;fAfoGBD+^{y-(>O$RZC>>^AkI1`9}uhPQGva+F^spsL`%t< zyAD!jjRGvpt}A~p@u-_Zgrhz~$PZ>xGCqZ$E<1RP+{X(2ddvdoMQQR>#;!3mB50Ck zm}A-F7{``}Di7$x*9O81(WSpLMI_rzlLiB9gT>9S2k?A&7p?>DT10E6rm^q zix-hHBoB#DV~6bh>7i2I_GYYL;GVI3m0WHfS2p1BDp_ zA!;QWm<|Ab&_@>qo`MCQy~Y&q>m1vV?4g^_o5g31>ulrSkiIb1tv`~NH~Rc z<$Q=z2xV_xvrv;?Pq;3i8W;dC#d}7~HST;3v&%qZk4wQzpg=L+T{Acr`~%O_naw*z zVtIx*EHGQns2x2wlsWrR^1?RHUi%=MRmqRMTUs}RKYr#0sFPQ_JYLrqn_Db&gWmbeFaw#G5Q~lV$ zUm@0U54DEmhf(x2Rf@vq*yzMDLVJe&I~+~1q|@iD{nz29ZppeQiw+qC3=Y!vP&Zm+2rV3t2B|2Jkf~4 zfJM!5d30o+D~tQt=Up5h7h+;2&C$TdTM?MZibA%Mrxhx*^8tnF zv2aJ%`}P$f=vcJJhHv;rQxWuwJV|!H)abGEuM6VXL&6g64l@b~aD@7hp&p@Gjb3TT z4oUZP((GMTdq-8!zUyKI9+&2EhUvub^3XH8MtIIi>)69O&)br~z)ajkx$BGjOYy}C z@ei*Kc|IhTe!m>KJzNUaN%|Ul$gyao_~&CMEsDrJ^@yh5;8|CnT6jX&S4zv1pcI7V znZ0!zo)e~{EL9J5f9XNIpD`-a2Vl|GZhb8jB8ybbY{-U1w4q)YYfpx*ULR10QJOoL zrih5$I)?fs^#5WPSws(cajbSzdZV<$o`wPAP81%@b>H0qRx~qBqfq1M$ZP5QeC<=M zRyC`Q`?afYPr9kH^vW)^Z}rUOcZAMkS8b*Ee*T6R`|SM4f3Rz&sUM&zbFH0x4w~IL zUnhmc-lu)gTvEm6;_Vr2dO=OP^E4c*W$tNMbf8-4)ZIL9VUTwBvZIsa zKOM|>7$yhO(I&s39OALS{B=xv^K2CmQ7o>?=AR{f-)k%}Pp8-@t>+jd1)_@x@fv$x zwb%x#@d5$szPil+!ojVz+Iv;x$dYiuEAumTe@kOU$b?@IbkrUWzrkpl@ zbkeMSdhqjuqv!%En#usc09gJ?@#=;>TG=DY5MHprx28Bj(?yUurl~4^_g#68nA*?s zEz3SKBt^Yvl`cf_dJ!9wgJ%4+)KF#n(8n;}sd97M zrOUZO^cP-pEtLDdEG_0sreV^Frnc>I2eZ%YqvDtk0lrw0_73*m>~KEr_Zq`}n*#Io zO1bPur7{Sw>qy;g5xeOQc-WqxU=P3Kl$^wPln>DvP>$BFtb}PXE6STLH-{U0CW0(4 zp6^%HZ}4EA=7|5JI{42TU>po=|Ghdm(&)0KWS`IzG34UEjmymylK4&T zMgUc)I(sxT!t~^J$#cD};~)=(lI1WK!*h_fp*e0DJ1!}pc2%-eejWaKP4#8@bOYf-YY^VaJoq#g zg0!E7Cu1(6@>vHV3!25BuX?1q6mp}lm z-v(sVd|#;#wlEjCccGP<)KNRP>hF9b_z10=#YgjKj(cbpo{+h7{;G(IYjPbhZ6G0n z0`zKq;VLgCx&fn|2u)Jx0%C{_EP^51YRf6c$pjJrL!XeVqNF{+hfHS`Cb4?lLXR;I zN-UZjJvftSzPHT^=G)PT*#!>+5XY?UH5n#V3~;%q5U6N>x#3&@=LUvL0j=`m zG7)&Ah{boVvgyFAuv|S8pyKV`Y<8g=Qc`1!vmdj|v-u<4B;LYs{ zPLzmqY%i~g)Zp|^DdmIuB(Xw0aZUG{ZBu-V0Mdq=In`nHv~U51LOs!Q5SAYbHepQ|DepEB(crNhfBr;=5(QSEX7nbc#D>8Ea^~6OihR6u<*sZ$TQtCpTHt z5Khi)_|ml03*1r?dX9axM3D05zP?2hze9ch@Vq{vIGh8*O8XQ`ODfePXqb7j}lZ> z!8|?jLDXArEBXTXi5q2>WhkP-I1q<;qB$iGMY7;QzUjQ`5l9vC0E$pGSdDN|j59)4 z0KoDatC&xhSb}P|D7=1znO?9P?=@RJeV)#j8@`oT7=u?NCZfT$ztOpueq!X^$lcL1 zS(jrJ6}mKfzGTbT1#W2-$Ng|wddqRNprY5F{H7v5phLDlQ9=#oR$@?d7-!E%ltbtF zX^Z6v=Z|o$p`;D^-+8MeKY2r0NL&`V*1$()u@gM9fv;22>S;W-g-sP_+^33*B-N)) z+LHB-HtlN`suwv?5{|6F3I$^^AUevw+EAG88oki~b)P&q=-KQA`YUfl~d1|o3-J!#oE=p5+`ZqkT!@4ab*vVmJf7oTl7}{`q1?0|ZRggdM zHAPW$SkYau+buEQ>~P#mE*SghsJ*=!2f!HziEq>2=XN`>(Y{-)oQY9V=-HE&vpPu% zNK2Y4nHgrOwo2%`wWbBYms54jWadgy{uYhXerc$Ah3E`^6 zAV`BJ3oR=AI_`*+DBF04=$I#50d7QRRO)=?5$KSXSHyrm`WnO7W13zVONv6gy+S`~f+C68%|OF| z9|7dyvvx!?C6oe;AJOV<5YHdw2+CHGNeF#h<3FTsj5q<;sg`EGIdo#RwluVEJglhf z7pKu0HL8C!-*|E2uJ>GkhtXs= z{cZ-%8t9$|ciWo#_6TDXoMsHg+r)8Kq_cqA!GV=WYqnjmdaR{UPQV$XBorres0Dm4a$Pt{~%L(b9If@>Y8D%F$$%{1gfi<8^^ zILiq^{C$9-@Hx{c8y09io8`SsqaY7^ZJCxyA+y%QPAcD7|EPhRSQPXq;&rS}N{Nkr zOZ9cp`dedzVj@M1!OyCs?j+J7u6opzq}R!obI@ki;8BUfh5PrV7FS_&8*5m}v03?~ zb;6q{Auu&+!MYv()6@`Tr(6MYW50UlC^Z>I7o)-L6qtKPf{R+_eN@0eN&>P+JHC$rt!HXN9Or>21(%45Y6Sp^zEf`)T$-}(19v>2#*rX z%kXp_DWw*x{H41RMrKK9AmoHQT!oQmq-!05mB#7&duj=`n0ns&BKk;~tiU7xT5(EYvSaH zDV}=$$I-4EG2uWWfQRrLe);kyldN6gNzY6sP*Og!))eV()OS;t?c6OGpeueiNIFPL zn7qE19F-V9lF)stXF^v*PYi*nMQigq3wp~Kzdqlk91YxEZrp7=qb1iTpQg0KVHhBqM}_3W#zzw$4MLGKmg{rjU0DE^I?Pc%Wa<^2~zj~f@~)>1*g!4jGU70RacSjataF=yoihWC6^ zI5t7;(^ghFSS2%TcM1ZV9d?n> zYe;5xBdC=K$_oM2*_cS;6}{_&z|4-IYIOV4eIqjfBRdsn^}lb{QG)w?MT;=8)S{vU z*@49Byu@Dl#py2~w@WOk1&aID00uW0Xn zkI!;fN{h%c^hc@sHCwlV8t;eoU2K!MqU2`?Aq-pi!W{v{4PZaOtP3UpD0Y%Wotq5X zOQknFEi?R_E-<&3$uZin6&nOpCV*4Ez!coB9E+!;c|eYo9j0Fi$=V`opF zNli{7`xx*&flNwL+XB$P{7FTkr^5C4T2-z#{;_>?`A~XTjKHik*u{L z@(;Ku#l-pDqu;Uo)F~TKvGmf}#603kqE0H1t-ah6PuGyTyrQ5jOC`RahgmEXLX)s8 zWmqyhVM2slB&su&gB77C0TVf6N;E%98+=+c^mre+>;kPQhcdq|(USyd=|uGrm)Rc< z{1!ag+d4wCBG=)K<-ebH$%T6Q;$by2=qU*{;@Gp$Q+dD1h6-GlCnbM7Sq?|vS(F!O z`+Q?sRInI42m5s+s0%Ee6E>cdixmn7>I?YHc>%wyA;NzGe+rvH-b^{<=UP~%KY11% zBOBU-|8{$5FgwKEYtC8)R(u@BIP`{8J|qnv!A|cCmnFR$!`2tAsn3#5l=oZWqxg9^Os2nd z<1}Z3GiRw|AZlXCo26`82U;_i%_(eNqQsLp1e;IC4f;h~FAM-TZcyj8s^M=f<&kN1 zeb_2I@Q9?bF@BxUkiNW@+-I|s?%d%?RR@(p=C~{w_NEYNN?)a0Wlc58a}!<>Bk%EnOAEz9jdSw(-c=qp*d z8H-8Yu@LFT_9>CU4Q@=bDaW#P)ST?d@7Y+hVoBCf|4nh5L`QzZrlo^%1;IZ(&Ej<; z^{_0ai6cgsZ`xdylAx=a`RA8F}#qec5wF-U9bTo>m8gliFZ>4tJPa=k7 zf=ynpn^IZWPtW5*ExmkAqhI>5e3vbQ)pXPj3i26o8eRB%@~SZLRo7KZ zarg<&Gzo*7uVWH)ON7M)9qQf8+@^*bXw7L$ctt ziXN`Jb`sThq^1sACvV3;>?L@$DQ>p@wLz%6Aix4ie>x!Vh=wF1ezWsyD~;!B+OG3u zT#bSE!sB`=uj+Q-e!EP&+Hj@G zMSXw;CJ#U4xGT=x@=HGr=X5M?3JafOkpTo^Cr9PYEAxvORC8{Kg`& z7eBoe=S{T_SbrspK{$Id&ZZNE#DSZK?l7tE@B|Uf9KFQ2^Z;g)zG+%R+RNYysWR*> zZi=j&Ah^XnA%#VO9!21x6mm-AyuEUXIrT;cS43um=dBg5io}ECz2PF(Ls(-^0P!TN z07ZPtRV;q?oEJYpmdWJZE2Nc@A}Sye=MY#v%d*=S7zqR>f88+TNsHl)@3++L53?D4M%xxqcp!J**)9pbiWZacHn=b#d?s% z@sWMpRD1&+Kbyh-AE!8`|Kt?M#L7(n-y1Pgnq&1wY=~R;s6!D~z0Nd6CfL8|LAvzz zY6ErBO!^S0Av$lyzr2zHL(0c1%U1#kIkzudWwYo1D6}gak7<_R%X}Ta@%d8PQ4VE& z-F}{hE+A^~e7fDu;o`}d=Irl%oV`OnT+GXSb9}x&T%JAK%I5Uk-Y&)@51d{0kW#oR z@OFKk=;|D;_7LkYk9K{zkNsmg7`=^AU`b0F^T3BMU>sjzL+ z2R6lDmlwLm(pzu_65Z*29q2RCUob6l{0e(@y2=5{|8QF9^5Um&SLHkyQH1>+ROPww z$Mc!=eSH0l27k%2V68)aWA6L3(9P}Xf$OATUR~FQ^ZhlWzDcRJCGmD+#gzQ$k0N*C zIABu^dYihOjcCKouE}=m8t*`!Z-0yRBkbKIW_ukccATJ%E6*8KIuG;I| z9rO_X7jjj%Pf6pI6YZl|mwaqb`~yvV?b0S6U5*z(a!DFUF>dAQp3`8n|2r_FsjCP5 zGs%uk4uZX#E9AAKu|p5hC9(cAdzQJ7d>*;_8#j2f~Or5Vi;BUwfzKTt#A|VpQ zgdkT?1IT5m8S4+oC(IrIMX{qvBu>3`0j)*$(&Dky?A{>vU7Wbv{}+kKd+ zAqL1t8}Q&Z-YNiix+3^I5a|CDSdJ990{j?l&21yPE~~QT`S3|vH^9QgJ8qukrEd#P zFz$&vRPh5JtE%O7ci`$^+j7|GDrC2HhQ~*>$WnlKdqis8>^(Y)*6PDk|NZG93?atHGhF=^RT$=4}^aeiX)OY zAXZj%QaB+tT5c`XBZ(cU=mV&klitNC)TCvw78Z6QdhHeL*vgAGOD1y=f^ArfZ9TD9;SR~1c;spND&$^i5g`Wk;L?Hy>qT2~Q{|&KmE}+r}gu(@N8+|nE z4{@)GgWecF4bNGD!b}usjF9Ed!GRVlQ%REr-r-)@4SgJ8l{J1ITd5y2tToP6gyAN^WS>aOe)r^=(+oF@PC0_vu0Wueu*_+5EUlT{*~kJdOV z7ouyx_O%=X`3nT(%1mmL_GDL5kct8g2_aA5`k9?{sM((&6EGGDK@YH|Q}c>j5UM~d z)WS3YSWMlSTv5<)q~b>9I1qYDu_XGVssLg?d4c>O^BMxkT-7*o({)NQ2WzD`a^rO> zF(3?7;>O}CzrhvJPl)I~TTo)aC@3Ti?^Viw-J0ZH*AYPKEhUg2Z&dv^Ak!u4zjX?B zBz|;Qh#RLpOf>xDg#<6O0NepZVIdo0+gE;cEyR+{E?Itbv5-hKJYmHF3POa#Rkkd| zfKFKo)7-=#g=acMQN!meyCQxjD3Z@yVWa$`O^KudZS`M*;&%BDg);H@c=InL-HRVC z0Sy-7HdYHUGiU1xLP)*EIC82;&3|M2Pv{8!OqEbxqxrw+)0(P6i2Zbg1P#L~LWoy> zrdH)s^KYwY$$wih-?z&P&;R`V@K^tTTF2G@qCHqw5&41qmB;e;XGVBR@wA4kWFl*k z7-;!oXhaf!`6*QjYZv~NA#CG;<{D5bsN031gk@C<`5ziZptyK09%{|2gyEByC7f0p zRq_LinvlE`HNveas?406ku?#+mJ~F@v)P*doUZ){c&tA{pMoavptJ=^bx|W2MCK7( z8R}Y|ngZ3_0cjHwkH(LXGB05yWF~TsU@vYa!e}IEM#5<&NHy1oq!F)kUfei;s3K`W z;;~w|+%(TzhI&RsOm66*)pV$mA1ZA_!l~v!HLtjKxXfajzA53h?LPacNQ=(epA4xZ5TSBNNWLLtd2eNvw`9X#G z4w=k@>Xkyx!_tprCi&Mx9Ca7!nNT*aj=$Aul^Crvvers1%Mj{Wn{@;gY>|2d)f`(N z3xDmRO5yxCRtaPDx@HNZM#0Xa3RY9gqDmuJPgxbSjcr+#8EDVXSSZ_~3bV)0*t;Bm z+K0A9k-eIPCBTe+EP2&pl?nMj1c@4Dx=ZsK@!9vqO~1B`B`rlfA~KdE_#=~-BbFgD zmL-G$f5t3V3stZpiyHIiQlu@4x=|%9M5s{fLlz~xBa;`gddKRiM)bgK#j3i)c;(bS=ynJ;LRStc(=49BsR{dr5KDMPL5L=gGGasLPB=upT)gaA#_ z0=8RRM4(XR9G5#mL&)wIN@wVz$LAd)b9y*G!{l$T*U|2iqj#u{4Zh{~-|O$lcu+P^ zSH^;8f#{9royzSG@m62NCvqk4!d=j1-$uTjyrH|gps(NBH)q;mFTmG=6rbN;i2!Hg z?B%)xZg(s>6Z*5zKoc1?PIFw__lwZBw;H$deXa63Cr}JeePB2rcH&pr5i(kcgN`q* zu8L?oBApF`w*pjJW)Nw|&z3Q3$z(`+Ixb00eU81-s*pE3qWN82Xl@l-XEJh3?@>Ml2 zT+G8pJ;&>2Y-rAI=#`^up$SzaZT0{AjQUijPVwmZE>Bb%xxIhCQa>t14gh$`(_37$6FyTGZ$ z6;07s_B?niCw3?8I_YfOt=WXKzlM#S?)V&@?fyogQ0tdtb+^LsR!*P~s|SD6P2U(B zehT=;t16pMJX=es?zY)X!GM#E0$%fN^qi=V0JiSMyI>3N&ai7l!_5VCBE4+!63A=B zc7aE0Qz2PPvi17Y(l8*jkLSU+ktsxLRJAKu3!lfiXW4D52lq8-^3!4VktMeySuK{w z0}8s7;Ma)k?b7)5v$pJQip8KBW7Ssb?;eu!yj9ce8~U&OQGl1IlAZ}cgQ@MUDmt@SCc9^X z_JbK)CtuN}oT-}<=b(gnBeK{BsDYvix`I^U`sGU*_cj^N;%hv1Gna!SxHpZg4WAh@ z9FQBYnJe4LM;~2MA?^ApT-jld%Q93=I+^ea21iz1e3*{G=j^!aMcgW0CVVQ6FZO$V zXJe#pIpB%;K;(~v>>$n>?$WW3G$Xwa8;L$nV0>Mfm;&YoNsjq_QzlnBpcD7%u{2S4 zD>P%j`dxb${cPDO4vwRJV;O2I>z=|CS3ZIXx>6)+b)mz|6*--F0>D3ThTSo@`COhl zm(4*sU~>IFwH5s$YawUH2s66@Ug+48)r^wacV6f4TMYLzw1m4mDF#98KBoYT=_ek@ z@-hBTKxYPT!FKcC~tbQW=G!5HU57?FtN!E{iE4KXNzE`2<+O%=0m4v$3rWb ze9ra)lhs2ajf<(v)Ixw7IjC+EL99iCjURo(xGNi~!b4P~b#MBOe7Sq#T*|_9HIA;U zhcusSz`sc@j_(p@s^=8cQtm|<*+ZAO|4L%j7<#=&egowpR~7sp)hGLZQhhQqvaQh5J7MBg~=Otk!n`=VtdNd1cvR-z3F9Wk3 zToBQM4Q0xN{a?55g?lRkut?u!eHVS699}Q%UhnLkZoq*+`n|BR-h=5{fA5+4u%=o;f3v|wVaWp z@rmb}yTKEE$WVEs<3y5DqQyQo-j^XP?-G6azUa+}GOxOa^-bUosFd2p_dllycM4Jqj8f^MT}HRW+L|-IvTs<+f6^ z)lSlnvrW{FV=d~%EuSn@FGZf0@+zLNyiKq9%KNGrRspdpg2$V`T0UuRC!Pnb*{-Q|+;B|!%y@ET z(!cXuSif^r`AlhCK2?ScTOc8N7IdaxekG)(GMd9ux%hruf48QA=9O~m9zUy1nPuXM z#sNjR*Ro7i7)Ojuc>eD#@Usps zS6jXxh+=}SeMJXy40CbU=6ll*Vj!EL&{Veb`B)^-HxWm!>OKg-6Y3jN_shtwEC`QL~N~ zO-lV~GvD=OFNHDN-+x+{v=2#A*yoB41d;tQv=MN4x1|$Twg@RwFlUJ+FJGgVCm;JKoHc?6DLOejar=Nwi8K(N5^8 zsJ>i4!8{!MhZrTDnk0$k7!9^UHFV5CrU{`b&l-YFK*|uwII%{nr0N{0qbUQrg={&5 zY(P4rDH~E;m?_Az8bn$^o;Eu)F{A)JB4aHL>p-PXdHgiMNgstgAXA7UQlR`gm3|8X z4h!hwk$%deakgd1wb1lWB?c>|%&||Ffh;Nu6|zG~`f%0}vG6$XssTMOC;og@X6FIQ z!tbMV0gE!LOc=Ybf);!kS6@V>Fj!zjckn^z$mX0i#z4P>KX_EiOsR!6T%zw@--2Wa zoYX>t9HhHG8KC5wlvJkSh=}^BQKB|;X7s3R${XhOYYeQO9+_B<+Lc*BQEozx(OJQ< z5h1JWk3W|-Gs&zlzq=}Cx`Y;Hjcl#yr|KHsT2%3@B$hongJm4Oqz6>Al_tGx_fPLV ztezxZl%qt~*}~HLw`s)%Zqc><@P@JGP$L%`c^%_60Og=&j8XU;Ncu^VZgo9=Md5b z?~AIz6qKEY&+P6&`0M zHw*0sL}#q%laHpYAjO|VOwPz|14f*C1Wo`!zb_m|7x$CX<-OR6IH3VZ=){Anwrkjc zTQAs9Y+*EBO24AT3<7eRKVv#S`ANikQ&K+*p})uDeHZhu=3!1sf2u(h&yZsgT0%xD zl=uOw_yUuFtl{&%xJ%8S>LO`vwcmh!aG-~!PqA|RIv_kvl_5fY42Z<_d9;nq6^o!< zP00Bb5Ruiev#O|2MqZ_P+0Lf9bpX`6r;A?mn|?{>4@klvU4(oymmp& zLhDR;Axi8He|)j#1_j5b`Oo-&Hwv!yv929m-%gZ=lpwm8GFKwF?7cGA24zXWo+i{f zx+K;XAX*>4XHC-S;*5QicLkpuL8d$=HeF206_I=CWG|0$xtK5gKHDrg!hiZYc0?ZD zz{(D!=dIpjspxaY+^+RINz;=j!iA1p5!P4_X^^b2Y}M2T{=3;pxr2gLo*>lxA@hol zmERVpN$mJ&qBuc!l=ny10u?cbJ2CXn9nBGATj57fsyW=P)$`<5J+;GHNV4w)=ygW_ zvT$gO~I^DhJ6{5qkFTP_=%>o~lW2$M;0>qNaQ^S;XUuSO>b^Es?RRrs~T6CgJ1i<>vHe zH1ctXIB5>dY#d#~e$BN;d;+g&o3}6f7iR>pjPGyR7B`k^BbS#jHL~M{=eOOIy^%fb zw)cwuIP#DP}rFd8n2a%drio4i`*+i{R|*<73MyGAqy25PTk{q0b@GawVB0CpP8AcsNi2 z$It*h6?jnm;u%<2tBUe#b#WYPuniV@lEzhfa)D`*Ph!T;9I@ec*M-`A03YvnArdO@n}m^GIo;{ zru$j7wME^i>QqEt0wGtt8BpU;LC^90L9P&D7Kmb2^ZvS`gkl42xdphDk-P}hd z_meF1Py82$Pfynw3wrjT9vi_?$jzdLpH$79 z7Ffy4{GqONdxqV|HIgY$sK+@Sbm2jfwkU7TI|++$vOlIdqy)pX-PW!MBG_ilGx-bQ?kH(;EB z=~z(T7E*uQR?tyjgFY{jUJdOyfL;yZDF&gK1{kJaiwfq0>v%qms@P;zxz;P_ou4X>FZJ^pn&}C-NPn+eMIT0c$I~*g_AIRy@nYmK={al>;P{)Hd>Xh07o9`)Y7$GD~P2tntpx#a1hycuC4pBI?17wDqgxm<1W zbX9)m8*cncqlY^NAWPq%`#MCdHJ;0S!KUiw!}k#Ix4I z?O_A{A=Tqac%Ya0`dudXujP&kO*FL|ldyLU6&@snLT@TWLtNKA1{wp5ywq?c0 zuGCp3af?Dz(E4#ecfU|Gx0|=5ouTy}0iK7|U(!oSR|YVhqT0yypMoq3FbLH*c>vPG zyRX7}N}>5#@ELr2_Sp6N!nfgZ05Hz_2w2Gk-s9JNC^WJbCX>bdY=~+HT=byWnkjS- zJc7_ejt=urFNNsNxh`E8=y>v>u8p{V4bSa<=Mr5t0fSXXbJ~E+r?0?NdA(OQIExQ1Nd%xPJR3tPFk6ZKbr&PI~QYU?@F<|xR;V{l9jhFHJKhIG&>~5 zH3A9fQ^t~V+abxPKZl^v3apn8FX2Vlx>O(~J(GR){IVLA>AqwBlV(PU_1h*@JB+*nb!rhUXj9-j>CSCpOft#<(zM2(atAg>U(czVuE~q6>XN`fj zP|2agus$Acoq?9H4zPa=Gy(vxR^S*DE%%BtMbc%e<5xAhlpHT4FVc;AXA6R0M0UvQ z^|{3;@^V{GIjzCtQ^z!;*cXyu+B@)A9dl*RA10VI_{>}BwUS}i%&$;?Khj-2zj0^n z{)ph&IuFd$;pfp2V0Xdne+1f@7q=X3@Qs(bUY8Wfe8OO6eW&yo{^|zo^B;%3DGwGl zJkoUi`H-A{&dNecVsG6w>ps|?sgHAN9bl8M^%^|6*sa|%Q(*|a3n94a(Cz*}aE-^C z`!Dp#e{YI|_5Z+_s7oarvcPsfP&-JMlj&$SA074rm8*x3_|d)(+X4P(0Q4F3)00Ny z{&&J7EVq>Pl#46PMU|XlaZEyn)%Qs;sFI|M$B+K|J6o4K4!P-+&CA*IN1z_EEVXFD zzSGB5%G(?W4bI_=9)Wk@r&x}@29UK6He*h!SWL5gpmO%mEkB73-N+M#ufaE7fmW2{ zPzn>6DiZNL-#hBGP3`C>%NV)RYIgro2VIp2OGU3V27mkXc_?1Pz(|oA<`?n+4LfmJ z)2GLW4*)NH>jc3zpDR>?pT=&8x86TnrAz&z2~kby3)tKSWAXBEXuuxh`7%)1ds;TJ z!`?4yOU)-_T4jzhMoO%38%dbUbiN2$a%f^nCSbe}RZLi=1%V2IHFi{|p7;a`dDn;ls?KSS{Q) zFux{v%MBH%P-*Ets7&(vCEEgm^v~)NVO;ol%`$u_1h}sm8IvmuDcpihvk1V;P z4iSjt7J9gohTDa6o{xn9{5g4Nz@N*>#C8%nS=cWApu!-%Co*zgvpJ>Np)$q$0@(ch zT(Gzhkz!)~JY_ZGlPpvtFne}z5{dYR?)c3Byyn6K6kYBFW{%i`O`wW+y`^P+6~qx^ zPWnD7Is{_0N-F>SC0n3D<|Z_AP|~SOr3#%A@MjA%8{HFqD2gD_IGiOMrw;I{!oh7d zmeYjX7C`6{$>}LIL>0bAIt8B4TZFc?CE)x@-dWh{TG2~25CvMIrxg3qO@YO1M-WEP zoc_W*gTH!|mE#2)L<>*J3xu{x4cUABJaB1douN7{%YF}YaBVi9noU`Ze)szPt<-zpbFbd_Ao$*!fgslVJTuoZ8K zHSJe?Qyx`@Znfb{7S0w$g$KVBouakt!VBldJGy3aIe;l*B=3GHs9~#UI@Qv2-Z-~5%)_K#tg3^+6@kOd5aMwb zQh@W%|AH!%|(#J4=ODNphR!a)s;JY8g-hUFR~I9Js!5S zDwwU)M-Gp!&yoNK)9FheGeE`##psYY8Z3lG6(<-^>KwfcbB$v~cDRix*u74Rz{k^Y zZtG_sQ-3}LxWzSk1*XuB_OZTHawN7X3OeutD6hNZDNw}-!oyt|WG37GGIB`^lg7+l02-+oxv?f(JwOav7 zKxR8*46&fhmehpk*9N3R^rgdh7Ji3ICaeeNx1mN{GrHv!R1Oa!7~*)1Eb7?liE_+Q zH@r?1z{Z4`E#&tgecOxW@jrS_EGv`=ep6yIz0azW*xk%@lRMm z#4y1_E<)TDvcP6&hz27BN$Q`(zk@agi*Rmy?gYO&yr)NMJJjA=?d5?whsTkl6z{wE zCZbZ_7AW4jt`{)z)r78dMf&titc^M>B$pTP`o+An!wJ+YBfMlw;8}x zLID;WIQ*~1{@WF{Zn-u|KA4IlB8#LfsjeKOtH77>G8ro!^xt5rAPq48_wR?5^?%u8 zC1(RCcROQx<$oVWq5lU|>)&Mp%YVA%Ays!flohNMz;icPq|{|-Ioy(>371nkxKM80 zm_(is<8CT4awZvXsI@-GJ&}_}vX^H3(^d8L02fUy?FJBz7t1b5tQ{8QDnFqF2#a}o zGZqu6kmD?Q`{Zm=)Veeb^OY{1dC%L_^hfuLXU_|sRA_vH2&lm1TCIhQtj_enOx1R3 z2g$|U%c&UksxN#Q3y3GpJr;MM!h;MIa7DD``oo(boI zh$EDN$#5qD?KmK=;jTzAsJL$*(h1>`&)z(uGv8ore@H528!X0{l-~uIrU#}ToxHam z^i>0xC;1oDOJ$&^YX2YZz3i@k@c@~>gV$?eqyK6GMQ5S`ogUC$E~!wZnnZbWqMDRU zNqu5lsc2R9*^<(~HYO%~B9aqcGZh|o4M|*xWYRC#h@uJ%8LS5tU5n(>FTeqXu}8)e zm~xBclP^RffsB+-GKZ^>s4jXMUnr5OPSu^RmGNmDPI<)j#^jFuCqz~erfh*Z+;mfX zfF75Gr&U8Suq}Y%N_IXeIYat!xst-~L}q^?VgH~-RotR|F1xfXG8o;Gx>2!(6VzHd z;_o5!1bkXExMe=8k#UrDC^*IeCZlQt6n@&xQhQI1zse zkuvS3r0Ez|EzMJTR|MPM~F>KweI^pik2*I;LID8(iC%(sqR(Ops_}Sv8XZSp8dGzNU|@+g<^YWBQoaz3svY$K|eJ zJ=NTAEz++>7=X0hbHexQ&YECvmrlOwCD?)ZK@beqz^DBl#h5N`_GY@!N zdwfe-j$~HIG*aZ8Yl+JHYPu;U$+pM4=t8T7w^DJ*+=*5DNxR-R>}}aQaS{$Ywmuz& zqKNPoLJMDw0}(oqo5!Q4Pi;l*-NIZqtYJ+FLbSZBNPyPO2x3kucdKAs=~lLHEoDYs zgBpZph`6@nlFdf9=P_z7fqa;=JU~}Z7(b!`EQFh?KTH~EO9maX$q3@T6SV77;?3)W1ju3X$TrMrXYSgS)-bYKf zPzSG{+!cWmKB&H?8-|oNxhJkD+?1|>F?7XecKQfTrlJZ1?c@|>w~sgv^3F!Y`}?|- znGfO-wPiD8b%eiJ)YIw(ixcyo{(u&VE={2$yrY4%59Sc&HuUOkLpc5ujh*a0%bqs2 z*S4*bTL<3YA5lQHt+xVXEt`5sBI~BS*Nt}vo?*XtL@c(tx1~3d-0{OcEzdqdG^y0Z zTB7ZV_gLJ=aTh$L3R_-*(E&0qjV?8EKi+=2DK4VyF6 zg<_zEGLdjw7OeY?c&r4ojduP@#B%{H+b7|x8K(5s#`H~uPqJIz-V2t}nWK#d%i-Vr z%L~+Srd5@}qZr*nKf%4L)2_szLKa?*|1N|Uqtu1(b>nN%*S(zb-Cvp@7hfz_?ilqr z81FqV=PUp*a9wCt-vnpXBfKZvg@yg|oOgxlap9z(uBI`N;UDd5e=n7x@$+=a#*xUo z15u!Yp$b6Z?(A7qnFoF%@?_K$j+2Y^`FZVczXbG(FZ+cjJ3PknX+J@b411BuB@2a+K+HzD@+NN%)alXYyK76KM! z_-YxJ#>i-r%OcvPiozsJoX0-{A=lj&ET=m(lRY!@Y6g@oB-cMSu*Xa@vKn+fMwF3O z2l<5pn{4uQoIiiU4}m#vj`rHX{v{ zaLMqnTwOg~4W!8@|1nBYP*L;-1!|EXsy_#46jUyU&j?TvuMRC)28CwMQdr}4Kn8zu z;f)H9shC9755UQ>+FvoVDY6LD`y~EzirMOmM}ejNy52t*WL41sl`f#Gwxn1wQ3Ghx z39WF&`pmNG1wkrbz??mc6t$j9br5zz0^h#C<_lzw-hUi;^_%q@J)}hB8s_vEzRJLaA5)cCI#vNQd@lIy^ zX4>9`__M=(VDrcM#y?HxiFdxqlG@l>us<~ycYK5Tuj0j}=fT<9%{j*#A6@jy<`vG+ zLMItn?L95ywqFHlM)o%+-vz?mJLAJG&0743M4MLk({#YkFEms;yZ=Hg z{fAfo?~5f?2DbkcOU^3Z@=9vxGbp2;6phI&3$2C^7Oopr%}uXRP1mYOw29@kp(?^h zLh=kykbZ%PkbYiq3H0&&z=46Fzye@(xq=vjfbm7iG8^lnjsi*$deh zk-Z#QZrkH&+wDxxo14ssk1e6v{s9e80UBwktwv7HgP}&+GEKG0$SAlkO+2k}Xu1px zFGiYIWsdFe8k%T^&sfAemIx6mZ{o)8TQ{>Pz-VQq@nrq(8|E?!C}U2;Yuk}MPQ20! zE@CpZ1)lcW8yFb1fuY*ql)p-yquvpXdWQ-85LUESF9Sb2U(MND((B299hEYQKkB_q$3mN^*7FWnw|8(@+mVxnKH(k%3_hDCqfqwa9G!)BBT#NR{rDtd$A| z6P;iW>jTdrTQKZmx4-XycN=5W-^8mNYFkh{)87vo@*&6Uu)0tDkea6q+D+$?-#AP( z#Y0o%MY|38^voLd?-lQZ*b~EugViY$3uO|LbnPw@^)R-PB zL-VK%#Gw3iVxQ&@^Mb%BYQ~Dgy;jI1YE%z=J^UcmB6g}cQt2nbC8vfJqSzYSpOk z5IWEw?fzhh4$}cSKYX=5vGAnao@-{XRUITnOh`>g4T-s(w{y`d2MqTj=K9k#6I8`e z7_JznKN|@kg`P)X%3iD*8Wx!HVYYpa@zwOZqK0ccbDGdG%@TtXCr;TtKf`?FnD~$YgN_9lB7HetsV7j|KZeg`gj1MIJ@wsS@u5Y;U z^~4gHXHa|&5$d`((I}WyFs`wP*QESCmWKZ#+qI?&tAXRO#W z)X|!mp|`Br3!5@BopZyCgENV4$Di9M!>DNY8v(hD^@3UFqz4}A_jnEEbR+vK>dW|| zXO7M%u_YdX;){t%SmP6bR>|X!CR7o=`@!`=XTOV|F7qe}v_RPNamWkF z0y0#BF%)h|Hc07Ut`%9~J;TftS#qWE%Qraj!hc#`310-=nNl|GG>kpAt#rP&#W(; z(GSw93I7J%crZ@{vWOBzv-yATQuFJ}1Ct6?_v+Wn>+wniEY1FcQ=S#+URjtOaQ!Q^ z1FHP1hRm2t0)5)ujwwGo%F&;kw8Xd=vbdPJErX;x?TNRG4?$?#DR$^p4rf)7g1BCT}=W8Yrs~J8(kJzHP=_G>dXwu=lI$LMF!6e)x5EMe~ILf^5rExgUa zB#$wh9=3>K)3MI+_A4)_`q-RaQqvvdh=s#I^i+V0Lrv4%rkNFsLgq(FW`Q;XsL+{r z$Ys80o&e;cMQ6^3F5AhoX@IAalA>eFoNc|73;^O$o`MtCUcxR7&_#A`$aeBQ+WMMB zYkAmV7ChaXFvD9Y$1RszDVq(4ik2Za zcS^%KYw{I(Gb~t^0qb-DKl{|w3~_Ay_-t*}z2oDTS7ae~*x>O1V3z(GIaWX_{g51+%eKh)Jc@kI?3*SomqHgZJja0{k}z@^T^6zu4A8uQ z8}`7W2CdG|HXnwr*Q0vDI+~aOa!fV9#lQ`Aqd1>_pVm(zn#w8m)dLWn6a@-@;Jd2zN>i-$e6B<%Uf6-lP8%XB;`-#Fn z6Q94v&7a;KN>q<_L4T_cw7N9v@@(070ij;-tc+je2Yzhv3+Hk6B5mN=+%|a47K*jed?DFZdgyuyrz&mEpIl771rt&fOUUuK(EUkMK=7Yo+%NMjdxP55nn)YtHwOV5bs}I-rem5uX6|GQ$VmWNZ9zd zXJ3`|1Xn~D5H4pVl%uu~tC9|F8EqV%s$}7Zux*JT=i(~$Wul)Idox==ibYDt__&e7 z-StZZ#M=%(!Mn_f@K4ou&&!Sl&VEzYbF|E_qv1Nm`Vkd?q)?k+c|5)>#Wsbw{A-f7 zr0*U15QY@}`6V{@DkY5h8Hb4-Gxw<2Cq88lsc=mgE<{SN?kv$Q-ZdhN3hQ_#w4~fJ zg=Ixz_@&df-BMlB!smKAI&@}-8K|( zoAXux^GXe4NQ*8t5F__Zur0%P@L$M7&i{{I8Y|=f#-}$l($m-1Gcr1Kes*$tepq&S zhKp|e1+{wo{g9%s@#@HXfq)fEP#?*6nCdgi{DWv3=XpAGpA#aH?B^FJfGE!Nc?=P! z3&vl_CH`8C2tqw895>ut7B)m$CXzO^))q#J1r9#!0S+!Y{RWmKl6Hng3XMIM4jr7F ze9Q$c3J#tO9o@!XG#2I#-OWE##*fD@8!c$(<6vSTQRE*iBPt=`m(=a!?%t+jU{j~# zqtKpJ94+W>A`vVoZ((ntpkWd2uj!)`=C5mDQx3fP+e2@jldmNg^%Nd#=QD9JpC=b4 z4HGlfuUdO}b-H(QbTr@nOAKOX#&KuDm5KL_a_V#8$FuG9GH5FTJ;_CF;-_s?ReN1q zvA))`nP(^F$P(i-Hht!`YmedqVc-TiUkUKhPVVG5naycf?e)?*{GBd=UlCp+GW9d< z&Trtb(@B}|Q7n6zvHmB>(Bq<0t8IrWow>*Iar#UveuY+JO<}Nw?b5;^Vyf?8=gx&86~Sms;m@!3Su=w(acFL2GhB`RBn- zc7N}DZ*P07DZ%qZ3m>2G`0HC9^w$jY0QLX9sM!7^zx3bs9LyX{{~Ho|NzL6&$+(@b z#C+y0wu?x%ZJbkmQ9%G*1E8f&0|^;QlQf_IcWY&~m|8oYO`@SwW1~>Q6C;{hr^r@Cgz$+i&3;PW!2Gff3QA}Cr(di|;rZzD6Q!)mz)8Z!NWPjXPB-c+7{T8{; z!VFhXZVmn6kQBWz`(vFO#WG8_F0E-sZC!BX1g9;bz(UknzRLhis#1(`7F`v(#CNe$@YvF5RbZfNRX`NDNIrzEgS6GqZxAsQA(;fOfL>2q|JP~6{ z#U^{5_fSX~LF~pp@q@H=OQpu15^T_K9{k|Js4Bs&N_ab4W2wQ4yagrIxmPsKfV35X z41CVY5scKe!i!17KK0N&Tw~qhg5Hnqm7Ls3s(zgMm#EU|wwOGvx2jk)?!9@Tl5sjC{szt#K?9E10b$=lNF?L897?p0V!FG9Gsx zL_0LMlC|(uXJ$qMap3;oB|>a}N6aoLKHUrt=afWY$+VMKBStrgF3f)wDh^q7nVC@05uCJCa}#cnSKCTSlz+Kz$UHJLw-I+-H#=qaUi_s)iJM zY*C=|{_uHSXp|sC{m+2@L5nC^2$jPoK-#0@;@%p=UL~gF*s$U6L3y345_{t4q(>i= z-%_~kKCDbg^p9c&=-f_aye+gXB8=VaJ}s}8VNtcG7E8HA;HtVw`jZg(l7k0dk;sXn zq=y1|O`T0np28BIchm7M`moaxqc46x>J-=>OJytqs?%q6>hW16^lzT z^gaf62NCo2^UO*PkUF^MJ;o{J^jIrUQXtDgt_GlzFIHDV5Yb6&|7d?%nEjF&`td~d z4)M<#Q}g?1#&_=2$wEM=D^`|-o*Nw=?q?Alj$DcfhxfEn@Wa^$yg}P90NIx8GVhgd z_&DCZR)cO}HApUh_>UU+CuTk{u$dn?hVKfu@0yp*@h}Slva8h)rFyTuu9fUQ`ApVF z(VR!2%>5jyi_*JwZec~dsi?yR4gJC z9r`skasXK+1Cfs89AhM`WS6FmSjQ@mZKrLeZ;%AH}Dl(l(eZ$|R@DP=Gc zn3p=+gHaD7kqDC)>q;WUpX_1*_RnN5x=3gGV-uLOdg@50(?Z(?E_^1HwxA&QAdO)w zLd!HsG?v>`^l;n_bxUXa9^=AqzZGbM6k2NSiJ1G7RIaa{+j(6$39g?yEI8g~NN5o; z3DyF|vup*E@RJ!%DQ8j!We};6#e`idc!yd9K!~$?~bm$ z)Mgx0Scwkjf_VT9-eZv;XgQ8DRrzjB7`E+Wr#S-BkIo^vQF+{jc#h5 zIo2(hSv1FL3}&nNLWLiA4pPaSVmxK2hEjSsiK)YC%t=Yfn#CGW*@k@vjbVyP6~^3Z z5YD1?`Bw%t^gZ9DlatM@I2+nkA=4}RkY1u%R+dp!K|<+eHLQvE{VL6sFzqI{R=z z-pxQa*H_!w!#0FD?qu}4Lj!!i4>)(XGCGmZK?fx(_~;T&SP*j*8w(EGP$gq3`t^oL zDez^%mC#WFnpKR*AWG0f*@}cJ?NqD?OJsPbqrj@>%Z(0IdYfmJJ8$a>C984K-4$BM z4~0z0GkWEX?^H!HH~Sq}XD1^+xmlBz8c!%QNmYI)yJhL&FJYR7WrvNCiZxXpn4}`6 zZ+yU#7VUg>OBz~a7@3=!cq>}^)GaEhqcX^#ZNX40HX%0PIhnLnOiTB>k6r7hXPon2 z9xq604Hae8YpRwtbzIW@d7(Kr`qX)XuxOO)Cgz_IB#5vM^c%pmq7eX^$J}Kz=XGah zwdpYLNxJ}tDC()knZ>EPNt9%zsv!IF zdNy_(>A7i66zhkaU|?zXo(%|&9Jm&DL>nu|U&kP|1eN)kF7xV^mWRQqqA7WS7}d4& z`}f4&NaVzNiaYjpAfmpXv#d(F!SgH6?;~Ft^&cO=0M~(a1D)1h8yWUPha`>H%9`*v z(^PJE6rcS`v$4_{Okai7%Sl&sj)##AWj5okxYRTkGp~xgiifLdW7bZB4e`O($fksFvIjKy(YBt<#WcR9p|( zrRuF37zI*p0z&DxGi9Tp^(*<58O9nJ-QyDUP^@fbHVRM{q@)>?8=9;8x(E2b=cyt! zsbtr487(Ag#ll@?JK~aZcXQ~dRaBFOh~ip~o&K%QmbQTpa{WxoAa;g|y|;S|rDfag zcF<%*zYZq6nTE2jFc5Kk&}WTfcgvMrM`*#CYGhqBT$7|@Qt zN{ipV@okIP_E4F_{JU9L4%kqys8VAc?l^)VhvTXBjn^P~FRgiIt zgr=gUk}Bw!1Je12HP0S5HlKhYN~v@g@`?RGx%^mlJto<91inFANeB0=*jPJ#P6dE) zGHXt=34~17)6UwBL(fw^I3|y!n9$Aqd!&HgP~M)TUk@%Yyp^XIeY%Ud94^Nz{lC4CN2wJbpj;w&keRBfjp@*3 zJ7%&r7Zg`i7r=$79((h&G|`c;*QV%47h2tK=X1{^x8ZC8GF}m|jMvE*@Uvk_NUI-I z@Nw4Gvw`FgVlA`!OM`%h&21U3!9U2+_cL+8-kTd9W(*RsW#H^!WmTJbK4zjD{MMfe z46AE%7cY{)iFx`cnhc)zeSfS;J2YHPJsI~#z<(IxF&-M!M?(Z%?MI3il0fp4AhsYj zLTe9AsTwyl2hpiN{il4~HiBi&2mWkgSQ+ltOcPWlnzhTN`KMOHc-ep~+wyiQ1$+}c zntXddUVDwu%J~e&ZakYnZ@|>>tBn!08K?cr!%D{FEcC^S=niIhwKl_Hc$_I2xJLHS z2!K%;-6v))W-dn3BDJMKJ6rr^DC%}#W6(am8l3c>IIw4Ja`xcj$(rIOwsMKkUR))e zG^Gl+t(A69Fka_|wt(t@MIUhFOfz<0i47)sIs_QV2fw@ppC$@r1k*yV_3{$6?d zTKUnwO1dEZbE0u`;*))XOVQWs2OOR+N|Vv#@pgG6SCiRea2I&Dpabc}KGvhYtIO2e z!!r2O%ijsx^P^{WwPO;(OM)0U*^}c1&%w)cyT;+~1)WVyAO{bL(#gQj4|RG-4O5r5ogU8fGH1 zz2uL+;_b6UpDh^#eKu~V+rJ{g)#ad3n%}peqgLp5e8x^vYs0SsoC>x8x&t1WeC^iaxi|U%PD*p6aDnQ>zLyBojs=ob-#-FGj6V9OlB{Me*m zaX=C*Hrwg@uG}>@1BvfxcwP=1GyF*id!(Dm;M9k=zC?dWplys6TfI1o_Tk6Y8U%E| zSg#)Cop4a0Ap?ic3 z;lpzjvl;@ey;SiKMdBv0HC5lY1XXO3L+HK5DoqOgd5dw6)9E@|FtK1P_ULGD&+XNN z2j^DmFGfypO~J@5WW#iM9k3;<#v~6aY1<)bOaT$28FsGyUmYu9saZ&tegn#8AtGw4 z2D3?QS-0t59sxkBKGtVI)~Mqg=nnCv^XG6}vwoWi*P|cQ@Rox$zp_DJ)6{v+D0!sg zQL7b?C(xJ?_a)Tyj4L&)rt69rvE&go<4gRH3I6)qv z@aNHfULhhyj5{lxqR~?S-kJEsqc}|`t|IKk%K3a|N8?=^%JO@s#Or{rOS+*n*38?4 z*2u&|(3Z+%`Vi!dfj)SliD(58ae9CsRScsyc6rebI50U+ApWatV(FAb5DQxqPgz~w z_`zOabvlhLE;)}dF3YLsSI^TST!R`>*Fz-@Y*8n<)kngQW?bqTOx1H&(xo;zN}Eti zf~FKq!k`(;Z>tK{p!_f$E*K_Qjb70q^$qu*59z$=-B>vdj5k_d>5vx9K>w7hM554(h}Y@#HbV>{+w&u#A(=p(J0SRLuRpb9Snfwi z(cB0 zKtZ^cmizbM>B5F%d^|&t;L0{XNY4jm(CzI|pc&X$=`&N>(%vjOgrra7o{re|!d~Co;&>!bhQlxT^T{dP<^y}&=L zBuE9Fjkx!)4tfWJ$u8f=uHEFH)R+u7w0g!7PHddyet3?g+{cCA z1=uW=E98QJpWNAwfYfiurFQ}cqU(A&(XDbJ&K1Gx+&$umK8xC4nwm$CtqT=O@kM9* z_822OqC(y6LBT#RT-bqPx6mF5yi|YaqD7FTyYh9E5N`T6t^>qq&@0fatbhz_&7?_? zJUoPsmp7Yg!SbOC##z8D5{AXQ7yrsy&epyH7tqLawG!8=t>Qh&XeV{}u`Xx_2WJ&= zOSz&7_p_xI_?QEXlBuLpz+m+D@+KF)#*&ub2+Bn3NP2Q|1LZJuG2Y`4y-Ap6?G_w9 z`rqE$m+!S_L22*Hg;nEeV&rI3mhV}2Y1rE}P#(7Dmsjp4iY>SH(*?a5F)@Q`9bcyHx=CsHQx=EL&1o-9oJkh#I9*rrW-pIVnGi> zyj7w?^n#TZP_E`}SyFm|-~)cEqbmNG-ZUY0r@feuK5;Jy|Kl*0W;EZ--Q1Ab7hCpf z%Y)DWWNkgHulhsVq<(5a5QtRk9EKBBleFQiyd`A*=nntFR{Zqr5@7Mc?U{TtF`jZelWdS;Ua-{TQNV>m5?+ zc*+YO9f4qLm8?vXRH%y7n0=ec1%K1`loBIbU+?}H2vx(^H?YZ`k{M+>vhPg12giV7 zm%7)V5fa^;4nt!CquyKGeA*u0k09z>52s_S>t?*=WCK3Anes!4q<-bguRNOhReLmA zHld)zsa~f)r5dIx=0jLRSVh%f=6zrgb5DYE$n;bBD{bqQd2bxzv%z=F)Y{w2r8;Nk zw#o0uN#bVbrf%!6&}GZ8hobHdmqN*mIMwAI!d%*n?vLW?mbWR{UKf8I2GE99N!b34 zDnp^7a$v0Mu*H5WPb|)ZA6h{|BtsQ+COEklIN$raZHAO|kvwz`9T(e3mQ8|&QD7!@ zWKrR|=JX;ixA4BJ{obAk>xNW;v_ha*`#jNBEc_+PD-2S)h-Y7g>j|EOg*y1es(pj5 zZ}>!@v>{pTg1JWU+C;$tNL)}EeS@kaMI^dQPC$hHGC8E0jFCKb$XZ)&G zMdCKr0gTWltG=dMZw^^;nLtMZL=(|2xIG0`v>Wlw0}1~bOP&*gemq8}<>@J=BgD;( z$vO3;Ed1P~hMU;JZRhW0RLd~^Ehl72I8r#zU5t}EX-dGBlNf($*I3jp01~iTQn^;L z)d%83i(xwyaJw3qb$372dps|pj?VwO=O2+ZMceHS_6Ky^w_v6h%=n2#ERu2^d5cbfVBhKHr+4eJozA==OH4QQX-q+e)!0co}UAt3DHPI;+P>Nh3?I-YrUouUg?7d^KG{?w zyDLF0tm?qPlCaS^P_Ga-0U~c1cyi}W9aTHmTBBD@++ot1r=;Li7uuvEIx!{H)x(*# zN&qy74j#wMC^_yvn;huc2JJY~9c>o- z_}(*|X`22fd*ofNf?oRDH**VgM%`pQp~o+d=3#ZIt!E3Dhs;>LLdtHfun5!M3XwV4 zKy!o@W6uECw{wZhkC8#j-`c;t*)lQt#5;bbM#{51LmQF-CLv7f`3~qf4 zO=BuDG~TT0`IK{_?5>S5NCZ*Q3t~=6DD1Bcr7J@pNyPX0kad5^E*F{AuM8B@D;Z_i zp5;!TDyU^`o^rtzJ2Vumiiq9$Q{VPmcEY+M4Dl^*@xl)o^YRs|gF0wkA*$knvBe>k zg-y2<2TBez-GW-CV%TcxO*P6gT-?QAdq1n^eG1ssh) zQNj^(JhE~ zyMHAE<6}kX4jueWvwodDMbO#+J;J)*b)O2LOVq-W*p7D4$K$jCE z&ERtH2?2^ALacpvaO4hYY*f-M4-$U1!B_|Zem{Bn5~Tpe7NSR;_MA00p!S8s`;u(! z`QU4ryWD1L=gYmy%OQ-#ELFh+^lvui^^pU?1!~G=dzO=Q5rRPa?w8!kAXymj9I0Z2 zTo=%5Z~8$z)GBq*vg)5KABD4a{rSTC*{BcZo_Q_(tsC^pcV{@)J|Ly3OXgZb_A=8? zeMj{On;pG;H^c(%O8Cx}3jyNT<3I6hLN!YIel;*HrdKOxRTA!X8)=Yr?8L~B~ zk8F9(T+xbDi&DnKk_YIW7JP1WJQHTGaOy}An;IomZa18qvj7mM!+`%hM z?^ediWTw<6#Edw88uKp9nu<8aGSuBV-%s~7i}0KRsB5m!<*ouUyRyj=9V?K)o?CeU zr=gD-9;F$l#k1dTpTG~e`KsDSbORs7FI_Y)3<^JvhXSdsbviPmLKB1gc1stVY#tSi z?W8qAQj$qD@McUPHkLs%hctG652nQLai>CR+;ctzM|?7~ZrERh<4Z^74$e$b%H#pU z;?0Gq)@9)onh=-GSZxOQEMV9bezdvNeHw~jDZ7K=Qg*+hldoK;(GTe(bh?eNFPjor zEB$>?hqK4|K}NA}7*LOnF3>Dw2T=Ft#5wTb$Q_5EA9>OvmkZF`Xwm~#?rQof6J;z5 z@$WJ?`I&MVAFE>QrFkhP+8q9pDTST9i>cWRu(sCQ-+WG!8Z+y={LmHJNoXomqR2Q0 zIs5)4p3!ki2o`zMP_Q=4sDN38xr#V>sDmxOliH}WJ2u^a@Pg{v@hWUGLa;29iE~!) z%*9F1nA*Dhh?u$6)RP2(3?d9pKz2~ zARoR+iU=DxZ)vy3eXr&RFBOOGn*L2C#r6yUD`UBkWFmltT`3_~T0T@o%28)(8~5&f z9~W0LxK%mW3Xe(Lv;gxXHD)Bg4?B5w*n7t(;#w?#j1c?h-`Rh#QaovluxA%{ixYqc z-8b!{Ea5R&+tV27ogRSkP=|=1)?o22vT7&$l=p3FSp_2!Tgx@z!xORns<&jk7xVPZ zNvy%Dq*g(?%iAklY`(o)I6A7u?}TOGezcL0&c>mh=j(cQB*_8gx#C_hu^+J?Y2Pb5 zs42oX+fN{O6Q*A8X1*xt!%NF(9?>_FzXF~g2dkVqULkV{1vuq%qj7$_tb0@7VKkh% zB9El|p&)-sX&`d`QS2B`8Wkqd>~M36EUQ=cXkB>huoE{NDu7xTog4hMI$|?_5K?63 zP(#v~2QI_$L6wf`9}Gc~%nbL`PN6fkdrQ*^C%0FBE7+ebntP8i=XD_GAnNS@l^-k5V%*^GOf3F~udlPVrxHgS0C0kBri=mn1sSMC}vzjs6eL-hoFHsOi>hyHDG;ZQHhO+qP}n zwr$(C-KUK?lT7B`H}ht4^CkNiRCab%YOnPy>KWSE$}J7Fn;i=!WK$v9temQ3$DYD9 z!A!fe+u_yW*5Oqf@Szse5?Jc$1m@(@%*R9EoU+(#fYk}=)ezoP2{fx3%<(X7k5h-x zGISG^N}EF}t{xc4{zH}&tVlRM_e2;Gu7&Tl^v(~9R(Mc-VkhDRmlfR#Aa@OI_wHAu zw0{hn53O5dYg9p3TfN2W$c$^3PpaN`%knr=rQalr3g`LXO3|Z5NW-q49oDq^dp#(e zb{9h)s@_+cB}E!xLst40FK$$#DFA;4?rYWX8#k7oTCh)5=WlN3; zdI?)KH!<7vTF`2NFm*M9LGEueM^#WfPPLtC6K;Zh>fPm+>sI6vse&XT*;=1Q1-o`E zw_NbM3yKWXgu<4TPFy-Pv?qj1&R1V_(?^L(vm^>|&d0c96FGnhb_TGJp-MzsZ2s9_ zLay|*dcs9gq@6nc85toCd6+mc4;Rwwb+v-`zWf-#U^{6U=_5QII2ne6)|2J08&y*L z(@=Cl-8^L)6JjQ0B{IIxqH~Ydc+7S(Zq0c$@-m<*@M%(3E&cu_LiZug|B|@h#d*hS zA<(l`$NdfFIq&sfP?0w3p-l|)$mDqJh+N4yN)!5HtaTis0!oa_VlAU8qA1x*?BtZy zp5=wbZ59Qm+H2PXg;#H4Y{8`JZgVZOX*HK}|He)v9XBmc_nRgGiLT&$ja4*7{+CZG z8s2?jPZr7x6Nr^Pqto-o71xZxIGtFCwaeU06eOXse?<6(+$)Q%knM({_Ixp2;pWIK z#tu)e6+CG%QB2j5NC)H;(W&50(ET%}b#9BVDRpy_+C=orrM;ev5EDqz5V)22@5bT@ zD;^;L#zb)-tyWSGf|8cQxF@xGTzQRozo@Xqq_atdJzbBF%^ja|OtOSHquaec+vY@j zs5^4Vd;e?^2uYWU_4=C?J_)h1lsE+3h=Mu!lBVrdRU-e;%xnCCf8}rZG$;Z2TAyIB zm}%c5`M$jC^q4!nC&Z556Dwvk7+;*=gZZCd+%4f>HlFXcM}hfsqv$nV?Xi?4n|aN7 zu>7-2wkzldd86+P| z7$Fgzs3xAaFUQ-8y9|&qKW1#4@i6IArfG-XQtBlzTQYpY1XR?C7H7k~owFmSQ?X88 zv9Enh6$LXbAidspfXVDy^cSrEFdIu;+!Y14e9LuJm?Dn-zQCcCh&LrFRV{AcR#MX0 znLYlaF6m07)*c|)lj8=1`vicRgZP2%T2%4aHD+Gx8_h)T7ShZESd=ArY$W0&SZMj< zG~qC;dAzm%Y1rFR=Zcu(^{~;t&&iS!qnF(jzSc0%qJpf!mLoJ07N~ldv2;^$DJuE1 z4%WGvO>y)<0H(OysE$J=Ex7`E9@4xr@GTdHOTeXK0)vEMwJ}sA6uqRaFvT*zGfzRM zYmtB~9-X+`VXCNKi{aP|V(0LFH(pNpE3HtP!vV4y-74Wyw?bR)Rb%1VE@6=r1k}i= zw5+kna=1|^L~6X@7+EQO5S^%n@ z?S!3#;O*-G2R}|)q{%Bd=@$QJ31JCgeJC(6G!Y+JbwSakn=G#)&3Sm5W2 z9P*$efA+lG#Fv69Fy|SF%ODV^ZfN^k@q;cWm=hiSX}%8EHgC^t&rN|y&z&b+wvdDg=J_IX*sEiWN5El{4^euUM=YGV^iZvh2t7XZwZ z%*smW{WLk#L0s+cv-yvegl9A0d*bVQN;|W0mHJ8drdvg#w@v!}7 zfiXg|U|j7i38utFxV5zPY6grcycxHL%j+eq z$6HOwtGK<(KHKotT}#{C6-0z93t3On=M-3?<6Y&EbR;EP#86++QZk7xZjPa*&T3KL zMWQd3FY1S%QP?jk#bw*_$&*dQFXPAWP${Uc#xqMl1#P4}Mr1GIW0mn~gK-k}*JPpaPu+ zY8%wLNAvPN<=H2$)R)okj>pMmT|r|ihux17xJD(d+-15M!4fy73nIe;xHzo)w>7OeYk43To58 zlxh|dag3${R=Spe>DqwlGQxZ!K+NxNFwEI~!{dT-CWm2SWQ!EA)Oj|fjeE5lGtN;c zdw+jTrj7Yg+|`CP&kc(@HWkk|eEPj0)~`Nu)AKTn$M-{cvhXW>dFm~umJxF_tWI(C zn?QD>v~NQ@bG!;5F{Q8~ft}r#TKNxVFW^!(MM%H#>OgQE#^fY)(oY*FkSEa2=$QJwU5NIyx_&*d&~kRx0RmR&yr$OxxL@V_LhV%<;EHa=HQ$ zCkklhM^pNIo?7BUElo!Ul*>0#8g`b9uX@9R7lhx%f z3m#CxhhYCuWHK1X+l=cU#eeoE?1{D9>UJxtFhmGd?FkOb7u2uP?@e^_&o z1^V^rx}>SP^$~m6*Eb^DbA1qqr>EQ^(#aupbp$_OkP@uudCUqR85?-W{DD681oXV< zNROmO%p%gH)diiSaQ@%5lh4)O$4*p_m(|^>FA&U6@RMHmV8gnR4vo_AqWT`-Q3!yZ z8l*CGRCaIkwS%cpouEEkZ)qAARV|) z=eOrye+(s=N~NAkO~KFT0t5)5*#3aN2wIak~4)l^7m|Czc>Jz25D1`>a)4`Ug3omC5LA`hY)sQ`;-1 zP0f+3mmu!a$NWT$^WhbBKg&rUgIv-jhHzYBQgS%Bu3$I%6FWS`J{`?1HJoIu?R~hd z_vPr@!$wJ)coqdGnS3buMTIB@cN%^I`uG)CLP0T=q@Yi zfCke92S{GJShsX_W~yX05i2721Yu#cyd2Ru=c2TxI2B}ZOuEc8p)RpGVT5~#IMFU4 zW4N>-Ttk|BUV4-oB7-or2IEbPg-y5K6YtqK@{?#Z$*F2J^NZ|uK|5V(T}EvA0LI8e zl!nvcv6FPL4~-yhSA?wIQ3FZ%K~c#B(N#Md2Vk3jR-U)T%w9;ELE+7m98iXj$Pjo zAa5?~=gYkbF4utWiC=@0cZxk0vel!MtLdG$NKdHN&)o))RnF2m7#sUF>zG-&6#S+m z<15&w@NGx;x%%FSLwbI@vn@*B=&(AnJnV^T&C)GS^BX-l9Edb> zW>D+HfsMrGEn!F7HZ7=R%aE$LR@5Aa<~{`TX6Lt%$1I^%s!x`ojf3oL?Q{1He@#NP zk8BVcW=;XsI7#?+2LF@-kh~GFh}OBVD-l_&w5oxik-_6L=(FxJ)1;7IgWjVS{z7%9*Nr7F_aYlty&AZwyGA6JgHKSfR`X6r|-w42xjPVji;N5_{}D!Z$xC;0 zMA)Y|lAHrwD@E26j{@Lw@$5BIrvPAV)UFQQD<)RV!EL~oN`97Bs(Lt~3P91j*7b8< zqacRP12J04{m%B-P0b<%%TpCFtE^y|{fCYo_cAMKDo<|FLN6lj<-ytgqV;w`+k{(y zVj-0A9njrxb{_eI)l_;|+Ip;@M#wj0PJ`xy?mO&|!$Y8;`Mp{omYJOxDqzU#y|g@~ zL{QR6D9*ll*cZ<DM1M=6mDD#ewAwXk2+B3$PCSk_cP&&Rw_$;(d9N z9eF#Wf`YQZq65oE%Z|yY*!pR!%h2}{zhMO2|f_uvq2zy19zp;gQ$0#o{xteCY@U#$2EC9PZ z448lTqurnn6eTj&b8jx6KgD9D23)et19*_%Wy{{#Y3E8t-0{sGf;)K*)!n&W+qkw8 z1h?(l=2NM##)EN7{>tw0foMqTF3#5xY6ol=BM*7?mjtyZr9lu>E7h^-Yu)$CevrSwHMq z2eTE`afymJALSflQR>Gj}XY8w`*l3lTwQ0 zmPG^_>GIN?kF)V^Tx%P8yPM)kgR}Jm&wKz6??cC35u$9F{!)$ZP+VJine=^}1T!|o z?;7u}!~I|w^gOH}Ge28W*eqk5_?O+|k`eCRH?%g>@ZOu(Xz3#4)bVyh%#_K9!QXWE zCF#8^#0MUh4XzdDeaxQB(?x&u$E1cyO|7?RH&RCmsz(5G(?-?|!m0CTnG?Zb#4REW z*L(UE2b-J&5O{udb$N>${q5M#N%>CR4&DfB0qny({7tS4oD+e-p4l_(5-Z1Mm%v_u zW+j($x@owQPQGq$u4Khj^Qv)A8*bV5<{kl)_qN;Rt+Q_nBN(2=`+Pi?q+?q!XEiEn z5t_BDiQ?mCK7k;gTV_>=nH)W%fzmC368J??sx~bbO*drV;1pu?8=MreJ#6?D2%+(c z%lU>2_XAaDzw1w%&npId0gk3sq|8Z4em*m=i&$~n$$3Z30FZUtdq&ITVpUf+V?L_& z*;|Pc*OHQ})$21~H|7mEC3F6ksE~q*CoS2c@p05^5JGZ3lyFXh>UlBemXb~Uq@4usoTx&^>iXo1U2;9 zJ$URSTvojr*tc#RS{zcPm~Nd4>OVX)M+O(IHvrtNTcLWi-k`RVSUlfhuV|r1+xyvA zXJHVJJ{BGh_Se*F0+T$S3Jod&ubPH5=fx*w3=p#XmikJyZ50d}Pzx)ShKVCO4>K!N z*$xUPi>cGmk-+$TDWB#^&``XazDTBKlXHl^kmrxK~z(hw+-+PPR~4;u8#6* zwdI2I!P6?bXDzUt%XjjrXp_MEY}chAc^Fh$WdXjtO5I?RHZUhsiaM&nl6NmaqUa%e zgIy;*uc-*TfvAvRH;sX*+}H4QITZomPR1u*wSAM`e;IoJw=ACj^P!iCmF<5A#MG!* zDgOh+^b*8-{o}xRmd%gJaJCe+N&=2iwyGwql8GbKK!FH{cO&BdlaUMWPK4qIc9TSa zr0@fVKrrSXcJY>4+Ef)ST7p}&{AD@s@O)!nQ#V_!X8AQ;?X;?MncaEi+WUFw-9vzX zc?ssnPjB~CiGRIpx%+&pd9ZJ@nU3lIKzpBa!ft1SxRn8XO~o05>R7wpBZLUJLgq!3 zBi%TROR{;;;fmVeX1-*))1A+|%FAF{g&mQx~ zm0Y}fKt9F}0|J-A--1GB5ctYe5yvHhDY3cg=IJnhyKhP-5|nt%DRa>Y!MC`*M-hLIJ3n(uY1kFPrP0 zRY&s?=U2?2!W$(LWM0#Cpv+tCAWV%tLyf^`Ex$TQZ#{adg{sM{ zW)TEvBp(*Fc34T)8u^13!KDvxibXIY%2k`?pJ70fe;$J61yalA)M(1d7yYB-Le_7b z^XqP4o7g34hhi}WldyF#C)k*1?nd_4xcvGqNv0Ws56q`$NJp{j3_$nuNMT&IdL-BT zpMIu#yyw3*DmpS2G7HwVGDbVO(7-rl{+(Xt0cq&Gn{N-AeBG#Ho#xD6TgH*N2jUC7 z&BFo|l=8V*LW#Nd5$GX#+RS(S3erqI zu#7FrUAcJbkjU5kJsll&cCuD=&UL;md5!N$_YEx{dqtqZJ(~V@nA_ix?NtyWcXU62 z=ZVywmnlsUHZgbnL}*2*elJC*WC9XAiODGKJdF%88~kC!lN+(q2P2EPKwI}Om-7=H z^y<6UTg-iJh%XUK8%Twv7(mYS?=$iia3JkttwFQxx4rb78X{=@^CxJ;?iF<%KmZ;F zYpDqNXAx*+>Vd%#trk)?{SFqoL->|L$)E|HCpK=t%F}pN*=V#@C1?5B9!y5F zovuXS+ZZx=eHScl|R_?(-hbtKFiNwHjMALFj8AVgZFTc6e(y0j&O_ zzLxkws3!iO+zMAL`M`0%snMweOO}_4{q?lI zJCATp_IQ>d)y>RNXeaG5!@&Gh;W%32V5Wua#Ra|9y2 zM?5vzY(BLPTiB?kpR(@1`5-z>AwUxCu&5qhsy@{O{(T8UUrQz$ZrxNu9$^q0$@^jp zY+~YHtu^YMca9#q@OuqKzY{sP?|$&Vcfq;|?JsnQJbg*#%?b4omFz7JT0)UXHXCUL>T6fO08F$^55fEXb1hl}DzdC8>XBJ5S}ifGjg~&TEX#owepefI zy?M8awH34e-s2M!(#sENc1{lwh)cUcou*osoVy^(pA=**5l=8P3>T1P3l6 zo0UcnCr!_jCMQG*fjqg1K}unBbO>pnKv${+4FQYCMK;=&L-u+DPT%g%-R&1HR|Err zhBcyeldC!1CjZJZpFA5Rc}i=c3Qd(faipqC&Pz5&(~X2V+45i64~f@pp0c~Ur*B?9 z*pd}R%$U<$v=5^iCNE9S`|6ey(%?tGKl7W3bt zD);n4W|r3k$&}s}?X+8+S}bu58(k?27EEULK{jS?jlKE$nvOcZ^~IeH6DHg1awglI z7OOMUqt?(+ol(-JiN&3TT`OywHkXX)8`j5rrlW!0Slc9<^>zohw3*f4ZyK%8(9p}R znbi+osWT>*tQeu4R@$RD8P%i_ThE#Hvbr@>Yb&;_XsX34HA|}--OhmUHL^j=(PwDPH$oL`P*aaA44ezAUoHuk|P^|}~ zxNoHzqZPmTA=^h**o{L9`$l+FklC1@(TgNA;dg3$Z@8E>?VYOC`gx|x+wEFQJ)U-> zJWWvXnj#-WaQLv`6QkDiPS;;NQaEz#sabC$Ppmwqh z=5Y#+C)Qhr@WgCD1d;aStOtO*BW@wSdRRN)<_KRjv81R%XH?4vFif?)hHL!+TucD) z$6+BzQ=sAEWS-bOhHwQ!f=E(s`srk)sT-IsaV~3YQv4~oCq_6Uc*MbMwHlf{#_bVe z>Nt~ii}Vz^L|zO|GU`VT{s+kMguD$6uD1cwzf;*T7Vre98N@ueT|(*%4f#d9Detrn|KHrXLFRlYsmNXHc&dUE`H-sdMPPwo#12zu3YI2~sG#W1j>ei9hE4 z4?uVj?VML}<(hxPKwjJWVn2)MW@stzE|&WEIJ`teD}=efcLagfZ!o`C_<4e6cMj42cs-B;Dfm zvvbGL!q-!?Qr-xEl5pGR-FbGOF={{B9||kYR<7KLy^(5-y6-gjS?|(fPxMtMBhKTV z%jm~O07p_`orWN$2I!;3T_e&6AQdP`MG<`E-)DXcwFUg%YFi>e-ORTJglN~~WL!Y5 zOgly2*$Ce2^emIpQe|`?aXy&7MLN$+P^kxq1jApUc=r>yCPva7!iSHwaqrl+CAL{M zfw)1gZ7h=l;2eA*2>rOz@%JPa)L(GAzm+lVz@AZg=%9R2+wbGyRbfw(h(WVo75MAo z0)nz5sk6eQ9C7EzoB?T_K=~noJO-h^t5c5c`8{?1h~WbxFc6kOEEc^OTG%K!ofJ(j zrlS0sneKH>{m$dBeZ~BMhs47l1ItzA1@Gisdb-@)#`wQ9=js>|P@NGelB3z(w^6;tWn>LuE6Mmzxj55 zFs~x@;MA9I6aK^{TmFp@rv78Wd4Rel|4mCk~o5$_Hmoh;nIUAdQa0RD@X~!J{Z&TVw9H z)89&!GO0>Pc{Zsr1MCAFD=~KcrEL(aAk&t&*tPkmtvLWm8$nk)J^Gj+!ZeKOW!G0K z?gA~IC&9~$jd$^;wT6rsJEfaL!GMXDTefJ4U_@)j8UPyfBo2cEsp zUXR2xK}0A}fkfj8sxdvknvR>1)IUR6EFUvcLEjE*qea{AKmmloJH_>4q}M6XB~Uj# zt|NXUjXEF#th`MTA7!i#b4!SbpTzRbd{X5SjrSatkNXMJDJoPq&Wm?>teT$~o8ybq ztJcQo;A83^GuNxjW{sKH)fYldz0wEsW`l68FZhv@b;4&~oHD9SQEJ~|{W{B?C@ znbyok7c83Tb$+Ls{HH~q#2MtXC@oq*C*BwGdzPmD z#mJ@P!g>+{h#xz{Sq&iLO~pn!6(*nhmjSSw4<|YmhO}GE3S^KTNpR4({teO*Q!oRy z$_jPTfmaOG84XOj2hLN|TLdqhi#*)I1P>)wOvn9o>85SZ!-4=Q1Y=l~z<+*&;V=dj zgEgu&5RMf;2aJmYf+$wk`p_D6DkoRqH%G3sMN``5JXxZyfj9=zae7)ajT2t9Oz++z z1Ry|XR%u&_Dg|pMHWoxrC;}Y}bihwO?$uEJ*(Ov)n0YS?qU4V#A%1~x+qL8Y4T)=F z)>VVyJ)RUC{DRF-K0wE(?&mMHR$7!0|1UD>K%X7{PiT8Ed6(|*m_+m!q~AF3I9K<@ zTAD@gM(ktMAr|JA$W*t*PgKb?&>YbLmdWT(gVV-_%jBp%cH$Qt9ps7B@n*LCM~*xv z85-$B_vx_B9LH7QK_-C@VtlzRvPq$)a!r(D^`ZgFcF*rS9h49`{!S=c7S<4wwG1qW}Mm;oUq)gpr&a;uZ#7$^1nDS z6(tsVrPaUHiC2!t}B{a&*4G!HEQsd9n*XTYm5dU-m5w~-T~@Tv*7H8 z?tvp)py27RrO8~kFtz$8d$8tt|$qr+S5Wdmj(uS`5<)SWc(QRT816%3- z18~~yEbw1S_&*6)VPItYk2q4FL@#M2H{>zDHkz9j$}B^0+O*cu2ol8Va)EnTUQ}LDHXt!^SZ@Cw7-C1*TtyjZ~W6)QYGLYzNty zS(-knR<8umZ!^DbC%?1pC$3kg-ZOgPG9s9vVY}`4KC7u0kq!?mH=2g3glWp#h_I+n za#vzmP5xqJQO)uMYfTD;G--$>KB<-gG-a*dLc<6R28T7%BzIT?aqa_gN)6G~gf($M zheW7FVW4A%2!`sh0~eL#j+b{w$*3qYYwiQuzmPAHu@A4QxzGfJz+>d>6tiu+>? z*sd435S`De%Bd-wUPU(%1&frj>4Ubdw9>5`j1Jp4Kf)nPD(M#5iOEUnCe!sBjn%&= zw00H+MT41V_bKhmRUxsASAX0LDyGibHdQM?HlonhR#!{8CaV^Ab`M!9ELJxa^&OO=elMA|y2j*4DSbKcOZNRkc* zW8?yg>I;(&I@9MEcT$$bIx|j8qs$1(WSyqE_N><6%+I6=J~Y5}kfj7|KaVqjWr?*k z(7zV%f*`;H??lDxL^$p8L(2?HfwF@s{t>t8O^!An%0go}AY=ZC6pjujbgmEkBN)^H zI0*me$$PhTMOny+ye~QSy5Owx{E@X2$eeV16v2a)w&=C5$l}%FG3cGg251k?T8|C8 zk$Z~p24h9?tfOH~1|MTD#dOKU-4D35#GvuU!73T;(%;592o)NHYjb2CFS$qHOuGEq%qhMvim2>i z8@!!6k_v!n<82*HY4EG2AK8A91}Wc^rnZ#BEkRotN!AOl4N^y9RVf3(2ET_om*PH?BdAxS(j+9RThhAuH1%^c;P4qrpX0eG2w3JPa7nZj?X z^AI0K$dr|N!h9O*1OfBgKmqsKcI8skzJU>4mD9lFfriGgtOco-bz!x_CIkF+4CEmo zx@F)kdIr1`HnFca`PwehIH)5HYa=w6jJ^dpK{SZ4yw%)S7VELP0)+Z8|axz~B z0LuVfN_sf{qR`!gORJKUr&B%7v^Yh!p6~iqP}Q~KdGF`Lk1f=iIi7HHYMRGXp^^c71^pj9=(4Zk99j0HKk#QOXft_j8JLq+n@Us{vic`{e-+c7z1))Tdf#?5xZJ*+z(~qs;E;%jxP174^n|CcBA ze-gvM%<&%!o&T4!3kwqt1qrwOe{*)3fg#shf1lzFSiU-<|AxT~!D)=*IZE>#XZVFT zjq^MkzRwL2PxbfTi@^*39REL<-FSU&g5iEBW`*Jg8%sk62}=c22UlA|iO_(6hTMNl zUMF7x69rRG(TG6N#?ruol9GIrAI4+tc#OT8gwg+PoFc z4j;XZ-o|f~%82)vlo=M97Mqh5TGI4iAX_|1*p>84^D5*!jA z^JFFmBWCi85AZ_-fB*&iz;dy&?ix>}+DvrOOlVfiwG!Js+D;|XXzarVF;oS_g8(t} z3r-blKp0yIHD$+Zo8X#ps>(m$X)ydDYhzP)x3z%fbB7kqxrl@xu? zJs6!QWk}=2RYMw)f-+DuC1Ol*PjioQj|kI0Wt2>7no=PR5i?Pi##5M1rgM&tIMe$~ z12~0t40lg$>)SH!G5ih?y25+{d_sJJe8O<0=?vEzuhlnHGm=tpGSb{m=x9Wa?>sy# zmCEL@Ud-Z1dK2Ri0IEn?}4E*0Yzm5jKp~XC7OYO%zAUyLx|^M#B(#@ z+ne(5Py6?000uAt0}%lM5tV|X0!|?Ox6=d!WCnUX4K<#D63;}1Z?-yJAt&o6kei&C zfLoMauZ@dSB%WI@nv0zAmE^|=!)1%j6p@3-9Fs9St#8T%ospKFwxJ?Tj5IgCt~8xB z?Qu%;f^)k0%|}l-LkP^2jWO^Q2x%h9WWWr3Yld6MK_8JZ_!XKlN}cafpRF-~xna0E z3}j_0wXV22sHuUaHJaLlVojnovbkZ|8d_s=weHy(U}K!MZn`?qS}(gg(%NWKo%Of= zraEnBNcatjCOm=BW7>>a2elsR#XX+dUHE=>Uu(!yuu;f&j^@a=@JxXjQsg@^?W=&L-UZ| z3KPEQaCp?PJcDu>6*Ume>V~sPcSchhGs~KC5`*zul`&wvSwMGpqBUw+{K1D}j*8eF z*?U;}^A-2!CgGbB>5mA&%r=`8rlGBq+x{Qsg4(!kNYl?Dctf1LQgQs^Fs!bGy?$p@S zxR@^Ozt+Iv&ql2A0lEij%(njcj!iyJJ8vzeTebnY#H(pa1*H-08~3*d5!co57>RS*k%b)lX1s}=1&_}kqE8)l+0*XGm7RO*%ESXeeYcO0n>z+ zF?R<#or5DH>0E6HZ(VCG&EjI1vM&ptPAV;forf8eBiGl_8aOg&&LSF@Ty(}bi{BKD=1m6glMM5yxMK6I*) zgnIa^`6sYUnIR7b^hij(=Rbdj7ufVxuICU$9TT|EwcsI4B%LO8GbMa0kO+M#w>lh^4cR~x1oFTmdkF%fw zr@YtX@hYGaoI<8p=tOPzT2DZipgg6}(-Hu6fE;`SIP=%mL*Pi+hY?8LORG8i zTS!h&fE4h_+0ukSYnfHh?l zRc)`fmo~O`ELGB~rkK6jg5B({cjtQ=2w1wi=W~HO)O)v*C#J+h&?@*LHB1&@9|N9a zSMF+j?RGvlC3AF?0%p#a2aw3(@HiaLhXbPgdkni_IIx~lfR2w(&@7iRTQqAB)WV+z zQ!1mSODgm0>+$tsCPbX=?JV&2E>Fx&%}LG62?TC_m*M|4b-2^u4~oCW4$g(zWMRhr zPwmm&P-**D0`nWjPRZ?3Jo}}S`FKsWQ!=v(4{_dtyKkiJuV*?ab2s8m*zn<*)B=7D zi4J7}(LjR{M0DZS7^rCxeu;=^mNm_74{98mc%BcCfQPUO7ZeR#s+Mcums&T9&xv4< zSekpEeE1A%yRK5LN%DH_%`+{1jnJL_SsTgAz#nXLEEk7P=DCnPx(E|avoCbd=p zsOCzm#aavzD0peIf^;^zE#Yg9S~U$h^Krk@?LvO1VU*dP+|np7w>4;VQnW80y77~j z^SEigUHGjRiDX@&L9P<${&3{bu%2P9Ei zHP1XpP((w!o)=INfBi^&a)c~fykfLK7lH~EW$Nw`OJF28>C!^uEpDA@H4H9L$61ZL zypM0<0P?7`B;8Q+*N+cDc+;@9w_f*lr5G=4?MNkMX-fc#gy(H7=WL{Sx*IH+s)N(q zDAo*+$~xMcT}Y@yOd2evr1k#cWq%Kj?JPob+!Ar^&^?}o9N(it^dxO>emj_PXL9_B zT8V0xa)asyJl=c{{8YSJK9()W#dBj4eEzQie|H z_j-|WQ_7`|p9t*gg%4ENv_`D?B-HGOof?2p9e2esdhf+bUt8s&Cjc@Yie-) z5t}e1>ve2a@83r@L_9t$B#>gBR(ac0zr`2qWHc{_39|#Fe-hOe;*%o?^1d_00g~VY z>kx8-WlNQvv+Ln?CD%J7)ryxeS=1e$lHa5(@I2Q<0wGR+A;i*DxU~vFe$9d$T&#-& z6>rhi0qU|Re~T(GuSZq_0tQ4{IVY6W)?d}eLtjEJk6w z1C##R=CS zHjB4e`V4aR)7eid>X0-WH5#M8g9d_0$v9E)3MKqKzsjgW+vWX!sy8j;a>g#c@U8 z?o-z`(@|F()TuX;6Sy=w3TpD0c)Vy#$(vOTBXNXy{KLrW|A$>l?w*!dwu47AGr?y3 zbR;KRS4)wU-^0hoV`bxt^%1{2EGI=p_J^sqq>)|+UXEx!C{|a-hL7vCdQ;{w+qgE$ zWe-0zY5*j`nu23;qo$S8anH%`tpuGjsD(tOo^)K=ZQXy>^wU6>Hee2DkorN zm8A^|4{#Wq3#@$iEAcC;KaiX#qzEYVUGTM{#rS77@d=Jmc=1+=@B~Gw?g1&#TE>ec z7tdnL!+mRR46BR^?eP(I3h$m@v~>ZvjyZ1iyXgd86L!W72hCa6&kgh>tM*|NlyXHI zx_QU($;r7hrp((WPF2zBZND&PI{hE#{(qRUkkNRJ?Z8EN5opIYOjpQ5;pBaB*9lGJ z7z$X6naxN09GbY!23}u7k?^oS7`A3cmd`%0#rLYxe z`tK)~XuMe8w2h25;R& zBuQ3VWJY;T-dzpCEe2$@ZG%M_Fx^flKv?RRl5K!4XxWPRfcx8@r9WbK+Oa%jIekmYuRg~R-OBLC zU@}E(S&Ojs70a7Bb>L*RSgY3elg|;K5bf&^ZC84PY5!c9(n`g>3@7TvefV=(k|~db zpZbaWaQRg%Dn`-&kdPu*$}$u8K^0{#Qa__KGs^~-;8>g0vP+>9y6IJEshU;39U>ib z(G2B+7767dq6vUdQZmw?k>UE>ILHF6`aBT-F3;Q~b(Zb?oy9*W){}9y${Oaj8LoyO z$rmlqa20L!pe2effNQu26|HH$5x{Yqx_?rd9v|@~oV-y&0ClH#ssp+U^3R zosrg_?1FDh%f#4y&)hc!r###`v@*<1ck4d0$gNOctWZc_PJvOmmpLAgQS$icUV9a{ z8C9`hxR7X8_bk?&&m(NLE}76Gnvn7qrG^|S4`f&05@N5PC6TO=oSqd;we|RZc;$pB ztYKX$<-VbIkch=8ji5+V`gj4sZpd< z_q;M<2)f2~KWDZe;yy7a*ZB}_;czWR#%Q-F6Xe`3p1;v^ul+uzKJwzA{ zB?z%)F54(YTeqCzkcj=QL8E$x{%kUF6dB+_}9~0${ey+R*sj= z9YL+OH6I4S__)Fwg)y6M#lcUU25jY^7Cn7%gez-Hr8|8%fgt7|;aG&kO4V*yd;6!bBx3k}yS-IveFJfEKK#9M z+AyFNtv^v_r+(2e9ZtfT!5$$-0d874A%gt+Vx1Gkb?SMx-Q=-#@1@|CeQ=EJ`IcJ3 zySaJ~3oJjY4;_nIrl3+(71@b?XZz-;-?I5>wKWGN<%fw#Eopc;3Z$nXH-*w?nA=5w ziSLJ^f_7?)QH9h$A$pjwAgrJhiM%2PSP|&*@D~mEc@1b?XOs0)Z>Jim4@g3tcEHST zmdvy>wn2?<3+TZJ{_qu|Z6T|RGMe!4e+m34EY(gT?r#!(Flvwti+|(Pv@mOS--G1a zwbQn3U}0L`0{NE3g(4(PP0O#rB6zh+))#pNxcapP6{m<@bD^RDBvN%%P(z=6+X>7{ zlB|P=a#QC?TZ%nS=Y<;RyMFxSg;pB$O~Fzwu2o$rVT6*y?P4V4so=SBDPa5FhJaatrCy;+RhOXtcnQPfaNC_yhH9X-F03C+KCzuj zsrUjyZhr@DUl*TJy6&JkZs;9{MRhvy^+RcDu9?(C%;v4%w&hWDGwwvr#^QbHS^C_dC>P@ib&w}!um_3 zVblE^*4G~h8v(~<83wokbxxvhTZkKTX3I3xLa4Az7iyL;(0u(Ymn_QDZDC-Jzvn7DqR^XLTAy4)rp4zAdfQ~+U&aEIkoC4Z+ zKgB!mpFIGgI$z_+5c;N}*ea~uZ;Uugh+tHWw5J|RzkcH76F)9 zp`EU0rC8ufg)*?5xR>o^3PL~33kpA_N{)`Tethm%2KclEuKHU0gp#mULd2c*lS|Fb zoOti{fHKN1QGor~Y{Pnyg*!KwW18(SyzO%&ByN$C*imF%+Dv z1Dxg-UxluMu5vinQ#qWC#;cWSNoAq)uKuR+;rV!xB*-r;Ns|8TjR-N4+RxP?SGAO4 z!j8^sM8#b|p==&7U{d{nUA>xHv1^`FUQs?fXJ3CqzioFJSm;#hlKI&nFMC$SZ0Qo2 zLvQwO`SE(@8JI%|AzGpc`)39PFyeK}?_j-n$L))eE}^sLOQHp_8+8N=1O?LDslnG< zgA0twe4!yHAHuv&gkNh9-H-I#r}X(}Eu7-O3#;5n4J9L|kJd|2o=ze%Rx*}2VPH5H z#p&oUu!wYEj8MwC*iJ@XiHzMrGjdjwhF8f$pZ-5cjKjv3_pUsgLmXlA zpX9d1vpX8oys;At73s}*h&+VNW}C%3hIzutA`x$9{WURfOmQkol2xwvRr;SOn#drd z|K4U``%mWfF)}c*|J4eXp=2tnsDkb()#s)HDCW{|BmI-99vR0dC&!Qnk2TZW-*1TM zxQ;KZ8I9{&a1vnkI0px}0S535I<;C_LJUn3 z?r25}JJo@#)#13H<0FBgRcZAt4<{;#t3Gf;a%i5iTv-X|Jl`pzqrZ3oW3L@WN^mZz zJT@{95tFJiHkhGkZ9)+^>1}QL^H}GcWxP#1 z2BKXzj)cyha((ICEnycl=TLe7r)>&7O+S*@`&>=-{M`A*dzluq*1Ez4n2lo2qC0#H zLp&%fVZojiU|XBVV*lZjG!Gq3EUad`lU>;d?tKG#iC$}z8A3ww^pwT&`=*u+OPqOZ z9N94GjZ+TR-#n&J5cW_Fu4|d~>G$XL=^GIF;2cT>!*YR5EPu&rX%UF$U!(soyv~N7RU9$P!l{XUJOSlZec65K|xx2r7&K5XsYjO)TAhi^v8)o z?+Hj-q4d{G4+W<0AypEwjB&MbwR%pX39bRsB~V+;!A2cEFurv6en?= z)~{Lj>=)A5074jr&Cap7h5DWKKX=%ZBx!R-7F38(H18Zo1-n*@!H3Y^e2STqMTm6;Wo3a zJI^f|UizazijZGpAq$|76NZg&8eB5f!VcLk>2|N#4;t02_V}#cQZj3PbFaN4;uTI6 zWVPsz@g_nn?CfQ_M!ke}C~hAK9w%udmQ|7iSDxRxnb?j%Ut&M9yY*n|m`_17d(v?}pq?SEOQvH6f^YzW;yJLOR>zs5_ z7Vv(dR_7>uSFU)Ux#^>JChR(w_PF=lIT#t&Dt&XUwps}YNj7fS*rJh(Qiaxor6-;> z@f}H7G7Yv;2*nQ;t)1;#rwL>8)^e=`EyPn3luSRzycwrXqq-WN=Ny0k6Lf0e+i$5a z-qX(TtROm#FV>1HRJgh#c#aXN`Z8A_PU{-pn;VGE{Q}nJR{@cahm)l!-l?W4`T;(4 zhUG0%SU<8^qKcTWUq?OKGiiPG$V(9^;rB}VoPF^@PP7;@Ls5vI?N@bF1!UF$Y2Q(1oa(khT;xADNX?_Nl**y@Kh z4wzcj!%X;)C?#*6S()wZ%riKZ3bCa_)FQVq$k5Ty(9ux%Fp@XLtKBciKc)~=u@rGY z$exG7!MF@pj+7=TC8~yjdxw8>OzB)#m4g%>ZX7#1_=>tj&bbH`ujVDe`fkxNyipLO zoxDg*bd{uX8*<%d)Tc!Jc4z-4u4nAZ^Lmc_gu!NC?MlbU*cKb-WbcN5Ft-~fT8+2P z3WDIN>>59_{9RW^PoG|r|Ie@isYaE`ZMH2cAc2TW`1Le>!pg$~-Wo(f2r0YZ8F(Y7 zW`vC~YjW-s?UbV;X$Yq>+91Kq0AHZ?u>27vGjR{+b-n1;*yenUk-Ur?<=GH#z>jD~ z$a#J7jE(ZXX3AF8CNiIUDt8xtj<3M@F1mQ_)B%>CrqaKTV+y$= zerK_EN%sVOSA>Neq6c-90VSJon`6(VXQ=h%Pbr@{-to%jhMP2!=~Vdm%%@B~`!ht< zj4CQ$JeyEtk0nn47l}5E+NI~jxf-ayCm^VowcEU{2z(L8SQo1yMm1lk`86kFyzYrM zu2T!}s#r-U3uEZcrOnsWjI&AV;g|ju&N4G?d2w6c;E-;Hj_T1$;{_uVUm{s~=%~W) z3cE3Ty>$=kN_~{JvaY>c^fUHxm0MUu@LfmWi8p+Lpd|22nT9$e1R9gjQ?S}__+gWNyOP{DK zl9Br#O`|ALIF+rVzgXw=%p{LC3(&y7xm30d_lck_ep_0$ai@_&RSpb8UFu~0r8(g* zdgp&bM@ScOgv^p4U6&;O$$YR?JI%HB4}9e>QqTWy>pBzT-(-p;kqk1uyg&h076HO> zr4juO-J9D$XcBzgy5S)V(TLH&xVjeAIa1Ul1vNeNE#4uZX+-7YD9JC-CJ_Q zTYk|zK?Hfgx=KJukSpXo?mtXh+7qWrP788NSKQiIZN?*aas@d<7zcKhpbeE8f-k8z z7}nG=xJ@c^G*YqSG44&8q&9G~`y+N*JI)+d@3@5O{)ApQSjAE7r&Ri2x#~D+KNu@E zw$YZFCq_0tjb02u)pX*d6Pb8ipF3IKvid8d8Wx;7uFA}QxF!1Nqu_=q_dfUW_EpXd1F|PqscC3eg3ipg;Zu2=riitJ;tchlu61aeTv@|%aY|K9$x1af)J2r zli%(?p!c81)tCT(Gim%cdQb>=4)Aw#Uvjltpc|<aAV41i=HQRoFR@zk zzr<>c^z>XvU@-_UeEV9!h$Ya(-)a26tA5917pGi>gAIRxg$+-?gP{y#oMRG41;jF= z!P3x7IHHEb!cwE**eirF#-ZGyx}!)i%G;wzc&Fn8Y`^V~&&P^`!=;7C#)43Jyx-p1 zb@Z?6b-d*|a7y6@+>Xb>24v6g&ga(7qk=cRwIhRf^{*>}N5?(z`rCV2@tKO5#rRr# zikr#dO^b!E@($h5(=#yEK7Sr>zq&}f^gJnWc4cKwJqwtT-62F>9pr8~)l6tEcbLeT zI#s+~X>B>xO`L11%Fk-4Q$4voU2U8<6l{=?z_b~UdO_SSo3%+`(41FI$&Qr@DCo(cNy1rlF^*v77&w^R(4{XJJ|M!x`afc70m z_e5O52O?bX2Gg%a1Z5&33d;}l$*lSN24?chdRpn>rQ*xN=*r z_S$i}F23zk7{6(IrM*l%F-#0qg2QW9(JF3{vzegME+-&$U2UXBiaTm5W7Qk63v1k~n z7&$4k263#7^pQnnvfF$NA24lPv2})h9CGB57cExo%~p=j^k&v&J1mrfhb30gC1+3! zsdR1!&6QuhbTDDmy~AG^{Y&s?G}Xr*5>yrx^vb=YZN;uY7x_sDr1~E1^zUG@|0hK_ zfZ-pNqNvyKPhT3th5rJRp6TDgtp697jh}YE5)5^9k5R#5Xx{K^`G5q?fT0E{3BDN# z3!{s{fpY5~y?wP~V&@6Lx8CCCbGZVt-`4xN0DRf#!UDqIz7c%;6)jvCzU2Oy65F}* zWKBu+TB1RF?{Olq1GnYk)s7-%#53LDG@A*I<3(EQRCMH+pa5v7Px0QikAKT^{B!IPEw{Y#i-M#5un=f9x@UZ8X=;%q{QTs_QLAI z^u%iKd1tcmw2j9cOT%1SMAOhwL&H!-h*jiUnnaR$lf=_YUJ|_aPiN21g}n`H_D-tL zME18dp?B7#C+o-XfdVQO8ufNFshu}X_RiV>o^&IRsjG~d_zNc!);1iBJAfPBq!^bb zH`n@A%cI>GyHNmmhz9g01~5>lMULJ-p#7gv7#3#czn-`VP0EQX$l(m#*f+KuYBE(I zC(s2Kpd0-tP)q)m>Q4)eg=d?oXvhI+z~dK>wQd6Xl2E)BCCV zJq8*L*)N|u_&CS@D8|I?^Z;}#=?71^AfZ1)Vn$i1Y4Ot0*}dbcU{d{TPsWI<404vw zv*frjlygBe5BVrR4x{YNO zjg4_G;NfHam?<2KlV7}*O2M+hMlzyjoH1nV6pW*+rLU)kMffX1#1h@VnjXVkR_INa zF*X;FFDM4$9|Osp2ks8Cwe4Z|GwlzV(`oPXQfRcr93D9A%eO1A5?@h`5lnmz`~ar> zL>$r}5a3UISTWyC-mFlbJvqFx4_>Lwduw!} zyufKzgeJtj>anHT_I~|L(`O1kOII+D9cIKJsZb8+CXZixW^Xd+UDfrY9XYGZNf6Vw z;)xDQ`=e2L~%9ku1d*mEE{?9 zPt;@*56{QWA(J!cSyZNHh8pgsw+!;C^cKZeH+6Y4 z>3klXEbtK@LP4fF8JdcV1%AxX;qZrxJY!UnUXg#z*nXX!1qdk-{IT-I2a*$K_YQ0y zH(HlK75N|$V#>L{M(IY^?i#HP2O)iBEGJ?6C2&nRyh#7OnaPy?iRLQhst zuawlJbQf#A+9!r(6@4t;6iR~i*ugVnHd2-%AGb}mz;YC&VSNkW3X+to6aKTVyrWt#^b=-`BnQ1BP#H0NEQ`(oB-;qXs3F*`|qO?kW z$>bpm-t03r^#L+Rhl=v8ro5MKjA~sr@Nh~zp9J#!6b2i14I3`dQdp#E$n>JN+QCBv zw4gDU2tz!Iy5YNOjyA`Q+EbE+kG z1ibN5X5a+C*pTL)p)knykul>QI4Gk4A$xRN% zE(z^yT6jLN9!n6Prd0}na!0Adl;oXj*I9g-1a**ItLkLr#JSZ25fB6Pd~Tghl)dkxZSV#2=%t?U)ss&a^ysL)l zd>H}hc)mbQ186HhNcLai!_W%eR8A<`-*Y3q@o$UNhQx=(CHN!)ko2Y|5;f$G8$4b&3L&jRpj)`K9r znb_bN6MU$LeMBMo@p(nBp>t+iUtSwLC6=2Ys>fh5kr?RtMxv3dfhLWJR_umbv7=$e zybD5$5!eRdDWHiFMdF%;J+3BXJe5~}${dEIRE@S-E0wBLENMZz(h2bVCVRbQg=uL+ zSgSp{7wNV$D_(lf=k`LU-%wX~T%fx_X8tyl{GHCzOCufJ-F(#}(zi0K0N2kLRK=nY zrJJv6KMX_94!zKJGs9-Bilf3f(;nfzYI|~TgunBkp$kZrk1k=McOCv58q*8f0g`U zPx?2m{ug738lqt59z+Zs7;ipSwC+8!p6)M$ee#M^06qO86Ft4%BwaD}sN@v6+_dPT zB7J>5U`dXik-l2dW?YJ9R8o3e;aZA%M07%m8raSb)%PxrNkM`V4Pe12E)HFO|L_$S z{D5p9_HY|EdjW7n9c7YWMD>*qQwSTCS3q6Ay%R@$L$+5y>$X|~jhlRF0WTma5rXb~ zp(qh@;T2(Epf>=zi^5w!BT0tzIOQE#*Ug`mwzyJu>Xa*|6k0iY=7&pXvvLP z`Ozb`zfwIW<57kSh`~cb?cm!U3k0|W)g*zHd>`xf>8knx2*R_Nh;%Yi*()x0sR#tm zrDF>DhH(r*0yjBl2G$FA${uW3^+q!&9arprbuYq7C`dy^D=uj#`?O@PF+d@D zE+Eim3f8#9Y~AS6Q=|M2rX~!OYkkH_XXGb9P=wvdb~z^sScHLJs=bk{GkfFIL%UQR`wpE7kPFJ!B2b zB#!VmLfhv@Cc#%$(t)CB-0r0;WFdJ-y36yp4O_hB4yN%e{SHZ7CdENAvSeF#ypb|x zA&C7T6O9^TsOc0~QX&PZ|D2>9DRJxfbhIG+usU1GZ=?V`ET6g{#1a1)UkdVCO(s8c zbKJS(qiijK%)3m?bZ!pQdju|e01TcZDLBSBZ;m&)evW81^YvHn{GfZBdz;aaU^bT5 z5|g4D$O_aZFNUaRl1T&zY|t=g+U!uYCT={AoE#WUdAF178_1wyR2rNf>U3vV+yK=ZCK8E?FV14Xx2G9g6b=Zyu6jF1f>#wX z@>~E24KtBgLX}2*-oS3y?{T|_hoWXa)W#V?LjoDZ8p-!(HEY}r`v^hFHJGz^0SvOZ ze1IS34lBPiKgD$n4*Fa)zTx@tNZquYfbV<_5e{D}udopKxEz@~Bv|&Z_3H&4FWk#b zO}b++^S-92ptkE|MS@d(a26Rf`c%q(yK+R+65%~*X8Ck8U!0E8SZkF9QJqrZRauV@ zcV}ledlyEnc04?*D|neAFPgx;s5qxNIS$K$x#x+yBc6ofkr9pLMA2;FQS^I~U63LY zA^=22jTcS5QY|#IR=eSXgl@`CX=UE?zEp z=-SDHFS=YS4~Vnoq)u3{X+ay{y;VZXVXETDd9?cTDvebb3S1KlVTbtY7 z;*4N?{l?5(QR4^|6_rZ9()Uf+ry`ZQk;Ms}s*)I}E;w{gHtpjMtp%ELtf;HsZG($-m;?{1GLUr}&f%ULqh!S*EYSu$Cq1a)a=7bALq z3|=u#r($;Gj14nwADE7Kc%=Ri-n+)z(&vrn-R>OX;&mxcOMpJxy07h^{z%rQX@CQ@ z;P4l4^E+T%$W7ZWeZyC%TI>J$@IIdxi!zQ+E%$wC+OYYDKPwM`O~|tNE287VQFw{t z`yPH+sgKTGxV&3^wO;nCYI{$sa$&NqaFY70(ne=%=*1lO_!Y2er1A1Xp8zsQUO(?n zWbJR=x_Y3psze@(wWsbyEOb#rmm`UHW%i}z9Cc!oK(eUoX#S;xATH@bp)5<2F1VtYs1g^F1LzQERF84L=43lpD*Ju4R+Tm zb$Tn|o{42QXIJDLM~Nb-QcBcQU>rY{ybnDD+rLK^%#$`L2`U+I>PwQj3Fndw(1$1J zr8(C2gv2pE-f_5i2Xrmim0yokg~qVG1bjCULr@D?TzakE#>$*^#CN;8(X}ia;>zVS z>GlcC8Xe>xR+-q#2+88am@bvdYJ?N6Uj)T9_8isae(Qcv>jRnSRUGtjQKv{KWRE+Y zDH9xRJ+)Wc6KYF1M&b|0!_#QMF$LYF-w#txqZ@~+N!6l#C`@IQp!o!)O4WRD-wm8I z|1=k14?X-7#_T=}lr0@Fqi+=&J>f6}R;#H1O5 z!^|QHVGz1%nQT!*=wfShUee`w)7k6A9qZraD>RH@>c6jfH(>H9oyd@#j&mb2@A$|jv z2Xi*pcW$niw<>V0X+kd~ti~*(>$w=g*!PzAfw|Uj34^3EL991Bm*;))w}k+Ub+%;p^v0Sd-pZWG#*#X4 z$3H*kGjO7Q4`PUQ?7Js$+<24-oNvkAD^YqF{;0Q*JxZN#sD8?uY%1Q9IGm47oN=~y zsD84j_qr7c;vD%%FHS|t#N2`7VDZPZ(Xs{MB$dXY6O~K1^nYI9ShlS^kIPvWO;LB(fLXz=p1 zv3*0v>*PVl{b|&xXSJFwk$e9K>eS!}EWtux_A0XZ@jf@FC(*KY!TXDSYPtp9#$t8m zAG%-Z-EE`RMztl^AWTSJ@Uu8HM;|hiah2QbrlrR>zse!2$E)hd_FlxsCb?l48`BYP z;QFj{SJpk#8ppH}26|r36As>xGLZby?q{pAozdLXPs(dyj&VHvQOkq%aF z!(zvOC667mIzmbYx9{N>p%fnqv@~1O{T!k;^ey%__{2oVKUzq3%h{TKP0FMzy_;bi zQ&-E$kUN)r8$c5J6g(Ks= znH69X#WJxd`ltj5jJ;5n^Ej8LssMHF{TI_sc{~5ht=YtUiIw7ZHKzWN7=O(?BCUMTD>=-qJC#L8ckf@ zKVMt4H{r4};fDJUZG@gUu0>L^q@Zc5@3abTMSWkhr)sQot7%}4ggT|9yPZKcFUL6h ztrzH-T4_qQIE*MjrJ2-?!jGkZ%hBEUaQNV!Sk+`~y(Mj3w3IaWVxB)g7o`&S^4fE- z_1!SKZ)9yn(ni{=%ZK2sOm=Bo)KO|5>z%}WrFTEoFxEI^_DJ2TtQL?^P_iyiqB$n2 zm{@61*`k@}MRb6!PTwL}a$+r}7CBL2k*HsXlUB1DzF=5ROXPt0WlhjZJg+rKB59*u zF&z0R@rYS5#o@lVQwN{r_*~v+jQjKKT1{k_gMYE6{`W9PA`8O5u6*;d^gbb8vsS(T zy$)tz{L8udf02Auc|#*Qd24G2{D0k%rxUX>vc~^c`qS7v$qx)t@{PluO#?J(iY(dvs%;L5aT+F{M?D(KEj@5hFt(A%zGo z!xAT+#tq$$zK$HF>D)36633zM0Z8(b4Psbk`C3I0PDngwWxk09!^X)mO83(L)>r+O z6-0@hLO5rDj;X`pz2AK@T_3I4dj{dp=4sOXnI93gb4#hn!c=J%X{l^0DMp;Qxj z)?Sj77pxV-vqdDc{Y6{qRG`Wun?Ufp&`$qOLn(4Y_Y@-Pk(tWIy`Z%Jq@@%Z16YZf z7Dgee>IuNz98%UEyr#%3DyZ1d{Qjwki>FuW%Jor-bsaCuyz8Q|;E$12idm(t1hZLQ zs@!f}!g9SM*AOQ?E9IUa1tuB|8%w~*KR67QLX5;Ha5xO2Mo484A$U`#KmH^2j{WrC dk+*mFW#`~*XJ`b?!o&O?fyge=E;SbZUB;X-VLp-X!8 zB~#6^$H^2X8lp#2T{*cDN4Bu+aelfe`;!l*R=Yi$nMX@^-i(4~&0e?P(rHPUJy&gL z%wDe_Pl!I8kos*w_B!^s$iF~-zTG1E_UJr(oSlS_?}-4>vvqJ8v!#9#S%_y|>S+rv zlQ*~C; z$dFJ473~8Xy}%Ix0y|-(F~WFiPn2wONDuyD+h=U*%p}1gL`la+%5+MI%fc{rP*qX;mOE?bIhYasQiOndHY3v~st{Tyb~O31*gXvb)9j?}iERkV)F zE>wsER6?g)I0;SXNEFv*W(%Y#ghiR15^Jovb-1SMix485FLq;D;Xcf6BcPkaG^`w- zaS@B7les^DLgb88*ncGj-C=}0Ah;lrm8Ezf{gv8`Hg&v9YAv2svg7mil-qSEi?$?} zf88MhROWmX&<`}kKbJe1=y(ohi9tVMyfB$VO%V+N$jdcz?U1@pYC*nrX$1lO;CCzR z#$c!C&+WagT>Vzm#>Xe;cDA;$S^i?AbRG@+(*oAWju#@7#a=Vr&Uu-KV!$-hE)_(i zeknmFmNn^hhNjF2Pr#WS!I4>5t=G#jq$&Y(=xwn{S?sE-aLj;RvNc+dggi)XD2xSo zsu*rWx3bv&Cog=7mp+K|N>wBFAR})$H5a{}f<{gP={kv!MCM{fI9pfGw--zHC;>oN z)3KzXAA+n=58RpOi_`y`essi6zWDPn`m8J|rkegYr7ToW!*#B7cv|IK3?1WmcaUPvq=msr4*H~t7 z$xknD>LbwOuBFAkoyolM8@_d}-HaImoxkk^T66U0;N?)!9~^gEJ3>$SwlA zrLQ!Ny8U}gKX&le*x9_FUwOX&3$Kp&VAfG?x97XjhvWijxZhTM!>OX(GUI4oZdrXv zp>5n**UFk&q_nBkSZ$fO57($Dk1^70 zgPG1G#KHU?9_3cdEgB}XXhE6blvFd^yrna%%!;RMn6eFB?MG)lMrs{}mW4G8<>7#r ztxV9wb#MeYz4;Q0@=@osSXaKZA}ymc-C;2DiC#Shd;tN+?3YeA2Wbyb1Qab^G_vOP zj)_>_9Cv^Eg;(houQA6QUub9K{(K%*HDyiA8D}Lu9D2lphgjM-HdR)OKV1fGC_7ED zm%8#d34-UiF!BnCf(lxpl@lo_k;PS{1znh<4sj5^A5a$}72zB?FomM8&Amo zVVhyv%YMrXZ`Db`cByAuzUNShAMPuQF`BY#7UP$ZeCAKC!usO)BWb53GbSSRrEcU# z8{)JEC<4#v4qbJU9Obf@2FA$Bw)`fJ&js1kUjo!b^@< zZ`%3DcN=b*7z@3DoJyMBiRr!^20sI?o&`364)3p2mmay4mQ>>+pEyrp_uN-GSb`vP z8Vu9tQJ__O{C1O!5_R(xZ^|2K~J%snv zNa5NTX?kOnWB9~`;be3S<5s|PXI0WQ4noQ~g28hI{T;A{6*h)PmeluH#(jzBf#{0F zS*!!!%FI%R=YOu_QgBbDO25O%HKDL~^|hq_sO-VfJ}q+BX_e=rRdI#2=@%clOjC(? zTD&zeEM-=CP|RXVKm}Y3>351Tfj= zD?Q95pOU`~@qBq8_rstirGu|G_3{tXolI7`uiEqZe_ej}vM(H{(uvSwT;TOpOG51$ zT}VjP&TO6|wU)-a8AC_h4IO1lx*D6=I)!I(ku;?Zg0_#xw3K;g zuf7eY3?bh00>V$uE^B?uT55RBqUX4=iSWB>Ikbo_m*deh7gEAWm_2FQxr^VXJ++`U zFxll)>thyk-iA;E6GJv>z2x!TS$R@g`vbxjEY|CVLZU(ub7li`2T{aQ=gev=K= zZ?|@?C|Zz)K8)vJ5U;~%xGu~{l-FR53B&HH26L-Pc5CwGaaSPDKT}+hmNoqHb#1l+*?+-2q1uMrHwzlcTyQ5NVa1p6&ax|*DStjH zu(96t;-2CuRKYOm$G$4Ci1~sEb%K!8{1#o*xjXff{;L8-Fjf%?MRa(hnhv}~Z-eiu zt>hMU0#;Q$UX_r{SBxO0xC)&!Co5(Zrm5X`b@9Bp87MRVCo7~jXfl=qv3#`?L_IX4 zDmdA9pdk4s-=FGgQHh}Dd?(ic>MMY-SX#~XezhF3K;}k>zp^!~?MD4@LTL3SELQWI z(qYZ8Pmb%VW@jToUah+cBpx4(Ad98GHh&wEg$?w2uv62RPHpnq>wZC}<=LwfM=STy z{4C}2D+6|Jh;e6~+zTVd6w~^~T*RUqp~#yjhd7L8pKV9fYI%H7EFU6BLz|j60E3>m z1^SJI&k3s>BX1!cHD)|k@Gc8dxH|M%RYKMTIqMCBF+5z7-x>IJU`P7Rs;0NglrX1H z64sHc6~8tu%^zz}OHW_t)@u;Atk_*z3G5YgUWWwVqdOm60SeSiCSnGW`J%-=#l-ld zU{=gRj);Q!_Fy5_*T+*?y+8=r*w<^y$C%039j+gjyH)U497?&bC?S)g86+AARbMn$N)C(--pZarAX*4-0l5(JhEr-$TJ;#)UHJRB&k;kss zJ6|An`Gp~>dU^xfvG8bsi8CAaAL2p6T-0uCtMuYxw9XFVDe^4yK=OD)(sGPoOI80j`a4@7n3%evE1Th*d$< z^Kx;w5MTtgDx!_9xL$25tfp=<^aquR@L!OFnEvSxL+y?_XmACeDl8}xoBkgm)#nkP z)nFm^x^g|0S>I2~Gn+xxF`r zSWq@jK*CxyO!Nbt^6c(XeF&Z#{>awZ6@evWY+=sXvGoowtOR6;wpr#`4!q#CbcYz7nsutvKzUAt_F|C-=uescjj=-oG zom%z}(anO8Mhi01HYE^^t`~FqCpvSe?&9wO)~i&zH8HVCl$b|G&`Hi0H5C*ZMD7Le z5+_b1GFQfQ_(Q9~?LV%AdhR9+V4G1}oTeBm&)yj@Qat(D4uPZBKTJz*J}v@Vy13aR zpX*_-if6j7iX^}R#W4rH@-B)d(h&!*B~cBvz`WHlMmSiVX|~C3_SmA){=fTHnMQIh z?yhhtrIYEk)_Y?eBXS-OhxEO?l)qoYleV(e)IMafn&PL1D5F)5Y*f0?LO)X-1ddg* zL}jPwv#T$?2*26%HLF>`O+3_Cu}i5qi7ke(^XBw&M@8~UDI>TNu7qO)Z5){6EzLRB zn7lQfu25|5rv_`NyufU)KV_}Fy~Ssd01f!aC&&z;yk0l3@H2nT63m@OiE~EdC6BKa zjiO5xElbg8irL=xzY__Bi~o=M#_?a(HzsDb|Es=fY}y@(Ao`wCe_8OaJ(YA!`sp_P z`x8;eO-%@iHBE-XW+5~%1xnbHThp_)eYk0o1O-%0GtS=q%K;H!F?aWZ1a$b)=SgFcqUCp zogx4NVe76Ane*GMW6RbmYU!s(<8B=n0Cl}`!vKtHff&GvqIWYBoD&}iy><=Tfa)IB zE&Vd*0%(TffTBnV+^BKC?0)w*1)o~bfElMl-hQBEIYt*Z-pAsRAq_J~RE*C>f1-p) zGuvnlUI$%`T?dmci!Y6W-!01Ea$>xrLmL_M=!-<=@Q;=kSmcRXb&P7o`D3HGKq-C6 z4^#5EZ1#S6abni|6*Cn@tGbq1j`)P#4WV^d!4L#1a$h>1VA5?D-^PI5<(VUoCyEZL zwJjy^X&*78I49D1a^V^MjiX~Yu`Eh>@dfhT`TJ?)X;tM$YS>>S zX~Md$5YJKav)qMHQuw!YRfV}(ToYHlD9hZ;o)9a-Q_P64hSV{o_9w{I17mEjSO{3A|FChQ|LDO7)vvyF7cc{ z0zRBxLIFO%74iUR)z&kK`2fTlnd9+mQ&MRXUVPxSTeyp@W8BQ=Wq0%4Ojw;m$Dax^ z7BPsJf=U;JMOD0=cb7GOSli{cV)kUa3g02B*v7(2fOdFcD>kfNT+S<(eIvI4BqP!> z{=V5CgE&*xhU!H^7TjUN7((e|WFIY<&vL^l8|cPZ2IA30F4ouq+fI0%v(UR6^v#am z%UsIZMd;}U6waz#CjHkZakJ<<+kh+nWX8<$=mKGwVb`#eP9lQE>F(whz7{si^~(F= zd~CLhw2EixoD=47s-!Xe`boCFg)b3f3WSGD7*mN&qKM_Q+wCxXmd+!I9Z%)J1%hf_3iBO zgggvvldF97`=1{#XHE>eFwZzJu4J z3NQrHjgSWxV7@%>1((eA-ipwACX&3;1rn4^)e31~ZzxSd>x$KLCrEEPm4VW#<0E^@ zT@@u@XLenBCj34x2*)}}TmPGk%>NY`nK(IE{wEo$wIyqbTakKB)m`k63(eZ-!F?S5 z9mQuQxJUWa;euj#?EHZ@7`m%PsMHuP8MbRa2n)C?wrkL+dafigfA>_3n)+QrenJk^ z@$=FDd1(21x2NK79MI_P`u47u6KSm4iP%eR_5Xe>tf@?-)V&dV@2tPD6Z+xE=F+Ga)li zK+^#It8l!CP6AGHt+y}}!D-N1v^N21ZUKIO!fPw{U?FbZF5vPIZ7>OIU$dbP&8nlX z>)Mr{tX?T7tqE%iI=A$-G=CvLoG$LSuX&Qja?D+C5(8P%=n|>X)zty={U;y=P&EO0 z>Y=y1rWzE>Rn1#5a1voV9)s>`p``z*WRvrM;9vy8h^$ zsAxW(5!thaAX8<0X)nWcmjuPSTaKLz&$R z5;3Zh_-1Ry#1MHVhadIX%ibR(jsdz#%@Ul0;)&Q^rwKX4yC##B5Xo#PS=nENu1;8Aa9Gp%l#N@%Ob>R`h#*T>vSr zW~hU!c)3@XQlz-!t~fGS`5@wQN4Ll5ok&#AmSrAq0N4mKi;*~toLqB$BYGfT0>xE4 z#X>x}Q%eupG<}lws5IK=fwbbg zX%-t7OCs!|gwBz(5R=O9pLq;sH-sEUzf3J-AFIe^$H+G4s;;Si`bfDIBv1i;)*jdr zIurx3y~(ipDhI34C8wKu@p87?OH<5W24@d^Zih$9Tz?sxy_4i*eK(IvVF+v56e3cN z!A%KpeHaWt(cATHGDjc@{7c>`@~Uq*t0n)C+T-sRg(HYbU&Y`fB6ci^9wT*0ZsN83 zF*dy{_=@{O`9qG>tn-@0z`J5vFLCop2hT9^TJm(SFdkPhuVE)RhkphU!Y9xGJkbYZ zxB*%VxlL8gh4$=mGIod@%ZbqKMb{}2x~MoM_r=I|aS_&*LQeU>5G=u{fod6%T8MXc znxm$Wi1`dRm?E0o-L5IX7If(b2Y|zx)iP|ZY@-+lcr)y{?XX#AHW~@{i#c&R^i>c$ z(Qk&TOLT7|K#kaWuxeqI%D+}@$?~P;vSM}Y?MIo~7XxP(87TQ9l#5J-uUwZ&XuyT! z1|N^>14EnV$6FbZKfJM4!X))a|s@>Y0euq;70QFrXT4Gt#5~z*$`8!o?zoX>$Uv1U;&`KPeK8CqlXo z4YR1m$JFU`x^3j{d1tW^GMtq3XyK2`t|;Atr5SM~3T44@f`9YWL-??idj4s$TmIZ@ zpYlA1mZFoRJwaePr%LN zI+mO#|FqV^I0nZSA%g?AXS*($t*!89eex-;aeaL(>JrW{JlKPde7>+^eD z%9%RJ!CPG9rZD5eN}(@J%P#L;kF;@LGUpTFmatsS;7A>$HBxI=iH~DViI7i8!OptI ztE{>JjUVenQ;N6jWAjQ7m$A?Oyaktb;zT5}zgXm4UxLbFu7bcM{e55~E64$QpK=oE zvMI1XrS3loj-;|G)U*krT@w@SrIlt;u0{FFS54tU-VtPs?n~DjzRvkw5i@{-j4Qg} zqE&lo*{uSHvRWlc7j&}V6nMGt_F~o7&)9VUqV4c$0biDa^m68~@=87$qG66(a|@%) z^AHctIp*NanOL0+x|D=6V4zZemQ8*vxM3hQ=INLT9qqg*#>Z$HJz zUGk``sX4q%AQPTO7f5&!TpGb7-Ro72N4i@FxeXU3bUp;M5J1y#3L*%j^Du|(o{EbGlSe0}w+(uRY^MM+u0%-kW>7E^04k_7W) zxc2Gd3bfPv-EK$lUcjbim)mF`tZovDpZaF$wN^;FOs`CQ1YXW#{mtbHV_xhLdwnrQ6 zKvn6Hto$O_e$EFC(=nrRa<}R!s9T^IozcDtSK9ATfTN>&!6PIoy^ink>1B3hVCA^L z?~>AMwzMW3u+(`648%pNtdFFi6Jv=ZOzp)zXM7*&TSxVj2No+Qy{i7^+eJ8WsaI-L zYm9C^*C9SejnWROVA@b>DHpU)3xF1QU;i@rGb*$49o`h?mF}aW_->V+f_4^dLM1NH|zGcY!c#@k9)R}3$&ImZ;rovR>AbYP=9J8usDj-@x!dy z+sOK4PT3il^*-nh+TNKCo0x-C)4(>IVr>`TU~OocXryGu7!4drXqzzVRP5Eh%nN&&Cyc(kEuJ2eAh3fg@H;~! ze?Jk)WR+zV)#oXX28I#l?O`I)9#JLkZ?1C5k>91G=cDdyKEDh;9y$M?tc9dRqtwTz zH_HZsz>FIB;IQ-iJpLR%?%%IB_h2Sml`m;=mA9|&cdKkp-W zQn@n;DJXp8pVob$f(K*d8be@{;EqvG0TUOy{1U7gWrz58UBrxQbn~ zo8x+`r=R)&w+C5~J+k(!2bL-Kt>i{ft>Tb-YfjHf9JrzepeB~TVSNLE{mhd0l2V)o zcU3K%RVNesLx?%6&`oYS<&vGfSVcGSAQV2tjwpn@zCvxF_^$}yj)-RHm6aOMKcGMv zw<$YbDT>)A=QIncwTjzCUhY>uOc#HcVA38{!x(fh1Cc~j?utpra)$WRcJo!w|8WI% zWVBg5?Dhz7r?^ghN;wLnOCFk(_@wC;vqw-jYB~*HjPYflCNH)ARbvb{VTOuqJ3W?q zdI%&)r70(nlA#S9z3Muv)#j)mXtJiuPd8|*V*0fRD;JM<2X?5fY{BsbhSR!G{SE)f_id=WJ_et`O| zn&BwW$yAbXqP;GB5tQgAEUC||o_f(neIm1KB~i#nXO!j9MSDP;n5=}cD`I)9;{${0 z_+nQOiIQOmnVD{-OL*3ZO(E~-O~ojv|5ss|R%2&>ll#(TRY0=8r>fK0IgO_p$Ozw0 zg{%`*{)dHp=;Hi~q?vjgwLs&jw+U4Kho9g1hf9X(fg33+=?KGDo2%Sv0+zcdX0L)| zCYb|J0U$ALWXvD%f*X;L0%V9V$+u9GKN` z?nwVnd37D0)}BjWy}irM0;dIRU~LMppw769PJ}d8KDpL`=Ff^NQu|Ozm!bwfFr5gl zFB0LzI1r(AK^&YJI72jj(0W(6=?D(ry;-Dtwudv8nc$hL2PG6dXAQENjAzmXT*Y{k zz?Q2ICU}0P!gTN zYzZi#D~@Np&ur9moXM5?Mw6SD&8ja4sgzZ!K(q@me=yQwo)G|Rc4Ipe0ivGVQp`*gNW+F zj5`h85gx#>>0}156k$I;u`ka}JQ^A1EC!AjONA@chwD&}S`?NJ{tgG3Q0Ev0S`+F_ z2dYOsl*n$XaVoA4)u^k6_3zjdLt2=(17?bf`DUG>Ll>!<6;3Ss(2sa&MDqOixRkUZ zOrNynv|f5=b7QLY^jl7vu6)MdQR=u!btdt7m{8t^0SOM*Oy@m73KwvS)UaD*!C9K} z96L{KcW9X8fm}3$5Ne@VwB>1pY-kWnBA0XYMSp{z+{f?!!bkBE2zMhIn!N}FmzcY^ znW0Thg1W2r*C4-fJEf$&&B?x!L7EMMesjTf#%&S81h3W!?4}@#$H?>J@4(f5g3Cko zLOkZye%xVI=wm8xrD1l~`rNdPRC8sYr`tawgdm^6n>`=ZK>0(n>FUM}s8*noenI6? zq8FC?Sr`{KTEQSOVhq)=WDy{k#RSbYKY6OzzVTq|iCtYEq`G{nDI30^yoL!bA=HlY zcr^ZF#5dQA#jx9{&xEa~6Hm3;T7GkMOh7nQJJdVwKL2@q_VUB5Z(X>wKH9Ru~y^7myYi#%fFs@Y8Kiq z#qlNIR!D;=n})gtuYsQgR3qQ<+J{G0ezS1P{7E$f!Fxx}QeJEx=*qviQe!1?)fS%k z^Sih4PK8Hr1Jve#I_KC74J%IUiQDe-W0)by0sIysj(CRp-DmGqQ+ma$?&O4#P@l-M zt4i@1YJFMBBGsWonWeA2;6-qbfHBn;Gpss>gE7dlWh_}EA>o zg=g6`tduZ%wiViufn4-4x031)0jKCUn_E`_(S?wZK}{Y9L@;`hQlj8?VelDhobC4k;V;Vp(%{=5JfRP7s@XXXJ6Q}6H%5^7HzKQzl^*jDcZzdW3y)`k`qJzkoD`T zL8{;EloKzvCM<EE=Wtf05+En%;^AEKSO67G`#8A03evwX2C)X2W#@j5Ph# zc|YzW2MFRZgO!)@9Y} z^r1xDUEITv+ce7#|Fi;KU_)4rrph30nQ!7og_7V>5=o~}b==lHDOYIjK}M#H{{&kT z@!n7IfA0ACbVYyuAJff$l~HA8;P}5%Ox^$SGDtX)dLF4C(n<9&xx3g87Lai`qFD;< zdFbFSkOp~*ISJn0Jz%)AF*8!^GZZh&tsS`r_BDDmtp1OcA@jR*V0f=b=kKq{=dbDa zTG~cISr|Q;W*=2gbas4Gb?5f}5Z7BXyU}58`_$;h^qu!pCF_6gf4b<+y`$}l9|apt zpCje}&bxK9cl^;s1vK0G1+Mm`QKCMhV&#cq{Q!QQ_4KbA;mA~N=jY{kHo_4s*jYg> z-DhCxxz|yYfV#^8;QLGSpSU3^TMH@uwKo+m*nrhmAvDOvx(&B8U+wIG(2D1LyC1st zv5AVFBR$J)yq)0taZOX52h2#T__B=1WrJ*Il+ak=6IOrEhcY*Ep9_G%M&m|IV%el9 zAW8N>to<0TA^f3ZwzV_m^4FnU@*$>&rb!48BE_MzmUqDz7fs@Z5m*W%2StEe^HTi z-^0Hj)`6|Od#YPyhbOVy$NsUS`XRSXP}L^Qh_juo-YC2|HQ6BtLA!)7y8>6QS(R`u+LT0n1Gmuwzft&~#ffyG{#f2InwKc_kiXVe$92M%QIFUbB4&u$Z9{ye zkb|nk5;+~)Kfx^6 zkYx{M%_s9|$8$J*$aW3Rdms3*3Mx~NW+rgPYU&nyeiWV7O%^<>?sJcH9q*Hdd#sY+{iI#(Q;)bCMfZexCtLIKQ8d2on)3| zyF*XCVbrOsdsDz)7N;l{!fwn=>srtYMnLhsD$HYRt1Jtdyg+?KQ!zDggB~b2^GKHK zTCFu4%kzj>&kpyEA4=v~SSfZ;HRz$Nd;)nn!Z?EKY@LdT%vM=e*N-1qn&`kwLlN^4 zne1kkaJnDHT*^Mm<9AB#{+FoS(iOs;`nTgU6V%;dR2N?#UPvQNkBi`L-S$da?WeFm zca_S>N8>*^jPH=s{+C9l1_GL`**P~c;r?on6Ehs8Inbt8H=f)*Z{uNEq9C6Dryylo zfGuq~MY*_OZkzMOD$V!;v@of(@eE4$odf#*%{izhcR2m`K0(FM4cHCY+ke;xB$J7! z?Z#ydMp4n&MR;*1U|RIYqqxB<`zvI-(0U-J&l6*BC52{Lul+c2jp`@$*uma8F!s;J zcvcE^K%*UEzQA&3w&cij_-1Al+VUASHE#pI%ai_M34t|iKBlttMQOAoX|}?`ZUXH# z^cnwbdRwvb1P*Yeh=?iinUY=f^`#wy?Xk&zx=5_|BMq>(lZz3dMi_pq*FBV>vRTj-H=bDL-KFKS^os1&p5gsU!4 zwb8NU@Wq9*xodiZc=e#q!M=H4w91+;%~=G;5`iwhNq^q+#M8y9B@giyR#(J4VwPe0Tz<vH^1e6GdCE>J-I3 z$Bgaj+@mjbICnAfGh6^a4O2tM9OnQ0GHTuLJMJ2f?A9n%S)z#@Ps7qehzOWWS;sK_~ z0Xz>4tbt77cjP{9v!7VRXDdG{mmgbeaG)Q(ur5_xJvMPLiDu;!60;0H>OHcUTx7=G zU9$d!WZ?|(TbXm;_>1iWXg0$pZGvBwS!XY)*p>1@#+7qo60Oe8Sy6XEP_k$Zc)dCk z2ASc*vk+$Tjk>s7)Eny1JrWzj_91+ZXT(1z45~spZ-0V&+B>qiBI&*uZu_l+b_~(Z z-vV4QMhf6r6CLSY=R6B5+%?e;=CjFqwr$L zglP9f#R{WyWlq-rzK@`*q$q<3_%7w-LQmsBO?L}gm>7i1xvjB7!b7|!k_m1hfH)#g z?{KDv>f^KDcvh+r4aKouYC2@5FG+%e`i=zq|$*PY@5pT4-Sm3HBG;xR|Jw+wYaib=?Toi*HH8^Eu zVpJKV+KMa@G+*2*2f*!TG`0FH)xFghmR(g!L|bRK0(Zb0ui6QSO_>W$-wA9X(+grDCu(&4jRDh0GZAY z%ELVb30&r@>8*zso|j8XH@;7oOsNErJl)BuEBBhFA_}WyzY5| zJ|-8DHFsH)Pcrw$RX);ZRf9f1ERk&xiX_$D$9me!&4Wmi@+T11$S0fqa8qmPY!Nsa z5{ss7xyw1JjtdXLVbn7PRUIm+cNfbcA>$=O1liqKDm%!^$Ws`MA(ny9*?%9Ct7aCi zA?VHzY$?`OIG^6$`{)q@qH+UP&aRt0S5rLr!7cnF7;c##x;;p1Q+*hW9Zvr$lveL4 zZm7$Y?944s7<7t8@S_IkyltpH!V`%@mn6EpDGLD8HQA9LpDVxFRdBoj+PN}b@gYIn z2Pq%u6Mq=u1HDnjrBfC@QA(3G6?XK)i@wF7 z5$UK$QQ(qTRfc6r%6EI&5|@0}B#gY0b0QYBjJZM5=t-Yhof&_<9*mEI5<~Gy&e_vl z#*_`li=QoTgt0P4;kSF%$#2rzSdemwy98VFq7R_Qsu6UkE>qx6kqN)i{o92ko^VP5 zMnO2D1Szu{-oJ-w|M64KFj9YC^hwA*r4xNLRl-R}?eM>vzD(bHeqxc15~U*wJdU^) zZko{TF67>}#9eAyK$EAtBl5=(a%j{ws^~tf4C~u0iXeOJFv^mHSQ4u=o2S>O--Ds%_EWf_q@ma6 zr~6~4^!~P}hdW^^zP~re<>aEpq<+npw*NxsBj79egDttWhX<;FuUjx%lW4ASjzrfJ z$5=F! zCmvN56`_pc*~>etv;xTyC7$3PVD)YOD*-4MfxDNj0hl8tb&}z zPW?_A`#9^&=hZ410vWgQMVk^U{P`Cx&WiWPaa>`^SrtsHyC?1j{h|$voN{N9WoCtc zAKVg94m_p|3k*-ClbD-IKEB+WA5s`?_oy4Jpi5ptW}6(GPCICdZ>X8;#&_K$%!pN=2%+dw=T_T10xN>iqUE z(knJ7cw*kNc^h(BrMzQkcQZbxRHD3+xHc6OEAFvL*0%dCe+(<#;&!`2C#Qsl$9;CJ zWeC#f&#VA?R4O$#m1s0ouAp^T*kIA>VSs#|TeuQQHDq`i6!bG0t=pST=u z_x)e5jMQqg0;nyp+ZbiPcW0fur~|~ z%<8}QD$5Yq4_|x?kSip3#=L*TXc{W2^x!!DqIcAl3LG_ zd1fwK;1pbJ?#c0{pg^*58 z5)pj`3-J^Yy0;BGU>-gMc6SWN!Qd?|L>x!Y!^v@neDM#L;U4=CiEEC5K>c97D>`zp zuVLn)m+0YRMG?JzND-<@CXE~<3sa78Z`5?(c2)SYDb$K=^zx67@rhvp1D=DQhSwK6 z!$3&kpppCoL~=Ok_4$vHtm`L`lzlSd|2Rps5%oAp81hZX?;@PpwiHAJ2CBh}K@X|= zC7Kiyt|&YQ$2NKA6L9baPdx~Ck4M=oRKzEumP0*UWk%RbOPv`d-;TOd6WmIv;N(>C z+j|5kBrb3u8jSRSH#%aGUcvNAtyX|-!{Kuhwl{&x8%fkE-rv&8qzgioxr-t>4VFj{ zkqR|n>gm{-qEVfAeuf+3iW%FDEn9BQ=RO-*rY~b23eUG9%|;tX8r5f3Mhjs$hDp7+ z|9u;%K;e`S6!=2V?@SRY{RJbB!W>lVg+0In0RJ!fRfT(!r>|$ za`wG|>1!wKSw&>jLu19|A3aFpx{B0u1g}HyWPX;QVn5>;M?Dg_w|8Ktw8`b4?Rpjb z2or^pCU*!m$j^j2OiEPk{@#aX`%i9pW8+58SZ!CtH(XH z(!zRu2MZ+wZM;>(1Bfb9V@Ula`zK{%UN-YJ>A_sCegaz;OlDA9&%9aLa8Ep(?1JfG znBfDKUO$#J;z5PpCmNto4E(i7&sgSn#iURv^%;{ z=(*M`VR05#818)@c(yK?c~?B?1Lu=51zfErnUhCbKuggQgZ8uQl~7-EYiTYhHdK_z z+RNNxKbPJ=3QqnLkn+sYCUMW5=WFH-@J>@Za~fhj-2F&Ol(sX~X z84*rz76oVMlQI)UMTKwRO2)%O88X^)MAF_iq>>GH@zcAbS*pVizt{0cQ8%QqZF{14 z2tR307IJO3%IU{3Vy;37GjSoPN4$+^4`h~QBhx!UTmOHIol}!$VVkVWwr$(CZQHip zT~%E+-m-1Gx@_CFZSS7g5j$pL&%t-He!_Y(@5sFJLBx7-owZ~~ylZh*!fBA@sM&#c zf~0L}xpXZROe2Q?8(9`BOZlp@4d<#CX?Ue{VoZ#20cn9))8ZeizmdU74m(9$V$E)SsC7f4f=|X8gHH(JLAX6@%F0KQ*Ve3abwRJY!K_! zv#?#8V_q1Utk+gTBDY5?d6&)zP=K3)OuHP#rcN#}^(ja}y`DT-$j)BLtqa7+sjgx> zzT(JT74GM@(S6JYEfC_n7pbw4BxHAU0-B7!0qD6#@HdK80eB7!07CivT!JTSm;>+K zPEw*qVhOGj%QQlH=9nnQre|H*6J*K+0^`P)iP1l)cQe?6-#w_^BS?AbIVWb_$l$MN zWy(ulUzcZ|)=+Q`&r+s21EIwhn=-w~!p&dl$Z6#-+KO#OyT&H`-4Z{wxFDGwvZ{3Y zF@x53Ol-S_mJ<8H@~5n~#2}B>!pRNtT+rh(hc_qfqkCa(K*tIlf*k%BgB})s28YLD+?Gne^7WmkO5Nv*oXHDb`C=)z)RkIgb(oNa(Up z3)l}kmSCCjaDr-G%GjFll;Gjv%a`yQUYdBinER8qruB>re-Du(Cx0(eEVa?aHMh~v*7rL6Fatrm(^oOlmsO{;<$ zT;<~&htrVmYy0;|A~$zsEiI){R_j}ysfgNgC5S3aTm(2@#aq9gdWLKKi%_Qi%zKqY z;PeSNE=s{j1t4-iKQ;)yaDB_={QDx@3d-oZTJfWa4kAP7edQ+yf@Yo0@tw8W zs8M4<9A2%a)IM>ooF%1Knl2^#b;xx3r61c!cMGk|cl55ti%rL5c3A)qfh;k`!WD~O z1Mv844{|RCj`W{x+oyBZ0X|z#xEeg`Ce4%4t(S>&-$@Uh@6i4cR5!e4w;h2Ttkj?^pf90S-KY+|5(e-*SsOH^coq9w4$j7gR zcA_>)%j=aAgBH{F?f!vr;^k(-Q}9*X>A2l+`=^6y3XiUGZu0!->tTkG(C7`4>I)d> zSAQeMWlK=Y9=hfpKyGS$ldPq=NQSi7TUw1q$rd$$2(H2kE-6ftM9|fzkbeHa@R~fP z+{;GZ&D-Jhq^aaF)jXD|MZ=pQ$@;F9C~`DcfwZt!SxFvckoi$wLi*L`v6Wm9Zo`!&=H%aCyPyt zxCIqRV6ma4Gt(3GA<0(uH3zQ-QqS48Yf3K_4U8}sbu64(wocN|Voog^#Fw%2V$~gj zznadlQRLW20`ae4w=a_#E%P zFR#wvY(B};SaN#Ymsq6QE^ZzdEf=LhDJDML5aox*zi>9(?*e(+95R5pbs5@ot)$Pm z)Yf1f46V}J>#d`J3p?!>S`R_fIkE;IxrwBwVWeycJ^B;3K|7abWmx4l_vG9#PxB#C zg5zwK@m8Q_frQzNH7H)pMUKYb8j(dLA+tWnDMR11DL-=)fHYgANvh?wYn_Ez5N{7+ zp<)^IYtFY>>)8Hs#%y#t2%C_4Tf&uV_)0}8NcBnr+O>=eMl7+%G7v^`B@t3zb)8O`Kyt`9{e(v?gzm%Ac3D2w30rijA<5v1L@ov=PVwDnL%z9u^{Hr zk8G}Zj#$Q~PK{_T?{s3lFu9+yjcM>WB~hGZBg-x4~%TkHKNiSN~V}Y7sKUUvicEor{_MKvFcu@GYd6-+=U)P`4b!ImgS#i2Y4 zd-7HU{GbATYBr;?p=-BrR*DLX-oJevNr&E49|5bC4~y zs~DqVADJB{S&~bx-b{aR;(N{QZzob5{?tb|_PSDFo7zt_px7uc^=IZBop8#n--g8* zP_(T5C8dEfh$am7Zh&OUvSq6Rp2kJ7m{?-dlHv=WI;s&c!2u>vJ- zo-;f(xmFHj-PH^#RW<6YObeJu2EQxKgyLkX^IqA;Jaf|Tzv$S=}TI|S-s|3zOw4=O7F%snlnT9 z6UGX`slanp{O5B?s}~CQbFu-R;O8rca{i8pJcw5!ulV~G+~HCF(YDv~gJ*NJgMmw8 z5D=nkNrG>FgoE`XvD=S5q9E%8=m3HtFW9{vw!RN1(|(X!@<_z#rvRjpKfL&2(UJ+- zbp7^8I*gUfZ(ojK4WXskRV@H@j<@KzlDf%^j9IBdm&&=@)?t68M2T@|PKLvoI-zf+ z4|c_0f;bjSazq=%)oH=bheSIQ@Vw)UD7R>wjqruVhk>LKo!K7D<~?#SDIzXp-426- zJB_hJoKVa-ceMlA6Z-?940ZacFFjV)9*)+Y?=_ok`r+CfU@_$!1G1PY)7zaSv&I6n zG){kOaw?;HVnjuSDp#<7Wztvw`t$G*a+Tk%?r!{x^Kg);jogn>q7aPUGKjGd8R(0x z3sb4r7j|l;P928EfVe459--2^!E8FK0Nss~wxx$`6@SGOlE388BvlBWMFQ76eSt6k z?kroWJ^r_c?_z~SkXXWNw#23H3`)(~m)WVBHzHE^wt0e_J7&5|j|Srr7|s5+2Itv4 z#f=3>8aVF=YPjlnL=;XCaA6vvumTT+E7NXzU6_$j18XZ-L&`AYkT6>~GPu&gm&H;H zXC?8|L;WvWp06V7JZYI4<0|}qjwl1C_%xp*9SHBv>Y&bqC$Js3djalbKDs2q1ZbS} zZFtu$7JITw&P_DZ~-IShdh0|gC9nl+~Naut~f~MO1Nvg@k|k0e|5_F?uw{HitGvhA!d{*gcZZ|P7? z-?Ydg69Vi6q|-B9Fl<3dKOz3vROha>WuxbB(}>d^0S3g!z=0m`Sy#Ckc0WW$sl5#d zxc0gXGxu+QX?&BiF+e`A96AI?D4jL@uF4NgnFC$fdoSHUs1@MK`pu7Q!r@{%Y=V;b=CULO zGbpUWArU=4=$K=%SO~-gWbZ60yu#iiBf}PmyewO|oDw{|b+;gYyT)AwOl)$&yfLkG zL(!nmJmC3yt*^YoJ8f*zMY&LSr1KP!^vL_-3bGE(XfWBt&R$8E?5v>J#nPylr=Jri z?HKUK?@95M%00!Xt&m=b*Y7d&_G$XIaBup~CV!7q)aA~sQ+jTPN+k7+EF+A8s@TgoCoVQAq@bj2rRt*}7++m75t8qo8_)Q|M6-%xjyPts%5F(d74 zYR4O^Q`_GgL-_SM^$Q4+e#hs3QM~_A(Uz5o{eML7mvF~w{%`c&RIp8VPJ|wCWkke% zh}1i}$=6O63JU5RABZ@1B3U36QLI7F&kDhZ1-I?1P8Ye~Ej1A~M91^PD%&I*?ejJg zH?eY)V)$dNAFWYokm|X^xU23mLF$G6b${LI=y-#_`nl8NDewdL)`R#~8sH1mrt5ug zVH!9O9+c~2m@DLWQ$UKBaVzAH@wu_H{l#7D7(~>orNnH`aT8J1#X=5yPWKfL;tt#5p^RZh&@p2hs9l&t!}Pe zKNvb_(vyef_zHOiJ4SdJ9i4Y6u<$&XqzckK1XfWU;1MJ~G7OXz)p9xKceEoC)jWd& zS{t?Fl~`8xlt-axdRz);5x(QP(1x=*Zg@$<(}LYgwZGa0vvu4PSS?GZcbC7>2qrEE zSXOdwOrn}?)7A`8)jYDINT*I8@sQ#rdiFdGl{6aJ{k?;#o15O>@Hmz4ra0{k&JH#E zIky2YicUnjrb*$dg``A!?F98^?bbh|fvA6`*G}+bOQb3rElteK>Yo)sokmUoi@I&$ zaq2q4!1b&n853d@)jJ5Un~o3~{p8r{NMdx%JUS(K!2PA65P;Msv%KbKu%C=9imPDMf#(U$Wh2&rv%`wW(HzMw1EZEtUI5Y~IjFU}(rHFgm4awsBM!FKdLoqhH zZpaSIit&>Zg`UVWGf4FyfyIPC4y+o}C3TehyiOd|IPTpt+!%`n@o^-eIrFt@=V?3k|06b!chlA1`!iegdW|>SKD>G%6%sE;k3d zNjy68K#UHQ?GYp&?3HXDHz;k@FB)%k4v~}{pK`a=7z!hIfI>FW3MOLRleTxfw z2uAV*CG~`R!B4Ky>AZ_ab=QYh)0^3Rue)^BA^=CktMf9x*)qKE5ial1=MY^rmrFlI z&SH*|nW#D&t!1>Uefg?RJW60WJBHBWp4Qa7WX5JYW~7#2H!6H)R+qpTg39~cb4z|E zCNHb|3K81Biur9au9Kdlq1c|h)Y*a&P1R!=Pk^4SV!Mv5n&F)@dWTgT0?F8#4`{`F zQxEhDPKZQAVv?JqML@l!rO}@S5E#9x3j+`S(_+jR}4#m86b z!sq37q?@*Xzt1c|pvG!XfeHWW2&~@e?8Ot4j6EMEZY7S4&GbXCHY1YEO&7?g^^@kA`2|9Rq15J<+?VqXJXN7GZTl36>roMNmE)aSQ?wn>t%&x*?w=(N?8j=U zg3FBEBC#lh_6@SJ<4eC-Iy&`@g&Eo15&0G(5Mzzu@NfH}tqTJ=TJIhX=`H@~0 z2dh|RH}C@+doHG%GKQ&EWID0Js?`us*EhQ*iFdcg8#V(`ctZmGp9v3V@vVuIZk-{E zp+y_kk1~!GorY$<#+75A9={{cmE@h40T@1~EjXyp=Q2^;@$Oj?B*WMIW~hPRE#&xO zqb<>6Hx`nHw`a$vVR1>U0(!1&o--rhq4Y}+Gz+f$jUIP3^eKb0e-~G3!Fw(>gX(MH zm}tD@YwGcGv;4}jDYAXa(M%#%WABu0f3I)wv%}j)vD z@{qHizH8nZ@72256jnqs{dLrI#=SdGQWWaCuiBkbi;5TB)zz&SH(qKm^uuO4SOG_C z(74~kj00Z36*=oOEoY?h`8Xi>!(TX{12E#tM3}K$h(qIp$lvw#F=ljpP6)ogs$AQ` zz(r%)%*GaMvZScwEuEau-IS5_t{>T%%1#4u@SBOf{czxodHl_PHJ>eWiu5-l4t+vA zi_xT_ZSIde$mWQNAOAQ;xg9M%@AKf>s7v_5h88YCl_X4x8c!odQjKmBH>Q)+irYd3 zRBlCmuxa%8ATeXW`Q zb>)8LDAUJr@w^J$R<2E5tz2@{yqi5!H>h50C99HnCWbK;43!fQ&1G~TUf4AgcL*N* zCa%UTFzz$AtkYQg`-Jv)P{!n2TYJ=4Qm_v=@zr9uV(aZKQ8iuvbF5lxFvn|%wQ1Mh ztIR1R<>@?B-7Ncml@a>snZi!=V zX>GSFs?%{>X3npSA`=a{Mvcj`v$qjK21b!|OyakwSw4T7GeN*l%-;G!^f&~~-mj1! zDS!A>{kCYuvVl?s#6d;D@Vg=y5CF92z->HLvrj))UO>N-;9_ASd_x{gaY$7aL5KtSja0 zmRj7*9z)|#XMC**z}1K=;2&A3jzwjj^&}PRxq>gZRw}QwW=U6M4yLQclAObU^ci+NF~(%suaAE{-P;s}_KQH? z1bao5*xOqtZvRBd84X+7fK|K{Uv5Yk1^fXiT^tzO&1Ws_y;#Jbgtoa-oNQ4swzfd3ZSE58-DRrc8=uetnL6t)@^;R+;>xfDGJeiJkjsy#_EySmCx;-5B4Ke$VV`iIFu`G+{ua4 zPTF~F_>4s`7b`y4XAw;k``WiB$X5fh|CHro=2nG$s4XAp%x zQ#{;00Ci+oUrvIObynhVpPOx25`SuphE${v!XQiD~F-vb>KvmUB&M(g8Pf=l~`BuGu*z5M_QDpjm49rS`sw#=W zx-{uANus{h;h&535Gow@EJc73I-7Mw7)TCaQQ#^*&4h=p(LRRFH2`t5n$N>VL%2I#-N~5vu@WYUv*B7~e@YWjX1WffDo?nFI~=9CI0m&|0Bz{5TS&&( zh?EVFpmk2DLos1&H$%_MJ@BazaZ-j^xl$45k3p!=9X?bZO7XvIzoJ_SYf2?3rzReH zkvDK$Nof`=F($#GgUY-6#Id3U07EeDL?cD?!nGR)SKQVYeZyNup3**a#Jv&)Oo&hq*YuywqMhV%*Y<10aY^5FUpMyH@ISm z*;$sq%HQNyFz+mr>Wr_>VN>p@GAELPxQUU=o!3!-i zt^qx%!a2#(i;^;0jp#Nn8<~!TROjy-4u}Q6z=L%j3J#Zr7fYdeid}26B|M9S+IUN$ zp~?zVx&(mgdmFP!=;J#5w*UP?54zQCj2#+yub;gCY&G)k>z zdoe6*x37M|Zl*TGk$89~kb1vH6Rj#D2 zqGTY2*;&Hvh0Zn#;H7Swfr~+ZyWk~TF1)2lKjCZDCs0;9ns;?5$$jXDg|MGKFNFFP zXi<1aJvErZdR;JO4i^ry>c^5kAV;?~2e6092+MiVQaI>JBATMgIh&49LE+NYAx)0y zp8v`nvB+!ACd{#z^$CVe{d-hHos!R5s8d=R4AZNX{j~yF(YUH)NyrhJw62lMOkvfW z9@C-5bT)61Ds!4KUeR%VRORn>AhpI;`sJCo%7mm3*j{`nMEMS1MAS&^8^m;cugjQL zr?+)0^jhf3iX$&~go@h23ajMayzezpc(GQp!H2gO7QRYewZ>qy509|PBL3)fVU5j>`>e6C->U4S6&>=8u2Wgh)Z0Shl9SVI|$5-#zmGj)4fb0TG?}$+}y*6GH zHWe?J=Z!&E@z;mo5y0V?WqaN=*sgem&R|BK)YQcxd*>M+GNAog`{-NrI2IvGH(YVvvElGo|5y{ z9X3a{QvP!(NE)jxA0|Ghrw}G@3yXTXghn`~Og%j`&!Cf`rNZm9{&dpRsdfnHrDeol zI#}}Qki-5j3ZrDLqd862+>O>(HM$y#_*4`*T}?H5I}B$l8Y+~x%Y_yiOK~4>uk`W+B?jCl@6T(gs>wrfF;0>;25g|lBy*x_SG1)-Do*GD%QbiUquub-?~CVDu%b- z%5F!#Nm9Ps`g4k6heg%(kc?eXr}cCw@}?cjr{GLE5@Mu0o}jvu!gV3hIwNIXXwMye z%$X88JZf*hrjdf zJT-;28lxT_(3k9Sz#nHNFfQV(OjU5;J#1|Zmk)ssat z(89m&WPS{3zIp5FG_Xd(t$oWJ|J`G&nqlm`A^^f%joq`$ejx&C_u z{ObR~F;A(0Q3jf&c$^VH$-?kJz`QsGb6J>nf$_W?gaiEB(6x&ybiXhZErNQn1f})m z8*IO9&K6FRc*Y)cdA$Aa4RXHkCe8*H&R%{+P?C!$-#tDqjPW2(oP`}h;hHfaxApNBu|S1K}OTjbtinE4qo~un^}TsA@w9klEyz$k=l>AwP02+i@{&>2Ha?XBF#QDk>&?rXcAkre_fp=olVduXv^0~FQ zWFOLw?lBgkTqEG4^E;t-8Dw(9Z4?Rrz4vM_1Od@KJmcRRv*yK~9&^|dNfPSVM-t@p zuz*zfBHc|;p%GMpqyLFs_P`Wh<&fS`vF1s~npO9X%(mf3DiA7ZEn*X9ET=}v3w{4p`LzTY>_@rG-cUhUVd$13cP5gS4? zlx!8?Tm8hCh+5jLto4AwZQmF%UaG|YriARJ0j61)g zJrCkZcMJ|+CVXJl4GUMQtzaR_V`go^e9rX&K{ae4C3h20sjC_*`2Dv|PjduyI;MPg zCfM6bewjgWxvnbk^|c*UJufIRc!}KACHRQF0HX-Tbjk&UznGNMQS4TBvI(7%S8gf~ zpOn(UVjggo3O(LAj)UU~t4rfPg|N=a0q+K1YH5Mng`NHpiF4M1Z)A`Su01|_iQ=Gx zZcfcZhF)r^T-2jJ^*!}L8MfLC`A5i8WlcUWN9HXe1}6dv@J5=ND?*gy(j#e3tK z+jNfj~UzAb|5E~y32#$c~J-z1yJ zh~(T%T|5UviGpjJ?DBFBn|u6XULbb;45z0-d6cO{>==z^= z+vX*^j3VLCMmI`4N|IySG{yA0?-66~2Eb}zRcYC_nOul-e%=>Dwu7J&DHl1^WRPC5 z~&yqHu&#^pZE|V(m_GZztsac#Sv*s`QDZ>Osbd~$q%EsgoAcM87&Gaz$GQ^Ip zOZs(NphN}A{J&jlS9qFm^?Dr3Ej=ACko&!3jn*pN+s0j^ilo(9GkQGvkGIshqZ1|y zpRJau-5~4FCp%deXFG6Gs@Jn+W0m8h@tttKob>%+=iIE-iMEy>Tq4Y5(1w|MiF`p( z1EpY#)kFqSP@5Cay2OOln{5A_0P2{4-wmdcm5iXMU~DC!!7G0P z(zt10$~JOL><1`(9C#l4#M9CE`+!SkkCn;h|HJ6w*&ut&PB99iS8x3l6bI#+0Q z25m;A@0n(5hKM+96Ov~&KXRcXls}hwEWyYvR9UhRvD(oXp#VyuXG?(#PGcGUHiV_q zS+d&IBorP0dA7GW+~)F}#l^aBsykKwn03u(3=Wwyi&pvW!f#kd;hv)XZ)4IoHk;(l zp4z8eLJl+RKXHa_*xo|;0cK5oa{>A=03JxG`q5YFJ(+Cl=SEpsD`If^#)?sMX^nu7;iqcD9=uGZ<8a?g3Z02E-iEh_Wj-p zdLMQM0zJ<{$(HCus;DkBTMN0{KIXSE-RKLXi!aK zP5pnGk3yL8mq)L0#KVW6V5M0{^qu?Wy5pG)W+EO_edE>gvPx09hzr<3G#SzFJInJlzn#V z>CIy_zpgA168^&92k%Y=SC%G_@W*A`Dx+Sj&yeV-?t8gvX&q{r(Jq#XZLZ6_r+(6H zkUM?~ewykB(_QqPJoNfr3aVo!tKeFY%Dtsq@s5WdxzzZj6;Q2y;Nsu70@tO;YjKn| zE)-r1gx1V6d(+~EQoN=T-rmN`D@V8UcX|ulvjz8>AyMbp6g>RUzPhzbw*c|4ZUL8h zqpt7Qcn^&54#c=b-uZ;W_H3#gU-oT=1fdoG$_D3>Hu`I8x6r-$w!3ayOVhNj_Y#fq zz{ENssc7Yc`rAL^ElN1F9L!EAUMBR5y!*U#23pgCoZu>VE-|7S267B=SpuKl}k<>O4b@1|?L zHc=9=eyOh+M1ax;f`tJz9_=$xX(ggOkX*F_U!U6SQuPDwWaqa?*>K$N4b~V|UNl=6 zGuPa{EnAFQkshC0XEs_HHynS`I11J0t$p7v+b~<9)Me-yTI3tzYX6P#^||$HL@w)hWhE9o zjkm;OQ%9s`3h=k9FT7gIJS}?ojYgPQ@xZdM!9Om{A*&G5!9)-i_9C=NGB0Z5TTNOB zklPooUuiVIE?pB%?!$stMUaT1pOtNNQPTbp&N{865qN3kR8|c2!8w}S+dw1yBW6lL z{17?47%^T%|4Ht5yO}!C?-3Kr9hVdX6&z33F@K;dehBjL*XirMH^iw?n1+ ze>(ypyBTu=?C2}%YB2VAuor7*_un0?tX>SM_xPM>n6ucl)p^XRPSC5)+`3#_eUMxF zekpBGd_{g(xoa3<^rJkvpxj$I&fxFD}l+N23Mc6D(q0s_q$X+BH~S7M}0Regg@f-q@)>BSaV z-+1C4>AYJE7C42Of{(h_0y4D_oSb4DV`2(Et1=R7PW%h~H-tBXCq;R&LPZ%8^pd1n zb{m&c)-C!fW~YY8pa2PvUvTead;+ncDGtUgjS5d&xTxY>b)poR>}m*>iM4))Z{0l8 zzDJ-YL|C9?F#J}tPJ5)V%HbZE_i>~E@I0>(v;a{&;POO8duc)bCGOh&@#eP zq~s!h-4PhqWr!1MKVC$-@Z>5jS(RCGO)X0}vDW6b4$n>1jEn|aC`lm1G*PZt#Kw!v zrnib5XC93+P_xm(eoDYLKv(|p$h**wsxU!ADA*u#g?iISLHE$tYEVJsu9~^8;|A1i z($j+uq*XgZmP_yvVBOJ$#-QeQQJ5Pe~f zAorGB=Ppdv*JEI^FLCzA)g$SR|MOw2s!leN|C6)QK6}2VtCh(FsC{6msEki0XIoa> zH1PHLcSg-(gUP|?QYcfgKB|5p%vpqvl3$Sj9rv@pj)RH$?29qY0Wl!BfQ^qzSN!>8 zgO_)DaY62|jl^Z&Y*KK(ZUhig>pssok(A<@p$&wl99t+b8R8_l%*<~AT0=yk2Y;>dfN`l6o5g4s<0Yho#!(SS2PKnqGYV&XtHc+o()B(!VI63|&;q}AY@ z7|k7f4{X+AZ@#;>vkh%cWm>B=^M?&8mHb2mxwv&)DkFPju(Oo$MQ*dD$4u791)`>4 z&78@xhdzRI*YIa0N$Ld2swiXij z1xz3HRB4Uwd`SByaGbnyS#|pIU@MIbEx|d={Y|Pk5TTEpzg1E9ib^wt$<$zfL}xZh zoNu@E20F~QMxRNWT$(pLn5-P^8BACVE+||zX4}%xh%zHi$(%Acy-fyJm^SJ*FF8VQ zd@yB|Kz(Ce1AES`*G}{)#jXoGP|?<-1Q+fuTkq7J@2{n>$A@jgJ4nxwj~t_Yw93*_ zufX15aE@G>Z7shu@$vb}gL8q^F-baIofQ8e*`#T$V485X|3H{$zFBwm>+d38xY7@3 zn-HVuP>lxh3tz3_(w>*p0~1xG5Z_zMX`(mXQV_V$QaJ)6O|KiC-vx_{G%UqdA|DKy zMi6j-z}Re|vHJ6i2_Ed|yD98-HEMO?$6&?_0srXMn4|=UcKt+gnuZr2|EO$kZN~@gVRVS>>8534qf8V zpxY$n^+L)@5oCasvt~hcv9JTuvb(rbJ5`X#9#8D^>$%@EE-zPeq>UK36IyB9g{?3e zgm0~TM+35Z>l`qE6{fJ}Ihg~+5mCOxqq#)`FFj|ed$DjKrf)%Rr8)l!a5;#N`*%Su z+h+c#%F`Xzmm}Xh)1b<|wb{fWb}ALrPp_i(eN4V=GK>a@iD9oo$Yn?^j<#`%ka;4c z&m4+_88D!+q1HBj*FAzch5y!N?Hpc^t2L#+p>B;Nj@V?fYk8t3(%?k(Bu4GX_dy5B zIrK=w0=IB_B&qIY!y!g=vBe85QOjC{M>OUU+&8yx{UurgPe=zd{uBY{ap)(lsl+NG zNIkaAMGPjq^PEVFOu&|k6{8)Ikz67M{Umo$I0hs&GhB1Q!RM%4acm_v;|^e}Q!g_H zrF3MW#*t5Bc*DziB!KMgPQ44|nEm6Zh%}Y|XFNQtn0cr31(7%El=)J<8zd;r5`~31 zF_nN}f@~h2vciFdG0M z;7DPyC;QbmvtihBb5U2k#9bpzoB~9d(t&fB+_RM4&WPpmorq*hX7T%xtwn8^o7os- zxVusIY;QhQ@RU^qzwTCK*LfCVa((C~Y-!k8QO+j*PpqltJH*2xBrnU~so1u&^e&Av z?{nk((RR@%HFv-MB~ULBQq<@U9R<^wdl)=KFg5ZS&If~BhZD1kqKL6XT+a#G;@c;& zGP!%SnYp9vkue+`qPMXF1BcOAc4M{scBpVspx}EC+=60u-$=YxMCxMY-Hw0v$C_hxXji_p2lVS%9abPXAUyf>$*^fT!B-_Bo_s?LU$G-_+OiF?d4HY! zgR&&%32_c_lhQ%HpAi%97U`=iPg%CC4a7C52xqpg5p83N%>HPM%{|1`OYs1O1`o}{#Ctl`Uphp=TN?sWbRwyj^7hc)APM&4EMOYKLt~s+3iM4*?h0T7 z<|3(g=-S-?Q{9|OH*g=EHgV3QO437taW~XTf%Qyms$Y!25%j>;u=I>ZxjUuT!jp*S z?Oy6Zrw!j;!^i!&zMKHBSdk1DWkF4Rn{|9d%Fi=%=qfC z!uf71Ri8c&$%we-v%-o(KLmR6H}ek-7rF9LZz19`hbO_tEq4X@5T z{j-u}PT_C1K1KCyW~`giT#HS&djt}mbDrn)C`DQwPs}O}*8M=A2~8Z7vi5FgJ&D(E z%^%PRTy)3(-|le!N38xkW1PQ|1WB^I0s=@O|WPi#BCOMNgM`_ai+^t z3fCYN4{o6VeSbk3K_U)NZ}H_>gNBHyucV47czu-c2VZPJbQ`IunbcwyY| z6g-@=0=RD*e0KzDj@hs5sy}W_lnQ1W=+D+7d{#z%{WAP<`{Feu_AV&<<*X#iwc&+A zdJb3f_r)D8nX|-?^&jta-Kp#+*S<_uf&_E}GJ{2$>K6v3LoU3sGzQ;p!;`iy&+e%a z?LuT52SM2DwEG4sVwYOOc!Zzesb0`tN z7#gij*UZxE`KJWuTf`^rU1WFm}dG&SmUwB-W_PYpc`@gJ$Ter#f1i)di6Wtw3!Y0?r~vv&~q|fjc<)T^)|g zi1z*3FZ+d{&)@59-5IB9qrB-+)^;pk(oR1+qP}-IrUM`XcY)iQ-&$$~3|J2Z=v7$&DYnu zo%e$G?b7B?P2|lTVq;-g^ZE*whw~bAzz5UMdvN_^gXan%^AfKXn zU|DLGammX({($#~NGy##utu;}8o|rTWjkr;zwI+{b^UBJHGR1RaIoh(Nl{w&h&sMaQoxXF4#om1Z_XS_>88$diLr6 zhxZrfEqMYB?Wv&gpjCF`PylO`m#h5R)c*ce`!RC|8fZSDEES)2$W4qNj+37Oi^IoY zb&!cl_^(Nw4xN3dWzdc0)`(nHEz~u33&=A5DoY7r_o(@93PMZX0Zh=K6lJml6A9pUU z>N$f82sj8h5T4@l6k`z?M;JiW0E8kudVRK*$=XM|A8}`5!}N_>d>)M&6eNVAyVFEq zh*&{R6I;io@xYe_pjFHe!Kvf8K{P!}IU>Sm|1CjoPJN7mUI_d6n&)3HGT#fc339}g zQn2gRh%6m>8BUYZ^)a#C;Aavh^0=Xq;7EizSuqzNv~ zp=c5GqYzUrALR3olMsO@^nupB?+ZA#=V5oGy}!h=r54FnwovXJg3Qz~zjwcRJ-RdZ z=!99wir?*dw>3=9OCO8ng?wtN-5$ulRbpgCHGVvNmRK8S&Yq}UMJ)<9FXkWJKG@vx zkC+f!cKG6__1B4sOt^kzo5s&3w0;M%g5{rE3x?CP)6NA6?4wUbam#m4vqQup8PmRw z+Kw`DR-cP^1>g&Tt#Z7x6e0BMOk2d5IU}D~)+)TTgJG%-ArWj1A)#wl_n~bZ{Ox?Y zVaHUQZ^Ze!4C^#+kYd1Hbc66Vs&`hl8mbLpca5i9CBJPYz*#4C>c=8oB)I3chLZzy zFEPhD8G#F)FNU6Y5+LR9bJjh7^>;$EFXmz>SVIm7zHiW5c_qu+ClF96@Vfd4(U~=J zh{P|04Rn|IEWB7jnQ8q_^UgLmQ)8|n2W1OAc*xc{z);lT{D8E5|B|&`y5)VZ0YUtY zr;0~*E@Dk;QS86aLvg)hm>$BSoZQ%zHDY3XDvFj_5t-mjn`>Y0mDlH^J4{Cz)Co2+aOv}DTI;(e zElt<4iydDV7ofl`tp7+4sEx0j)9}|SjfcMh0q&e2jHV$y+cry>jiQh_npnF`j=@gE zNh9WF94p#1P9Txxq%D^{nr9y`ju1ZV48x~x6oYiG1Jf{TDr7z?4p4d=bRY1NPMUqL z5QUd0*R7P5xXY}kFNK$-8dNa&Xnd4B!Z?MpWa)--`$Icj9$kI%dx7J~n(a%Dngm`SbXs=`jQS3vSoHNw)01DFF|gDwSZNea6w>!Vg4i`vBNB!y~R zD{5Dj6340wN}!n+VJCg2Z>dGr#0lNhVqGmUO45|dB5mB1?#e!V&KPzaIhZRdRIT8B z)iIkB_7G+zwXF5DA`3y@YZo$9RfLchLFVkTlG@~8ao z$Oej6PRT7F`-f9U52FOmiXdGjNA>a&Wc89-xXP?5*)17?vVK*4%y^QtcW zGctc0S{d_qBiFPD7Z>c2@9uF?sNP`h&BLz^uNSiP9h)Un-wo+`6wE-?IswiWh*ZuW zp;drs1AL1ef&x%Je*&L8fueY8;(Pe5B80752aLj0wyP55J({ME1KcO8uk}UgezBGp zkwt7zcNKd@If~Nla!rP#|3$5-#w&%q#Ml1bVWCCaK!kGeyFD016OPIaETAJsBPcgt zIGjMX!d;hA+DsC*SDMey$i_;z-b{*WE_{+1%RJxGH$nBJOdFH3wv=t?$g8T3<+DR% zS|S=iOWpMxa4E;yG+yoT{rB?*rM>#y#&M+uUm6;)Y4BmgUHh@Vr;`Dw$SG0 z#JXsZ*Ut!BxZE5K}kO+Cterzf68|}QAsWFKZ+5U-onG|Ulb-c!U zd8DsfpwkRX$QVSjN_J2Tc^q~0cUHRE_{J z+wH8@_|5|VGR~i5{pxf>+yRF zl8322cJEpBt6xg;Jhr5EX^liN$=a=XV$- z=q2R+9p*Sr=oihdo{Mz2Qd;qfP)@3q&@plb8!%L*g(MOGR9z#v@Ig!p_Y*!gHpapG z&x3#8vv{An=_h7~=9ZT8&1^K#m1$s^Og}p-<;%@UMx7bIeO(zhD~8p+Fgscts7mTZ zyj4Ev`CL>kG{JI4lD<0$t%3J-f9L5`E;|RPGTN4C*q4ZST~NR$J{_km+Wo@0t@+fJ zivbmj++EP1$2K2???UGw{ZbC$=F6%nc%aM(`P|eS3ND9n=hhR3FdZaDX^05Ltc?4c|zr90u zy56Kb$5txoT9XnidF;D|Eb&Ql`!fy~JP(B=SGw9X-6!%UAg)%HLD7F#g7x#f_P< z;a0j#&yScZDJj_pI+ApYpy{?GFSExxW1Fl*!0?*`5*}Wmkma@P%sK&Q`Qh#TW&y7h zuaL?5N;t=aUGf{QPYHbz^mE?$BCa86zp_Fj(%sz_mS9c_I{u1XX`&0VLT(|g2BMif1&Wzh!IQLLr%9<- z=*dY)SP#baJSs?O!(`RgaxZjD2(|eVj<>k)Mk}Ja?n*~s5Hp|LKMc%~%q8u$Ek)L4 z1a>5HDx9HFkx6}XtO{XC1(mUX9^&1WQ>Xv*cAG`#SVT{zGuh{d5nq=`DH}1YnC~pQ zkvcq4`6?_tP8vlK{^W9<&|{dA=Dav=X>bnk6DAvI@1zp>o>e<=EF@Etw!cRRujolT zftdbDJAb#YplVUts!cwB*J-oK#_NQ+7qhtG;8QhZRH5yxziQqzbC?6yr;ACG%5tP7H z($7n<8E>ZvW5Y|d*SMkuH}QFbpSiQLzVSm~`9l!rlY%f5ZhSQanCx0-e)0F48Q&bi z);iX;pGoR&4zYVV)`gw=q9d$LuvAIRY5VQyNa4Bo4B0keelL*xNOOoY| zd^HW~u^YJPPhNBosJxg{fH|*d;wr^dB+B+~KV%LXt{t~XE!L;#%)nm3tv1=trRI!+ zUHlZ6@GknR9OqXN(jw67E($WHCNg6`Gh93e?hjFE#U0#~{n4=U2E=r8!18{yNrc*}Y^HoCG=JcfvZ`ie@ZA#%YWK8SZ3|y$y!Cdl`gq z<57<1(gVo})OqkqaC>(xkfe-=sD&|&rjTXBZpnJz*RsC$_f zs|TY4l{5&|&@v%t9byS6;ZQg-NFoBQD~t3g!P8TD=CB$8PdR% zl!Ej{%BIqtv<;NO#n8kje3!$u$Xf`ZXZQjmlfw z%`T#c^7mba{XNf0_Vg|pfpd{EAZS+-?SIVnEwJdbFD6V!)J)Cd@E~C9#`ChT;1nTA z%`1Vth;4K%t7Z?e2f9w&3Gx4S_AHcOM^`&!+HO5i#6)gZU{oa-*dXx~ii_+)S^Nsm zxtnZvFiJZ;a$i-pfTzEA?iIgSj?ylMrcvFILjwkz@pKF(m?Q@7lss5NL35LDE}u`d zg|SFDN$+}n6iI_rH$wwjlS>p`Ht98XG@vV?Q?;#cndBPZe({+aU5Ry}Q0_8T(M$YuRs;$47MKiU`y;?gKm2UbTe?zUXgQv+-MRJz{Jw;rC;1Nw~ zyc3uDjh3QbiE1lfIeNwEGgR3WR%1Q4ypX?KE|3jt?zrIlLt6Zofn>1iU(*gBX*|#^M+Si z^{-=WZQ4ViBCK1>yrf6D>H!@Z*Vy~J3Sc;UsOw%xUi7xweNIm^Mva)1kE&mg6dOm$tv2jp+`j_uDxeyzask0OufhV)1i#t=k z-Z+|NjHMBDbjtc9l{v3G=P1Rwp|OhX#oF1oob%ZjUE8sai0-R7e_l)$Y|MG;7uMHu zOLJ~A1+!;^KRXJvQa^YQ;{4NVLp^t7?`oaPk|5vdc$3z+NSWZ6Pjgc%^2eQDQNWd= zFK7V}B8CjxFuz-t8Ats4x+rEa>Z?>kXy#B*HTc9`n!iRE1V@vYKM!R4CI*yi4!D8kd(I;guFcA(&n}J6B2R0B z&`Cn`x%IGaI37PtL3r<7pzxkJ#rzWn%~4v#q^hlNT&oZ!&%yUE4?Cr8W=VLiKKW{K zignVcdA6d)NiM=-qLOu7=`J4gTLHki%LLqAK$ozE8!%XEXa-rIyxaqt+iRQa@*p%5Y8rgeA>M}T0if&kazNdA5&w0v}enIrFOVRY#tr#@L4^3 zuzBpX$kD$-PU~5F3_n)!^*z|?`CcrN`n24U@pRk^A^2uq;C4oKbx{Cx&Smb%e1;b1 zQ|7wbQe)4GTiiA2-PbQ-@qDEiKO+Afyn7~S=v}kY=8aA`_~?lK_N6>f&@5evWEU-_k%-G#oXm%n3uw~QWj&q6X_-ukVTP?^Ydv0+U;85}w%^-WWosJO zX=iRMJxi>Wj3V}^x>vJ8bVx^zKeTm+tYcUFRzXVDBBo(!E2}00{E9q&EMtn2;a1jB z*>YDB9-XkOz2ny@q%xpr&Tm(Csy9=#^obOq)?;I`_SKxM>fYYa`j^xhnHj#SXOzYj zvk_CVwoRrHT3I@~7XE!1teVD|X0Fwp@!pb5=T{)#<7*@OHgf?;Bl#u#nLb&6Er^5& zSdA~D=cA;lPT~Qdkkjf0jMsJcE@B0VjBibo^B1EN#AaG+lZTBE?yluGOB$Itmg$a% z9Wcip!M2bA;Z}EfE5FTu&-Zo~BDNNCqA!pQ)_K=GXF}{MLrCdXDQ9 zb?Q>NV!|j&f3K^~JIBf0hXc)y!*1c)5J8TT5y1blRo_Rh=*NXOP2xK5m(j~(+&(dx;!Je%2)M~-9 z=at}-Rj!d|d$AZT^_UEe1k@2pHx->>g%FOMaJHmV*$%+>B`yzA9#oC%GG;nM{(1v> zZ|@9j@bBw6hpR0nHn2RG!uY(LpozFmOUw(1Jss!U2zNBCVCM6V=3NszaaSx6jJ?bVIy+14X2tY11uPt2pxFl9%( z5K5#fOAS179ZUe5({1+x1p;zNun^A@1wcT$8UlVT$gtSx2)QxH(Rl%YTwCgM&bEv6 zEVGaO{d^imAT4yIcX2w}zaG}s@*VClOJ*u!LZkdWYi3)~BL;fbtxC8|z5w@zsE@4H z~}N$JCW9l(#PjgI}Y$ik);+qj!m$l#&V3vRUYr_1-0I3H8XVcA%#MSI-PA zl(ZvpGdT%t6Or|fo4Xml4)EJ0zd<_@&p5h>%>CN*#IKT^L-V{^g~PqjhE|gU00pN? z00kfb^GBSZ(X&wsSo=gCJeVv;6g(`BhYW@vNOP2vZLZ;A|SqE2gnXi zr5}I4uphcUVz-T0C<+eBib*_Ht+Zt&yRgp{fb4lA1mO!%#c58G=b!~u8Irw8P%(}+ z_}ADxY`zn;s?4;XL?5?3EG)3@d-alq={~qH%jy@3NUySU`zs5TYh&ovWj+qxR!CV( z7cOtgeF-jBdho9rrc8H`ezrfBM^aL~g3aLyzoFDF>jO$PC&d0W~KrzNRAV;UKLCxLp_x)rA6nW@;p zK1j1L$X%2rr!!in7OyR}U-@Y@l5-5}UlSNeShD6)zRFw3XveJz zMTVPG>RY-58{9{c{YJz3`c224mYiZl@jRNA$3O-V?2#UQRVM95^Q1-{wzLJP%;efW zRHs1?UcpHdvG98Ci1eW+r-gl#?ihebjTWcmeYWXJ^W?FM7@C0#^wa!EWUImgyi>cY_7TZCrquF>%BwP3Z=eN9 zBMjxej@9R%PW#+>262A6bZQ6Vd<}GN2kLy%ap?oSn4X$H?E`tfj-}h*p7t!#fPKo! zEm=(uGo~^COj~DikN8X{&y}t`%F`w;{YKTSoz%lxFI^iEPVc7!T|k#i3aHsD@&@%s zvrykuJ_)imTq>n3sU`EKHl{7WOj1)ai71|Uk zfwAP8^yV^F!q(YB(-iJ}@P<()poWW9V{3=O;Z)@GW^i+`HpenHahtz{9kt|F{bPU= zy*Aa9`PZPSF?j!a&|3Y+t!l6HHQW^r``}^BPT4MKppg!RigC9Gz9ramC<3(K za-%+s&ecde;&z}P);S*=T-Gt6BftqSut~h>iUWSzZ82-O8AbKQ5<%)4<+Y3JLvry~=qikyItl||aQi~cq$@c8Yj;kovH3PQRq-6P-Y6Qjt&OYi$RWv?c zJ92`PYF=Ht+FUI@YUiFfBqWKm3o>)AUE7zDxv(fcbaisVb%}cV@Dm_C;wMYS?F5v| z+h79hxmh*5rezFPqrA3T@h zRDo?{@6*#Er>t@FFXMUbVQp1;Ow8ysBZ+6UF$TykmX+_!i$@ajcC^fL ztzoEKDHlaD1OlhG@;$?6=lwX7C=!W}|FDst$D!#+JOpNvHfU~qnFS>(X6!D5xzr0C zi(b0Li~qyGM%HN(2RwZQvZOd0i1!=SSgj+DbQp4YE-`BJ79u1bx7LV7yC7p=8lbQ*)#|Mqy44B z+k=`M(-%*=MCs3Dkc;5r0v%rI3*Ca*&hVHys&kgEPo|fAWTq(u)WGBYgyK?e!ADxOg6-TRnMC0?ga*Z(_`UM$e)9JJ&5A zmZQ6Of+=lhrD?hPGof{WcYU01?nJDHh*q<%n`KRIB~DJRYXhUCq8*#0=3F=NJeO|j z5YN}=y-m={Q|CAC3@0)Fc!&w#PU~pQ4%mn@MrsEWYrL7o@?JVy;WCwuS|a{9 zW>EKw3@!hn068z~DfLRUAOzjjz(ZE;DgTGmu@cr)f=7tSsaZ#SxuK7PKBgnvj6>ra znwI8R|J08PqX^TV2ruXz5c|PW!O|w}Pn)1%wT@IS+C=S`tfLILe{*h-FwY4sY`e_( zN;ZvjQaJ$9?0#U~KV)Le=Zxy&vkjMmE1}WHvWGsY8`TXL8EU}egf9GGT96^rp;5iC z%Ytic4EXK+45-sVgAh%Ro5hd!y$j-%f*BY4cBkb`#T9){q60Dq(~hkL;fY#?qP}_b z$qQphs{Y$n<6qYT(Ky{p{Z0j!ck5AwM2=wfjcEun%EvcR-UWb=m>rBh*wts{>LNd3 zQ{C7y3-@FBm;DuAtA=vs^aNgU=&>jLTOAKDZrSOS_LUpwO8d^1j*<*5(r+B^f3&a1 zS_*L9ojDsh6QZDA?!DuzjIQ6i6-93v4W@ejE+=Iu!QUsbZbWJBz}bRjeCfM#ucX&K zNL1N|&TR~K*1mBt?s~TDHqwUJ@Y=)JGHYX$bu#X&_EL8bu9b`#>^Vg<6h=)~fr>`N zk5u5?%6_6uL#4D4M6KHvf6o?}(>&DA2Bw6lFoo#oKP(Xru`<{kP8h1{#=y!^5Jg0u0XXNTBgW$0myX)trxegS&HFNRRu9Ts>;`|ODSGac`|Gl=2{ui~*|2umr(3rxh(cc?{8 z9_ak9Ok>em$|2{Ob8I)txWtgBl-o+0(N;VgJbrRpfYGXHjuJVkVp|mp;N^1PHm77~ zZ)}3Mz|kaF1ro}uwM^2JwttySj$>_tZ&oMLLhHCLnkPbdXSh)T6lac-alygQ9R1@G z8J5RP%pxz{#xZwS1mK#&&beTIo=urBV`O|k?hs_x*Sl{1MM~nNw?Wb>DIO);S1*Y~ zs~X>sk%*O02Xbt%5%MzaFZGOMl#nvxOsV=L=8|y9xbIwwvgfN508em)5Ee7fS#?Fb zX*})sa*|elAJYw%@}*!n@zPw*0_uCFXa8=B4yBa&cttB&FmH!WqDA6Bk_<>6VwJ#2 zaWEOChi0gpcfz40Y+J)jfYw%p(cn_3+^@GEcEP&~RQu(wc+n`j#P!Au9N@yYkH>r> zkYLoeKVi?GUuZ~61J^)4D+#UN6H8bb4T%kEL({*4sjJ}{tl=2IDNk6#p+E)crkM

IN1BiNbWHl#-mv}NW6Bgo@W(4gR8o0T;twiql6LVf*BWoFI z?(@AO-lNo$GmB<1ESYC}e1U=DcfZ zh0FKuXG>lF{ICgO68NhQL~`GP0Tm{d|5L8YFV=ut=dN{}Arb2STRl+Hsr{ zQN{kA*Iz3(3_BCm+6jQS{ z@(|bNUT|P)FAcuIi}etx+&b#BVK(cTd(D32yHE()?)qUGODiD*L9r3Jcq!2sstyj9 z$x{y(=OGk(M&9k45!k(cFVSt}o>mvc6=ia}iP3%{iamf$yCS;D{jZEN@Hmf~W;_#Z z21~a^Jh|kpVxaCL7i{^M7(PhkyIYUJ>t5{CD6moEzQs5k@`C4Wa(^j-5E}s!?L16G zOjZL7j?1uq`fo+@umG`4OVY^u(KLO1_?~z;26S7#PMZo5QtI?Zomt=HiT?9&&J9nd z7jN^ixVInp8eZ)efWn}>J-yF_6oF)Z{{1Trv2#-EUUwwQ&PeoCq3w-vo=-8v8HA`g z|2Cu)hp)Xd)c{%0-(qbl&S}pp(yd-(W6uv}7VFKH6eK3Qu8%*vbq%!6DNry2KKB!R zv|f?ue;9-QL*ayh<^PTSHvNnJ61V*C*snd-nd+lYRULn)Xp{&X(BNeaXVuW)%M3RuDXlB85!X~I~o61O>d~btt z`Yavp`??|rJ~in|lXBnOi6OuOer{d2J}4TOs6@fW>Cb{UCSa0A33{fIbC82%ow#as z$^B5)=AShUZvY6Na%8Vh6D|;QnpK;4J@=e#dRqd>6MsplOvdz4W%svCG>a#B+drIi zQK7KKvpl~!uu~j=itt(!KBvyD!pCdJOX}5R)xV(DHUO7X_&N)b+j6QH+LQpDzZGq^ zB^A(u<;B&$Rh&!}Hc4qfD(v`5gyr#>J{$-bwkJvHForwTPojGpbBzPi@4i{$=x7n| z1b5y2OvCaBbGmH2oNlqn{r~756S<6^McayvAS>+nGnsUsdT$hvKTse zpJs0#_d@;}g}*J-6;GLHZel+`Kv*M0)YDkePbe{j;4YfA-3|Ru^uug@=l+y?WAD9! zw^X??Uo-Rh$M+SiLY)R;ij%57v`9u0E+OTXG0q>z;n%fWZX>pOz#;2&6E9oDCDKPL zG*XOcGBkz}@h}=yThTS-h=HnYA5S@FJ}M;&*);OPP}`%ytN!&@*RpuNB1xklgz9fl z<(nx17YMF!MhP&p#>n8hWmSNvSLoBrumYkPnomOze!@HQ1fNHmWI;Vr*Hj2@hDIZ| zWYLmcu1>T2=de{fRFj~>)su5kZ8Fvz`eloRR0*#J&ZrJ24Gz`f4Je!NYK}CRth6-N zLl-(XOcd7CZUbvN##x1E{CzFLD(OM>1Orc{a-8m1*s>WDlK(py&!iDZtu<4aLB^TL z6JOLXdP6R(QD0t#s!?tY?dYuHZj18H=u5P&xOrE#rJGgV*?~siP|fV=v0!PxkzPI~ zV9fct-^MHFFp#aCb;v@&-0KRfnTGLC&T`4mrMIz6&H0=u@N#EBN?X?DZDLU$J^CsX zB>gLsxkxeyszN@;4;8GULu*jzXj#E!VS-BPG<3bNm{&V$qV^E;fQeboARx@AN%3K$ ztBVS2hCPEgxP02@&jCF;pTc9kp|ClV|C00c#LIe!J7F39{9=GrXF!GKP|QjQw~rxE zixhu!XAj=M-h^ZxdQ3Fpz2OYkTwGcQJo-cjo~Z>c=?2_Si5&@cl*5_KEkC`nikd}O zN9%!rU1L~~CDGY0U~3T#!(k*Hz%VkcO)iN8icgsaE1fZ^V9wF2uub*A=yTzSX2kWp z8w0IJentAr@265Fm*MTGeYx znpQ0Z?Bp2hMOA}mgp$b+O^f7^BV@Ua@_o2%QzUi2@J#?hNSa2U6^li} z(Zd35VF%`Z;tDHHw?-SA0-&sdq74WJK?VMezF0YEhhv|fvSziSQ43JYRdp^M`x6l* zb}S*0;!yD>N`=+;DydR>2gV5G0JdfGykuH7-znEo!;CcupD$x=w~md zdf^eP*1OxV*9JqqFOr%0u+#Fiph)d-ul5r(BHSdkR8BJu$*0L(GdZ}vwV`x&Vp~H} z4k!MBqV&G|yv7pl2z3}+q+DUl5A>Op%_C-4nP_S-O_=k_rw}FE`tPAJ4miwCzgjqa zqnRmm_f&v~dk-j@c6ZECwev@O%cS0dEX}ZawC+L05KBha;X-3My2R^pWNkkQxHEAt z1`|qTRXJ5ay1u*EKjaO z#;*6IYqVSCFSNT_^Ok#|g8}BVM_rXOvPlbWX}$@Zd*nM;cJ}dsM0C(ka&IwDvsAFY z#^R$GUPE&!U(iJ72Tk^N&C~8SBrvfJir{EFArfs%L0qDhAkHxhnw4{kNB5%l@3#@# zpAe&u<5E2qzKM-4!Fd&950iNoyD6GVWgtG483Pp_qxt+hu35B1`}C2@_6aC7Fn&E` zdp*gH&4$c9{VieN#mTiAV30oxPc&Ya&m#X`wPr-0hxg5KCSwL+-&J1xuIXqlnSv=8 zv5XG(dHNXPY0+O2zEk$Zhqhn8Vqn186^THE?;HrbPB8M6da?11P+QL{W`Z^fqnyE& zxnyP~xs*<*VuFVV3KOiLY)*H?bAqM)TXw6HlkBV|c8(AN?dcVq_$|l}A+L~>!1wYW zD`4~Q4`k#&tdCs1AB=8-oF=sVu`rR$dHPrOHiHLZtjY?Ua#U7$NAa8cp*MyS9fZs9 zI8gg_S$nZW_?^s~pTv?tb#C&|lL4=^9(S?(0bidj622}e-#I6!#kMPZ+b}xQMdn-` z4Qy0XAgmAcdKZCS*0m0-;_hgIxD%9B1j_TZDaDvSVIkLF)=0Zxklgvzlo`(-Op<{Wo3)@n7^Tuk&< zUh7|fI4mW8#ESf`VOIrhiFISDr3;Xxqx;DGQ{Mm(n|Vb2*V$n)!+!_R3?}VC&Ug)x zWj3Km?x>0I-fGrYx_wSgwSg7(ncrzIpy_<;#Ed|?6w2v(WGInDe)suuW2x9~4tI0) zenh;!KVI(ScZ)yJ&@Ly?a>(BgPGoZr)XIz)ALyr$EcWiZ8XzE|3|6PYn2o+M}Liw6; z|KoeBd@S4z_#D9dh8IR*ME)NJb+-SAB4lOyFQMF_fBVY+JE+%Tr>PR3TN8!q{G-72 z@%uIzy9cpBn)iOS9i50Jm8qd#%rzYRjud%uQa~9x5vxe?rTZIymaEB4y*+U>vXe4X zGlAEmhcXe8=xH6_RqUM=W zC6K5jR4}xS8&|2+F_j$Qzn`Y=h$oq|=Mq_O zaW+x&Xi}};%Oe%~d;Xp9>fub(C-3w=DV9O5oFMcDjw!~vfwpp&tW3&9mA`#$i?pf5 zl5@8vGi7yM_3y=}F7Y%+8cyXCUNjzFCgwmw&Yg_C-*Bq5 z{7SsyfMSoKl!lX`?_&1{&sHRwr660+LWhOYne8pHpy2kJ(ms0U&~S|C5)gV=HrN;- z3o>BwE1`A=yj~_@#T?qN|e$t z^Pa_qB5Lek(fpxJ1-$7qJVypg3plEf1!|VAbOfJ%#(~6l!zh3ZijMF=YZ#RCR8csR zK)`~{*t@vNY6ib*$-7|ZUpwIJRai*>ztW|XM_Nyp9G8StTdL?r_>trM0&-bLogWf( zJR&FdQx4m3WTB>@yb)l~%^o#Spe3yLpiOsbX-!(ctv$#51*e@C*M_BD-Zh8@IQAJl z^U`@{qZLne$H2E~FdvQ#6Lagz{IRL->&mg7!de?RKZ$=T2Ouw67aHv? zq&MncdAfytf1Vfj76Kn!)vo@BX$RepfReDFW*dtNSD)vP8?xpZMr-JiGnHuPO-U9z z`{Uu)Q9PHOK`YfS-~TQ;W-i-%-n!V~^^VnBf|{^w4LVxj)2FLhKCpJq0g@@&^$6gNS%Zu!9gUT58YoazZX@l}SD0-0J9tmSFalw_8 z+79dXAKCUm&;2rXlIbh440)$jEU~P}*l5KN$U!FUIQS7xzf+GhuXaNjiEYQ7upPdO z{byf7CmD>o-?ONb&Wgd_`rheAo^y;O1q5iulF1)QXY+j>nI&Odyt%xQEH z<;hT-yt~So>nL*Is}*<-6>J<%k!`D2I)s7H?bxktQU17W02s!e=%b|CCW0Ogc}W{g z<;ES?SyKfU*|fNsv=seDwDVvPx)&D16e)DxE2UVZ*0>e6d&V z#CMB43X{3WLrZC#Y#0WJE9?HX*hT|I+*$tOclj2j1u_(%I&G%<-S$G`Hz)qlJT(1p zM75btGx|X+-o`9DmgesP7MDCnCPY_UW{9&?QG(H(B1DIIuv=?32t4==n~oJ1Dpz(6 zeXNVlemEhf1COU6QqRA4s5NvvA%&)vLhoqWwpGqap3zOn4D^$vUjrk|%gt=doFOMz z7v-`n30>}?Tcg()f#h^KC&a+{Qdq<)}_4??tUT{?~c@(nA!MpYVl^KULoA^ zCno{iOdp8u^FBe`OzLc2ATM?LN%BlCnB|7|vy0QKa{g&)6X}^^Ay>e{OI25=Py?!v@5M^V`mM0!ma>k@S}TsqGV8LV&SW0$ z!v;u~u;{fz{+RPEeNYsFu+tFr=HVTX2O?qHLKylx!Ss!(rJzMM+h~Ywdcvy&o|LgF zvvgjj@$`8S+!$*DsEk#Z=?1))pT8)4_Byn1b2FAKABc>$6#jb$8Y*(baE?|L9&6Z@{gBN)zy=#cng{hveRc;w~={|WgE1js%kteM%JAr_LwjKY@$9JGI1Us6O`r(qs zFT}vhfz_{vcT@A|-M)QEX*n%&^zDf^M^c^G75QCL&kezF+blwFO(07|Av{1ch4G>O z;e*+7at_#}V7tMo^ckI6r)*=3_0V#Qvl=(6MlWGOhNR9cJNI5aOr2smb>EWD<{lUi zIjF4u*B$FlfagG}4owtK(CS`*R2ej_g8d+0n-0?C3SoPGXQ}#q+TRlEl>vVkhvzug zlrH%8hG}V$><=~O0djr0MS$RbQ7l6HKcCxy(*Ms~Pwjk*)RP$KiNi?@;RXlM6{m!y z%%GhsJ&3onTjE^EPDN)RQ)gl6ryqG<&&D2eq;Pis8#K5uCLPm>u4y$%4$s0A1|t_H z&U>0B|LYIKuW$Oj%uDVfm(nMLq zk+ljpgM=jP6fquy3y*veypp@l*0PorxmRmdfZRs(JrChYd}TCdDvVL=@#~){7~JKR z7V~E+v3id`W9v*+rayW)ypH~MDU3iTMl+lX+&jQ*?~22JLCyG_p>@@8;bNeN=5|{z zCqEo(r|fndzc0VQEuHB8Zdc9)uJ4Ej3or;>XSbl@57xM80SUUDTL-7M8+hv+tffNT zb9pK7GRzc#ynnr1!HZ>OL92(CJsQ6Ld;>B#Y?mfiTK;}aXBhk~B(I&DxD3|ZH|8$g zN%Q@AxVT^8`$S*T{s8~~XHpLO|70fpXGU=Rzsut-t%+)44#ceo)V9e4%IF<o{3Zu8pfZ}l)O}g z!}}JwiO`m#mYq@&iFjkpZ6D1}v_883y*<9V;j32N{CambYI7*-KB}t{c;mG^}WzC`O zv8E5A0cn7|0QS;ApxLYqwmb`xZFHcZfm|aALx~Va;H1t(+E&e{YcL2H<+LL7ZMEhc ze)1+!m{K_shOrhTibd8$B+R@$NyG$PF?H|AhiptkUD*|Qs^&wA5WSaN=*dC-dtllG zMM6cyGjY>W-9yT~lZk;SduU2C7WJ-ki-G$wtTaf^7AqBqBzS$*ZzYat`;ZQHh;e6j6xY}>YN+qToOjoy83&e&`0b+LZKys3I;RXvoZnwgR;D~67^ zW-bj2>9g+MQH{^x1*^jO8_q{aD@7F-;|gh*Vv7bS;64#L>fPf693`U4e~6ByM_x?R zT3Z2GS1t=0QXi&eS%W?6#A-RoGADQtqL84 zt8gJTw4kj(uFuqb$Dc)eiDfT5B@-g%$rlPqjimV@!{0k9J6OrW5d9j0yND!K#Qzv` zLbL+(Cx_?Mq_9y5+cjM&8nrIg~fe9j`2)N|5<3VWX!DTbZHR^;^o@|LrvIxv2#yYZ_ezua(bKrXCYfnW%jsj&0M1 zBFCPb8~*Re9={9ko0J7LU{N)d#6igMnsf}7de>GMu{5uOQ=#*^TF>Mu=yiXc8IvCk zHidmQ1-0@A>~;+j8oS*@#X%SD8n=rF(HdA8c|WnB^m@d=8{o?1lA)Jv4TR9e1M?*> z)(j37X6r;nReSW@i>OB&LzsSSQ_l;6l2KtXA5(ZPu%eJk9Pzeqm3~H}US%&v-(se0 zjzte!_GmRoR`b*En9)7{X+#Uc*}O8xu^E1br;AtQU-_RBL?(4odoBd*{<2*$#SLdC zw$Alfm|lB;RjqikgB3E?Psn>D8M*hwLVXn>X5o?@n5Fn7?E$Ybkd=;?%|@`@R+ zHn-SaX@#f1g=6mkpVMAZD*n04GjYhtH;R@pWsDYyA5&d|qe5ADUfsev6xu$1}v$nrb4E8?4a}3e7)Io~w62;gt5;tB5qXmCLG( z_;uU7=)USsxu6BwJ3Y0(tBo7}?)r0evSV+SAzKCK6sSo|$Qksbndb`h(ixx|IcNSQ zlW0Y4RdwxXokz}ldq_KhO)wu_ko>v0nX-s{d{ ze8kfYG6h!I!X9+@`URRrkp;8Ocf{C@mu6P++IC4lH5<=82Z$=@g`*7z>SciX(w5it zaz8X9VKXZ`Bbc}A-1kEh(vg@xtjMsa+3P_U>_pW4YNi;f6bY122z2c(q|wyyqR*Q+ z)2%{{Y}q}~+tUZSk4ehBXcUyK)h=H|pl6|GSfp=|{Iv`~?)YV5tupmwh`?WW;z-Hm+L1E`V590~;^qSdO7eqjcdDE>tDH3*% zBjbrC6XB#kl~(F}dT_;?YxzbpNG9uyQl{K%%!rf(0LR!%BE7FeKw`5{#R$%MA=i!L;h*&cC(U z$J1|>qm5mHoihj=Txl1BybOiF(pTK91mAtQ>8U&dg~f0SsaR~w^IXr;1bE~A_55+a zC6b+Bq*jQFi#dS+f9ERRTYcM30FoC=-KLcjr|cH=DB=PKU7ix+WNOa4gLt_l#IKm^ zFYd`1Z62bECoiISffXGzBq7FPn4P+$>ERX84pV&h$1v5=r%pOdJ+M(BzeCCITW}0{ zvgZ5T$5feZQvcN80VC0m4f04wqbHzKUf+G9jJg)GBA@Kid^MLHTHJz;(&HA}6sNxv z01=U66TDUN%zcJ_gX{})a)w=$n?ByXSI%p4C6Ns zXoS?7Rq@JOEFuc5&WnLSPWj4u*j-JDLV`BJ;k-QC=8|-yhB<)>Zbd(Dv~S8Nlk??7 zc&c&f5@cgPG8yJCiTV`^5=?|MgHP|PfSIDH7QqKyejsYN@_?NNp-{Mqu_t^eZVF*h zcj?g0Cv%_)3ls&c9jE#pE;Ns*x&S_!T232M@ZJKCnTU%y?^@Xrpa!+dnu8|zpg20BLM`k_^D3cPoHl`? zF9)2e?@+X4z1q<-#~kmxpak0-V`CuTE%o084eMW*jhPjK*~0$getqHm<~oIje!m=V zVh-LAwlw2WcD8e=)r`z@AzRnsD6Pwt)gV}SLARtG+4Oz`2;7QAB;OJN$_1Fi?3bPU z?to>;o8PH!PeTkJPUl|2a)0d8g3=3>Zgu57jN3n_ur{`0r~;MQ5JGmc4Lsf*YZ{|6&MO{ue{Q%)!F(e;b08e`%8cpH~@e znK)trV({x9FXtC#M%EYw1qAvX#J|zgFK&Fg|4>GIZ1>f|c7rWk2zg!f!PR|7eyySZYt*kyCSsYU0JejALMXWHkf&;LAl6?mb9V#&FbqEB^;!3>4ysSiX)ir$tV z1OysTPh6@LU}^4|&pf#ADTp#5nh`sy{Nj}|Roh0y(kvVluI@A5#rD=Id2K&c16ne( zZ_^#|ZAjG(G+9hOkdk+O{7W!G2Av?ouk0fcW0c_{LuRE5=ox0ht`k7?X`CL9UCB2^ zOC6`P%`F~!rH(Q{G_o2dc!k2Ab+w$x9 zi1pPQ@N4YNme+&CW8YzpJ+rHu*@VF_bF$n0@4iH8dr+bJ)$qo5N6M$*H(ucK;n$udBhP$#k z^*}RA8&@KWKUeHN00CKvg|>#vIGlF?Rp`ni%KIC@Z!vX@zS&z6X3Dml_s zan0tLvP?tb<_THGh3NG15YGPL_NTWNZO=bft>vi1Iu0q-PJtvjLkc9Ts8OA`QPfJv zqyH2&~@dzxH zKg~)fZsXm0WaRL|c{<4f+O4V4QF|i7Kin-^%#2(DOP_t`b&CnnX>%Dem86SR8=j@S z%TE#73JyI*^S-{PMy7kE7?<9Pe2fTecsCFzpm?208LnSsc2q9D`DV3yS5iM@9zv%| zFf{K4gM+mgtatrP;1axlz70F`5Ar!0)6o-Refie~&aC1uy zR47DKawm*2sEsc2)kl@xE0(g*!T~L>oOzF-Xd2uMg z=w0%-q>7*+6|zsXJuu{e*Kg4Raju&J_frvrDj6Rqd)ePAuhcOK1O;?a>7b8&dW^@f zvJ?pTwodPwKJH3hufRBiSu@%UP@d>zW_lQW!rvJ5TNv(=vQn7fQ80PdLtr(zn*jMR z`zaQ1h|7hMKA7cIzp;c?1admC>-KHTjPYms`q zL9UGOpyDYG(zvv~R79wECE}I5eigj-khihwRF&lUt)4^qbB*>xPL)hJkB@(lu%`nk zQr0&S7k!%*iLkzm%S)#9;W|k1tQZxhxHjhT;~0ICU1yUh%V30->2%p~PAckb)JGH3 z#JGr5W**=Fyt7$2nVn-1tFCduv|K~hM780CZX$qCO&ns}$Dj^_4HGm;zYU5JfUuB{ z{3gAz;NljZ&64h|{O+``;n}t?J~lamKT@#S)-5q{H9>I!(%>nZ2W%26$;lUtfJ%Px z_o-m6l=V=sAIPkLuO641#G^OWKQ-dpKuv}$Y4=JeMl&-Cuna>+3-j!FbQOq6*K;(us?^kwP%eovj9A~~0;mP)9y_~Z@fI=U5 zagO=bp#Y&!5Drs%(TbF8W>>A&Yg#5s3Hb+3V+Ct~${4)a4sX^US`ai4 z6h{2a`EgH8QN%i0@<+RiHlA#-_eX`BCe|%KK4IrjfnG~Y$gWCU)z??k;_BcnBbp#% zb^dP2dR`vMmhvi%i5W<=d4?3ZxEI6Rh{@^PF)jJ-1CqHh>_ZC}@nZrf=a_1yyQ26f zVm2~#x&#|*dfUTN`g?UhoGG5ZIpAgsfrjFq09~MpV;n;G-pVdXI#(ih{5?=C3WwwA zi?7~KV|Kfy$sC!tDOCbW*F3CbMQ&&DcyWW)DHsXa9(VMd_a~Dk{Wf{ZJh@T^1}^g5 z$3|Sco$a-VOOb+L{p>9eIB%yh6ZfV-C@!#DHGH<4XfbZgkVSAtt>ENFom1fN%BmjL zUDmeJ&9FETKc#|vP(nF1^SPcaDHZugDIj+jE0zd@HypX7!Hk?w-#`#atH!9My?n)4 zdLr;P`{e%`;M#jYsu?v49}!?vOd~`tkbW65=Dg|2lWu(Ou+k+a)7P3!;6W@PKJI); zQ^e(qEhi(e*`A)ad*7E{fz|<x>Ec#}N3gXF>oO@5GZIUbBP0uf-l-oHV)irrs*Yk2=O)_}0u=1?0$wg>oASh)AHmOg*ICFhlq4 zN7Q_!jmm5#n%x9HcmACDZ!`Zz_Oky^vX_(XKTt6z|FRjlWB*@>`pFSuw_^E|XebOS z9DxhUp|QsHC3v@59+t)Z+~RU zg{RI&FzD~RcOR)5a(B$6x?fCWiIPt|*Sr-LDZ|>Q-UU|g^&!qgRlk9{8x~j!iw;-h zvwbD*#fOHwe36)y_3^HL(^G1H z#ArNn1JVXvlE!X4=hlee*R`?G1796xix9iAKmirK3;HFXTch7w)Rfc1txn~_{JgnO zFN$I0hcbiB*)fa?kx- z{FZHNP*ecWkT@aP>uCnD2E-K<0h0JTTb<0o{$0w#78Y}}Wi)XXlt~odr{d=PzjneJ z)C5yM8M?Ju`obamomk-erz9a+k;D|%PScjl@x^zRo7E^$!t`YZd766+l~RG9w^{e+ zKa`>two7GP%FLxyMGSw1TGd^TJqM{{*rd@b6Rew;Toj5JfW?6{Jg4jq{^i0qWBsr= zI~z}fDCtm)%{=ptq)|%T6mbGsnk#-zAnPnmOd|HIxQ{HM@+X)`YOD}*YQvdGlBP@M z!Jm|pOEJho5f@1eeO)TEnZ?x7DL!gQ^!Ozz7P=YDH-E!c2*)tI$9H4o(w}tC&q8h< z9pM40@FVXXkMQC<-sY-gezZM2+kGcVrD^NILxt@=tofl*mt+Bv(V%S}agC*|Dl0u)7Dc>|13i9R{-_t=>)F{7Q zja-e$1R@>{hBTGJVaj{S+#gNGjgtum_*yE z3pG4O@TrFs0Te^JNDA3RUP<&$-li$p?QIt#8blY9JOe$~wuJ~znuF>EYK!0s+N3%P z-p0fLBSPx1sM=)?n^x-_BJ$(Wp`GjZYX{Q9h|Q5^S(lPD7LvU}TXxYL!R-ue@@cwg zO%+`+SIQqvck%^V*6OTLuHuQySGL?_QkfEVpoF)WM5iZoo^_QeYdAV3cA=u+4=-_C z3F@PY3-u{ia3)Dmt2sPwBc#!)hnLR?0N=PQYI#L34qLVnG>{Hd-C9K$w|nd0b0;%- z5Jc`DHilPVqRtdvvC7X$tBRkj@_}2Y z#s_TzzQq2ZxPFL<$ZEL*zJ}Xxm>|y*K79Y2=85iClwX1GOI1>!MAh2Uk7qfS5vF*= zpxiZ~LR+@93uV`?W0#`3vxmz=bkcaoX&ffDD6zVQ#50q#-_-$yKqL39j6l9KrD4x!)L(-B#Esz|DH_t(f$`-o)GLp>!gv!=CU-;) zWzf`;jFHpq3{T2oi3&d&=GixKq%q%x3?NxSaMkbH)ckR}2LM&Gd zL^jH2hzDJZchGV&m(s&pQ^07vHS#urX+vMM7yKxzMGw=X~#>M)s4+| zl7v9n-pIDLki*^ii6kC)v0;;Rw1;xJrOwFf6T!?#X`mTYj=7YIHI${sfwN z-mWW#`jbXLTMu6Av{#rQ{7ps1uXko}MjN3xj%2NC)8z8_5_wOiNiYyR4&2>+l28aT zwam6dd}~swhjzta&CRei6tn3(vG_5+CV7_@8P$?$9)I`WmYqpMa_Xgm91ZF&a@TPq z)z18TGCIrOkH^lC`x8JmzH}iJ*Mz)?)F}OR`v_3?cbx;nZPNs@oS5kQTlddG|Ag_1 ztae<2cbJ&<+-X(x!##9x36kor-7(shV=O|wEVXXN7bw> zjJjc==9<%HL)BP6Pt7>yut2(6317qbo3nEGBgj1Rt&03{Q9ORvW(u<}#^6Y2v@vk& z(|8Uq@PoDizH$c25W+rVCR~fOJvIlcpV$+&L!5UDEr;LoX0YWV4xULL<( z6@8j|1drw7MUQm=_0})7^ZR89X3tOieQOTk6@zNO@u<i-PlOND^aO)8?<0-!SR{wb73s{XlYO0_rZutu_p{cX74(p!*`_K zsW^w2J_oMjx}mq6;G)BiKz#-G0wDt`Al-*Z&V$Xx!5;u&LpB>+#Az&-(JeDv^ zHF(7d7PvFOTsO5;UEuq)?>zj^^M4WA{~ME$h5bK-b_tHm97)^tt^v~+lVO#Y0Qxu) zY;hPqy5t8QjH$EKCP4wVUaP=gGF$0L(xsP|x*2Yy8MjAyu(qD>qqFa#d+xs(Uldb)Y2~k%Cuwbcr@yIf zg^Cqdttg5&qa}N5mGK2R?MgyowqgSKu`wR<{#piEZza#ouG-pdj)NrRX-e%ece}=* zW*vx-Pf_`3`!#?M>NYdXzgto6*@n(r=^Om0y(9Q9fyZs)prv3#=CLFvUAKW~-EY2h zEAHbhXyo$=4gku+nm9MXXYGb+9xlwg>#e$|NN^i>i52chCCfN)K^=mYuqHElb^_a4 zztuWfv*A6)6*e?7a}MAFG}xs7xFEM1yjm^qw?)=m^}8Kh294?Yj1dN=h0IMw!F%&~ zCq#MewKmG^I$t2wJU5|v2CLEwqOEG7Hh3wyvYgdH8MFBTn1O*HUZBF=g9=wr#`qq< zo+VhW=e1Lg#=Y|Q5C;=OwGvidN<$RT4!@-bitGJI5as$M9dt&S@OjueJ^@{F~kDautvXdG)$hGvpzhBRcdgfphMBEJrA;iju; zbmSbgYP3V+$;dOpaJ##ytE5AAi`lMx2bch9sAs6;kU~k~GAEj(4b{_qdz9Qs>cB7B*(1dH`j6gy(A(QT<1PI>nG5@A~HrEx-{(@d4?INhfeS8q(Z_Aga zFUh;h*$FtS(D@8i$1KVx(pCgZxv%=(uf1v?SxcGhkC-SS9q3}u#pUHX_He5AFeg%sNUQRlO64K0c0It$y zTOw~moeegt56hD{L=8A1v;{~XI%MJpw`w_{hhU9lxgg+qyV^UY6cCTL_SQkQKeCbI z$-Fb82I~@R;uo4xHkqJ|$2~zhSpjZWCM?jMb+uiYuOfp~J3r+Qu)2}>Y@<&2{Q-ZkWJ$C5b4!~U`JZLQpe&TD{aci)gl#J1 zNrkzZ9cFdr(lc9vR2TATO_|Vx??C<5kEM(j8|y4v(z4}dI5`!TP_C%J@e)*)Vy;+S z7caUP*OtatRYMPDtOK)zrgT#^;)RI@S@<4Pp0R|q=5!fy0gFHj{X{pN5qRz%dKzxi zmvd*W`@6TDPR@Uot#^J`!Vdov^yGsJighucFhoaMXCAROx-?{@F2U-Rbu;7b{E;Cq zhA%e}sMKM&V(|keJkN-E`S8ZU&Fbp(SRV*PzWTMuZqhAOJnH#943A1~D-xTcHeN(rNc>M=wh9-xYJY`ttt5(hccNFeFAS8H(* z$s*CFdp1I>Uc~JoZ?~kp2;Fyu%7FX7?4|gv!;zTdcrl)x8PWsH1%g8i;Z~P!RCz+X z*P~c@Fc|kx!!;hP*Q-h?ZK22j``)QBc*z0DDDFn0nJzVJ{?&NF-f`fP(hX>re+8u- z%c19kt)iB-Vs(xOm~1~Jvn{V@{)26U8+jMn@h=N zmgM}<(C4(g3r8`-+^bm#y^j(e4n?0~CjgnqLq^3$@k*A#9$RDsQf{ce=}|S2NtF_F z&xr}p*i#~H_}V5TRLn>#@=W^5Cy^D7J(5csV!pGTi%k#Dx>vOe%|-e-OT5Ld#U5Zo z+Dz~V7T^$G3NX0!vCB>w$oGw8ec-v1h9iPm?XTYZVJAV8nYA*IT1RQ6EqirUokXrR zrM7X%K7EpRGz@YcnqUX>Rz^WJSMN5z*Bj>YZct&=HnKje*Nh6?V5PdQz%(c`O&?JE6;rhYjo?K$I93vA09 zwU`r@I?V7fhpoh^XKSZoAq7SiW5>94#HaEC4gVzlD@P*6+`Z=c{cVYV>br<}L=Xrw zxRWeG>%j9`W~nkR*40GYEoFI-mHg6{l=irs%c;x_5v|0yv{qw0re40n>j1t`yavlv z4%K%ggr)by>uY{dNIXc_hZp2+QiZHmu6)fiMHq@F3X8Cd_5o1NoH$>4^Qu@w#(1g! z>a!CsmBE2Y!ShP+t%$FIshBL%eR=i%`FLoKL-WYUA##ee%mBnQgqPl107%P2{I%KLiDwNcc%8-#$e{hD1>zoFW>NFEX+FN5r_I zhlc(gA)-V}wo9&r6VCv7ioyDTU6#I2r|YE<2tn=7IZYTL{bRjaRr-~cZ-p4RGNhu$c%Gd^6@khgSqj@?!4m86&RJz^6LOSo(s_|u0L_Q zoMg4$%aLFoM5QbjhIYoTk+??P^WfIiF78Q!hH}kSt{(d5gM&i1`co`)3nF-RzFEnG z_>^KpU)9P$cy`t3F4S`=M&~KMe@gCH+HetUT~K>B|43Rv#yn~59$Gv`FXw6$9XHPt zuWHqHWzJX74m2yjAM0oG%N%S2*UJa?`=X}U;GNK~gC6%80|!+GOgA?lz;Z0>dzPSE zcOb|BqZFO)7WBP;qOUq30esP!+Il#UQlk5<+y4oB(y1^Yj{GE?a zgT`URdg+9a#T;LozOTc=0EcloC&BPVz3$g`Ow}Mm7{=$k+>0F{o@(tLH9&C^Rjp^H zNfnh?Na-%D?fQ~jHge1VoQ?im+WqFS)EJq20pah)PwV%({?8&aWLX7f4{nLNyUU{% zt`F|s5zGcJ`E3KJ9}6+{?u5t<3Bd!48M& z<{ctbpi}(w&K`;>z4trp?3H~UZE$z|MPw7I%IST{C37;4syxq7;T>Vv^ z0ju@wDMi6RS)M9kj<1d?VftByOA&XW!$sPNHQwCktFcz0GGtTPPIk3C8~7tsF*D|U zRekd(a7{!9r#K!)PKUhYTRy&G2$vX{=Q3t0GxofHa#Q|zyy2&X`EhoGle~9Pt#f&o z?yZVLBGiVB2;c_+)QmaVB7t759R-+nm(l&Dm&depE| z3?fksJ&?#9Y1}jgQg>X?JY_GARL4)XtEvktG`F_5r16=PJ5hHkZG;y4ZwA>WnRw6F zz32N~r_Za2cC@-w*~#-QnI_s$BY0h*f&Skw+wbG%9-Do)?uQp+P`}__%?~_ceeW;! zw+0V60)@qfq!(a;0D@%r&d-{uq_=zizj(O5Q!w4R^a|%ba)|}!3sQ@jJ?x%2qFx`} zp}Y#p-6TJ;4cd@q99wR`%2iy__6+=m1+ccbCb^1?McosV{OFN;C^#UyBB#u=9}cD2 zd30&3aEGs^%-uPZmN3kS!@>3+f%U+SnbXL$71x=>9=J?opQLX`(r+n7F^j6VDeRZn z>)BlkhEsWAjq^P=WTvYMN>yl0abuLb*^|4xSRuQO;W(NgPX_-Oo$1`w$c|tjVzHeg4jXA|$>{j=!teIv$1mX!)_oYwwGMoCy!4+eaF2vN*%etq(9(7z}AWmGN z!dhk!4vl{uAFGwtAh5d<;Pa}LfF@rBBV#Y;%LyLlhz~a|pj+4(H4inH+6mJ>hE4m?YeSPYb=KL zL}3?wy`n%)XZxkoM#Fh0TwP8Fy)WeAjFl$a!o6kKbIZ3Hm|seWE9LoQs{i{1(b^O( z5I%WNcpzw{^)D0O0)eO47;Vy;L5>z3&-8&6b2KLNJ~yPGV|M?k zWPNiWBn)aie5oe;N4IDenH^e^8%Jum>TSnmVUWKj&+S&L&S|t&=!l*b1y!*gS`b+! zsuY;&_5uqv5bQV4#E_n6lWK%G9C+$TthNA{g!wpYXr-Jumv^}l-$H5neW+Eou{MkC-la zdqt|SwVhw~%JmFtht%B}CjIftnC&>gXN?kfZl@723=dRC~4BYvkYe!IFs$|f3MjG z_QsOZzeXwq3Wx;_0#llVU;0*;orQL1(FJrQ0IamGRiV)oG%Q;tGAf6SPK5>s7^3s% zV?FDoTsP}{d+0)J<*7t2N8gqr12pAYh!NeL9T|A>MNIx~>eOSGEX)!8UetK2%}Ktk zQX=ATkPkyKaWY{e7-meFqf(sqt>}{U9_%}X+fknc`G7t9D4@OjbD9Y%2;1wc#J0YQ zCCcZ<&3j`_8%%SG#pd-@6qIXSXN7ZDr0B&gviMQ~18}|IdTkcsuF4-pKzkb1SzF-5p(DC=Z31L~&?WO9^{)EhLkPse4!}5g+kzkPFI;;@Sv0VO4eAM7>FP?>J zZu!|751SVTwUSuFDr`m2vN|19@{n1zv7yyLrm=e|nzUJxSdH(B5(d5)cWa*P)R=WY z1ipvu`(JImU9or!pY7Jz9d9Xep>zW-rkc0?fTuQ5b>fmN;^4+of1X9Qjb3sr&_re; zeU^J(fF_W#&z32eq@|t&{gcPSvsCSJ)w>NvK!rZ7$qJ}zZIKbACAkVMy_t?6+ zz@H+Qyg+`*Cd!(8H$WKZrmf6MmB@(En~zVeWT#vh$0;en80mcD*3nJ}hn|^lfWi3- zLfupvc#@03k52#6qfUJw^~%}ERm3RA`;fpC!_?T<fRE8IN(d z3RFk=t!kaSvyW2oi7n~rg4LYru9nl@a3TdGLj-@d?HV`i`+U!|$T{CUXPTJTEU*>A z#oN1+|Lr15y=uwVPl|DNw>{iVLdbA$IX5bg74hthrB%=mGL_{3u$O&%1`$D5d4N-W zI`WRyk+tPA3zwM6p~Y8?#um9M#%QzD7CQ zZ+=-`B((JskUQ7L5DRKcOj|5dUj$Qk&Wp=6N$SaKoCC?T0|zo(fLk|cdfbzGKx0A( ztt7nv*QvkJgC@p*lL!A}-huf)M&o9*XR1iskowN*{+J+4QzllDw%7<0#^d@xrFUoL zA&`#}$>bVM5WPPZ)g?*;TovYO5sb7>XIxrT$yUzl0Po%9Vxj&3M=wWtdjG$gKToY+ zKMd4gp&;}0_IIrh6-n+(;%$S9o!h(65V`Iw#W~apagNJ&+CZ(>L2eiq)jKfhUNq2y zAN4w$=48k-l8TnJV1G-_+BpyOd;mvFVUbayk$to58zKK9#-4rG8baFOC=+K9M1_o2 z39^oLg-Pcu2~~fX4ft&QY^4<@cO^sc^{_ z8np`;wgrF+8&X#y8*_K#zAEN(!mV!XCi>rZ^KKxE2pLF zE!xpy-i>~*+(J`oUt~F)-{9wSnj>|3ZahMkF&RHe zyxrKaOgjRf?=~*NTbFV?GyZId6CAcxPuH&Tq6~!gj}1j&P2_(1k>AO$DB-oNrwr#0 zy4fjrVOPqd5zL$oc~V%XwJ72%Mge;jSBpOHR37Z6HCrG0EO*!_f2hlJS0-w#50u_X z(}*0P+M#Y<`tTwQyin(_Dj1J9o9!F9Q21}HCzs&8SYt^;gK*v#FCDHAI^8xmc%v1v zsUS#OG0|v#PUsSgH=kq}F-u+C^;rYK3ktdnE!zZb`)q?hWb9Q;-(6K*Ql~0Ig0g)z zE|0vdmhq!UqCDHC4V|^TU5(Fck}fwzS6_7AQ}b&|;b`fLwO>L0$S}#ibUop;e-@^R zt=qvurk+l9MYh&msfu_8)O5Ns>$C23_TGWnU2orD@0IS7K|z}_sGJ*DSODZ!U{+Lmd^dOgIv0{S8#Y4C;j- z4Ls~$2q5VXH}u9+V!-oqY}r&G&&E^TQ{g8$Pd>=T_57JK!ur8 zp85kUGu`WV!QkI2A*0NidLkp4FtHL~^jCca2=Un-j(R7h*&E4%-imKx?AC&rb zmk4`Q!W3-xG)=XyuO`lli&bmb{!&KiLy3%+u3cXvKo5@I@QQ%@t>(h1V~tES7F5MD z+T12Gs8^M=w2fYl_IPuDT9g{n8Kq){4`I!V9R`htg2RQD1wnHZ78^uy!QGqxN`yM) z6xn>Cm#@a5&Zb}CnML9vG!}IFkJenT8QoRqg?wEqhv&7H=aL+pDHnyqIjKg1Z`A=n zemS&|9+<$El)A-|Zs5Q(<1BMZP^F5&imvSDE9wwMStDJb3f=YJmj@jnOyMDfU*yFd9aKT$6WvV44%OOVY4LZ`-!?wYv4F|M3aZIZ3Y2j2}z*&*K1M8AgeGKSw+zr`d z+WyKdXblS;F+#OI`C=7c@8L* zuMo&Fo#3M}4$yw~Jl}bXJ(h{ZYg~>fSFm^lxMgch315=@`AZ3olZ9Mv8cVHQiL;tI zo4%-wIC-3E&3{KxHtsLlp8WCg>qy_7#TEdkU>+KZRl4DVK9%J%!rN7?cnS@7QE(T? zwga+mROfn!WEJ;qxt)WLB$y$QRgL{?RF)j+F)%MJKxWAtcKLf~D>sJ~4f;EnWAwPP{Nkizv zP+w{v-QL-TH=T&Xqn(Trya|xECJ=ic;?J=X+tUSVdTWsGgFtsOclrt-JN zXI8rvHla-$(}K7qRCKygHj*S>PqciMB0!Y}>YN+qTVne2;D0wr$(CZQHK<8&y$N@fxp{JF=aT zF=DT|#$-OjRfTR|Ka-w=rNm;X-u3#9TaiN~w#@{!@bzhqLn@w6=R716P}b3za-@hL zqI@7O=Ja+_B2WKW8ox|@eRx`hFO}EJ_PNJ4m6r;)xISM_C9fk&TO9spcsp&aWhZ`m zFGvcxUZ-$lGsulzoE_B#L7csgJt_8lJZj6Tc`Go>Tj1(Nix5BxF2qsFaqKUtA=oWbE zpjgCz8{Tl1{UVVLcvM7Ng3{1NueSwC)tO(JEkb`wdmaSyAtLOp{tOGB=^RfAYT9CJ z`H(1B8$8jn7SG>b({8&7CeD?#(va?ob}oCb$hW}Q>oR<6b)=XPoKrMi6w>w6`h+2; zCz6Y=wJ)R;Z@-+oLob95fh-p-6bCS|kCxA{(PFsoAUUrt!Cvl*rj?jz`f1r5-I;zs zt6Aliw&LnFpGdFfGdJwCm;=h$i8vC>wNMD2iV4^lWSl-Azfx(;IwH`pi!&_+uxd8g zr*pO`^=*3Ig5rX+mr`0JOs9%=bv2?RzFKs=+(ZbiswbtHaC@WO;&B{57&y3PY`Mdj zW*kQoVTaPx#TLq*)ZXF6TWVSuRBe|~GBi+KR$5(N5qddrb7_=6Xv84}MT5%PT~=3_ zdX-IO>m7=2)`rk?Sh*1Xuc>lR0sP2d+7w4iq}jw|ZiWg^OTNq0yd|r75_5kUOU1<*@oy9_8IA(hDmq z?7~E(s!V2B^h#OFLZUt@?B!4y)ZT`-2{B>{oXH$AeM2mM?%H`QiTTCE&~*X9vw*QZfKw^hiMSM)1;;Li%cw@C)#`SzZmXc#r52ZpfqA4=A>^|7N zm}V@ZC?S>RSk%Q_PIM8a1P=!M?Em_@;OSF95ct^hy3^iTIsRYS~{-JiqDR`iKFDZhh{_lHQk-vorO zW_)YI-PC#mMVFO+^g@~!QP+K(%R=WOd^VQkyan@`vGO4nZ= z?dI-(XReFw^@;22-5pxlA_72KA*S{}LB# zEY)D5@up02)VN-$U8EEY@NEggX_u<5*svb+FJ(6mBC+c2=|U`~a7A6)p_-QC(S|)o z-ABiizAb-*ycSyJ_UY#2_==2mY%!NFjAfr0v0?uN9dm$-6H8TOmH9FjRFdJ=^@LvK zQVJ@1=lsmt$iO#N!u1PEN~@9as2gv^6osMLs;GS;5o_6ROGajMzSTMblUY)kVx{W- z$T%8in@#yVY(e0;f)m=}K(>!gXOAIsfiCUNY5W!FZsN&?a0Ha%E-G zqo&+kYi^2aG{VsOc)=dBdcG-x*fKw0@g3&c$Q3O_LnsXsC;OVCan;%Xf%X*(AiSVBF?UJo#WK z;44@oTRCS!+O%*y1ZI@lVP#M)CR-2{otnQ2?Q#4-y8Z~T27orKOd3{|BbAmP9)VD2 z3?_g}6=7nNfL*;@)Ie-wHV03b2q;6d#AYB(Rp=zs;6Y!KLXLKFGMFYptL|M%_~=u2 z0e3-tL8W4h9ktmU?f@XTAN9Hr#rj!hd2GiVAjBeYi#I5=9o@u83h>x~z{xj|Z&aQM zQM}*~bO29`a?};8poX<6N-a-2sXcKfd|`tapB3WBcc%JWxllFJa^Z^GH`|fpN2=D} zSVP*US6BSuOr9N5?>1q2m5s7-a@~(nd5acT?ovhFG0`w)rAQ%8SpGA+@q9m4^0=?( z1Cww%N)US_?%O!3#fgRvf%D#q24y(n`q`RO0t_H||@`s$J3wa?z$#KC&;CA9G za;6wcsZD}WN~+Vgih6lKL-4~^9?`{EqcCZa3YHFIlhQ}I|5X|=s5j1<5dsW{w(!nu z{`L^NOVbSgthG<+I#k(%^A*8D`Kcl!K;CAlO9OWu2m(}6i8P81=_j+yi@VqU-2^B| zHCUhqW`(EYdvmo8ic_4wrRfMewuDrVoHdm+^ycOBM$;tud}~QCur+pRcLO+t4K%uPY~sqKe9WqZUXHT+O$++_ z@M`MI`SF7UKts`AqPmaM@eM|@K;FGn|*+reZMg_ zFK8Dx8zJ2LyYT~cpLkFnCMndMH2#&qDc+4;_C!U3X!L0Ly*b*!SUV`&VS`RgTr0Y! ze@{K(3bp@DY$`tileSX~<;XL3e}`)1T+>>M6}Srj5NlgAJC%kiTHvnoWv(w*n3S~jSS zA(qbb;8+N`pX1R;o~W6b<02s~+C2rQe>mnn+4sBjZKdvbss4>Kmaz9;@tmRA7_wUt z0BlE1`={8INx9#bD8u~mrZ1N->TLf!)!VCShdJDRi~ak)y*us|%Ln^USe{N!{i_>O zhL|P8dPDP@E!9acO=}DF=xg>~D#Nsr=l|x^h?Iqjdnk&@%hsE0l)B9PRm}>>Vf-X+ zO};ysh;h~34q@=U_6`Ak*{d8uUeHA|eG6WZ`WHJ9D zqz)2~+ZYpV?^*Zlk$Zf%Mc>CER!4U4&9H#tc2vpH+lu_|1%Eu(bxe#^=D4E#8eAYm zW`fx-Rp*!z-M#{N{p$O1^|?DdUh|JcHna~+`g+nLoq!Z>+b^w*>r75+SC<^duSxJ| zuPVC0UCB?dBDd;8Y|X(sJJGNY!tS4!>38^;7P#ugq&QzY$%Uf`rH|3eNrA=A)xDNu z+3(eUt3wjfG?Yy}(6mwqEeFr4?uI$kOk}5y&pPKVS~eNSEu(6`>kM$oq%+_1H|gB5 z*~*@%dtB?3zKPi)eZADPiMryEl+p;eRLh0za<{Tsxp4b5>%i)DJ%OjfY4ertgQ&Ub z@NA~h4|Cjx>??&0dDdon3i6pN{On%wIkVl|A5+GjgWCPpkDVtKX);mUuGP=(;Vhm; zl>4>n)m^eg-dqd?sWZBfokQ2p{qg$f`Z-dZJkn=$_i|xDptEr|k4mGf`9xVMa9TDY ze5C*a1zoJA)Xh@CcaP;GHXz66Ejr~#?r(pmztR{a?-Vb-BMHy9W9{XsTEDgXdWJW& zPr>Hzayr)YvE|yY#>Q=>qs@jSg>;#?fNx>zbHgY$!&n3(9~ z1?vf5-4y|7@>MOIsP+PK&bu#tz_A@%EZMv;p4D0pqR=zz*)7-8iFY;we z)BUd~7}E>LPW2sz+0CQXBbNEv>Ll>*U2BOv58w^)KKIWdy?sQ_&}bXN&t$Fam!5om zU3?&;T#<1tJKHgnn+WVG8&7pkjFm`_0l~!A-QuCEz=9@)8B;fs>K)le)h!hCUX)!A zY6Vfpz6`ep*;MZwgl1!~WH#8B*zNPt+QD7*aBHK13nX!m-Ss}Et1{lhi(zj>iRxdB z2gYa(NpNMK31UCMiE?QY1|+5*RETln@UUG8pF%1R5UhO|lRV}oF+(XWcVfegMI0j! zjrC&PzaKD{$E+aJoW4v)dTqZ~IC`$b1_|`Ull6y=PMX|davOmlF)OY&rjep9hI#1( z22){esHX*_u+V|C#+H7pYC1YLM`>t_GQxVTEeHXa?rotPxBHiq4EooA?EBL;dzovt zhZ~!BFREG9wM^2d+*~9uF|t}CsJnKh=}yUDVKFgx&()^tf_l7D0~?dlU-p&o*t_k^ zf)i{=95j`QJnZWbJP)?5+OacK*`IF;(KaT|=Or9iB{shIU#s>GdQ}Tr8@hVkHay7_ zBg(k7b4%RA9JBJ^Y7RGehlGU*57virz`ksaEZFsTWtMkoP*PUEy? zErXF@)U~vhuo2fmnV8VUr&tMJXb( zj@uH`99$F?lq{BA&G0BG%)+l9#ol%awZCk(rg5O)A=YR}5+E@` z4kw4l|F)=CODMEUj`K+_Lr87|LwHEQVC!haUm>lqqoree31qEI3|(OKZ1DdG4ce-cD8nNWC5F z@oD3J{sE1zk`D2|EZdsNR(5x&dN_)9H(isys8a=mt*_Wsa=8|6tUnt$8v1pmy$`)I zr2oO*36uKqwazv&T!@h)1TUrNAIMxmijmY02zD5{FY%tC+I#az(utD)@U{+j)^Or` z*6XnDB4{USA{tBbV8}3%{Ann5G2kOnmc|XtVb*^|XpkK-eE=fd{-{s1b3aKzK6>@W zOU!$Vo_6(|6MB9`j=nd>b5xFCg2}!0Qrzx5bMj0!UDs{$K9Z6d5$B6~`<3WwzbMe% z`N|S23t<-b^3o zthNh$AK-ZR%w<{%Dr$t0s$w{vnf>E-QaNWoIbh5Kngbxf2nrS)?nB!c_b+iH%n4+u*P1w-fMde) zDsO;x=^T_X$w!j7vvLmdaVxw{SY8F47wmj%(zj7)-KzF) zrwUAFT|6CT;N{w68bg&SP8NAwjlR8Le(Kcr09KfXhz*Z_#erYN$*aV&V9t+EZ=@io z)m1~e8LhK-IjWy0*;jXg6tjRMierVQw`Fz|Go{pAwRTzQ-@t&^fRs)Qa5|e&EYrdF z`tU=jgCU%J(rQYjDLUoi72v=BRz%XIDa|pg^z)<~HHcUH6NRCBk^@vQAx(yHjHV=L z@z^1sOH|k$FGR6HlBV8--|vkN#$oRl@|j=ap%DItdu^lOC@6ve1)e=1+HEh9{Q*5t zeT6e+rmV5JQcyY>iJ3h=Kp0`V@r8G8LAJq3)?@DQh&qbU6TO!y&Z)pT)|v1gpt0&0 zgQys{Bau>9^;=hAb3&HTBR6cUM>tlk!dR(hEikj^j6VK!DbQe^zQ#ytm{{n|cP7rA zL@aP2^@tiTPH;waLAKs-Y`EJlf@vgPz7INRfD5CfkA~VFnITQ14FW`e@Mu-_vUOsj zdQ#~V;B7*7wk%gvnm?0NQB{_N2NOlD<_X#P)fY`x*Y7Da0tbjK4ltfYU2Sy&6GjvX zMhbg*ui{#KBN6MGFwWT^Q~Q)fBYE{l1*v3HGO!Y9U^2l2>vXe~Nj~CG)e0$3fGtnp zxA104%Qfj3`&KmbN;STBp=!?4PpFj8GFwx(tx9x6h5hZ~j~7p5l!hrEoz|$$Jaf9a zICqT^6zM&4zSRJqf}Dt_T$+_zLUT$$^>IN7t|)Z&QuQPsXkl;-^RVGO)(va%zf>*e zujTs2JFtb-tkH4Qg-s+x75*zGQqeSB02i`?vBelsyq;g@vbGFd_t%2{AiieJ?!{RYy`u{HLgO!k+toHHr%p%)WkSCs&H^QEJ_f*YN0>uQNl1qhg3DaLH7(_?m>`I?0>-9whr9uKT$1AF{y zOmow~L}(G001i6_${J~5R?fXFq|=@60E+RHt9v3zu4ZCtFhHM1)TzlZ0Lh7dez*_8 zk(L`}ZGTx+%uQl;AR+>Iw#f<5!vJ##LD4d*B5>X_vf0I~3s+uZQ#)2ARJX;>!pirulL(%Si;RXMrjx7kt8`V)dlDEBdGFQ*J%@CKi#@WWLG1vT}OOIAINOj z;Cm&glBu+N7Q3mpPPbBPh0aY(dhw{&&?t8CD0Q@S59-5h$dP|B zDQ`+L%d&Pb#k7)jNORAl&KNKNNTT=uU5JxjI95aIVsg)j`mR5`%6lU^nJ2pkK zBG5EtoRh5&*Z%YS)v!Kh$LiB3&Rfk-K0Pg>2n;jm2CC1? z%k%sAy0>86)a>#2K%K06ME0JO^J$mfkEV9ogYPHQp2X{w#_t@;_g(&_or592+=sZm zBQL>>5j&8Iztvxq?ZEIWeSj5TZK656lba&C2bOJ2l3%SzBa+$!-~GOOLJ#Vjf(1h` zFUBPj{rnA$s+)$W&6<79ZDwNv$smjz*tHz|YF>XTKY^#}iAN*JKzmS1HO zJF-Y-rB0%X?EkFjlu6TZUsxWf0%*3XdMHpuN48*LIFDy_b9R_PqTDO!VC z>tY#eo<_S#`a@3L)YKZ|F^V7%t%7G~4nnDDcEYszvg#`CIX{`kM5xe77yV_wXYBAF z(dZr_@<(-p#u?^=lAJfFgD3WkY7{w*uLc@OR<>8T)h3!=;<31#E7)w9Q`(-IvI};Q=1J? z5>Kc_b}k;uhK!Mmcp-!^>Ycj}Gt~6AZ|Ac)u96j>Qj;?b&jVMm>@5NH0uI;?wWZoX z4==E3PP1W0AT+F`Yp!=WH&3%7l2ZtBu-~}1@^DsD_OvRZP_MYvc3q=VH>gyW$vZgg z1!%I}jd`Tj=Kg$?+U4BF84=9Q$mAe;8$ZwuL*^(R!B}&4M{#5W-dUI(vT25EcR=uX z;GIHy7@Vyq5eCt~kN3TK{;TjK>Vi@uviaOXpr`(R*Sq|-xF4HSnD(+fCd^hJ$LMS` zS|{M{F3o3EL~@W4Xn240>-w~bKtx;gyTtRL{g6T2(Q`?NRhYjc_z{>nA`HbvuPsZ&I38Rc@jcV#~7^17TI9n{SFQ zy%*F3CfMQZo&I9D^!nVtB@eZ$vgbp6j z#VI>*>_qK^xgr=0Y)WzaCIlEZ89_Q-D7MKOt}&(Xkc%!;>VWdMFutRBy@j-B_!Lj< zoMU+@#mbn~ykdUD?$Pm|<#~x!_W?hdxw+0AM-4&jeO5t$<2d#L98;+%Y+6qdtR4O^ zTd7efgolhtcox`i5`UrA!QGN~ynrl36!>wJNP6gS1#Cxx^%x^rXl=@NCFy+?BdJ^`0HGiD$DUi_Cdd zYAAUPM0N-?z0#z?r8%Fug1M^5j+Vv3IC6JMsT$?gR00@}hICNdmYj^mh@NsE#~zYg z$#C^Kro*-#df6w3p7_(rgtawnn`x93?#*h-p|84G2HCZcjX5NAA_-r7`=@0vt4Tro zkhIYfs=0HX2Mu=y7l5YxND1|_oWvJ z8CUm+>Ea;w{0!##ZS^QA{^;Fo%YgixrPU;+W!@cOaF0sB<%9wu0}{_G&cfMu6uWYf zo?OzOa!QFpyTzM37D(X&eJDP=G4)iwaOliI5=h3b&>Y%g(AvTb!{N;L!73Wfqi|GU|#0rfwNVD(K@+{?gkLyTwWz?`48UhMj&`I|v*`LC~{5 z#>xFbHP49{qnYC1}VA*9k`-V-aXs%S7*2}gSg{euUqq@tGHN#))d@W zRP3tG?9GuS<{F)d9S<8Z6_<6}VS3D()*PfGK3fDZZ)2P+5WqBB&>RA7Q=deC%+6$T zK7=_9ab0}lYUYv_Fd9Y4%m{dF{Ut!q{w8`DqGP6`d)*jbnfW|YJZfvh6+qWifw(~5 zXK680WoT#93DdIxvKshMyL2SbDWL*2Mz|C%_k7j^JcpvWl3m}x)T;86MJ!2HUyP0o z!Fc8UFx_f=-!E3+ckC3tR)64!=;A+Mdyoz)E{*ZpN{VhimM$FaL+E{?z!&lo;6a?B zvUE2-m#npb4aVu`1Gd?l0GvbtPPM}JVUP$!MeNWN&7s33=6mhJ@-o5pFX<=zj?Vnz zyCS^Q31{&R0N9DX9Rlo^ane>o%%)_&LKvmL77Kp)MtCC+2OMwZU*I$F!;gN@Kgyl) z`>3Huc1Ly#ulP=2r0842JlYsDoc`(W5^n>Q-&51BLu(XrvVb<->0A%^M!A0(WZ1a~ z)@N=l;WS(K?zGcB#){tPuQnbC2McQ!%rv#-pmTBvFPZT+R^ZHy z#x|$C6e{<>fZM8qH+ge3bZum^t0ygg*Qp1Z8H%tcQwzclPxKZ(K-rC7*`}*rjHs^g z1K?IuO?MSiy?3gRvfyPAvjtk0Mk&NgirskzgC@*jTw}6}8n{T?qH_Ao+ET_p0+R|E zLwyVK7n40?E)p=e@zP3W>%^b8SJCmwp3bPA&T&&U;B!;$W4VRuiW$V202Etqnz(h1 zIo7ox#CYIjhbUuiQ{YT|=VAYT)PJ}GjQnCvq4m9*>n=aO1QhU_$LCKPsC4&deqP$_ zMQ+c$Hf{=@=GrX8VQGkfbhjngyTLg zAS{XV{sc2= zAcA1%s

)| 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 p4*QB>QO&pT(UtASe07}>{7w~h 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 z�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 @QqW%oL7zX`*h~?ha;aJq(7Ve1~c9t!~bb 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 z

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 bIsMMG4IUDA~d0%}yk} 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 z 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 E0A%V=P5=M^ diff --git a/resources/3rdparty/glpk-4.57/doc/notes/simplex2.pdf b/resources/3rdparty/glpk-4.57/doc/notes/simplex2.pdf deleted file mode 100644 index a9c2878d68c99b9c93405024c80d94cacd51f8ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209721 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 - -int main(int argc, const char *argv[]) -{ /* stand-alone LP/MIP solver */ - return glp_main(argc, argv); -} - -/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/Makefile.am b/resources/3rdparty/glpk-4.57/src/Makefile.am deleted file mode 100644 index 836ef11bd..000000000 --- a/resources/3rdparty/glpk-4.57/src/Makefile.am +++ /dev/null @@ -1,178 +0,0 @@ -## Process this file with automake to produce Makefile.in ## - -include_HEADERS = glpk.h - -lib_LTLIBRARIES = libglpk.la - -libglpk_la_CPPFLAGS = \ --I$(srcdir) \ --I$(srcdir)/amd \ --I$(srcdir)/bflib \ --I$(srcdir)/cglib \ --I$(srcdir)/colamd \ --I$(srcdir)/env \ --I$(srcdir)/minisat \ --I$(srcdir)/misc \ --I$(srcdir)/proxy \ --I$(srcdir)/simplex \ --I$(srcdir)/zlib - -libglpk_la_LDFLAGS = \ --version-info 38:0:2 \ --export-symbols-regex '^glp_*' - -libglpk_la_SOURCES = \ -avl.c \ -bfd.c \ -bfx.c \ -glpapi01.c \ -glpapi02.c \ -glpapi03.c \ -glpapi04.c \ -glpapi05.c \ -glpapi06.c \ -glpapi07.c \ -glpapi08.c \ -glpapi09.c \ -glpapi10.c \ -glpapi11.c \ -glpapi12.c \ -glpapi13.c \ -glpapi14.c \ -glpapi15.c \ -glpapi16.c \ -glpapi17.c \ -glpapi18.c \ -glpapi19.c \ -glpapi20.c \ -glpapi21.c \ -glpcpx.c \ -glpdmx.c \ -glpgmp.c \ -glphbm.c \ -glpini01.c \ -glpini02.c \ -glpios01.c \ -glpios02.c \ -glpios03.c \ -glpios04.c \ -glpios05.c \ -glpios06.c \ -glpios07.c \ -glpios08.c \ -glpios09.c \ -glpios10.c \ -glpios11.c \ -glpios12.c \ -glpipm.c \ -glpmat.c \ -glpmpl01.c \ -glpmpl02.c \ -glpmpl03.c \ -glpmpl04.c \ -glpmpl05.c \ -glpmpl06.c \ -glpmps.c \ -glpnet03.c \ -glpnet04.c \ -glpnet05.c \ -glpnpp01.c \ -glpnpp02.c \ -glpnpp03.c \ -glpnpp04.c \ -glpnpp05.c \ -glpnpp06.c \ -glprgr.c \ -glpscl.c \ -glpsdf.c \ -glpspm.c \ -glpsql.c \ -glpssx01.c \ -glpssx02.c \ -lux.c \ -amd/amd_1.c \ -amd/amd_2.c \ -amd/amd_aat.c \ -amd/amd_control.c \ -amd/amd_defaults.c \ -amd/amd_dump.c \ -amd/amd_info.c \ -amd/amd_order.c \ -amd/amd_post_tree.c \ -amd/amd_postorder.c \ -amd/amd_preprocess.c \ -amd/amd_valid.c \ -bflib/btf.c \ -bflib/btfint.c \ -bflib/fhv.c \ -bflib/fhvint.c \ -bflib/ifu.c \ -bflib/luf.c \ -bflib/lufint.c \ -bflib/scf.c \ -bflib/scfint.c \ -bflib/sgf.c \ -bflib/sva.c \ -cglib/cfg.c \ -cglib/cfg1.c \ -colamd/colamd.c \ -env/alloc.c \ -env/dlsup.c \ -env/env.c \ -env/error.c \ -env/stdout.c \ -env/stream.c \ -env/time.c \ -env/tls.c \ -minisat/minisat.c \ -misc/bignum.c \ -misc/dmp.c \ -misc/ffalg.c \ -misc/fp2rat.c \ -misc/gcd.c \ -misc/jd.c \ -misc/keller.c \ -misc/mc13d.c \ -misc/mc21a.c \ -misc/okalg.c \ -misc/qmd.c \ -misc/relax4.c \ -misc/rng.c \ -misc/rng1.c \ -misc/round2n.c \ -misc/str2int.c \ -misc/str2num.c \ -misc/strspx.c \ -misc/strtrim.c \ -misc/triang.c \ -misc/wclique.c \ -misc/wclique1.c \ -proxy/proxy.c \ -proxy/proxy1.c \ -simplex/spxat.c \ -simplex/spxchuzc.c \ -simplex/spxchuzr.c \ -simplex/spxlp.c \ -simplex/spxnt.c \ -simplex/spxprim.c \ -simplex/spxprob.c \ -simplex/spychuzc.c \ -simplex/spychuzr.c \ -simplex/spydual.c \ -zlib/adler32.c \ -zlib/compress.c \ -zlib/crc32.c \ -zlib/deflate.c \ -zlib/gzclose.c \ -zlib/gzlib.c \ -zlib/gzread.c \ -zlib/gzwrite.c \ -zlib/inffast.c \ -zlib/inflate.c \ -zlib/inftrees.c \ -zlib/trees.c \ -zlib/uncompr.c \ -zlib/zio.c \ -zlib/zutil.c - -## eof ## diff --git a/resources/3rdparty/glpk-4.57/src/glpapi11.c b/resources/3rdparty/glpk-4.57/src/glpapi11.c deleted file mode 100644 index 7bc528172..000000000 --- a/resources/3rdparty/glpk-4.57/src/glpapi11.c +++ /dev/null @@ -1,1235 +0,0 @@ -/* glpapi11.c (utility routines) */ - -/*********************************************************************** -* This code is part of GLPK (GNU Linear Programming Kit). -* -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied -* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights -* reserved. E-mail: . -* -* GLPK is free software: you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* GLPK is distributed in the hope that it will be useful, but WITHOUT -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -* License for more details. -* -* You should have received a copy of the GNU General Public License -* along with GLPK. If not, see . -***********************************************************************/ - -#include "env.h" -#include "glpsdf.h" -#include "prob.h" - -#define xfprintf glp_format - -int glp_print_sol(glp_prob *P, const char *fname) -{ /* write basic solution in printable format */ - glp_file *fp; - GLPROW *row; - GLPCOL *col; - int i, j, t, ae_ind, re_ind, ret; - double ae_max, re_max; - xprintf("Writing basic solution to '%s'...\n", fname); - fp = glp_open(fname, "w"); - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xfprintf(fp, "%-12s%s\n", "Problem:", - P->name == NULL ? "" : P->name); - xfprintf(fp, "%-12s%d\n", "Rows:", P->m); - xfprintf(fp, "%-12s%d\n", "Columns:", P->n); - xfprintf(fp, "%-12s%d\n", "Non-zeros:", P->nnz); - t = glp_get_status(P); - xfprintf(fp, "%-12s%s\n", "Status:", - t == GLP_OPT ? "OPTIMAL" : - t == GLP_FEAS ? "FEASIBLE" : - t == GLP_INFEAS ? "INFEASIBLE (INTERMEDIATE)" : - t == GLP_NOFEAS ? "INFEASIBLE (FINAL)" : - t == GLP_UNBND ? "UNBOUNDED" : - t == GLP_UNDEF ? "UNDEFINED" : "???"); - xfprintf(fp, "%-12s%s%s%.10g (%s)\n", "Objective:", - P->obj == NULL ? "" : P->obj, - P->obj == NULL ? "" : " = ", P->obj_val, - P->dir == GLP_MIN ? "MINimum" : - P->dir == GLP_MAX ? "MAXimum" : "???"); - xfprintf(fp, "\n"); - xfprintf(fp, " No. Row name St Activity Lower bound " - " Upper bound Marginal\n"); - xfprintf(fp, "------ ------------ -- ------------- ------------- " - "------------- -------------\n"); - for (i = 1; i <= P->m; i++) - { row = P->row[i]; - xfprintf(fp, "%6d ", i); - if (row->name == NULL || strlen(row->name) <= 12) - xfprintf(fp, "%-12s ", row->name == NULL ? "" : row->name); - else - xfprintf(fp, "%s\n%20s", row->name, ""); - xfprintf(fp, "%s ", - row->stat == GLP_BS ? "B " : - row->stat == GLP_NL ? "NL" : - row->stat == GLP_NU ? "NU" : - row->stat == GLP_NF ? "NF" : - row->stat == GLP_NS ? "NS" : "??"); - xfprintf(fp, "%13.6g ", - fabs(row->prim) <= 1e-9 ? 0.0 : row->prim); - if (row->type == GLP_LO || row->type == GLP_DB || - row->type == GLP_FX) - xfprintf(fp, "%13.6g ", row->lb); - else - xfprintf(fp, "%13s ", ""); - if (row->type == GLP_UP || row->type == GLP_DB) - xfprintf(fp, "%13.6g ", row->ub); - else - xfprintf(fp, "%13s ", row->type == GLP_FX ? "=" : ""); - if (row->stat != GLP_BS) - { if (fabs(row->dual) <= 1e-9) - xfprintf(fp, "%13s", "< eps"); - else - xfprintf(fp, "%13.6g ", row->dual); - } - xfprintf(fp, "\n"); - } - xfprintf(fp, "\n"); - xfprintf(fp, " No. Column name St Activity Lower bound " - " Upper bound Marginal\n"); - xfprintf(fp, "------ ------------ -- ------------- ------------- " - "------------- -------------\n"); - for (j = 1; j <= P->n; j++) - { col = P->col[j]; - xfprintf(fp, "%6d ", j); - if (col->name == NULL || strlen(col->name) <= 12) - xfprintf(fp, "%-12s ", col->name == NULL ? "" : col->name); - else - xfprintf(fp, "%s\n%20s", col->name, ""); - xfprintf(fp, "%s ", - col->stat == GLP_BS ? "B " : - col->stat == GLP_NL ? "NL" : - col->stat == GLP_NU ? "NU" : - col->stat == GLP_NF ? "NF" : - col->stat == GLP_NS ? "NS" : "??"); - xfprintf(fp, "%13.6g ", - fabs(col->prim) <= 1e-9 ? 0.0 : col->prim); - if (col->type == GLP_LO || col->type == GLP_DB || - col->type == GLP_FX) - xfprintf(fp, "%13.6g ", col->lb); - else - xfprintf(fp, "%13s ", ""); - if (col->type == GLP_UP || col->type == GLP_DB) - xfprintf(fp, "%13.6g ", col->ub); - else - xfprintf(fp, "%13s ", col->type == GLP_FX ? "=" : ""); - if (col->stat != GLP_BS) - { if (fabs(col->dual) <= 1e-9) - xfprintf(fp, "%13s", "< eps"); - else - xfprintf(fp, "%13.6g ", col->dual); - } - xfprintf(fp, "\n"); - } - xfprintf(fp, "\n"); - xfprintf(fp, "Karush-Kuhn-Tucker optimality conditions:\n"); - xfprintf(fp, "\n"); - glp_check_kkt(P, GLP_SOL, GLP_KKT_PE, &ae_max, &ae_ind, &re_max, - &re_ind); - xfprintf(fp, "KKT.PE: max.abs.err = %.2e on row %d\n", - ae_max, ae_ind); - xfprintf(fp, " max.rel.err = %.2e on row %d\n", - re_max, re_ind); - xfprintf(fp, "%8s%s\n", "", - re_max <= 1e-9 ? "High quality" : - re_max <= 1e-6 ? "Medium quality" : - re_max <= 1e-3 ? "Low quality" : "PRIMAL SOLUTION IS WRONG"); - xfprintf(fp, "\n"); - glp_check_kkt(P, GLP_SOL, GLP_KKT_PB, &ae_max, &ae_ind, &re_max, - &re_ind); - xfprintf(fp, "KKT.PB: max.abs.err = %.2e on %s %d\n", - ae_max, ae_ind <= P->m ? "row" : "column", - ae_ind <= P->m ? ae_ind : ae_ind - P->m); - xfprintf(fp, " max.rel.err = %.2e on %s %d\n", - re_max, re_ind <= P->m ? "row" : "column", - re_ind <= P->m ? re_ind : re_ind - P->m); - xfprintf(fp, "%8s%s\n", "", - re_max <= 1e-9 ? "High quality" : - re_max <= 1e-6 ? "Medium quality" : - re_max <= 1e-3 ? "Low quality" : "PRIMAL SOLUTION IS INFEASIBL" - "E"); - xfprintf(fp, "\n"); - glp_check_kkt(P, GLP_SOL, GLP_KKT_DE, &ae_max, &ae_ind, &re_max, - &re_ind); - xfprintf(fp, "KKT.DE: max.abs.err = %.2e on column %d\n", - ae_max, ae_ind == 0 ? 0 : ae_ind - P->m); - xfprintf(fp, " max.rel.err = %.2e on column %d\n", - re_max, re_ind == 0 ? 0 : re_ind - P->m); - xfprintf(fp, "%8s%s\n", "", - re_max <= 1e-9 ? "High quality" : - re_max <= 1e-6 ? "Medium quality" : - re_max <= 1e-3 ? "Low quality" : "DUAL SOLUTION IS WRONG"); - xfprintf(fp, "\n"); - glp_check_kkt(P, GLP_SOL, GLP_KKT_DB, &ae_max, &ae_ind, &re_max, - &re_ind); - xfprintf(fp, "KKT.DB: max.abs.err = %.2e on %s %d\n", - ae_max, ae_ind <= P->m ? "row" : "column", - ae_ind <= P->m ? ae_ind : ae_ind - P->m); - xfprintf(fp, " max.rel.err = %.2e on %s %d\n", - re_max, re_ind <= P->m ? "row" : "column", - re_ind <= P->m ? re_ind : re_ind - P->m); - xfprintf(fp, "%8s%s\n", "", - re_max <= 1e-9 ? "High quality" : - re_max <= 1e-6 ? "Medium quality" : - re_max <= 1e-3 ? "Low quality" : "DUAL SOLUTION IS INFEASIBLE") - ; - xfprintf(fp, "\n"); - xfprintf(fp, "End of output\n"); -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - ret = 0; -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_read_sol - read basic solution from text file -* -* SYNOPSIS -* -* int glp_read_sol(glp_prob *lp, const char *fname); -* -* DESCRIPTION -* -* The routine glp_read_sol reads basic solution from a text file whose -* name is specified by the parameter fname into the problem object. -* -* For the file format see description of the routine glp_write_sol. -* -* RETURNS -* -* On success the routine returns zero, otherwise non-zero. */ - -int glp_read_sol(glp_prob *lp, const char *fname) -{ glp_data *data; - jmp_buf jump; - int i, j, k, ret = 0; - xprintf("Reading basic solution from '%s'...\n", fname); - data = glp_sdf_open_file(fname); - if (data == NULL) - { ret = 1; - goto done; - } - if (setjmp(jump)) - { ret = 1; - goto done; - } - glp_sdf_set_jump(data, jump); - /* number of rows, number of columns */ - k = glp_sdf_read_int(data); - if (k != lp->m) - glp_sdf_error(data, "wrong number of rows\n"); - k = glp_sdf_read_int(data); - if (k != lp->n) - glp_sdf_error(data, "wrong number of columns\n"); - /* primal status, dual status, objective value */ - k = glp_sdf_read_int(data); - if (!(k == GLP_UNDEF || k == GLP_FEAS || k == GLP_INFEAS || - k == GLP_NOFEAS)) - glp_sdf_error(data, "invalid primal status\n"); - lp->pbs_stat = k; - k = glp_sdf_read_int(data); - if (!(k == GLP_UNDEF || k == GLP_FEAS || k == GLP_INFEAS || - k == GLP_NOFEAS)) - glp_sdf_error(data, "invalid dual status\n"); - lp->dbs_stat = k; - lp->obj_val = glp_sdf_read_num(data); - /* rows (auxiliary variables) */ - for (i = 1; i <= lp->m; i++) - { GLPROW *row = lp->row[i]; - /* status, primal value, dual value */ - k = glp_sdf_read_int(data); - if (!(k == GLP_BS || k == GLP_NL || k == GLP_NU || - k == GLP_NF || k == GLP_NS)) - glp_sdf_error(data, "invalid row status\n"); - glp_set_row_stat(lp, i, k); - row->prim = glp_sdf_read_num(data); - row->dual = glp_sdf_read_num(data); - } - /* columns (structural variables) */ - for (j = 1; j <= lp->n; j++) - { GLPCOL *col = lp->col[j]; - /* status, primal value, dual value */ - k = glp_sdf_read_int(data); - if (!(k == GLP_BS || k == GLP_NL || k == GLP_NU || - k == GLP_NF || k == GLP_NS)) - glp_sdf_error(data, "invalid column status\n"); - glp_set_col_stat(lp, j, k); - col->prim = glp_sdf_read_num(data); - col->dual = glp_sdf_read_num(data); - } - xprintf("%d lines were read\n", glp_sdf_line(data)); -done: if (ret) lp->pbs_stat = lp->dbs_stat = GLP_UNDEF; - if (data != NULL) glp_sdf_close_file(data); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_write_sol - write basic solution to text file -* -* SYNOPSIS -* -* int glp_write_sol(glp_prob *lp, const char *fname); -* -* DESCRIPTION -* -* The routine glp_write_sol writes the current basic solution to a -* text file whose name is specified by the parameter fname. This file -* can be read back with the routine glp_read_sol. -* -* RETURNS -* -* On success the routine returns zero, otherwise non-zero. -* -* FILE FORMAT -* -* The file created by the routine glp_write_sol is a plain text file, -* which contains the following information: -* -* m n -* p_stat d_stat obj_val -* r_stat[1] r_prim[1] r_dual[1] -* . . . -* r_stat[m] r_prim[m] r_dual[m] -* c_stat[1] c_prim[1] c_dual[1] -* . . . -* c_stat[n] c_prim[n] c_dual[n] -* -* where: -* m is the number of rows (auxiliary variables); -* n is the number of columns (structural variables); -* p_stat is the primal status of the basic solution (GLP_UNDEF = 1, -* GLP_FEAS = 2, GLP_INFEAS = 3, or GLP_NOFEAS = 4); -* d_stat is the dual status of the basic solution (GLP_UNDEF = 1, -* GLP_FEAS = 2, GLP_INFEAS = 3, or GLP_NOFEAS = 4); -* obj_val is the objective value; -* r_stat[i], i = 1,...,m, is the status of i-th row (GLP_BS = 1, -* GLP_NL = 2, GLP_NU = 3, GLP_NF = 4, or GLP_NS = 5); -* r_prim[i], i = 1,...,m, is the primal value of i-th row; -* r_dual[i], i = 1,...,m, is the dual value of i-th row; -* c_stat[j], j = 1,...,n, is the status of j-th column (GLP_BS = 1, -* GLP_NL = 2, GLP_NU = 3, GLP_NF = 4, or GLP_NS = 5); -* c_prim[j], j = 1,...,n, is the primal value of j-th column; -* c_dual[j], j = 1,...,n, is the dual value of j-th column. */ - -int glp_write_sol(glp_prob *lp, const char *fname) -{ glp_file *fp; - int i, j, ret = 0; - xprintf("Writing basic solution to '%s'...\n", fname); - fp = glp_open(fname, "w"); - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - /* number of rows, number of columns */ - xfprintf(fp, "%d %d\n", lp->m, lp->n); - /* primal status, dual status, objective value */ - xfprintf(fp, "%d %d %.*g\n", lp->pbs_stat, lp->dbs_stat, DBL_DIG, - lp->obj_val); - /* rows (auxiliary variables) */ - for (i = 1; i <= lp->m; i++) - { GLPROW *row = lp->row[i]; - /* status, primal value, dual value */ - xfprintf(fp, "%d %.*g %.*g\n", row->stat, DBL_DIG, row->prim, - DBL_DIG, row->dual); - } - /* columns (structural variables) */ - for (j = 1; j <= lp->n; j++) - { GLPCOL *col = lp->col[j]; - /* status, primal value, dual value */ - xfprintf(fp, "%d %.*g %.*g\n", col->stat, DBL_DIG, col->prim, - DBL_DIG, col->dual); - } -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xprintf("%d lines were written\n", 2 + lp->m + lp->n); -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/**********************************************************************/ - -static char *format(char buf[13+1], double x) -{ /* format floating-point number in MPS/360-like style */ - if (x == -DBL_MAX) - strcpy(buf, " -Inf"); - else if (x == +DBL_MAX) - strcpy(buf, " +Inf"); - else if (fabs(x) <= 999999.99998) - { sprintf(buf, "%13.5f", x); -#if 1 - if (strcmp(buf, " 0.00000") == 0 || - strcmp(buf, " -0.00000") == 0) - strcpy(buf, " . "); - else if (memcmp(buf, " 0.", 8) == 0) - memcpy(buf, " .", 8); - else if (memcmp(buf, " -0.", 8) == 0) - memcpy(buf, " -.", 8); -#endif - } - else - sprintf(buf, "%13.6g", x); - return buf; -} - -int glp_print_ranges(glp_prob *P, int len, const int list[], - int flags, const char *fname) -{ /* print sensitivity analysis report */ - glp_file *fp = NULL; - GLPROW *row; - GLPCOL *col; - int m, n, pass, k, t, numb, type, stat, var1, var2, count, page, - ret; - double lb, ub, slack, coef, prim, dual, value1, value2, coef1, - coef2, obj1, obj2; - const char *name, *limit; - char buf[13+1]; - /* sanity checks */ - if (P == NULL || P->magic != GLP_PROB_MAGIC) - xerror("glp_print_ranges: P = %p; invalid problem object\n", - P); - m = P->m, n = P->n; - if (len < 0) - xerror("glp_print_ranges: len = %d; invalid list length\n", - len); - if (len > 0) - { if (list == NULL) - xerror("glp_print_ranges: list = %p: invalid parameter\n", - list); - for (t = 1; t <= len; t++) - { k = list[t]; - if (!(1 <= k && k <= m+n)) - xerror("glp_print_ranges: list[%d] = %d; row/column numb" - "er out of range\n", t, k); - } - } - if (flags != 0) - xerror("glp_print_ranges: flags = %d; invalid parameter\n", - flags); - if (fname == NULL) - xerror("glp_print_ranges: fname = %p; invalid parameter\n", - fname); - if (glp_get_status(P) != GLP_OPT) - { xprintf("glp_print_ranges: optimal basic solution required\n"); - ret = 1; - goto done; - } - if (!glp_bf_exists(P)) - { xprintf("glp_print_ranges: basis factorization required\n"); - ret = 2; - goto done; - } - /* start reporting */ - xprintf("Write sensitivity analysis report to '%s'...\n", fname); - fp = glp_open(fname, "w"); - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 3; - goto done; - } - page = count = 0; - for (pass = 1; pass <= 2; pass++) - for (t = 1; t <= (len == 0 ? m+n : len); t++) - { if (t == 1) count = 0; - k = (len == 0 ? t : list[t]); - if (pass == 1 && k > m || pass == 2 && k <= m) - continue; - if (count == 0) - { xfprintf(fp, "GLPK %-4s - SENSITIVITY ANALYSIS REPORT%73sPa" - "ge%4d\n", glp_version(), "", ++page); - xfprintf(fp, "\n"); - xfprintf(fp, "%-12s%s\n", "Problem:", - P->name == NULL ? "" : P->name); - xfprintf(fp, "%-12s%s%s%.10g (%s)\n", "Objective:", - P->obj == NULL ? "" : P->obj, - P->obj == NULL ? "" : " = ", P->obj_val, - P->dir == GLP_MIN ? "MINimum" : - P->dir == GLP_MAX ? "MAXimum" : "???"); - xfprintf(fp, "\n"); - xfprintf(fp, "%6s %-12s %2s %13s %13s %13s %13s %13s %13s " - "%s\n", "No.", pass == 1 ? "Row name" : "Column name", - "St", "Activity", pass == 1 ? "Slack" : "Obj coef", - "Lower bound", "Activity", "Obj coef", "Obj value at", - "Limiting"); - xfprintf(fp, "%6s %-12s %2s %13s %13s %13s %13s %13s %13s " - "%s\n", "", "", "", "", "Marginal", "Upper bound", - "range", "range", "break point", "variable"); - xfprintf(fp, "------ ------------ -- ------------- --------" - "----- ------------- ------------- ------------- ------" - "------- ------------\n"); - } - if (pass == 1) - { numb = k; - xassert(1 <= numb && numb <= m); - row = P->row[numb]; - name = row->name; - type = row->type; - lb = glp_get_row_lb(P, numb); - ub = glp_get_row_ub(P, numb); - coef = 0.0; - stat = row->stat; - prim = row->prim; - if (type == GLP_FR) - slack = - prim; - else if (type == GLP_LO) - slack = lb - prim; - else if (type == GLP_UP || type == GLP_DB || type == GLP_FX) - slack = ub - prim; - dual = row->dual; - } - else - { numb = k - m; - xassert(1 <= numb && numb <= n); - col = P->col[numb]; - name = col->name; - lb = glp_get_col_lb(P, numb); - ub = glp_get_col_ub(P, numb); - coef = col->coef; - stat = col->stat; - prim = col->prim; - slack = 0.0; - dual = col->dual; - } - if (stat != GLP_BS) - { glp_analyze_bound(P, k, &value1, &var1, &value2, &var2); - if (stat == GLP_NF) - coef1 = coef2 = coef; - else if (stat == GLP_NS) - coef1 = -DBL_MAX, coef2 = +DBL_MAX; - else if (stat == GLP_NL && P->dir == GLP_MIN || - stat == GLP_NU && P->dir == GLP_MAX) - coef1 = coef - dual, coef2 = +DBL_MAX; - else - coef1 = -DBL_MAX, coef2 = coef - dual; - if (value1 == -DBL_MAX) - { if (dual < -1e-9) - obj1 = +DBL_MAX; - else if (dual > +1e-9) - obj1 = -DBL_MAX; - else - obj1 = P->obj_val; - } - else - obj1 = P->obj_val + dual * (value1 - prim); - if (value2 == +DBL_MAX) - { if (dual < -1e-9) - obj2 = -DBL_MAX; - else if (dual > +1e-9) - obj2 = +DBL_MAX; - else - obj2 = P->obj_val; - } - else - obj2 = P->obj_val + dual * (value2 - prim); - } - else - { glp_analyze_coef(P, k, &coef1, &var1, &value1, &coef2, - &var2, &value2); - if (coef1 == -DBL_MAX) - { if (prim < -1e-9) - obj1 = +DBL_MAX; - else if (prim > +1e-9) - obj1 = -DBL_MAX; - else - obj1 = P->obj_val; - } - else - obj1 = P->obj_val + (coef1 - coef) * prim; - if (coef2 == +DBL_MAX) - { if (prim < -1e-9) - obj2 = -DBL_MAX; - else if (prim > +1e-9) - obj2 = +DBL_MAX; - else - obj2 = P->obj_val; - } - else - obj2 = P->obj_val + (coef2 - coef) * prim; - } - /*** first line ***/ - /* row/column number */ - xfprintf(fp, "%6d", numb); - /* row/column name */ - xfprintf(fp, " %-12.12s", name == NULL ? "" : name); - if (name != NULL && strlen(name) > 12) - xfprintf(fp, "%s\n%6s %12s", name+12, "", ""); - /* row/column status */ - xfprintf(fp, " %2s", - stat == GLP_BS ? "BS" : stat == GLP_NL ? "NL" : - stat == GLP_NU ? "NU" : stat == GLP_NF ? "NF" : - stat == GLP_NS ? "NS" : "??"); - /* row/column activity */ - xfprintf(fp, " %s", format(buf, prim)); - /* row slack, column objective coefficient */ - xfprintf(fp, " %s", format(buf, k <= m ? slack : coef)); - /* row/column lower bound */ - xfprintf(fp, " %s", format(buf, lb)); - /* row/column activity range */ - xfprintf(fp, " %s", format(buf, value1)); - /* row/column objective coefficient range */ - xfprintf(fp, " %s", format(buf, coef1)); - /* objective value at break point */ - xfprintf(fp, " %s", format(buf, obj1)); - /* limiting variable name */ - if (var1 != 0) - { if (var1 <= m) - limit = glp_get_row_name(P, var1); - else - limit = glp_get_col_name(P, var1 - m); - if (limit != NULL) - xfprintf(fp, " %s", limit); - } - xfprintf(fp, "\n"); - /*** second line ***/ - xfprintf(fp, "%6s %-12s %2s %13s", "", "", "", ""); - /* row/column reduced cost */ - xfprintf(fp, " %s", format(buf, dual)); - /* row/column upper bound */ - xfprintf(fp, " %s", format(buf, ub)); - /* row/column activity range */ - xfprintf(fp, " %s", format(buf, value2)); - /* row/column objective coefficient range */ - xfprintf(fp, " %s", format(buf, coef2)); - /* objective value at break point */ - xfprintf(fp, " %s", format(buf, obj2)); - /* limiting variable name */ - if (var2 != 0) - { if (var2 <= m) - limit = glp_get_row_name(P, var2); - else - limit = glp_get_col_name(P, var2 - m); - if (limit != NULL) - xfprintf(fp, " %s", limit); - } - xfprintf(fp, "\n"); - xfprintf(fp, "\n"); - /* print 10 items per page */ - count = (count + 1) % 10; - } - xfprintf(fp, "End of report\n"); -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 4; - goto done; - } - ret = 0; -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/**********************************************************************/ - -int glp_print_ipt(glp_prob *P, const char *fname) -{ /* write interior-point solution in printable format */ - glp_file *fp; - GLPROW *row; - GLPCOL *col; - int i, j, t, ae_ind, re_ind, ret; - double ae_max, re_max; - xprintf("Writing interior-point solution to '%s'...\n", fname); - fp = glp_open(fname, "w"); - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xfprintf(fp, "%-12s%s\n", "Problem:", - P->name == NULL ? "" : P->name); - xfprintf(fp, "%-12s%d\n", "Rows:", P->m); - xfprintf(fp, "%-12s%d\n", "Columns:", P->n); - xfprintf(fp, "%-12s%d\n", "Non-zeros:", P->nnz); - t = glp_ipt_status(P); - xfprintf(fp, "%-12s%s\n", "Status:", - t == GLP_OPT ? "OPTIMAL" : - t == GLP_UNDEF ? "UNDEFINED" : - t == GLP_INFEAS ? "INFEASIBLE (INTERMEDIATE)" : - t == GLP_NOFEAS ? "INFEASIBLE (FINAL)" : "???"); - xfprintf(fp, "%-12s%s%s%.10g (%s)\n", "Objective:", - P->obj == NULL ? "" : P->obj, - P->obj == NULL ? "" : " = ", P->ipt_obj, - P->dir == GLP_MIN ? "MINimum" : - P->dir == GLP_MAX ? "MAXimum" : "???"); - xfprintf(fp, "\n"); - xfprintf(fp, " No. Row name Activity Lower bound " - " Upper bound Marginal\n"); - xfprintf(fp, "------ ------------ ------------- ------------- " - "------------- -------------\n"); - for (i = 1; i <= P->m; i++) - { row = P->row[i]; - xfprintf(fp, "%6d ", i); - if (row->name == NULL || strlen(row->name) <= 12) - xfprintf(fp, "%-12s ", row->name == NULL ? "" : row->name); - else - xfprintf(fp, "%s\n%20s", row->name, ""); - xfprintf(fp, "%3s", ""); - xfprintf(fp, "%13.6g ", - fabs(row->pval) <= 1e-9 ? 0.0 : row->pval); - if (row->type == GLP_LO || row->type == GLP_DB || - row->type == GLP_FX) - xfprintf(fp, "%13.6g ", row->lb); - else - xfprintf(fp, "%13s ", ""); - if (row->type == GLP_UP || row->type == GLP_DB) - xfprintf(fp, "%13.6g ", row->ub); - else - xfprintf(fp, "%13s ", row->type == GLP_FX ? "=" : ""); - if (fabs(row->dval) <= 1e-9) - xfprintf(fp, "%13s", "< eps"); - else - xfprintf(fp, "%13.6g ", row->dval); - xfprintf(fp, "\n"); - } - xfprintf(fp, "\n"); - xfprintf(fp, " No. Column name Activity Lower bound " - " Upper bound Marginal\n"); - xfprintf(fp, "------ ------------ ------------- ------------- " - "------------- -------------\n"); - for (j = 1; j <= P->n; j++) - { col = P->col[j]; - xfprintf(fp, "%6d ", j); - if (col->name == NULL || strlen(col->name) <= 12) - xfprintf(fp, "%-12s ", col->name == NULL ? "" : col->name); - else - xfprintf(fp, "%s\n%20s", col->name, ""); - xfprintf(fp, "%3s", ""); - xfprintf(fp, "%13.6g ", - fabs(col->pval) <= 1e-9 ? 0.0 : col->pval); - if (col->type == GLP_LO || col->type == GLP_DB || - col->type == GLP_FX) - xfprintf(fp, "%13.6g ", col->lb); - else - xfprintf(fp, "%13s ", ""); - if (col->type == GLP_UP || col->type == GLP_DB) - xfprintf(fp, "%13.6g ", col->ub); - else - xfprintf(fp, "%13s ", col->type == GLP_FX ? "=" : ""); - if (fabs(col->dval) <= 1e-9) - xfprintf(fp, "%13s", "< eps"); - else - xfprintf(fp, "%13.6g ", col->dval); - xfprintf(fp, "\n"); - } - xfprintf(fp, "\n"); - xfprintf(fp, "Karush-Kuhn-Tucker optimality conditions:\n"); - xfprintf(fp, "\n"); - glp_check_kkt(P, GLP_IPT, GLP_KKT_PE, &ae_max, &ae_ind, &re_max, - &re_ind); - xfprintf(fp, "KKT.PE: max.abs.err = %.2e on row %d\n", - ae_max, ae_ind); - xfprintf(fp, " max.rel.err = %.2e on row %d\n", - re_max, re_ind); - xfprintf(fp, "%8s%s\n", "", - re_max <= 1e-9 ? "High quality" : - re_max <= 1e-6 ? "Medium quality" : - re_max <= 1e-3 ? "Low quality" : "PRIMAL SOLUTION IS WRONG"); - xfprintf(fp, "\n"); - glp_check_kkt(P, GLP_IPT, GLP_KKT_PB, &ae_max, &ae_ind, &re_max, - &re_ind); - xfprintf(fp, "KKT.PB: max.abs.err = %.2e on %s %d\n", - ae_max, ae_ind <= P->m ? "row" : "column", - ae_ind <= P->m ? ae_ind : ae_ind - P->m); - xfprintf(fp, " max.rel.err = %.2e on %s %d\n", - re_max, re_ind <= P->m ? "row" : "column", - re_ind <= P->m ? re_ind : re_ind - P->m); - xfprintf(fp, "%8s%s\n", "", - re_max <= 1e-9 ? "High quality" : - re_max <= 1e-6 ? "Medium quality" : - re_max <= 1e-3 ? "Low quality" : "PRIMAL SOLUTION IS INFEASIBL" - "E"); - xfprintf(fp, "\n"); - glp_check_kkt(P, GLP_IPT, GLP_KKT_DE, &ae_max, &ae_ind, &re_max, - &re_ind); - xfprintf(fp, "KKT.DE: max.abs.err = %.2e on column %d\n", - ae_max, ae_ind == 0 ? 0 : ae_ind - P->m); - xfprintf(fp, " max.rel.err = %.2e on column %d\n", - re_max, re_ind == 0 ? 0 : re_ind - P->m); - xfprintf(fp, "%8s%s\n", "", - re_max <= 1e-9 ? "High quality" : - re_max <= 1e-6 ? "Medium quality" : - re_max <= 1e-3 ? "Low quality" : "DUAL SOLUTION IS WRONG"); - xfprintf(fp, "\n"); - glp_check_kkt(P, GLP_IPT, GLP_KKT_DB, &ae_max, &ae_ind, &re_max, - &re_ind); - xfprintf(fp, "KKT.DB: max.abs.err = %.2e on %s %d\n", - ae_max, ae_ind <= P->m ? "row" : "column", - ae_ind <= P->m ? ae_ind : ae_ind - P->m); - xfprintf(fp, " max.rel.err = %.2e on %s %d\n", - re_max, re_ind <= P->m ? "row" : "column", - re_ind <= P->m ? re_ind : re_ind - P->m); - xfprintf(fp, "%8s%s\n", "", - re_max <= 1e-9 ? "High quality" : - re_max <= 1e-6 ? "Medium quality" : - re_max <= 1e-3 ? "Low quality" : "DUAL SOLUTION IS INFEASIBLE") - ; - xfprintf(fp, "\n"); - xfprintf(fp, "End of output\n"); -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - ret = 0; -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_read_ipt - read interior-point solution from text file -* -* SYNOPSIS -* -* int glp_read_ipt(glp_prob *lp, const char *fname); -* -* DESCRIPTION -* -* The routine glp_read_ipt reads interior-point solution from a text -* file whose name is specified by the parameter fname into the problem -* object. -* -* For the file format see description of the routine glp_write_ipt. -* -* RETURNS -* -* On success the routine returns zero, otherwise non-zero. */ - -int glp_read_ipt(glp_prob *lp, const char *fname) -{ glp_data *data; - jmp_buf jump; - int i, j, k, ret = 0; - xprintf("Reading interior-point solution from '%s'...\n", fname); - data = glp_sdf_open_file(fname); - if (data == NULL) - { ret = 1; - goto done; - } - if (setjmp(jump)) - { ret = 1; - goto done; - } - glp_sdf_set_jump(data, jump); - /* number of rows, number of columns */ - k = glp_sdf_read_int(data); - if (k != lp->m) - glp_sdf_error(data, "wrong number of rows\n"); - k = glp_sdf_read_int(data); - if (k != lp->n) - glp_sdf_error(data, "wrong number of columns\n"); - /* solution status, objective value */ - k = glp_sdf_read_int(data); - if (!(k == GLP_UNDEF || k == GLP_OPT)) - glp_sdf_error(data, "invalid solution status\n"); - lp->ipt_stat = k; - lp->ipt_obj = glp_sdf_read_num(data); - /* rows (auxiliary variables) */ - for (i = 1; i <= lp->m; i++) - { GLPROW *row = lp->row[i]; - /* primal value, dual value */ - row->pval = glp_sdf_read_num(data); - row->dval = glp_sdf_read_num(data); - } - /* columns (structural variables) */ - for (j = 1; j <= lp->n; j++) - { GLPCOL *col = lp->col[j]; - /* primal value, dual value */ - col->pval = glp_sdf_read_num(data); - col->dval = glp_sdf_read_num(data); - } - xprintf("%d lines were read\n", glp_sdf_line(data)); -done: if (ret) lp->ipt_stat = GLP_UNDEF; - if (data != NULL) glp_sdf_close_file(data); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_write_ipt - write interior-point solution to text file -* -* SYNOPSIS -* -* int glp_write_ipt(glp_prob *lp, const char *fname); -* -* DESCRIPTION -* -* The routine glp_write_ipt writes the current interior-point solution -* to a text file whose name is specified by the parameter fname. This -* file can be read back with the routine glp_read_ipt. -* -* RETURNS -* -* On success the routine returns zero, otherwise non-zero. -* -* FILE FORMAT -* -* The file created by the routine glp_write_ipt is a plain text file, -* which contains the following information: -* -* m n -* stat obj_val -* r_prim[1] r_dual[1] -* . . . -* r_prim[m] r_dual[m] -* c_prim[1] c_dual[1] -* . . . -* c_prim[n] c_dual[n] -* -* where: -* m is the number of rows (auxiliary variables); -* n is the number of columns (structural variables); -* stat is the solution status (GLP_UNDEF = 1 or GLP_OPT = 5); -* obj_val is the objective value; -* r_prim[i], i = 1,...,m, is the primal value of i-th row; -* r_dual[i], i = 1,...,m, is the dual value of i-th row; -* c_prim[j], j = 1,...,n, is the primal value of j-th column; -* c_dual[j], j = 1,...,n, is the dual value of j-th column. */ - -int glp_write_ipt(glp_prob *lp, const char *fname) -{ glp_file *fp; - int i, j, ret = 0; - xprintf("Writing interior-point solution to '%s'...\n", fname); - fp = glp_open(fname, "w"); - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - /* number of rows, number of columns */ - xfprintf(fp, "%d %d\n", lp->m, lp->n); - /* solution status, objective value */ - xfprintf(fp, "%d %.*g\n", lp->ipt_stat, DBL_DIG, lp->ipt_obj); - /* rows (auxiliary variables) */ - for (i = 1; i <= lp->m; i++) - { GLPROW *row = lp->row[i]; - /* primal value, dual value */ - xfprintf(fp, "%.*g %.*g\n", DBL_DIG, row->pval, DBL_DIG, - row->dval); - } - /* columns (structural variables) */ - for (j = 1; j <= lp->n; j++) - { GLPCOL *col = lp->col[j]; - /* primal value, dual value */ - xfprintf(fp, "%.*g %.*g\n", DBL_DIG, col->pval, DBL_DIG, - col->dval); - } -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xprintf("%d lines were written\n", 2 + lp->m + lp->n); -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/**********************************************************************/ - -int glp_print_mip(glp_prob *P, const char *fname) -{ /* write MIP solution in printable format */ - glp_file *fp; - GLPROW *row; - GLPCOL *col; - int i, j, t, ae_ind, re_ind, ret; - double ae_max, re_max; - xprintf("Writing MIP solution to '%s'...\n", fname); - fp = glp_open(fname, "w"); - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xfprintf(fp, "%-12s%s\n", "Problem:", - P->name == NULL ? "" : P->name); - xfprintf(fp, "%-12s%d\n", "Rows:", P->m); - xfprintf(fp, "%-12s%d (%d integer, %d binary)\n", "Columns:", - P->n, glp_get_num_int(P), glp_get_num_bin(P)); - xfprintf(fp, "%-12s%d\n", "Non-zeros:", P->nnz); - t = glp_mip_status(P); - xfprintf(fp, "%-12s%s\n", "Status:", - t == GLP_OPT ? "INTEGER OPTIMAL" : - t == GLP_FEAS ? "INTEGER NON-OPTIMAL" : - t == GLP_NOFEAS ? "INTEGER EMPTY" : - t == GLP_UNDEF ? "INTEGER UNDEFINED" : "???"); - xfprintf(fp, "%-12s%s%s%.10g (%s)\n", "Objective:", - P->obj == NULL ? "" : P->obj, - P->obj == NULL ? "" : " = ", P->mip_obj, - P->dir == GLP_MIN ? "MINimum" : - P->dir == GLP_MAX ? "MAXimum" : "???"); - xfprintf(fp, "\n"); - xfprintf(fp, " No. Row name Activity Lower bound " - " Upper bound\n"); - xfprintf(fp, "------ ------------ ------------- ------------- " - "-------------\n"); - for (i = 1; i <= P->m; i++) - { row = P->row[i]; - xfprintf(fp, "%6d ", i); - if (row->name == NULL || strlen(row->name) <= 12) - xfprintf(fp, "%-12s ", row->name == NULL ? "" : row->name); - else - xfprintf(fp, "%s\n%20s", row->name, ""); - xfprintf(fp, "%3s", ""); - xfprintf(fp, "%13.6g ", - fabs(row->mipx) <= 1e-9 ? 0.0 : row->mipx); - if (row->type == GLP_LO || row->type == GLP_DB || - row->type == GLP_FX) - xfprintf(fp, "%13.6g ", row->lb); - else - xfprintf(fp, "%13s ", ""); - if (row->type == GLP_UP || row->type == GLP_DB) - xfprintf(fp, "%13.6g ", row->ub); - else - xfprintf(fp, "%13s ", row->type == GLP_FX ? "=" : ""); - xfprintf(fp, "\n"); - } - xfprintf(fp, "\n"); - xfprintf(fp, " No. Column name Activity Lower bound " - " Upper bound\n"); - xfprintf(fp, "------ ------------ ------------- ------------- " - "-------------\n"); - for (j = 1; j <= P->n; j++) - { col = P->col[j]; - xfprintf(fp, "%6d ", j); - if (col->name == NULL || strlen(col->name) <= 12) - xfprintf(fp, "%-12s ", col->name == NULL ? "" : col->name); - else - xfprintf(fp, "%s\n%20s", col->name, ""); - xfprintf(fp, "%s ", - col->kind == GLP_CV ? " " : - col->kind == GLP_IV ? "*" : "?"); - xfprintf(fp, "%13.6g ", - fabs(col->mipx) <= 1e-9 ? 0.0 : col->mipx); - if (col->type == GLP_LO || col->type == GLP_DB || - col->type == GLP_FX) - xfprintf(fp, "%13.6g ", col->lb); - else - xfprintf(fp, "%13s ", ""); - if (col->type == GLP_UP || col->type == GLP_DB) - xfprintf(fp, "%13.6g ", col->ub); - else - xfprintf(fp, "%13s ", col->type == GLP_FX ? "=" : ""); - xfprintf(fp, "\n"); - } - xfprintf(fp, "\n"); - xfprintf(fp, "Integer feasibility conditions:\n"); - xfprintf(fp, "\n"); - glp_check_kkt(P, GLP_MIP, GLP_KKT_PE, &ae_max, &ae_ind, &re_max, - &re_ind); - xfprintf(fp, "KKT.PE: max.abs.err = %.2e on row %d\n", - ae_max, ae_ind); - xfprintf(fp, " max.rel.err = %.2e on row %d\n", - re_max, re_ind); - xfprintf(fp, "%8s%s\n", "", - re_max <= 1e-9 ? "High quality" : - re_max <= 1e-6 ? "Medium quality" : - re_max <= 1e-3 ? "Low quality" : "SOLUTION IS WRONG"); - xfprintf(fp, "\n"); - glp_check_kkt(P, GLP_MIP, GLP_KKT_PB, &ae_max, &ae_ind, &re_max, - &re_ind); - xfprintf(fp, "KKT.PB: max.abs.err = %.2e on %s %d\n", - ae_max, ae_ind <= P->m ? "row" : "column", - ae_ind <= P->m ? ae_ind : ae_ind - P->m); - xfprintf(fp, " max.rel.err = %.2e on %s %d\n", - re_max, re_ind <= P->m ? "row" : "column", - re_ind <= P->m ? re_ind : re_ind - P->m); - xfprintf(fp, "%8s%s\n", "", - re_max <= 1e-9 ? "High quality" : - re_max <= 1e-6 ? "Medium quality" : - re_max <= 1e-3 ? "Low quality" : "SOLUTION IS INFEASIBLE"); - xfprintf(fp, "\n"); - xfprintf(fp, "End of output\n"); -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - ret = 0; -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_read_mip - read MIP solution from text file -* -* SYNOPSIS -* -* int glp_read_mip(glp_prob *mip, const char *fname); -* -* DESCRIPTION -* -* The routine glp_read_mip reads MIP solution from a text file whose -* name is specified by the parameter fname into the problem object. -* -* For the file format see description of the routine glp_write_mip. -* -* RETURNS -* -* On success the routine returns zero, otherwise non-zero. */ - -int glp_read_mip(glp_prob *mip, const char *fname) -{ glp_data *data; - jmp_buf jump; - int i, j, k, ret = 0; - xprintf("Reading MIP solution from '%s'...\n", fname); - data = glp_sdf_open_file(fname); - if (data == NULL) - { ret = 1; - goto done; - } - if (setjmp(jump)) - { ret = 1; - goto done; - } - glp_sdf_set_jump(data, jump); - /* number of rows, number of columns */ - k = glp_sdf_read_int(data); - if (k != mip->m) - glp_sdf_error(data, "wrong number of rows\n"); - k = glp_sdf_read_int(data); - if (k != mip->n) - glp_sdf_error(data, "wrong number of columns\n"); - /* solution status, objective value */ - k = glp_sdf_read_int(data); - if (!(k == GLP_UNDEF || k == GLP_OPT || k == GLP_FEAS || - k == GLP_NOFEAS)) - glp_sdf_error(data, "invalid solution status\n"); - mip->mip_stat = k; - mip->mip_obj = glp_sdf_read_num(data); - /* rows (auxiliary variables) */ - for (i = 1; i <= mip->m; i++) - { GLPROW *row = mip->row[i]; - row->mipx = glp_sdf_read_num(data); - } - /* columns (structural variables) */ - for (j = 1; j <= mip->n; j++) - { GLPCOL *col = mip->col[j]; - col->mipx = glp_sdf_read_num(data); - if (col->kind == GLP_IV && col->mipx != floor(col->mipx)) - glp_sdf_error(data, "non-integer column value"); - } - xprintf("%d lines were read\n", glp_sdf_line(data)); -done: if (ret) mip->mip_stat = GLP_UNDEF; - if (data != NULL) glp_sdf_close_file(data); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_write_mip - write MIP solution to text file -* -* SYNOPSIS -* -* int glp_write_mip(glp_prob *mip, const char *fname); -* -* DESCRIPTION -* -* The routine glp_write_mip writes the current MIP solution to a text -* file whose name is specified by the parameter fname. This file can -* be read back with the routine glp_read_mip. -* -* RETURNS -* -* On success the routine returns zero, otherwise non-zero. -* -* FILE FORMAT -* -* The file created by the routine glp_write_sol is a plain text file, -* which contains the following information: -* -* m n -* stat obj_val -* r_val[1] -* . . . -* r_val[m] -* c_val[1] -* . . . -* c_val[n] -* -* where: -* m is the number of rows (auxiliary variables); -* n is the number of columns (structural variables); -* stat is the solution status (GLP_UNDEF = 1, GLP_FEAS = 2, -* GLP_NOFEAS = 4, or GLP_OPT = 5); -* obj_val is the objective value; -* r_val[i], i = 1,...,m, is the value of i-th row; -* c_val[j], j = 1,...,n, is the value of j-th column. */ - -int glp_write_mip(glp_prob *mip, const char *fname) -{ glp_file *fp; - int i, j, ret = 0; - xprintf("Writing MIP solution to '%s'...\n", fname); - fp = glp_open(fname, "w"); - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - /* number of rows, number of columns */ - xfprintf(fp, "%d %d\n", mip->m, mip->n); - /* solution status, objective value */ - xfprintf(fp, "%d %.*g\n", mip->mip_stat, DBL_DIG, mip->mip_obj); - /* rows (auxiliary variables) */ - for (i = 1; i <= mip->m; i++) - xfprintf(fp, "%.*g\n", DBL_DIG, mip->row[i]->mipx); - /* columns (structural variables) */ - for (j = 1; j <= mip->n; j++) - xfprintf(fp, "%.*g\n", DBL_DIG, mip->col[j]->mipx); -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xprintf("%d lines were written\n", 2 + mip->m + mip->n); -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpapi16.c b/resources/3rdparty/glpk-4.57/src/glpapi16.c deleted file mode 100644 index 9af86e2bd..000000000 --- a/resources/3rdparty/glpk-4.57/src/glpapi16.c +++ /dev/null @@ -1,330 +0,0 @@ -/* glpapi16.c (graph and network analysis routines) */ - -/*********************************************************************** -* This code is part of GLPK (GNU Linear Programming Kit). -* -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied -* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights -* reserved. E-mail: . -* -* GLPK is free software: you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* GLPK is distributed in the hope that it will be useful, but WITHOUT -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -* License for more details. -* -* You should have received a copy of the GNU General Public License -* along with GLPK. If not, see . -***********************************************************************/ - -#include "env.h" -#include "mc13d.h" -#include "prob.h" - -/*********************************************************************** -* NAME -* -* glp_weak_comp - find all weakly connected components of graph -* -* SYNOPSIS -* -* int glp_weak_comp(glp_graph *G, int v_num); -* -* DESCRIPTION -* -* The routine glp_weak_comp finds all weakly connected components of -* the specified graph. -* -* The parameter v_num specifies an offset of the field of type int -* in the vertex data block, to which the routine stores the number of -* a (weakly) connected component containing that vertex. If v_num < 0, -* no component numbers are stored. -* -* The components are numbered in arbitrary order from 1 to nc, where -* nc is the total number of components found, 0 <= nc <= |V|. -* -* RETURNS -* -* The routine returns nc, the total number of components found. */ - -int glp_weak_comp(glp_graph *G, int v_num) -{ glp_vertex *v; - glp_arc *a; - int f, i, j, nc, nv, pos1, pos2, *prev, *next, *list; - if (v_num >= 0 && v_num > G->v_size - (int)sizeof(int)) - xerror("glp_weak_comp: v_num = %d; invalid offset\n", v_num); - nv = G->nv; - if (nv == 0) - { nc = 0; - goto done; - } - /* allocate working arrays */ - prev = xcalloc(1+nv, sizeof(int)); - next = xcalloc(1+nv, sizeof(int)); - list = xcalloc(1+nv, sizeof(int)); - /* if vertex i is unlabelled, prev[i] is the index of previous - unlabelled vertex, and next[i] is the index of next unlabelled - vertex; if vertex i is labelled, then prev[i] < 0, and next[i] - is the connected component number */ - /* initially all vertices are unlabelled */ - f = 1; - for (i = 1; i <= nv; i++) - prev[i] = i - 1, next[i] = i + 1; - next[nv] = 0; - /* main loop (until all vertices have been labelled) */ - nc = 0; - while (f != 0) - { /* take an unlabelled vertex */ - i = f; - /* and remove it from the list of unlabelled vertices */ - f = next[i]; - if (f != 0) prev[f] = 0; - /* label the vertex; it begins a new component */ - prev[i] = -1, next[i] = ++nc; - /* breadth first search */ - list[1] = i, pos1 = pos2 = 1; - while (pos1 <= pos2) - { /* dequeue vertex i */ - i = list[pos1++]; - /* consider all arcs incoming to vertex i */ - for (a = G->v[i]->in; a != NULL; a = a->h_next) - { /* vertex j is adjacent to vertex i */ - j = a->tail->i; - if (prev[j] >= 0) - { /* vertex j is unlabelled */ - /* remove it from the list of unlabelled vertices */ - if (prev[j] == 0) - f = next[j]; - else - next[prev[j]] = next[j]; - if (next[j] == 0) - ; - else - prev[next[j]] = prev[j]; - /* label the vertex */ - prev[j] = -1, next[j] = nc; - /* and enqueue it for further consideration */ - list[++pos2] = j; - } - } - /* consider all arcs outgoing from vertex i */ - for (a = G->v[i]->out; a != NULL; a = a->t_next) - { /* vertex j is adjacent to vertex i */ - j = a->head->i; - if (prev[j] >= 0) - { /* vertex j is unlabelled */ - /* remove it from the list of unlabelled vertices */ - if (prev[j] == 0) - f = next[j]; - else - next[prev[j]] = next[j]; - if (next[j] == 0) - ; - else - prev[next[j]] = prev[j]; - /* label the vertex */ - prev[j] = -1, next[j] = nc; - /* and enqueue it for further consideration */ - list[++pos2] = j; - } - } - } - } - /* store component numbers */ - if (v_num >= 0) - { for (i = 1; i <= nv; i++) - { v = G->v[i]; - memcpy((char *)v->data + v_num, &next[i], sizeof(int)); - } - } - /* free working arrays */ - xfree(prev); - xfree(next); - xfree(list); -done: return nc; -} - -/*********************************************************************** -* NAME -* -* glp_strong_comp - find all strongly connected components of graph -* -* SYNOPSIS -* -* int glp_strong_comp(glp_graph *G, int v_num); -* -* DESCRIPTION -* -* The routine glp_strong_comp finds all strongly connected components -* of the specified graph. -* -* The parameter v_num specifies an offset of the field of type int -* in the vertex data block, to which the routine stores the number of -* a strongly connected component containing that vertex. If v_num < 0, -* no component numbers are stored. -* -* The components are numbered in arbitrary order from 1 to nc, where -* nc is the total number of components found, 0 <= nc <= |V|. However, -* the component numbering has the property that for every arc (i->j) -* in the graph the condition num(i) >= num(j) holds. -* -* RETURNS -* -* The routine returns nc, the total number of components found. */ - -int glp_strong_comp(glp_graph *G, int v_num) -{ glp_vertex *v; - glp_arc *a; - int i, k, last, n, na, nc, *icn, *ip, *lenr, *ior, *ib, *lowl, - *numb, *prev; - if (v_num >= 0 && v_num > G->v_size - (int)sizeof(int)) - xerror("glp_strong_comp: v_num = %d; invalid offset\n", - v_num); - n = G->nv; - if (n == 0) - { nc = 0; - goto done; - } - na = G->na; - icn = xcalloc(1+na, sizeof(int)); - ip = xcalloc(1+n, sizeof(int)); - lenr = xcalloc(1+n, sizeof(int)); - ior = xcalloc(1+n, sizeof(int)); - ib = xcalloc(1+n, sizeof(int)); - lowl = xcalloc(1+n, sizeof(int)); - numb = xcalloc(1+n, sizeof(int)); - prev = xcalloc(1+n, sizeof(int)); - k = 1; - for (i = 1; i <= n; i++) - { v = G->v[i]; - ip[i] = k; - for (a = v->out; a != NULL; a = a->t_next) - icn[k++] = a->head->i; - lenr[i] = k - ip[i]; - } - xassert(na == k-1); - nc = mc13d(n, icn, ip, lenr, ior, ib, lowl, numb, prev); - if (v_num >= 0) - { xassert(ib[1] == 1); - for (k = 1; k <= nc; k++) - { last = (k < nc ? ib[k+1] : n+1); - xassert(ib[k] < last); - for (i = ib[k]; i < last; i++) - { v = G->v[ior[i]]; - memcpy((char *)v->data + v_num, &k, sizeof(int)); - } - } - } - xfree(icn); - xfree(ip); - xfree(lenr); - xfree(ior); - xfree(ib); - xfree(lowl); - xfree(numb); - xfree(prev); -done: return nc; -} - -/*********************************************************************** -* NAME -* -* glp_top_sort - topological sorting of acyclic digraph -* -* SYNOPSIS -* -* int glp_top_sort(glp_graph *G, int v_num); -* -* DESCRIPTION -* -* The routine glp_top_sort performs topological sorting of vertices of -* the specified acyclic digraph. -* -* The parameter v_num specifies an offset of the field of type int in -* the vertex data block, to which the routine stores the vertex number -* assigned. If v_num < 0, vertex numbers are not stored. -* -* The vertices are numbered from 1 to n, where n is the total number -* of vertices in the graph. The vertex numbering has the property that -* for every arc (i->j) in the graph the condition num(i) < num(j) -* holds. Special case num(i) = 0 means that vertex i is not assigned a -* number, because the graph is *not* acyclic. -* -* RETURNS -* -* If the graph is acyclic and therefore all the vertices have been -* assigned numbers, the routine glp_top_sort returns zero. Otherwise, -* if the graph is not acyclic, the routine returns the number of -* vertices which have not been numbered, i.e. for which num(i) = 0. */ - -static int top_sort(glp_graph *G, int num[]) -{ glp_arc *a; - int i, j, cnt, top, *stack, *indeg; - /* allocate working arrays */ - indeg = xcalloc(1+G->nv, sizeof(int)); - stack = xcalloc(1+G->nv, sizeof(int)); - /* determine initial indegree of each vertex; push into the stack - the vertices having zero indegree */ - top = 0; - for (i = 1; i <= G->nv; i++) - { num[i] = indeg[i] = 0; - for (a = G->v[i]->in; a != NULL; a = a->h_next) - indeg[i]++; - if (indeg[i] == 0) - stack[++top] = i; - } - /* assign numbers to vertices in the sorted order */ - cnt = 0; - while (top > 0) - { /* pull vertex i from the stack */ - i = stack[top--]; - /* it has zero indegree in the current graph */ - xassert(indeg[i] == 0); - /* so assign it a next number */ - xassert(num[i] == 0); - num[i] = ++cnt; - /* remove vertex i from the current graph, update indegree of - its adjacent vertices, and push into the stack new vertices - whose indegree becomes zero */ - for (a = G->v[i]->out; a != NULL; a = a->t_next) - { j = a->head->i; - /* there exists arc (i->j) in the graph */ - xassert(indeg[j] > 0); - indeg[j]--; - if (indeg[j] == 0) - stack[++top] = j; - } - } - /* free working arrays */ - xfree(indeg); - xfree(stack); - return G->nv - cnt; -} - -int glp_top_sort(glp_graph *G, int v_num) -{ glp_vertex *v; - int i, cnt, *num; - if (v_num >= 0 && v_num > G->v_size - (int)sizeof(int)) - xerror("glp_top_sort: v_num = %d; invalid offset\n", v_num); - if (G->nv == 0) - { cnt = 0; - goto done; - } - num = xcalloc(1+G->nv, sizeof(int)); - cnt = top_sort(G, num); - if (v_num >= 0) - { for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - memcpy((char *)v->data + v_num, &num[i], sizeof(int)); - } - } - xfree(num); -done: return cnt; -} - -/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpapi17.c b/resources/3rdparty/glpk-4.57/src/glpapi17.c deleted file mode 100644 index 425c6a5a8..000000000 --- a/resources/3rdparty/glpk-4.57/src/glpapi17.c +++ /dev/null @@ -1,1269 +0,0 @@ -/* glpapi17.c (flow network problems) */ - -/*********************************************************************** -* This code is part of GLPK (GNU Linear Programming Kit). -* -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied -* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights -* reserved. E-mail: . -* -* GLPK is free software: you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* GLPK is distributed in the hope that it will be useful, but WITHOUT -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -* License for more details. -* -* You should have received a copy of the GNU General Public License -* along with GLPK. If not, see . -***********************************************************************/ - -#include "env.h" -#include "ffalg.h" -#include "mc21a.h" -#include "okalg.h" -#include "prob.h" -#include "relax4.h" - -/*********************************************************************** -* NAME -* -* glp_mincost_lp - convert minimum cost flow problem to LP -* -* SYNOPSIS -* -* void glp_mincost_lp(glp_prob *lp, glp_graph *G, int names, -* int v_rhs, int a_low, int a_cap, int a_cost); -* -* DESCRIPTION -* -* The routine glp_mincost_lp builds an LP problem, which corresponds -* to the minimum cost flow problem on the specified network G. */ - -void glp_mincost_lp(glp_prob *lp, glp_graph *G, int names, int v_rhs, - int a_low, int a_cap, int a_cost) -{ glp_vertex *v; - glp_arc *a; - int i, j, type, ind[1+2]; - double rhs, low, cap, cost, val[1+2]; - if (!(names == GLP_ON || names == GLP_OFF)) - xerror("glp_mincost_lp: names = %d; invalid parameter\n", - names); - if (v_rhs >= 0 && v_rhs > G->v_size - (int)sizeof(double)) - xerror("glp_mincost_lp: v_rhs = %d; invalid offset\n", v_rhs); - if (a_low >= 0 && a_low > G->a_size - (int)sizeof(double)) - xerror("glp_mincost_lp: a_low = %d; invalid offset\n", a_low); - if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) - xerror("glp_mincost_lp: a_cap = %d; invalid offset\n", a_cap); - if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) - xerror("glp_mincost_lp: a_cost = %d; invalid offset\n", a_cost) - ; - glp_erase_prob(lp); - if (names) glp_set_prob_name(lp, G->name); - if (G->nv > 0) glp_add_rows(lp, G->nv); - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - if (names) glp_set_row_name(lp, i, v->name); - if (v_rhs >= 0) - memcpy(&rhs, (char *)v->data + v_rhs, sizeof(double)); - else - rhs = 0.0; - glp_set_row_bnds(lp, i, GLP_FX, rhs, rhs); - } - if (G->na > 0) glp_add_cols(lp, G->na); - for (i = 1, j = 0; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { j++; - if (names) - { char name[50+1]; - sprintf(name, "x[%d,%d]", a->tail->i, a->head->i); - xassert(strlen(name) < sizeof(name)); - glp_set_col_name(lp, j, name); - } - if (a->tail->i != a->head->i) - { ind[1] = a->tail->i, val[1] = +1.0; - ind[2] = a->head->i, val[2] = -1.0; - glp_set_mat_col(lp, j, 2, ind, val); - } - if (a_low >= 0) - memcpy(&low, (char *)a->data + a_low, sizeof(double)); - else - low = 0.0; - if (a_cap >= 0) - memcpy(&cap, (char *)a->data + a_cap, sizeof(double)); - else - cap = 1.0; - if (cap == DBL_MAX) - type = GLP_LO; - else if (low != cap) - type = GLP_DB; - else - type = GLP_FX; - glp_set_col_bnds(lp, j, type, low, cap); - if (a_cost >= 0) - memcpy(&cost, (char *)a->data + a_cost, sizeof(double)); - else - cost = 0.0; - glp_set_obj_coef(lp, j, cost); - } - } - xassert(j == G->na); - return; -} - -/**********************************************************************/ - -int glp_mincost_okalg(glp_graph *G, int v_rhs, int a_low, int a_cap, - int a_cost, double *sol, int a_x, int v_pi) -{ /* find minimum-cost flow with out-of-kilter algorithm */ - glp_vertex *v; - glp_arc *a; - int nv, na, i, k, s, t, *tail, *head, *low, *cap, *cost, *x, *pi, - ret; - double sum, temp; - if (v_rhs >= 0 && v_rhs > G->v_size - (int)sizeof(double)) - xerror("glp_mincost_okalg: v_rhs = %d; invalid offset\n", - v_rhs); - if (a_low >= 0 && a_low > G->a_size - (int)sizeof(double)) - xerror("glp_mincost_okalg: a_low = %d; invalid offset\n", - a_low); - if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) - xerror("glp_mincost_okalg: a_cap = %d; invalid offset\n", - a_cap); - if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) - xerror("glp_mincost_okalg: a_cost = %d; invalid offset\n", - a_cost); - if (a_x >= 0 && a_x > G->a_size - (int)sizeof(double)) - xerror("glp_mincost_okalg: a_x = %d; invalid offset\n", a_x); - if (v_pi >= 0 && v_pi > G->v_size - (int)sizeof(double)) - xerror("glp_mincost_okalg: v_pi = %d; invalid offset\n", v_pi); - /* s is artificial source node */ - s = G->nv + 1; - /* t is artificial sink node */ - t = s + 1; - /* nv is the total number of nodes in the resulting network */ - nv = t; - /* na is the total number of arcs in the resulting network */ - na = G->na + 1; - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - if (v_rhs >= 0) - memcpy(&temp, (char *)v->data + v_rhs, sizeof(double)); - else - temp = 0.0; - if (temp != 0.0) na++; - } - /* allocate working arrays */ - tail = xcalloc(1+na, sizeof(int)); - head = xcalloc(1+na, sizeof(int)); - low = xcalloc(1+na, sizeof(int)); - cap = xcalloc(1+na, sizeof(int)); - cost = xcalloc(1+na, sizeof(int)); - x = xcalloc(1+na, sizeof(int)); - pi = xcalloc(1+nv, sizeof(int)); - /* construct the resulting network */ - k = 0; - /* (original arcs) */ - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { k++; - tail[k] = a->tail->i; - head[k] = a->head->i; - if (tail[k] == head[k]) - { ret = GLP_EDATA; - goto done; - } - if (a_low >= 0) - memcpy(&temp, (char *)a->data + a_low, sizeof(double)); - else - temp = 0.0; - if (!(0.0 <= temp && temp <= (double)INT_MAX && - temp == floor(temp))) - { ret = GLP_EDATA; - goto done; - } - low[k] = (int)temp; - if (a_cap >= 0) - memcpy(&temp, (char *)a->data + a_cap, sizeof(double)); - else - temp = 1.0; - if (!((double)low[k] <= temp && temp <= (double)INT_MAX && - temp == floor(temp))) - { ret = GLP_EDATA; - goto done; - } - cap[k] = (int)temp; - if (a_cost >= 0) - memcpy(&temp, (char *)a->data + a_cost, sizeof(double)); - else - temp = 0.0; - if (!(fabs(temp) <= (double)INT_MAX && temp == floor(temp))) - { ret = GLP_EDATA; - goto done; - } - cost[k] = (int)temp; - } - } - /* (artificial arcs) */ - sum = 0.0; - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - if (v_rhs >= 0) - memcpy(&temp, (char *)v->data + v_rhs, sizeof(double)); - else - temp = 0.0; - if (!(fabs(temp) <= (double)INT_MAX && temp == floor(temp))) - { ret = GLP_EDATA; - goto done; - } - if (temp > 0.0) - { /* artificial arc from s to original source i */ - k++; - tail[k] = s; - head[k] = i; - low[k] = cap[k] = (int)(+temp); /* supply */ - cost[k] = 0; - sum += (double)temp; - } - else if (temp < 0.0) - { /* artificial arc from original sink i to t */ - k++; - tail[k] = i; - head[k] = t; - low[k] = cap[k] = (int)(-temp); /* demand */ - cost[k] = 0; - } - } - /* (feedback arc from t to s) */ - k++; - xassert(k == na); - tail[k] = t; - head[k] = s; - if (sum > (double)INT_MAX) - { ret = GLP_EDATA; - goto done; - } - low[k] = cap[k] = (int)sum; /* total supply/demand */ - cost[k] = 0; - /* find minimal-cost circulation in the resulting network */ - ret = okalg(nv, na, tail, head, low, cap, cost, x, pi); - switch (ret) - { case 0: - /* optimal circulation found */ - ret = 0; - break; - case 1: - /* no feasible circulation exists */ - ret = GLP_ENOPFS; - break; - case 2: - /* integer overflow occured */ - ret = GLP_ERANGE; - goto done; - case 3: - /* optimality test failed (logic error) */ - ret = GLP_EFAIL; - goto done; - default: - xassert(ret != ret); - } - /* store solution components */ - /* (objective function = the total cost) */ - if (sol != NULL) - { temp = 0.0; - for (k = 1; k <= na; k++) - temp += (double)cost[k] * (double)x[k]; - *sol = temp; - } - /* (arc flows) */ - if (a_x >= 0) - { k = 0; - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { temp = (double)x[++k]; - memcpy((char *)a->data + a_x, &temp, sizeof(double)); - } - } - } - /* (node potentials = Lagrange multipliers) */ - if (v_pi >= 0) - { for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - temp = - (double)pi[i]; - memcpy((char *)v->data + v_pi, &temp, sizeof(double)); - } - } -done: /* free working arrays */ - xfree(tail); - xfree(head); - xfree(low); - xfree(cap); - xfree(cost); - xfree(x); - xfree(pi); - return ret; -} - -/**********************************************************************/ - -static int overflow(int u, int v) -{ /* check for integer overflow on computing u + v */ - if (u > 0 && v > 0 && u + v < 0) return 1; - if (u < 0 && v < 0 && u + v > 0) return 1; - return 0; -} - -int glp_mincost_relax4(glp_graph *G, int v_rhs, int a_low, int a_cap, - int a_cost, int crash, double *sol, int a_x, int a_rc) -{ /* find minimum-cost flow with Bertsekas-Tseng relaxation method - (RELAX-IV) */ - glp_vertex *v; - glp_arc *a; - struct relax4_csa csa; - int i, k, large, n, na, ret; - double cap, cost, low, rc, rhs, sum, x; - if (v_rhs >= 0 && v_rhs > G->v_size - (int)sizeof(double)) - xerror("glp_mincost_relax4: v_rhs = %d; invalid offset\n", - v_rhs); - if (a_low >= 0 && a_low > G->a_size - (int)sizeof(double)) - xerror("glp_mincost_relax4: a_low = %d; invalid offset\n", - a_low); - if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) - xerror("glp_mincost_relax4: a_cap = %d; invalid offset\n", - a_cap); - if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) - xerror("glp_mincost_relax4: a_cost = %d; invalid offset\n", - a_cost); - if (a_x >= 0 && a_x > G->a_size - (int)sizeof(double)) - xerror("glp_mincost_relax4: a_x = %d; invalid offset\n", - a_x); - if (a_rc >= 0 && a_rc > G->a_size - (int)sizeof(double)) - xerror("glp_mincost_relax4: a_rc = %d; invalid offset\n", - a_rc); - csa.n = n = G->nv; /* number of nodes */ - csa.na = na = G->na; /* number of arcs */ - csa.large = large = INT_MAX / 4; - csa.repeat = 0; - csa.crash = crash; - /* allocate working arrays */ - csa.startn = xcalloc(1+na, sizeof(int)); - csa.endn = xcalloc(1+na, sizeof(int)); - csa.fou = xcalloc(1+n, sizeof(int)); - csa.nxtou = xcalloc(1+na, sizeof(int)); - csa.fin = xcalloc(1+n, sizeof(int)); - csa.nxtin = xcalloc(1+na, sizeof(int)); - csa.rc = xcalloc(1+na, sizeof(int)); - csa.u = xcalloc(1+na, sizeof(int)); - csa.dfct = xcalloc(1+n, sizeof(int)); - csa.x = xcalloc(1+na, sizeof(int)); - csa.label = xcalloc(1+n, sizeof(int)); - csa.prdcsr = xcalloc(1+n, sizeof(int)); - csa.save = xcalloc(1+na, sizeof(int)); - csa.tfstou = xcalloc(1+n, sizeof(int)); - csa.tnxtou = xcalloc(1+na, sizeof(int)); - csa.tfstin = xcalloc(1+n, sizeof(int)); - csa.tnxtin = xcalloc(1+na, sizeof(int)); - csa.nxtqueue = xcalloc(1+n, sizeof(int)); - csa.scan = xcalloc(1+n, sizeof(char)); - csa.mark = xcalloc(1+n, sizeof(char)); - if (crash) - { csa.extend_arc = xcalloc(1+n, sizeof(int)); - csa.sb_level = xcalloc(1+n, sizeof(int)); - csa.sb_arc = xcalloc(1+n, sizeof(int)); - } - else - { csa.extend_arc = NULL; - csa.sb_level = NULL; - csa.sb_arc = NULL; - } - /* scan nodes */ - for (i = 1; i <= n; i++) - { v = G->v[i]; - /* get supply at i-th node */ - if (v_rhs >= 0) - memcpy(&rhs, (char *)v->data + v_rhs, sizeof(double)); - else - rhs = 0.0; - if (!(fabs(rhs) <= (double)large && rhs == floor(rhs))) - { ret = GLP_EDATA; - goto done; - } - /* set demand at i-th node */ - csa.dfct[i] = -(int)rhs; - } - /* scan arcs */ - k = 0; - for (i = 1; i <= n; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { k++; - /* set endpoints of k-th arc */ - if (a->tail->i == a->head->i) - { /* self-loops not allowed */ - ret = GLP_EDATA; - goto done; - } - csa.startn[k] = a->tail->i; - csa.endn[k] = a->head->i; - /* set per-unit cost for k-th arc flow */ - if (a_cost >= 0) - memcpy(&cost, (char *)a->data + a_cost, sizeof(double)); - else - cost = 0.0; - if (!(fabs(cost) <= (double)large && cost == floor(cost))) - { ret = GLP_EDATA; - goto done; - } - csa.rc[k] = (int)cost; - /* get lower bound for k-th arc flow */ - if (a_low >= 0) - memcpy(&low, (char *)a->data + a_low, sizeof(double)); - else - low = 0.0; - if (!(0.0 <= low && low <= (double)large && - low == floor(low))) - { ret = GLP_EDATA; - goto done; - } - /* get upper bound for k-th arc flow */ - if (a_cap >= 0) - memcpy(&cap, (char *)a->data + a_cap, sizeof(double)); - else - cap = 1.0; - if (!(low <= cap && cap <= (double)large && - cap == floor(cap))) - { ret = GLP_EDATA; - goto done; - } - /* substitute x = x' + low, where 0 <= x' <= cap - low */ - csa.u[k] = (int)(cap - low); - /* correct demands at endpoints of k-th arc */ - if (overflow(csa.dfct[a->tail->i], +low)) - { ret = GLP_ERANGE; - goto done; - } - csa.dfct[a->tail->i] += low; - if (overflow(csa.dfct[a->head->i], -low)) - { ret = GLP_ERANGE; - goto done; - } - csa.dfct[a->head->i] -= low; - } - } - /* construct linked list for network topology */ - relax4_inidat(&csa); - /* find minimum-cost flow */ - ret = relax4(&csa); - if (ret != 0) - { /* problem is found to be infeasible */ - xassert(1 <= ret && ret <= 8); - ret = GLP_ENOPFS; - goto done; - } - /* store solution */ - sum = 0.0; - k = 0; - for (i = 1; i <= n; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { k++; - /* get lower bound for k-th arc flow */ - if (a_low >= 0) - memcpy(&low, (char *)a->data + a_low, sizeof(double)); - else - low = 0.0; - /* store original flow x = x' + low thru k-th arc */ - x = (double)csa.x[k] + low; - if (a_x >= 0) - memcpy((char *)a->data + a_x, &x, sizeof(double)); - /* store reduced cost for k-th arc flow */ - rc = (double)csa.rc[k]; - if (a_rc >= 0) - memcpy((char *)a->data + a_rc, &rc, sizeof(double)); - /* get per-unit cost for k-th arc flow */ - if (a_cost >= 0) - memcpy(&cost, (char *)a->data + a_cost, sizeof(double)); - else - cost = 0.0; - /* compute the total cost */ - sum += cost * x; - } - } - /* store the total cost */ - if (sol != NULL) - *sol = sum; -done: /* free working arrays */ - xfree(csa.startn); - xfree(csa.endn); - xfree(csa.fou); - xfree(csa.nxtou); - xfree(csa.fin); - xfree(csa.nxtin); - xfree(csa.rc); - xfree(csa.u); - xfree(csa.dfct); - xfree(csa.x); - xfree(csa.label); - xfree(csa.prdcsr); - xfree(csa.save); - xfree(csa.tfstou); - xfree(csa.tnxtou); - xfree(csa.tfstin); - xfree(csa.tnxtin); - xfree(csa.nxtqueue); - xfree(csa.scan); - xfree(csa.mark); - if (crash) - { xfree(csa.extend_arc); - xfree(csa.sb_level); - xfree(csa.sb_arc); - } - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_maxflow_lp - convert maximum flow problem to LP -* -* SYNOPSIS -* -* void glp_maxflow_lp(glp_prob *lp, glp_graph *G, int names, int s, -* int t, int a_cap); -* -* DESCRIPTION -* -* The routine glp_maxflow_lp builds an LP problem, which corresponds -* to the maximum flow problem on the specified network G. */ - -void glp_maxflow_lp(glp_prob *lp, glp_graph *G, int names, int s, - int t, int a_cap) -{ glp_vertex *v; - glp_arc *a; - int i, j, type, ind[1+2]; - double cap, val[1+2]; - if (!(names == GLP_ON || names == GLP_OFF)) - xerror("glp_maxflow_lp: names = %d; invalid parameter\n", - names); - if (!(1 <= s && s <= G->nv)) - xerror("glp_maxflow_lp: s = %d; source node number out of rang" - "e\n", s); - if (!(1 <= t && t <= G->nv)) - xerror("glp_maxflow_lp: t = %d: sink node number out of range " - "\n", t); - if (s == t) - xerror("glp_maxflow_lp: s = t = %d; source and sink nodes must" - " be distinct\n", s); - if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) - xerror("glp_maxflow_lp: a_cap = %d; invalid offset\n", a_cap); - glp_erase_prob(lp); - if (names) glp_set_prob_name(lp, G->name); - glp_set_obj_dir(lp, GLP_MAX); - glp_add_rows(lp, G->nv); - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - if (names) glp_set_row_name(lp, i, v->name); - if (i == s) - type = GLP_LO; - else if (i == t) - type = GLP_UP; - else - type = GLP_FX; - glp_set_row_bnds(lp, i, type, 0.0, 0.0); - } - if (G->na > 0) glp_add_cols(lp, G->na); - for (i = 1, j = 0; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { j++; - if (names) - { char name[50+1]; - sprintf(name, "x[%d,%d]", a->tail->i, a->head->i); - xassert(strlen(name) < sizeof(name)); - glp_set_col_name(lp, j, name); - } - if (a->tail->i != a->head->i) - { ind[1] = a->tail->i, val[1] = +1.0; - ind[2] = a->head->i, val[2] = -1.0; - glp_set_mat_col(lp, j, 2, ind, val); - } - if (a_cap >= 0) - memcpy(&cap, (char *)a->data + a_cap, sizeof(double)); - else - cap = 1.0; - if (cap == DBL_MAX) - type = GLP_LO; - else if (cap != 0.0) - type = GLP_DB; - else - type = GLP_FX; - glp_set_col_bnds(lp, j, type, 0.0, cap); - if (a->tail->i == s) - glp_set_obj_coef(lp, j, +1.0); - else if (a->head->i == s) - glp_set_obj_coef(lp, j, -1.0); - } - } - xassert(j == G->na); - return; -} - -int glp_maxflow_ffalg(glp_graph *G, int s, int t, int a_cap, - double *sol, int a_x, int v_cut) -{ /* find maximal flow with Ford-Fulkerson algorithm */ - glp_vertex *v; - glp_arc *a; - int nv, na, i, k, flag, *tail, *head, *cap, *x, ret; - char *cut; - double temp; - if (!(1 <= s && s <= G->nv)) - xerror("glp_maxflow_ffalg: s = %d; source node number out of r" - "ange\n", s); - if (!(1 <= t && t <= G->nv)) - xerror("glp_maxflow_ffalg: t = %d: sink node number out of ran" - "ge\n", t); - if (s == t) - xerror("glp_maxflow_ffalg: s = t = %d; source and sink nodes m" - "ust be distinct\n", s); - if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) - xerror("glp_maxflow_ffalg: a_cap = %d; invalid offset\n", - a_cap); - if (v_cut >= 0 && v_cut > G->v_size - (int)sizeof(int)) - xerror("glp_maxflow_ffalg: v_cut = %d; invalid offset\n", - v_cut); - /* allocate working arrays */ - nv = G->nv; - na = G->na; - tail = xcalloc(1+na, sizeof(int)); - head = xcalloc(1+na, sizeof(int)); - cap = xcalloc(1+na, sizeof(int)); - x = xcalloc(1+na, sizeof(int)); - if (v_cut < 0) - cut = NULL; - else - cut = xcalloc(1+nv, sizeof(char)); - /* copy the flow network */ - k = 0; - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { k++; - tail[k] = a->tail->i; - head[k] = a->head->i; - if (tail[k] == head[k]) - { ret = GLP_EDATA; - goto done; - } - if (a_cap >= 0) - memcpy(&temp, (char *)a->data + a_cap, sizeof(double)); - else - temp = 1.0; - if (!(0.0 <= temp && temp <= (double)INT_MAX && - temp == floor(temp))) - { ret = GLP_EDATA; - goto done; - } - cap[k] = (int)temp; - } - } - xassert(k == na); - /* find maximal flow in the flow network */ - ffalg(nv, na, tail, head, s, t, cap, x, cut); - ret = 0; - /* store solution components */ - /* (objective function = total flow through the network) */ - if (sol != NULL) - { temp = 0.0; - for (k = 1; k <= na; k++) - { if (tail[k] == s) - temp += (double)x[k]; - else if (head[k] == s) - temp -= (double)x[k]; - } - *sol = temp; - } - /* (arc flows) */ - if (a_x >= 0) - { k = 0; - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { temp = (double)x[++k]; - memcpy((char *)a->data + a_x, &temp, sizeof(double)); - } - } - } - /* (node flags) */ - if (v_cut >= 0) - { for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - flag = cut[i]; - memcpy((char *)v->data + v_cut, &flag, sizeof(int)); - } - } -done: /* free working arrays */ - xfree(tail); - xfree(head); - xfree(cap); - xfree(x); - if (cut != NULL) xfree(cut); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_check_asnprob - check correctness of assignment problem data -* -* SYNOPSIS -* -* int glp_check_asnprob(glp_graph *G, int v_set); -* -* RETURNS -* -* If the specified assignment problem data are correct, the routine -* glp_check_asnprob returns zero, otherwise, non-zero. */ - -int glp_check_asnprob(glp_graph *G, int v_set) -{ glp_vertex *v; - int i, k, ret = 0; - if (v_set >= 0 && v_set > G->v_size - (int)sizeof(int)) - xerror("glp_check_asnprob: v_set = %d; invalid offset\n", - v_set); - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - if (v_set >= 0) - { memcpy(&k, (char *)v->data + v_set, sizeof(int)); - if (k == 0) - { if (v->in != NULL) - { ret = 1; - break; - } - } - else if (k == 1) - { if (v->out != NULL) - { ret = 2; - break; - } - } - else - { ret = 3; - break; - } - } - else - { if (v->in != NULL && v->out != NULL) - { ret = 4; - break; - } - } - } - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_asnprob_lp - convert assignment problem to LP -* -* SYNOPSIS -* -* int glp_asnprob_lp(glp_prob *P, int form, glp_graph *G, int names, -* int v_set, int a_cost); -* -* DESCRIPTION -* -* The routine glp_asnprob_lp builds an LP problem, which corresponds -* to the assignment problem on the specified graph G. -* -* RETURNS -* -* If the LP problem has been successfully built, the routine returns -* zero, otherwise, non-zero. */ - -int glp_asnprob_lp(glp_prob *P, int form, glp_graph *G, int names, - int v_set, int a_cost) -{ glp_vertex *v; - glp_arc *a; - int i, j, ret, ind[1+2]; - double cost, val[1+2]; - if (!(form == GLP_ASN_MIN || form == GLP_ASN_MAX || - form == GLP_ASN_MMP)) - xerror("glp_asnprob_lp: form = %d; invalid parameter\n", - form); - if (!(names == GLP_ON || names == GLP_OFF)) - xerror("glp_asnprob_lp: names = %d; invalid parameter\n", - names); - if (v_set >= 0 && v_set > G->v_size - (int)sizeof(int)) - xerror("glp_asnprob_lp: v_set = %d; invalid offset\n", - v_set); - if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) - xerror("glp_asnprob_lp: a_cost = %d; invalid offset\n", - a_cost); - ret = glp_check_asnprob(G, v_set); - if (ret != 0) goto done; - glp_erase_prob(P); - if (names) glp_set_prob_name(P, G->name); - glp_set_obj_dir(P, form == GLP_ASN_MIN ? GLP_MIN : GLP_MAX); - if (G->nv > 0) glp_add_rows(P, G->nv); - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - if (names) glp_set_row_name(P, i, v->name); - glp_set_row_bnds(P, i, form == GLP_ASN_MMP ? GLP_UP : GLP_FX, - 1.0, 1.0); - } - if (G->na > 0) glp_add_cols(P, G->na); - for (i = 1, j = 0; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { j++; - if (names) - { char name[50+1]; - sprintf(name, "x[%d,%d]", a->tail->i, a->head->i); - xassert(strlen(name) < sizeof(name)); - glp_set_col_name(P, j, name); - } - ind[1] = a->tail->i, val[1] = +1.0; - ind[2] = a->head->i, val[2] = +1.0; - glp_set_mat_col(P, j, 2, ind, val); - glp_set_col_bnds(P, j, GLP_DB, 0.0, 1.0); - if (a_cost >= 0) - memcpy(&cost, (char *)a->data + a_cost, sizeof(double)); - else - cost = 1.0; - glp_set_obj_coef(P, j, cost); - } - } - xassert(j == G->na); -done: return ret; -} - -/**********************************************************************/ - -int glp_asnprob_okalg(int form, glp_graph *G, int v_set, int a_cost, - double *sol, int a_x) -{ /* solve assignment problem with out-of-kilter algorithm */ - glp_vertex *v; - glp_arc *a; - int nv, na, i, k, *tail, *head, *low, *cap, *cost, *x, *pi, ret; - double temp; - if (!(form == GLP_ASN_MIN || form == GLP_ASN_MAX || - form == GLP_ASN_MMP)) - xerror("glp_asnprob_okalg: form = %d; invalid parameter\n", - form); - if (v_set >= 0 && v_set > G->v_size - (int)sizeof(int)) - xerror("glp_asnprob_okalg: v_set = %d; invalid offset\n", - v_set); - if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) - xerror("glp_asnprob_okalg: a_cost = %d; invalid offset\n", - a_cost); - if (a_x >= 0 && a_x > G->a_size - (int)sizeof(int)) - xerror("glp_asnprob_okalg: a_x = %d; invalid offset\n", a_x); - if (glp_check_asnprob(G, v_set)) - return GLP_EDATA; - /* nv is the total number of nodes in the resulting network */ - nv = G->nv + 1; - /* na is the total number of arcs in the resulting network */ - na = G->na + G->nv; - /* allocate working arrays */ - tail = xcalloc(1+na, sizeof(int)); - head = xcalloc(1+na, sizeof(int)); - low = xcalloc(1+na, sizeof(int)); - cap = xcalloc(1+na, sizeof(int)); - cost = xcalloc(1+na, sizeof(int)); - x = xcalloc(1+na, sizeof(int)); - pi = xcalloc(1+nv, sizeof(int)); - /* construct the resulting network */ - k = 0; - /* (original arcs) */ - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { k++; - tail[k] = a->tail->i; - head[k] = a->head->i; - low[k] = 0; - cap[k] = 1; - if (a_cost >= 0) - memcpy(&temp, (char *)a->data + a_cost, sizeof(double)); - else - temp = 1.0; - if (!(fabs(temp) <= (double)INT_MAX && temp == floor(temp))) - { ret = GLP_EDATA; - goto done; - } - cost[k] = (int)temp; - if (form != GLP_ASN_MIN) cost[k] = - cost[k]; - } - } - /* (artificial arcs) */ - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - k++; - if (v->out == NULL) - tail[k] = i, head[k] = nv; - else if (v->in == NULL) - tail[k] = nv, head[k] = i; - else - xassert(v != v); - low[k] = (form == GLP_ASN_MMP ? 0 : 1); - cap[k] = 1; - cost[k] = 0; - } - xassert(k == na); - /* find minimal-cost circulation in the resulting network */ - ret = okalg(nv, na, tail, head, low, cap, cost, x, pi); - switch (ret) - { case 0: - /* optimal circulation found */ - ret = 0; - break; - case 1: - /* no feasible circulation exists */ - ret = GLP_ENOPFS; - break; - case 2: - /* integer overflow occured */ - ret = GLP_ERANGE; - goto done; - case 3: - /* optimality test failed (logic error) */ - ret = GLP_EFAIL; - goto done; - default: - xassert(ret != ret); - } - /* store solution components */ - /* (objective function = the total cost) */ - if (sol != NULL) - { temp = 0.0; - for (k = 1; k <= na; k++) - temp += (double)cost[k] * (double)x[k]; - if (form != GLP_ASN_MIN) temp = - temp; - *sol = temp; - } - /* (arc flows) */ - if (a_x >= 0) - { k = 0; - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { k++; - if (ret == 0) - xassert(x[k] == 0 || x[k] == 1); - memcpy((char *)a->data + a_x, &x[k], sizeof(int)); - } - } - } -done: /* free working arrays */ - xfree(tail); - xfree(head); - xfree(low); - xfree(cap); - xfree(cost); - xfree(x); - xfree(pi); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_asnprob_hall - find bipartite matching of maximum cardinality -* -* SYNOPSIS -* -* int glp_asnprob_hall(glp_graph *G, int v_set, int a_x); -* -* DESCRIPTION -* -* The routine glp_asnprob_hall finds a matching of maximal cardinality -* in the specified bipartite graph G. It uses a version of the Fortran -* routine MC21A developed by I.S.Duff [1], which implements Hall's -* algorithm [2]. -* -* RETURNS -* -* The routine glp_asnprob_hall returns the cardinality of the matching -* found. However, if the specified graph is incorrect (as detected by -* the routine glp_check_asnprob), the routine returns negative value. -* -* REFERENCES -* -* 1. I.S.Duff, Algorithm 575: Permutations for zero-free diagonal, ACM -* Trans. on Math. Softw. 7 (1981), 387-390. -* -* 2. M.Hall, "An Algorithm for distinct representatives," Amer. Math. -* Monthly 63 (1956), 716-717. */ - -int glp_asnprob_hall(glp_graph *G, int v_set, int a_x) -{ glp_vertex *v; - glp_arc *a; - int card, i, k, loc, n, n1, n2, xij; - int *num, *icn, *ip, *lenr, *iperm, *pr, *arp, *cv, *out; - if (v_set >= 0 && v_set > G->v_size - (int)sizeof(int)) - xerror("glp_asnprob_hall: v_set = %d; invalid offset\n", - v_set); - if (a_x >= 0 && a_x > G->a_size - (int)sizeof(int)) - xerror("glp_asnprob_hall: a_x = %d; invalid offset\n", a_x); - if (glp_check_asnprob(G, v_set)) - return -1; - /* determine the number of vertices in sets R and S and renumber - vertices in S which correspond to columns of the matrix; skip - all isolated vertices */ - num = xcalloc(1+G->nv, sizeof(int)); - n1 = n2 = 0; - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - if (v->in == NULL && v->out != NULL) - n1++, num[i] = 0; /* vertex in R */ - else if (v->in != NULL && v->out == NULL) - n2++, num[i] = n2; /* vertex in S */ - else - { xassert(v->in == NULL && v->out == NULL); - num[i] = -1; /* isolated vertex */ - } - } - /* the matrix must be square, thus, if it has more columns than - rows, extra rows will be just empty, and vice versa */ - n = (n1 >= n2 ? n1 : n2); - /* allocate working arrays */ - icn = xcalloc(1+G->na, sizeof(int)); - ip = xcalloc(1+n, sizeof(int)); - lenr = xcalloc(1+n, sizeof(int)); - iperm = xcalloc(1+n, sizeof(int)); - pr = xcalloc(1+n, sizeof(int)); - arp = xcalloc(1+n, sizeof(int)); - cv = xcalloc(1+n, sizeof(int)); - out = xcalloc(1+n, sizeof(int)); - /* build the adjacency matrix of the bipartite graph in row-wise - format (rows are vertices in R, columns are vertices in S) */ - k = 0, loc = 1; - for (i = 1; i <= G->nv; i++) - { if (num[i] != 0) continue; - /* vertex i in R */ - ip[++k] = loc; - v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { xassert(num[a->head->i] != 0); - icn[loc++] = num[a->head->i]; - } - lenr[k] = loc - ip[k]; - } - xassert(loc-1 == G->na); - /* make all extra rows empty (all extra columns are empty due to - the row-wise format used) */ - for (k++; k <= n; k++) - ip[k] = loc, lenr[k] = 0; - /* find a row permutation that maximizes the number of non-zeros - on the main diagonal */ - card = mc21a(n, icn, ip, lenr, iperm, pr, arp, cv, out); -#if 1 /* 18/II-2010 */ - /* FIXED: if card = n, arp remains clobbered on exit */ - for (i = 1; i <= n; i++) - arp[i] = 0; - for (i = 1; i <= card; i++) - { k = iperm[i]; - xassert(1 <= k && k <= n); - xassert(arp[k] == 0); - arp[k] = i; - } -#endif - /* store solution, if necessary */ - if (a_x < 0) goto skip; - k = 0; - for (i = 1; i <= G->nv; i++) - { if (num[i] != 0) continue; - /* vertex i in R */ - k++; - v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { /* arp[k] is the number of matched column or zero */ - if (arp[k] == num[a->head->i]) - { xassert(arp[k] != 0); - xij = 1; - } - else - xij = 0; - memcpy((char *)a->data + a_x, &xij, sizeof(int)); - } - } -skip: /* free working arrays */ - xfree(num); - xfree(icn); - xfree(ip); - xfree(lenr); - xfree(iperm); - xfree(pr); - xfree(arp); - xfree(cv); - xfree(out); - return card; -} - -/*********************************************************************** -* NAME -* -* glp_cpp - solve critical path problem -* -* SYNOPSIS -* -* double glp_cpp(glp_graph *G, int v_t, int v_es, int v_ls); -* -* DESCRIPTION -* -* The routine glp_cpp solves the critical path problem represented in -* the form of the project network. -* -* The parameter G is a pointer to the graph object, which specifies -* the project network. This graph must be acyclic. Multiple arcs are -* allowed being considered as single arcs. -* -* The parameter v_t specifies an offset of the field of type double -* in the vertex data block, which contains time t[i] >= 0 needed to -* perform corresponding job j. If v_t < 0, it is assumed that t[i] = 1 -* for all jobs. -* -* The parameter v_es specifies an offset of the field of type double -* in the vertex data block, to which the routine stores earliest start -* time for corresponding job. If v_es < 0, this time is not stored. -* -* The parameter v_ls specifies an offset of the field of type double -* in the vertex data block, to which the routine stores latest start -* time for corresponding job. If v_ls < 0, this time is not stored. -* -* RETURNS -* -* The routine glp_cpp returns the minimal project duration, that is, -* minimal time needed to perform all jobs in the project. */ - -static void sorting(glp_graph *G, int list[]); - -double glp_cpp(glp_graph *G, int v_t, int v_es, int v_ls) -{ glp_vertex *v; - glp_arc *a; - int i, j, k, nv, *list; - double temp, total, *t, *es, *ls; - if (v_t >= 0 && v_t > G->v_size - (int)sizeof(double)) - xerror("glp_cpp: v_t = %d; invalid offset\n", v_t); - if (v_es >= 0 && v_es > G->v_size - (int)sizeof(double)) - xerror("glp_cpp: v_es = %d; invalid offset\n", v_es); - if (v_ls >= 0 && v_ls > G->v_size - (int)sizeof(double)) - xerror("glp_cpp: v_ls = %d; invalid offset\n", v_ls); - nv = G->nv; - if (nv == 0) - { total = 0.0; - goto done; - } - /* allocate working arrays */ - t = xcalloc(1+nv, sizeof(double)); - es = xcalloc(1+nv, sizeof(double)); - ls = xcalloc(1+nv, sizeof(double)); - list = xcalloc(1+nv, sizeof(int)); - /* retrieve job times */ - for (i = 1; i <= nv; i++) - { v = G->v[i]; - if (v_t >= 0) - { memcpy(&t[i], (char *)v->data + v_t, sizeof(double)); - if (t[i] < 0.0) - xerror("glp_cpp: t[%d] = %g; invalid time\n", i, t[i]); - } - else - t[i] = 1.0; - } - /* perform topological sorting to determine the list of nodes - (jobs) such that if list[k] = i and list[kk] = j and there - exists arc (i->j), then k < kk */ - sorting(G, list); - /* FORWARD PASS */ - /* determine earliest start times */ - for (k = 1; k <= nv; k++) - { j = list[k]; - es[j] = 0.0; - for (a = G->v[j]->in; a != NULL; a = a->h_next) - { i = a->tail->i; - /* there exists arc (i->j) in the project network */ - temp = es[i] + t[i]; - if (es[j] < temp) es[j] = temp; - } - } - /* determine the minimal project duration */ - total = 0.0; - for (i = 1; i <= nv; i++) - { temp = es[i] + t[i]; - if (total < temp) total = temp; - } - /* BACKWARD PASS */ - /* determine latest start times */ - for (k = nv; k >= 1; k--) - { i = list[k]; - ls[i] = total - t[i]; - for (a = G->v[i]->out; a != NULL; a = a->t_next) - { j = a->head->i; - /* there exists arc (i->j) in the project network */ - temp = ls[j] - t[i]; - if (ls[i] > temp) ls[i] = temp; - } - /* avoid possible round-off errors */ - if (ls[i] < es[i]) ls[i] = es[i]; - } - /* store results, if necessary */ - if (v_es >= 0) - { for (i = 1; i <= nv; i++) - { v = G->v[i]; - memcpy((char *)v->data + v_es, &es[i], sizeof(double)); - } - } - if (v_ls >= 0) - { for (i = 1; i <= nv; i++) - { v = G->v[i]; - memcpy((char *)v->data + v_ls, &ls[i], sizeof(double)); - } - } - /* free working arrays */ - xfree(t); - xfree(es); - xfree(ls); - xfree(list); -done: return total; -} - -static void sorting(glp_graph *G, int list[]) -{ /* perform topological sorting to determine the list of nodes - (jobs) such that if list[k] = i and list[kk] = j and there - exists arc (i->j), then k < kk */ - int i, k, nv, v_size, *num; - void **save; - nv = G->nv; - v_size = G->v_size; - save = xcalloc(1+nv, sizeof(void *)); - num = xcalloc(1+nv, sizeof(int)); - G->v_size = sizeof(int); - for (i = 1; i <= nv; i++) - { save[i] = G->v[i]->data; - G->v[i]->data = &num[i]; - list[i] = 0; - } - if (glp_top_sort(G, 0) != 0) - xerror("glp_cpp: project network is not acyclic\n"); - G->v_size = v_size; - for (i = 1; i <= nv; i++) - { G->v[i]->data = save[i]; - k = num[i]; - xassert(1 <= k && k <= nv); - xassert(list[k] == 0); - list[k] = i; - } - xfree(save); - xfree(num); - return; -} - -/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpdmx.c b/resources/3rdparty/glpk-4.57/src/glpdmx.c deleted file mode 100644 index e8a323da9..000000000 --- a/resources/3rdparty/glpk-4.57/src/glpdmx.c +++ /dev/null @@ -1,1693 +0,0 @@ -/* glpdmx.c (reading/writing data in DIMACS format) */ - -/*********************************************************************** -* This code is part of GLPK (GNU Linear Programming Kit). -* -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied -* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights -* reserved. E-mail: . -* -* GLPK is free software: you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* GLPK is distributed in the hope that it will be useful, but WITHOUT -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -* License for more details. -* -* You should have received a copy of the GNU General Public License -* along with GLPK. If not, see . -***********************************************************************/ - -#include "env.h" -#include "misc.h" -#include "prob.h" - -#define xfprintf glp_format - -struct csa -{ /* common storage area */ - jmp_buf jump; - /* label for go to in case of error */ - const char *fname; - /* name of input text file */ - glp_file *fp; - /* stream assigned to input text file */ - int count; - /* line count */ - int c; - /* current character */ - char field[255+1]; - /* data field */ - int empty; - /* warning 'empty line ignored' was printed */ - int nonint; - /* warning 'non-integer data detected' was printed */ -}; - -static void error(struct csa *csa, const char *fmt, ...) -{ /* print error message and terminate processing */ - va_list arg; - xprintf("%s:%d: error: ", csa->fname, csa->count); - va_start(arg, fmt); - xvprintf(fmt, arg); - va_end(arg); - xprintf("\n"); - longjmp(csa->jump, 1); - /* no return */ -} - -static void warning(struct csa *csa, const char *fmt, ...) -{ /* print warning message and continue processing */ - va_list arg; - xprintf("%s:%d: warning: ", csa->fname, csa->count); - va_start(arg, fmt); - xvprintf(fmt, arg); - va_end(arg); - xprintf("\n"); - return; -} - -static void read_char(struct csa *csa) -{ /* read character from input text file */ - int c; - if (csa->c == '\n') csa->count++; - c = glp_getc(csa->fp); - if (c < 0) - { if (glp_ioerr(csa->fp)) - error(csa, "read error - %s", get_err_msg()); - else if (csa->c == '\n') - error(csa, "unexpected end of file"); - else - { warning(csa, "missing final end of line"); - c = '\n'; - } - } - else if (c == '\n') - ; - else if (isspace(c)) - c = ' '; - else if (iscntrl(c)) - error(csa, "invalid control character 0x%02X", c); - csa->c = c; - return; -} - -static void read_designator(struct csa *csa) -{ /* read one-character line designator */ - xassert(csa->c == '\n'); - read_char(csa); - for (;;) - { /* skip preceding white-space characters */ - while (csa->c == ' ') - read_char(csa); - if (csa->c == '\n') - { /* ignore empty line */ - if (!csa->empty) - { warning(csa, "empty line ignored"); - csa->empty = 1; - } - read_char(csa); - } - else if (csa->c == 'c') - { /* skip comment line */ - while (csa->c != '\n') - read_char(csa); - read_char(csa); - } - else - { /* hmm... looks like a line designator */ - csa->field[0] = (char)csa->c, csa->field[1] = '\0'; - /* check that it is followed by a white-space character */ - read_char(csa); - if (!(csa->c == ' ' || csa->c == '\n')) - error(csa, "line designator missing or invalid"); - break; - } - } - return; -} - -static void read_field(struct csa *csa) -{ /* read data field */ - int len = 0; - /* skip preceding white-space characters */ - while (csa->c == ' ') - read_char(csa); - /* scan data field */ - if (csa->c == '\n') - error(csa, "unexpected end of line"); - while (!(csa->c == ' ' || csa->c == '\n')) - { if (len == sizeof(csa->field)-1) - error(csa, "data field '%.15s...' too long", csa->field); - csa->field[len++] = (char)csa->c; - read_char(csa); - } - csa->field[len] = '\0'; - return; -} - -static void end_of_line(struct csa *csa) -{ /* skip white-space characters until end of line */ - while (csa->c == ' ') - read_char(csa); - if (csa->c != '\n') - error(csa, "too many data fields specified"); - return; -} - -static void check_int(struct csa *csa, double num) -{ /* print a warning if non-integer data are detected */ - if (!csa->nonint && num != floor(num)) - { warning(csa, "non-integer data detected"); - csa->nonint = 1; - } - return; -} - -/*********************************************************************** -* NAME -* -* glp_read_mincost - read min-cost flow problem data in DIMACS format -* -* SYNOPSIS -* -* int glp_read_mincost(glp_graph *G, int v_rhs, int a_low, int a_cap, -* int a_cost, const char *fname); -* -* DESCRIPTION -* -* The routine glp_read_mincost reads minimum cost flow problem data in -* DIMACS format from a text file. -* -* RETURNS -* -* If the operation was successful, the routine returns zero. Otherwise -* it prints an error message and returns non-zero. */ - -int glp_read_mincost(glp_graph *G, int v_rhs, int a_low, int a_cap, - int a_cost, const char *fname) -{ struct csa _csa, *csa = &_csa; - glp_vertex *v; - glp_arc *a; - int i, j, k, nv, na, ret = 0; - double rhs, low, cap, cost; - char *flag = NULL; - if (v_rhs >= 0 && v_rhs > G->v_size - (int)sizeof(double)) - xerror("glp_read_mincost: v_rhs = %d; invalid offset\n", - v_rhs); - if (a_low >= 0 && a_low > G->a_size - (int)sizeof(double)) - xerror("glp_read_mincost: a_low = %d; invalid offset\n", - a_low); - if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) - xerror("glp_read_mincost: a_cap = %d; invalid offset\n", - a_cap); - if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) - xerror("glp_read_mincost: a_cost = %d; invalid offset\n", - a_cost); - glp_erase_graph(G, G->v_size, G->a_size); - if (setjmp(csa->jump)) - { ret = 1; - goto done; - } - csa->fname = fname; - csa->fp = NULL; - csa->count = 0; - csa->c = '\n'; - csa->field[0] = '\0'; - csa->empty = csa->nonint = 0; - xprintf("Reading min-cost flow problem data from '%s'...\n", - fname); - csa->fp = glp_open(fname, "r"); - if (csa->fp == NULL) - { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); - longjmp(csa->jump, 1); - } - /* read problem line */ - read_designator(csa); - if (strcmp(csa->field, "p") != 0) - error(csa, "problem line missing or invalid"); - read_field(csa); - if (strcmp(csa->field, "min") != 0) - error(csa, "wrong problem designator; 'min' expected"); - read_field(csa); - if (!(str2int(csa->field, &nv) == 0 && nv >= 0)) - error(csa, "number of nodes missing or invalid"); - read_field(csa); - if (!(str2int(csa->field, &na) == 0 && na >= 0)) - error(csa, "number of arcs missing or invalid"); - xprintf("Flow network has %d node%s and %d arc%s\n", - nv, nv == 1 ? "" : "s", na, na == 1 ? "" : "s"); - if (nv > 0) glp_add_vertices(G, nv); - end_of_line(csa); - /* read node descriptor lines */ - flag = xcalloc(1+nv, sizeof(char)); - memset(&flag[1], 0, nv * sizeof(char)); - if (v_rhs >= 0) - { rhs = 0.0; - for (i = 1; i <= nv; i++) - { v = G->v[i]; - memcpy((char *)v->data + v_rhs, &rhs, sizeof(double)); - } - } - for (;;) - { read_designator(csa); - if (strcmp(csa->field, "n") != 0) break; - read_field(csa); - if (str2int(csa->field, &i) != 0) - error(csa, "node number missing or invalid"); - if (!(1 <= i && i <= nv)) - error(csa, "node number %d out of range", i); - if (flag[i]) - error(csa, "duplicate descriptor of node %d", i); - read_field(csa); - if (str2num(csa->field, &rhs) != 0) - error(csa, "node supply/demand missing or invalid"); - check_int(csa, rhs); - if (v_rhs >= 0) - { v = G->v[i]; - memcpy((char *)v->data + v_rhs, &rhs, sizeof(double)); - } - flag[i] = 1; - end_of_line(csa); - } - xfree(flag), flag = NULL; - /* read arc descriptor lines */ - for (k = 1; k <= na; k++) - { if (k > 1) read_designator(csa); - if (strcmp(csa->field, "a") != 0) - error(csa, "wrong line designator; 'a' expected"); - read_field(csa); - if (str2int(csa->field, &i) != 0) - error(csa, "starting node number missing or invalid"); - if (!(1 <= i && i <= nv)) - error(csa, "starting node number %d out of range", i); - read_field(csa); - if (str2int(csa->field, &j) != 0) - error(csa, "ending node number missing or invalid"); - if (!(1 <= j && j <= nv)) - error(csa, "ending node number %d out of range", j); - read_field(csa); - if (!(str2num(csa->field, &low) == 0 && low >= 0.0)) - error(csa, "lower bound of arc flow missing or invalid"); - check_int(csa, low); - read_field(csa); - if (!(str2num(csa->field, &cap) == 0 && cap >= low)) - error(csa, "upper bound of arc flow missing or invalid"); - check_int(csa, cap); - read_field(csa); - if (str2num(csa->field, &cost) != 0) - error(csa, "per-unit cost of arc flow missing or invalid"); - check_int(csa, cost); - a = glp_add_arc(G, i, j); - if (a_low >= 0) - memcpy((char *)a->data + a_low, &low, sizeof(double)); - if (a_cap >= 0) - memcpy((char *)a->data + a_cap, &cap, sizeof(double)); - if (a_cost >= 0) - memcpy((char *)a->data + a_cost, &cost, sizeof(double)); - end_of_line(csa); - } - xprintf("%d lines were read\n", csa->count); -done: if (ret) glp_erase_graph(G, G->v_size, G->a_size); - if (csa->fp != NULL) glp_close(csa->fp); - if (flag != NULL) xfree(flag); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_write_mincost - write min-cost flow problem data in DIMACS format -* -* SYNOPSIS -* -* int glp_write_mincost(glp_graph *G, int v_rhs, int a_low, int a_cap, -* int a_cost, const char *fname); -* -* DESCRIPTION -* -* The routine glp_write_mincost writes minimum cost flow problem data -* in DIMACS format to a text file. -* -* RETURNS -* -* If the operation was successful, the routine returns zero. Otherwise -* it prints an error message and returns non-zero. */ - -int glp_write_mincost(glp_graph *G, int v_rhs, int a_low, int a_cap, - int a_cost, const char *fname) -{ glp_file *fp; - glp_vertex *v; - glp_arc *a; - int i, count = 0, ret; - double rhs, low, cap, cost; - if (v_rhs >= 0 && v_rhs > G->v_size - (int)sizeof(double)) - xerror("glp_write_mincost: v_rhs = %d; invalid offset\n", - v_rhs); - if (a_low >= 0 && a_low > G->a_size - (int)sizeof(double)) - xerror("glp_write_mincost: a_low = %d; invalid offset\n", - a_low); - if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) - xerror("glp_write_mincost: a_cap = %d; invalid offset\n", - a_cap); - if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) - xerror("glp_write_mincost: a_cost = %d; invalid offset\n", - a_cost); - xprintf("Writing min-cost flow problem data to '%s'...\n", - fname); - fp = glp_open(fname, "w"); - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xfprintf(fp, "c %s\n", - G->name == NULL ? "unknown" : G->name), count++; - xfprintf(fp, "p min %d %d\n", G->nv, G->na), count++; - if (v_rhs >= 0) - { for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - memcpy(&rhs, (char *)v->data + v_rhs, sizeof(double)); - if (rhs != 0.0) - xfprintf(fp, "n %d %.*g\n", i, DBL_DIG, rhs), count++; - } - } - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { if (a_low >= 0) - memcpy(&low, (char *)a->data + a_low, sizeof(double)); - else - low = 0.0; - if (a_cap >= 0) - memcpy(&cap, (char *)a->data + a_cap, sizeof(double)); - else - cap = 1.0; - if (a_cost >= 0) - memcpy(&cost, (char *)a->data + a_cost, sizeof(double)); - else - cost = 0.0; - xfprintf(fp, "a %d %d %.*g %.*g %.*g\n", - a->tail->i, a->head->i, DBL_DIG, low, DBL_DIG, cap, - DBL_DIG, cost), count++; - } - } - xfprintf(fp, "c eof\n"), count++; -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xprintf("%d lines were written\n", count); - ret = 0; -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_read_maxflow - read maximum flow problem data in DIMACS format -* -* SYNOPSIS -* -* int glp_read_maxflow(glp_graph *G, int *s, int *t, int a_cap, -* const char *fname); -* -* DESCRIPTION -* -* The routine glp_read_maxflow reads maximum flow problem data in -* DIMACS format from a text file. -* -* RETURNS -* -* If the operation was successful, the routine returns zero. Otherwise -* it prints an error message and returns non-zero. */ - -int glp_read_maxflow(glp_graph *G, int *_s, int *_t, int a_cap, - const char *fname) -{ struct csa _csa, *csa = &_csa; - glp_arc *a; - int i, j, k, s, t, nv, na, ret = 0; - double cap; - if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) - xerror("glp_read_maxflow: a_cap = %d; invalid offset\n", - a_cap); - glp_erase_graph(G, G->v_size, G->a_size); - if (setjmp(csa->jump)) - { ret = 1; - goto done; - } - csa->fname = fname; - csa->fp = NULL; - csa->count = 0; - csa->c = '\n'; - csa->field[0] = '\0'; - csa->empty = csa->nonint = 0; - xprintf("Reading maximum flow problem data from '%s'...\n", - fname); - csa->fp = glp_open(fname, "r"); - if (csa->fp == NULL) - { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); - longjmp(csa->jump, 1); - } - /* read problem line */ - read_designator(csa); - if (strcmp(csa->field, "p") != 0) - error(csa, "problem line missing or invalid"); - read_field(csa); - if (strcmp(csa->field, "max") != 0) - error(csa, "wrong problem designator; 'max' expected"); - read_field(csa); - if (!(str2int(csa->field, &nv) == 0 && nv >= 2)) - error(csa, "number of nodes missing or invalid"); - read_field(csa); - if (!(str2int(csa->field, &na) == 0 && na >= 0)) - error(csa, "number of arcs missing or invalid"); - xprintf("Flow network has %d node%s and %d arc%s\n", - nv, nv == 1 ? "" : "s", na, na == 1 ? "" : "s"); - if (nv > 0) glp_add_vertices(G, nv); - end_of_line(csa); - /* read node descriptor lines */ - s = t = 0; - for (;;) - { read_designator(csa); - if (strcmp(csa->field, "n") != 0) break; - read_field(csa); - if (str2int(csa->field, &i) != 0) - error(csa, "node number missing or invalid"); - if (!(1 <= i && i <= nv)) - error(csa, "node number %d out of range", i); - read_field(csa); - if (strcmp(csa->field, "s") == 0) - { if (s > 0) - error(csa, "only one source node allowed"); - s = i; - } - else if (strcmp(csa->field, "t") == 0) - { if (t > 0) - error(csa, "only one sink node allowed"); - t = i; - } - else - error(csa, "wrong node designator; 's' or 't' expected"); - if (s > 0 && s == t) - error(csa, "source and sink nodes must be distinct"); - end_of_line(csa); - } - if (s == 0) - error(csa, "source node descriptor missing\n"); - if (t == 0) - error(csa, "sink node descriptor missing\n"); - if (_s != NULL) *_s = s; - if (_t != NULL) *_t = t; - /* read arc descriptor lines */ - for (k = 1; k <= na; k++) - { if (k > 1) read_designator(csa); - if (strcmp(csa->field, "a") != 0) - error(csa, "wrong line designator; 'a' expected"); - read_field(csa); - if (str2int(csa->field, &i) != 0) - error(csa, "starting node number missing or invalid"); - if (!(1 <= i && i <= nv)) - error(csa, "starting node number %d out of range", i); - read_field(csa); - if (str2int(csa->field, &j) != 0) - error(csa, "ending node number missing or invalid"); - if (!(1 <= j && j <= nv)) - error(csa, "ending node number %d out of range", j); - read_field(csa); - if (!(str2num(csa->field, &cap) == 0 && cap >= 0.0)) - error(csa, "arc capacity missing or invalid"); - check_int(csa, cap); - a = glp_add_arc(G, i, j); - if (a_cap >= 0) - memcpy((char *)a->data + a_cap, &cap, sizeof(double)); - end_of_line(csa); - } - xprintf("%d lines were read\n", csa->count); -done: if (ret) glp_erase_graph(G, G->v_size, G->a_size); - if (csa->fp != NULL) glp_close(csa->fp); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_write_maxflow - write maximum flow problem data in DIMACS format -* -* SYNOPSIS -* -* int glp_write_maxflow(glp_graph *G, int s, int t, int a_cap, -* const char *fname); -* -* DESCRIPTION -* -* The routine glp_write_maxflow writes maximum flow problem data in -* DIMACS format to a text file. -* -* RETURNS -* -* If the operation was successful, the routine returns zero. Otherwise -* it prints an error message and returns non-zero. */ - -int glp_write_maxflow(glp_graph *G, int s, int t, int a_cap, - const char *fname) -{ glp_file *fp; - glp_vertex *v; - glp_arc *a; - int i, count = 0, ret; - double cap; - if (!(1 <= s && s <= G->nv)) - xerror("glp_write_maxflow: s = %d; source node number out of r" - "ange\n", s); - if (!(1 <= t && t <= G->nv)) - xerror("glp_write_maxflow: t = %d: sink node number out of ran" - "ge\n", t); - if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) - xerror("glp_write_mincost: a_cap = %d; invalid offset\n", - a_cap); - xprintf("Writing maximum flow problem data to '%s'...\n", - fname); - fp = glp_open(fname, "w"); - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xfprintf(fp, "c %s\n", - G->name == NULL ? "unknown" : G->name), count++; - xfprintf(fp, "p max %d %d\n", G->nv, G->na), count++; - xfprintf(fp, "n %d s\n", s), count++; - xfprintf(fp, "n %d t\n", t), count++; - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { if (a_cap >= 0) - memcpy(&cap, (char *)a->data + a_cap, sizeof(double)); - else - cap = 1.0; - xfprintf(fp, "a %d %d %.*g\n", - a->tail->i, a->head->i, DBL_DIG, cap), count++; - } - } - xfprintf(fp, "c eof\n"), count++; -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xprintf("%d lines were written\n", count); - ret = 0; -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_read_asnprob - read assignment problem data in DIMACS format -* -* SYNOPSIS -* -* int glp_read_asnprob(glp_graph *G, int v_set, int a_cost, -* const char *fname); -* -* DESCRIPTION -* -* The routine glp_read_asnprob reads assignment problem data in DIMACS -* format from a text file. -* -* RETURNS -* -* If the operation was successful, the routine returns zero. Otherwise -* it prints an error message and returns non-zero. */ - -int glp_read_asnprob(glp_graph *G, int v_set, int a_cost, const char - *fname) -{ struct csa _csa, *csa = &_csa; - glp_vertex *v; - glp_arc *a; - int nv, na, n1, i, j, k, ret = 0; - double cost; - char *flag = NULL; - if (v_set >= 0 && v_set > G->v_size - (int)sizeof(int)) - xerror("glp_read_asnprob: v_set = %d; invalid offset\n", - v_set); - if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) - xerror("glp_read_asnprob: a_cost = %d; invalid offset\n", - a_cost); - glp_erase_graph(G, G->v_size, G->a_size); - if (setjmp(csa->jump)) - { ret = 1; - goto done; - } - csa->fname = fname; - csa->fp = NULL; - csa->count = 0; - csa->c = '\n'; - csa->field[0] = '\0'; - csa->empty = csa->nonint = 0; - xprintf("Reading assignment problem data from '%s'...\n", fname); - csa->fp = glp_open(fname, "r"); - if (csa->fp == NULL) - { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); - longjmp(csa->jump, 1); - } - /* read problem line */ - read_designator(csa); - if (strcmp(csa->field, "p") != 0) - error(csa, "problem line missing or invalid"); - read_field(csa); - if (strcmp(csa->field, "asn") != 0) - error(csa, "wrong problem designator; 'asn' expected"); - read_field(csa); - if (!(str2int(csa->field, &nv) == 0 && nv >= 0)) - error(csa, "number of nodes missing or invalid"); - read_field(csa); - if (!(str2int(csa->field, &na) == 0 && na >= 0)) - error(csa, "number of arcs missing or invalid"); - if (nv > 0) glp_add_vertices(G, nv); - end_of_line(csa); - /* read node descriptor lines */ - flag = xcalloc(1+nv, sizeof(char)); - memset(&flag[1], 0, nv * sizeof(char)); - n1 = 0; - for (;;) - { read_designator(csa); - if (strcmp(csa->field, "n") != 0) break; - read_field(csa); - if (str2int(csa->field, &i) != 0) - error(csa, "node number missing or invalid"); - if (!(1 <= i && i <= nv)) - error(csa, "node number %d out of range", i); - if (flag[i]) - error(csa, "duplicate descriptor of node %d", i); - flag[i] = 1, n1++; - end_of_line(csa); - } - xprintf( - "Assignment problem has %d + %d = %d node%s and %d arc%s\n", - n1, nv - n1, nv, nv == 1 ? "" : "s", na, na == 1 ? "" : "s"); - if (v_set >= 0) - { for (i = 1; i <= nv; i++) - { v = G->v[i]; - k = (flag[i] ? 0 : 1); - memcpy((char *)v->data + v_set, &k, sizeof(int)); - } - } - /* read arc descriptor lines */ - for (k = 1; k <= na; k++) - { if (k > 1) read_designator(csa); - if (strcmp(csa->field, "a") != 0) - error(csa, "wrong line designator; 'a' expected"); - read_field(csa); - if (str2int(csa->field, &i) != 0) - error(csa, "starting node number missing or invalid"); - if (!(1 <= i && i <= nv)) - error(csa, "starting node number %d out of range", i); - if (!flag[i]) - error(csa, "node %d cannot be a starting node", i); - read_field(csa); - if (str2int(csa->field, &j) != 0) - error(csa, "ending node number missing or invalid"); - if (!(1 <= j && j <= nv)) - error(csa, "ending node number %d out of range", j); - if (flag[j]) - error(csa, "node %d cannot be an ending node", j); - read_field(csa); - if (str2num(csa->field, &cost) != 0) - error(csa, "arc cost missing or invalid"); - check_int(csa, cost); - a = glp_add_arc(G, i, j); - if (a_cost >= 0) - memcpy((char *)a->data + a_cost, &cost, sizeof(double)); - end_of_line(csa); - } - xprintf("%d lines were read\n", csa->count); -done: if (ret) glp_erase_graph(G, G->v_size, G->a_size); - if (csa->fp != NULL) glp_close(csa->fp); - if (flag != NULL) xfree(flag); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_write_asnprob - write assignment problem data in DIMACS format -* -* SYNOPSIS -* -* int glp_write_asnprob(glp_graph *G, int v_set, int a_cost, -* const char *fname); -* -* DESCRIPTION -* -* The routine glp_write_asnprob writes assignment problem data in -* DIMACS format to a text file. -* -* RETURNS -* -* If the operation was successful, the routine returns zero. Otherwise -* it prints an error message and returns non-zero. */ - -int glp_write_asnprob(glp_graph *G, int v_set, int a_cost, const char - *fname) -{ glp_file *fp; - glp_vertex *v; - glp_arc *a; - int i, k, count = 0, ret; - double cost; - if (v_set >= 0 && v_set > G->v_size - (int)sizeof(int)) - xerror("glp_write_asnprob: v_set = %d; invalid offset\n", - v_set); - if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) - xerror("glp_write_asnprob: a_cost = %d; invalid offset\n", - a_cost); - xprintf("Writing assignment problem data to '%s'...\n", fname); - fp = glp_open(fname, "w"); - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xfprintf(fp, "c %s\n", - G->name == NULL ? "unknown" : G->name), count++; - xfprintf(fp, "p asn %d %d\n", G->nv, G->na), count++; - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - if (v_set >= 0) - memcpy(&k, (char *)v->data + v_set, sizeof(int)); - else - k = (v->out != NULL ? 0 : 1); - if (k == 0) - xfprintf(fp, "n %d\n", i), count++; - } - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - { if (a_cost >= 0) - memcpy(&cost, (char *)a->data + a_cost, sizeof(double)); - else - cost = 1.0; - xfprintf(fp, "a %d %d %.*g\n", - a->tail->i, a->head->i, DBL_DIG, cost), count++; - } - } - xfprintf(fp, "c eof\n"), count++; -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xprintf("%d lines were written\n", count); - ret = 0; -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_read_ccdata - read graph in DIMACS clique/coloring format -* -* SYNOPSIS -* -* int glp_read_ccdata(glp_graph *G, int v_wgt, const char *fname); -* -* DESCRIPTION -* -* The routine glp_read_ccdata reads an (undirected) graph in DIMACS -* clique/coloring format from a text file. -* -* RETURNS -* -* If the operation was successful, the routine returns zero. Otherwise -* it prints an error message and returns non-zero. */ - -int glp_read_ccdata(glp_graph *G, int v_wgt, const char *fname) -{ struct csa _csa, *csa = &_csa; - glp_vertex *v; - int i, j, k, nv, ne, ret = 0; - double w; - char *flag = NULL; - if (v_wgt >= 0 && v_wgt > G->v_size - (int)sizeof(double)) - xerror("glp_read_ccdata: v_wgt = %d; invalid offset\n", - v_wgt); - glp_erase_graph(G, G->v_size, G->a_size); - if (setjmp(csa->jump)) - { ret = 1; - goto done; - } - csa->fname = fname; - csa->fp = NULL; - csa->count = 0; - csa->c = '\n'; - csa->field[0] = '\0'; - csa->empty = csa->nonint = 0; - xprintf("Reading graph from '%s'...\n", fname); - csa->fp = glp_open(fname, "r"); - if (csa->fp == NULL) - { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); - longjmp(csa->jump, 1); - } - /* read problem line */ - read_designator(csa); - if (strcmp(csa->field, "p") != 0) - error(csa, "problem line missing or invalid"); - read_field(csa); - if (strcmp(csa->field, "edge") != 0) - error(csa, "wrong problem designator; 'edge' expected"); - read_field(csa); - if (!(str2int(csa->field, &nv) == 0 && nv >= 0)) - error(csa, "number of vertices missing or invalid"); - read_field(csa); - if (!(str2int(csa->field, &ne) == 0 && ne >= 0)) - error(csa, "number of edges missing or invalid"); - xprintf("Graph has %d vert%s and %d edge%s\n", - nv, nv == 1 ? "ex" : "ices", ne, ne == 1 ? "" : "s"); - if (nv > 0) glp_add_vertices(G, nv); - end_of_line(csa); - /* read node descriptor lines */ - flag = xcalloc(1+nv, sizeof(char)); - memset(&flag[1], 0, nv * sizeof(char)); - if (v_wgt >= 0) - { w = 1.0; - for (i = 1; i <= nv; i++) - { v = G->v[i]; - memcpy((char *)v->data + v_wgt, &w, sizeof(double)); - } - } - for (;;) - { read_designator(csa); - if (strcmp(csa->field, "n") != 0) break; - read_field(csa); - if (str2int(csa->field, &i) != 0) - error(csa, "vertex number missing or invalid"); - if (!(1 <= i && i <= nv)) - error(csa, "vertex number %d out of range", i); - if (flag[i]) - error(csa, "duplicate descriptor of vertex %d", i); - read_field(csa); - if (str2num(csa->field, &w) != 0) - error(csa, "vertex weight missing or invalid"); - check_int(csa, w); - if (v_wgt >= 0) - { v = G->v[i]; - memcpy((char *)v->data + v_wgt, &w, sizeof(double)); - } - flag[i] = 1; - end_of_line(csa); - } - xfree(flag), flag = NULL; - /* read edge descriptor lines */ - for (k = 1; k <= ne; k++) - { if (k > 1) read_designator(csa); - if (strcmp(csa->field, "e") != 0) - error(csa, "wrong line designator; 'e' expected"); - read_field(csa); - if (str2int(csa->field, &i) != 0) - error(csa, "first vertex number missing or invalid"); - if (!(1 <= i && i <= nv)) - error(csa, "first vertex number %d out of range", i); - read_field(csa); - if (str2int(csa->field, &j) != 0) - error(csa, "second vertex number missing or invalid"); - if (!(1 <= j && j <= nv)) - error(csa, "second vertex number %d out of range", j); - glp_add_arc(G, i, j); - end_of_line(csa); - } - xprintf("%d lines were read\n", csa->count); -done: if (ret) glp_erase_graph(G, G->v_size, G->a_size); - if (csa->fp != NULL) glp_close(csa->fp); - if (flag != NULL) xfree(flag); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_write_ccdata - write graph in DIMACS clique/coloring format -* -* SYNOPSIS -* -* int glp_write_ccdata(glp_graph *G, int v_wgt, const char *fname); -* -* DESCRIPTION -* -* The routine glp_write_ccdata writes the specified graph in DIMACS -* clique/coloring format to a text file. -* -* RETURNS -* -* If the operation was successful, the routine returns zero. Otherwise -* it prints an error message and returns non-zero. */ - -int glp_write_ccdata(glp_graph *G, int v_wgt, const char *fname) -{ glp_file *fp; - glp_vertex *v; - glp_arc *e; - int i, count = 0, ret; - double w; - if (v_wgt >= 0 && v_wgt > G->v_size - (int)sizeof(double)) - xerror("glp_write_ccdata: v_wgt = %d; invalid offset\n", - v_wgt); - xprintf("Writing graph to '%s'\n", fname); - fp = glp_open(fname, "w"); - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xfprintf(fp, "c %s\n", - G->name == NULL ? "unknown" : G->name), count++; - xfprintf(fp, "p edge %d %d\n", G->nv, G->na), count++; - if (v_wgt >= 0) - { for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - memcpy(&w, (char *)v->data + v_wgt, sizeof(double)); - if (w != 1.0) - xfprintf(fp, "n %d %.*g\n", i, DBL_DIG, w), count++; - } - } - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - for (e = v->out; e != NULL; e = e->t_next) - xfprintf(fp, "e %d %d\n", e->tail->i, e->head->i), count++; - } - xfprintf(fp, "c eof\n"), count++; -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xprintf("%d lines were written\n", count); - ret = 0; -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_read_prob - read problem data in GLPK format -* -* SYNOPSIS -* -* int glp_read_prob(glp_prob *P, int flags, const char *fname); -* -* The routine glp_read_prob reads problem data in GLPK LP/MIP format -* from a text file. -* -* RETURNS -* -* If the operation was successful, the routine returns zero. Otherwise -* it prints an error message and returns non-zero. */ - -int glp_read_prob(glp_prob *P, int flags, const char *fname) -{ struct csa _csa, *csa = &_csa; - int mip, m, n, nnz, ne, i, j, k, type, kind, ret, *ln = NULL, - *ia = NULL, *ja = NULL; - double lb, ub, temp, *ar = NULL; - char *rf = NULL, *cf = NULL; - if (P == NULL || P->magic != GLP_PROB_MAGIC) - xerror("glp_read_prob: P = %p; invalid problem object\n", - P); - if (flags != 0) - xerror("glp_read_prob: flags = %d; invalid parameter\n", - flags); - if (fname == NULL) - xerror("glp_read_prob: fname = %d; invalid parameter\n", - fname); - glp_erase_prob(P); - if (setjmp(csa->jump)) - { ret = 1; - goto done; - } - csa->fname = fname; - csa->fp = NULL; - csa->count = 0; - csa->c = '\n'; - csa->field[0] = '\0'; - csa->empty = csa->nonint = 0; - xprintf("Reading problem data from '%s'...\n", fname); - csa->fp = glp_open(fname, "r"); - if (csa->fp == NULL) - { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); - longjmp(csa->jump, 1); - } - /* read problem line */ - read_designator(csa); - if (strcmp(csa->field, "p") != 0) - error(csa, "problem line missing or invalid"); - read_field(csa); - if (strcmp(csa->field, "lp") == 0) - mip = 0; - else if (strcmp(csa->field, "mip") == 0) - mip = 1; - else - error(csa, "wrong problem designator; 'lp' or 'mip' expected\n" - ); - read_field(csa); - if (strcmp(csa->field, "min") == 0) - glp_set_obj_dir(P, GLP_MIN); - else if (strcmp(csa->field, "max") == 0) - glp_set_obj_dir(P, GLP_MAX); - else - error(csa, "objective sense missing or invalid"); - read_field(csa); - if (!(str2int(csa->field, &m) == 0 && m >= 0)) - error(csa, "number of rows missing or invalid"); - read_field(csa); - if (!(str2int(csa->field, &n) == 0 && n >= 0)) - error(csa, "number of columns missing or invalid"); - read_field(csa); - if (!(str2int(csa->field, &nnz) == 0 && nnz >= 0)) - error(csa, "number of constraint coefficients missing or inval" - "id"); - if (m > 0) - { glp_add_rows(P, m); - for (i = 1; i <= m; i++) - glp_set_row_bnds(P, i, GLP_FX, 0.0, 0.0); - } - if (n > 0) - { glp_add_cols(P, n); - for (j = 1; j <= n; j++) - { if (!mip) - glp_set_col_bnds(P, j, GLP_LO, 0.0, 0.0); - else - glp_set_col_kind(P, j, GLP_BV); - } - } - end_of_line(csa); - /* allocate working arrays */ - rf = xcalloc(1+m, sizeof(char)); - memset(rf, 0, 1+m); - cf = xcalloc(1+n, sizeof(char)); - memset(cf, 0, 1+n); - ln = xcalloc(1+nnz, sizeof(int)); - ia = xcalloc(1+nnz, sizeof(int)); - ja = xcalloc(1+nnz, sizeof(int)); - ar = xcalloc(1+nnz, sizeof(double)); - /* read descriptor lines */ - ne = 0; - for (;;) - { read_designator(csa); - if (strcmp(csa->field, "i") == 0) - { /* row descriptor */ - read_field(csa); - if (str2int(csa->field, &i) != 0) - error(csa, "row number missing or invalid"); - if (!(1 <= i && i <= m)) - error(csa, "row number out of range"); - read_field(csa); - if (strcmp(csa->field, "f") == 0) - type = GLP_FR; - else if (strcmp(csa->field, "l") == 0) - type = GLP_LO; - else if (strcmp(csa->field, "u") == 0) - type = GLP_UP; - else if (strcmp(csa->field, "d") == 0) - type = GLP_DB; - else if (strcmp(csa->field, "s") == 0) - type = GLP_FX; - else - error(csa, "row type missing or invalid"); - if (type == GLP_LO || type == GLP_DB || type == GLP_FX) - { read_field(csa); - if (str2num(csa->field, &lb) != 0) - error(csa, "row lower bound/fixed value missing or in" - "valid"); - } - else - lb = 0.0; - if (type == GLP_UP || type == GLP_DB) - { read_field(csa); - if (str2num(csa->field, &ub) != 0) - error(csa, "row upper bound missing or invalid"); - } - else - ub = 0.0; - if (rf[i] & 0x01) - error(csa, "duplicate row descriptor"); - glp_set_row_bnds(P, i, type, lb, ub), rf[i] |= 0x01; - } - else if (strcmp(csa->field, "j") == 0) - { /* column descriptor */ - read_field(csa); - if (str2int(csa->field, &j) != 0) - error(csa, "column number missing or invalid"); - if (!(1 <= j && j <= n)) - error(csa, "column number out of range"); - if (!mip) - kind = GLP_CV; - else - { read_field(csa); - if (strcmp(csa->field, "c") == 0) - kind = GLP_CV; - else if (strcmp(csa->field, "i") == 0) - kind = GLP_IV; - else if (strcmp(csa->field, "b") == 0) - { kind = GLP_IV; - type = GLP_DB, lb = 0.0, ub = 1.0; - goto skip; - } - else - error(csa, "column kind missing or invalid"); - } - read_field(csa); - if (strcmp(csa->field, "f") == 0) - type = GLP_FR; - else if (strcmp(csa->field, "l") == 0) - type = GLP_LO; - else if (strcmp(csa->field, "u") == 0) - type = GLP_UP; - else if (strcmp(csa->field, "d") == 0) - type = GLP_DB; - else if (strcmp(csa->field, "s") == 0) - type = GLP_FX; - else - error(csa, "column type missing or invalid"); - if (type == GLP_LO || type == GLP_DB || type == GLP_FX) - { read_field(csa); - if (str2num(csa->field, &lb) != 0) - error(csa, "column lower bound/fixed value missing or" - " invalid"); - } - else - lb = 0.0; - if (type == GLP_UP || type == GLP_DB) - { read_field(csa); - if (str2num(csa->field, &ub) != 0) - error(csa, "column upper bound missing or invalid"); - } - else - ub = 0.0; -skip: if (cf[j] & 0x01) - error(csa, "duplicate column descriptor"); - glp_set_col_kind(P, j, kind); - glp_set_col_bnds(P, j, type, lb, ub), cf[j] |= 0x01; - } - else if (strcmp(csa->field, "a") == 0) - { /* coefficient descriptor */ - read_field(csa); - if (str2int(csa->field, &i) != 0) - error(csa, "row number missing or invalid"); - if (!(0 <= i && i <= m)) - error(csa, "row number out of range"); - read_field(csa); - if (str2int(csa->field, &j) != 0) - error(csa, "column number missing or invalid"); - if (!((i == 0 ? 0 : 1) <= j && j <= n)) - error(csa, "column number out of range"); - read_field(csa); - if (i == 0) - { if (str2num(csa->field, &temp) != 0) - error(csa, "objective %s missing or invalid", - j == 0 ? "constant term" : "coefficient"); - if (cf[j] & 0x10) - error(csa, "duplicate objective %s", - j == 0 ? "constant term" : "coefficient"); - glp_set_obj_coef(P, j, temp), cf[j] |= 0x10; - } - else - { if (str2num(csa->field, &temp) != 0) - error(csa, "constraint coefficient missing or invalid" - ); - if (ne == nnz) - error(csa, "too many constraint coefficient descripto" - "rs"); - ln[++ne] = csa->count; - ia[ne] = i, ja[ne] = j, ar[ne] = temp; - } - } - else if (strcmp(csa->field, "n") == 0) - { /* symbolic name descriptor */ - read_field(csa); - if (strcmp(csa->field, "p") == 0) - { /* problem name */ - read_field(csa); - if (P->name != NULL) - error(csa, "duplicate problem name"); - glp_set_prob_name(P, csa->field); - } - else if (strcmp(csa->field, "z") == 0) - { /* objective name */ - read_field(csa); - if (P->obj != NULL) - error(csa, "duplicate objective name"); - glp_set_obj_name(P, csa->field); - } - else if (strcmp(csa->field, "i") == 0) - { /* row name */ - read_field(csa); - if (str2int(csa->field, &i) != 0) - error(csa, "row number missing or invalid"); - if (!(1 <= i && i <= m)) - error(csa, "row number out of range"); - read_field(csa); - if (P->row[i]->name != NULL) - error(csa, "duplicate row name"); - glp_set_row_name(P, i, csa->field); - } - else if (strcmp(csa->field, "j") == 0) - { /* column name */ - read_field(csa); - if (str2int(csa->field, &j) != 0) - error(csa, "column number missing or invalid"); - if (!(1 <= j && j <= n)) - error(csa, "column number out of range"); - read_field(csa); - if (P->col[j]->name != NULL) - error(csa, "duplicate column name"); - glp_set_col_name(P, j, csa->field); - } - else - error(csa, "object designator missing or invalid"); - } - else if (strcmp(csa->field, "e") == 0) - break; - else - error(csa, "line designator missing or invalid"); - end_of_line(csa); - } - if (ne < nnz) - error(csa, "too few constraint coefficient descriptors"); - xassert(ne == nnz); - k = glp_check_dup(m, n, ne, ia, ja); - xassert(0 <= k && k <= nnz); - if (k > 0) - { csa->count = ln[k]; - error(csa, "duplicate constraint coefficient"); - } - glp_load_matrix(P, ne, ia, ja, ar); - /* print some statistics */ - if (P->name != NULL) - xprintf("Problem: %s\n", P->name); - if (P->obj != NULL) - xprintf("Objective: %s\n", P->obj); - xprintf("%d row%s, %d column%s, %d non-zero%s\n", - m, m == 1 ? "" : "s", n, n == 1 ? "" : "s", nnz, nnz == 1 ? - "" : "s"); - if (glp_get_num_int(P) > 0) - { int ni = glp_get_num_int(P); - int nb = glp_get_num_bin(P); - if (ni == 1) - { if (nb == 0) - xprintf("One variable is integer\n"); - else - xprintf("One variable is binary\n"); - } - else - { xprintf("%d integer variables, ", ni); - if (nb == 0) - xprintf("none"); - else if (nb == 1) - xprintf("one"); - else if (nb == ni) - xprintf("all"); - else - xprintf("%d", nb); - xprintf(" of which %s binary\n", nb == 1 ? "is" : "are"); - } - } - xprintf("%d lines were read\n", csa->count); - /* problem data has been successfully read */ - glp_sort_matrix(P); - ret = 0; -done: if (csa->fp != NULL) glp_close(csa->fp); - if (rf != NULL) xfree(rf); - if (cf != NULL) xfree(cf); - if (ln != NULL) xfree(ln); - if (ia != NULL) xfree(ia); - if (ja != NULL) xfree(ja); - if (ar != NULL) xfree(ar); - if (ret) glp_erase_prob(P); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_write_prob - write problem data in GLPK format -* -* SYNOPSIS -* -* int glp_write_prob(glp_prob *P, int flags, const char *fname); -* -* The routine glp_write_prob writes problem data in GLPK LP/MIP format -* to a text file. -* -* RETURNS -* -* If the operation was successful, the routine returns zero. Otherwise -* it prints an error message and returns non-zero. */ - -int glp_write_prob(glp_prob *P, int flags, const char *fname) -{ glp_file *fp; - GLPROW *row; - GLPCOL *col; - GLPAIJ *aij; - int mip, i, j, count, ret; - if (P == NULL || P->magic != GLP_PROB_MAGIC) - xerror("glp_write_prob: P = %p; invalid problem object\n", - P); - if (flags != 0) - xerror("glp_write_prob: flags = %d; invalid parameter\n", - flags); - if (fname == NULL) - xerror("glp_write_prob: fname = %d; invalid parameter\n", - fname); - xprintf("Writing problem data to '%s'...\n", fname); - fp = glp_open(fname, "w"), count = 0; - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - /* write problem line */ - mip = (glp_get_num_int(P) > 0); - xfprintf(fp, "p %s %s %d %d %d\n", !mip ? "lp" : "mip", - P->dir == GLP_MIN ? "min" : P->dir == GLP_MAX ? "max" : "???", - P->m, P->n, P->nnz), count++; - if (P->name != NULL) - xfprintf(fp, "n p %s\n", P->name), count++; - if (P->obj != NULL) - xfprintf(fp, "n z %s\n", P->obj), count++; - /* write row descriptors */ - for (i = 1; i <= P->m; i++) - { row = P->row[i]; - if (row->type == GLP_FX && row->lb == 0.0) - goto skip1; - xfprintf(fp, "i %d ", i), count++; - if (row->type == GLP_FR) - xfprintf(fp, "f\n"); - else if (row->type == GLP_LO) - xfprintf(fp, "l %.*g\n", DBL_DIG, row->lb); - else if (row->type == GLP_UP) - xfprintf(fp, "u %.*g\n", DBL_DIG, row->ub); - else if (row->type == GLP_DB) - xfprintf(fp, "d %.*g %.*g\n", DBL_DIG, row->lb, DBL_DIG, - row->ub); - else if (row->type == GLP_FX) - xfprintf(fp, "s %.*g\n", DBL_DIG, row->lb); - else - xassert(row != row); -skip1: if (row->name != NULL) - xfprintf(fp, "n i %d %s\n", i, row->name), count++; - } - /* write column descriptors */ - for (j = 1; j <= P->n; j++) - { col = P->col[j]; - if (!mip && col->type == GLP_LO && col->lb == 0.0) - goto skip2; - if (mip && col->kind == GLP_IV && col->type == GLP_DB && - col->lb == 0.0 && col->ub == 1.0) - goto skip2; - xfprintf(fp, "j %d ", j), count++; - if (mip) - { if (col->kind == GLP_CV) - xfprintf(fp, "c "); - else if (col->kind == GLP_IV) - xfprintf(fp, "i "); - else - xassert(col != col); - } - if (col->type == GLP_FR) - xfprintf(fp, "f\n"); - else if (col->type == GLP_LO) - xfprintf(fp, "l %.*g\n", DBL_DIG, col->lb); - else if (col->type == GLP_UP) - xfprintf(fp, "u %.*g\n", DBL_DIG, col->ub); - else if (col->type == GLP_DB) - xfprintf(fp, "d %.*g %.*g\n", DBL_DIG, col->lb, DBL_DIG, - col->ub); - else if (col->type == GLP_FX) - xfprintf(fp, "s %.*g\n", DBL_DIG, col->lb); - else - xassert(col != col); -skip2: if (col->name != NULL) - xfprintf(fp, "n j %d %s\n", j, col->name), count++; - } - /* write objective coefficient descriptors */ - if (P->c0 != 0.0) - xfprintf(fp, "a 0 0 %.*g\n", DBL_DIG, P->c0), count++; - for (j = 1; j <= P->n; j++) - { col = P->col[j]; - if (col->coef != 0.0) - xfprintf(fp, "a 0 %d %.*g\n", j, DBL_DIG, col->coef), - count++; - } - /* write constraint coefficient descriptors */ - for (i = 1; i <= P->m; i++) - { row = P->row[i]; - for (aij = row->ptr; aij != NULL; aij = aij->r_next) - xfprintf(fp, "a %d %d %.*g\n", i, aij->col->j, DBL_DIG, - aij->val), count++; - } - /* write end line */ - xfprintf(fp, "e o f\n"), count++; -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xprintf("%d lines were written\n", count); - ret = 0; -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/**********************************************************************/ - -int glp_read_cnfsat(glp_prob *P, const char *fname) -{ /* read CNF-SAT problem data in DIMACS format */ - struct csa _csa, *csa = &_csa; - int m, n, i, j, len, neg, rhs, ret = 0, *ind = NULL; - double *val = NULL; - char *map = NULL; - if (P == NULL || P->magic != GLP_PROB_MAGIC) - xerror("glp_read_cnfsat: P = %p; invalid problem object\n", - P); - if (fname == NULL) - xerror("glp_read_cnfsat: fname = %p; invalid parameter\n", - fname); - glp_erase_prob(P); - if (setjmp(csa->jump)) - { ret = 1; - goto done; - } - csa->fname = fname; - csa->fp = NULL; - csa->count = 0; - csa->c = '\n'; - csa->field[0] = '\0'; - csa->empty = csa->nonint = 0; - xprintf("Reading CNF-SAT problem data from '%s'...\n", fname); - csa->fp = glp_open(fname, "r"); - if (csa->fp == NULL) - { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); - longjmp(csa->jump, 1); - } - /* read problem line */ - read_designator(csa); - if (strcmp(csa->field, "p") != 0) - error(csa, "problem line missing or invalid"); - read_field(csa); - if (strcmp(csa->field, "cnf") != 0) - error(csa, "wrong problem designator; 'cnf' expected\n"); - read_field(csa); - if (!(str2int(csa->field, &n) == 0 && n >= 0)) - error(csa, "number of variables missing or invalid\n"); - read_field(csa); - if (!(str2int(csa->field, &m) == 0 && m >= 0)) - error(csa, "number of clauses missing or invalid\n"); - xprintf("Instance has %d variable%s and %d clause%s\n", - n, n == 1 ? "" : "s", m, m == 1 ? "" : "s"); - end_of_line(csa); - if (m > 0) - glp_add_rows(P, m); - if (n > 0) - { glp_add_cols(P, n); - for (j = 1; j <= n; j++) - glp_set_col_kind(P, j, GLP_BV); - } - /* allocate working arrays */ - ind = xcalloc(1+n, sizeof(int)); - val = xcalloc(1+n, sizeof(double)); - map = xcalloc(1+n, sizeof(char)); - for (j = 1; j <= n; j++) map[j] = 0; - /* read clauses */ - for (i = 1; i <= m; i++) - { /* read i-th clause */ - len = 0, rhs = 1; - for (;;) - { /* skip white-space characters */ - while (csa->c == ' ' || csa->c == '\n') - read_char(csa); - /* read term */ - read_field(csa); - if (str2int(csa->field, &j) != 0) - error(csa, "variable number missing or invalid\n"); - if (j > 0) - neg = 0; - else if (j < 0) - neg = 1, j = -j, rhs--; - else - break; - if (!(1 <= j && j <= n)) - error(csa, "variable number out of range\n"); - if (map[j]) - error(csa, "duplicate variable number\n"); - len++, ind[len] = j, val[len] = (neg ? -1.0 : +1.0); - map[j] = 1; - } - glp_set_row_bnds(P, i, GLP_LO, (double)rhs, 0.0); - glp_set_mat_row(P, i, len, ind, val); - while (len > 0) map[ind[len--]] = 0; - } - xprintf("%d lines were read\n", csa->count); - /* problem data has been successfully read */ - glp_sort_matrix(P); -done: if (csa->fp != NULL) glp_close(csa->fp); - if (ind != NULL) xfree(ind); - if (val != NULL) xfree(val); - if (map != NULL) xfree(map); - if (ret) glp_erase_prob(P); - return ret; -} - -/**********************************************************************/ - -int glp_check_cnfsat(glp_prob *P) -{ /* check for CNF-SAT problem instance */ - int m = P->m; - int n = P->n; - GLPROW *row; - GLPCOL *col; - GLPAIJ *aij; - int i, j, neg; - if (P == NULL || P->magic != GLP_PROB_MAGIC) - xerror("glp_check_cnfsat: P = %p; invalid problem object\n", - P); - /* check columns */ - for (j = 1; j <= n; j++) - { col = P->col[j]; - /* the variable should be binary */ - if (!(col->kind == GLP_IV && col->type == GLP_DB && - col->lb == 0.0 && col->ub == 1.0)) - return 1; - } - /* objective function should be zero */ - if (P->c0 != 0.0) - return 2; - for (j = 1; j <= n; j++) - { col = P->col[j]; - if (col->coef != 0.0) - return 3; - } - /* check rows */ - for (i = 1; i <= m; i++) - { row = P->row[i]; - /* the row should be of ">=" type */ - if (row->type != GLP_LO) - return 4; - /* check constraint coefficients */ - neg = 0; - for (aij = row->ptr; aij != NULL; aij = aij->r_next) - { /* the constraint coefficient should be +1 or -1 */ - if (aij->val == +1.0) - ; - else if (aij->val == -1.0) - neg++; - else - return 5; - } - /* the right-hand side should be (1 - neg), where neg is the - number of negative constraint coefficients in the row */ - if (row->lb != (double)(1 - neg)) - return 6; - } - /* congratulations; this is CNF-SAT */ - return 0; -} - -/**********************************************************************/ - -int glp_write_cnfsat(glp_prob *P, const char *fname) -{ /* write CNF-SAT problem data in DIMACS format */ - glp_file *fp = NULL; - GLPAIJ *aij; - int i, j, len, count = 0, ret; - char s[50]; - if (P == NULL || P->magic != GLP_PROB_MAGIC) - xerror("glp_write_cnfsat: P = %p; invalid problem object\n", - P); - if (glp_check_cnfsat(P) != 0) - { xprintf("glp_write_cnfsat: problem object does not encode CNF-" - "SAT instance\n"); - ret = 1; - goto done; - } - xprintf("Writing CNF-SAT problem data to '%s'...\n", fname); - fp = glp_open(fname, "w"); - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xfprintf(fp, "c %s\n", - P->name == NULL ? "unknown" : P->name), count++; - xfprintf(fp, "p cnf %d %d\n", P->n, P->m), count++; - for (i = 1; i <= P->m; i++) - { len = 0; - for (aij = P->row[i]->ptr; aij != NULL; aij = aij->r_next) - { j = aij->col->j; - if (aij->val < 0.0) j = -j; - sprintf(s, "%d", j); - if (len > 0 && len + 1 + strlen(s) > 72) - xfprintf(fp, "\n"), count++, len = 0; - xfprintf(fp, "%s%s", len == 0 ? "" : " ", s); - if (len > 0) len++; - len += strlen(s); - } - if (len > 0 && len + 1 + 1 > 72) - xfprintf(fp, "\n"), count++, len = 0; - xfprintf(fp, "%s0\n", len == 0 ? "" : " "), count++; - } - xfprintf(fp, "c eof\n"), count++; -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xprintf("%d lines were written\n", count); - ret = 0; -done: if (fp != NULL) glp_close(fp); - return ret; -} - -/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpgmp.h b/resources/3rdparty/glpk-4.57/src/glpgmp.h deleted file mode 100644 index e1615ae27..000000000 --- a/resources/3rdparty/glpk-4.57/src/glpgmp.h +++ /dev/null @@ -1,190 +0,0 @@ -/* glpgmp.h (bignum arithmetic) */ - -/*********************************************************************** -* This code is part of GLPK (GNU Linear Programming Kit). -* -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied -* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights -* reserved. E-mail: . -* -* GLPK is free software: you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* GLPK is distributed in the hope that it will be useful, but WITHOUT -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -* License for more details. -* -* You should have received a copy of the GNU General Public License -* along with GLPK. If not, see . -***********************************************************************/ - -#ifndef GLPGMP_H -#define GLPGMP_H - -#ifdef HAVE_CONFIG_H -#include -#endif - -#ifdef HAVE_GMP /* use GNU MP bignum library */ - -#include - -#define gmp_pool_count _glp_gmp_pool_count -#define gmp_free_mem _glp_gmp_free_mem - -int gmp_pool_count(void); -void gmp_free_mem(void); - -#else /* use GLPK bignum module */ - -/*---------------------------------------------------------------------- -// INTEGER NUMBERS -// -// Depending on its magnitude an integer number of arbitrary precision -// is represented either in short format or in long format. -// -// Short format corresponds to the int type and allows representing -// integer numbers in the range [-(2^31-1), +(2^31-1)]. Note that for -// the most negative number of int type the short format is not used. -// -// In long format integer numbers are represented using the positional -// system with the base (radix) 2^16 = 65536: -// -// x = (-1)^s sum{j in 0..n-1} d[j] * 65536^j, -// -// where x is the integer to be represented, s is its sign (+1 or -1), -// d[j] are its digits (0 <= d[j] <= 65535). -// -// RATIONAL NUMBERS -// -// A rational number is represented as an irreducible fraction: -// -// p / q, -// -// where p (numerator) and q (denominator) are integer numbers (q > 0) -// having no common divisors. */ - -struct mpz -{ /* integer number */ - int val; - /* if ptr is a null pointer, the number is in short format, and - val is its value; otherwise, the number is in long format, and - val is its sign (+1 or -1) */ - struct mpz_seg *ptr; - /* pointer to the linked list of the number segments ordered in - ascending of powers of the base */ -}; - -struct mpz_seg -{ /* integer number segment */ - unsigned short d[6]; - /* six digits of the number ordered in ascending of powers of the - base */ - struct mpz_seg *next; - /* pointer to the next number segment */ -}; - -struct mpq -{ /* rational number (p / q) */ - struct mpz p; - /* numerator */ - struct mpz q; - /* denominator */ -}; - -typedef struct mpz *mpz_t; -typedef struct mpq *mpq_t; - -#define gmp_get_atom _glp_gmp_get_atom -#define gmp_free_atom _glp_gmp_free_atom -#define gmp_pool_count _glp_gmp_pool_count -#define gmp_get_work _glp_gmp_get_work -#define gmp_free_mem _glp_gmp_free_mem - -#define _mpz_init _glp_mpz_init -#define mpz_clear _glp_mpz_clear -#define mpz_set _glp_mpz_set -#define mpz_set_si _glp_mpz_set_si -#define mpz_get_d _glp_mpz_get_d -#define mpz_get_d_2exp _glp_mpz_get_d_2exp -#define mpz_swap _glp_mpz_swap -#define mpz_add _glp_mpz_add -#define mpz_sub _glp_mpz_sub -#define mpz_mul _glp_mpz_mul -#define mpz_neg _glp_mpz_neg -#define mpz_abs _glp_mpz_abs -#define mpz_div _glp_mpz_div -#define mpz_gcd _glp_mpz_gcd -#define mpz_cmp _glp_mpz_cmp -#define mpz_sgn _glp_mpz_sgn -#define mpz_out_str _glp_mpz_out_str - -#define _mpq_init _glp_mpq_init -#define mpq_clear _glp_mpq_clear -#define mpq_canonicalize _glp_mpq_canonicalize -#define mpq_set _glp_mpq_set -#define mpq_set_si _glp_mpq_set_si -#define mpq_get_d _glp_mpq_get_d -#define mpq_set_d _glp_mpq_set_d -#define mpq_add _glp_mpq_add -#define mpq_sub _glp_mpq_sub -#define mpq_mul _glp_mpq_mul -#define mpq_div _glp_mpq_div -#define mpq_neg _glp_mpq_neg -#define mpq_abs _glp_mpq_abs -#define mpq_cmp _glp_mpq_cmp -#define mpq_sgn _glp_mpq_sgn -#define mpq_out_str _glp_mpq_out_str - -void *gmp_get_atom(int size); -void gmp_free_atom(void *ptr, int size); -int gmp_pool_count(void); -unsigned short *gmp_get_work(int size); -void gmp_free_mem(void); - -mpz_t _mpz_init(void); -#define mpz_init(x) (void)((x) = _mpz_init()) -void mpz_clear(mpz_t x); -void mpz_set(mpz_t z, mpz_t x); -void mpz_set_si(mpz_t x, int val); -double mpz_get_d(mpz_t x); -double mpz_get_d_2exp(int *exp, mpz_t x); -void mpz_swap(mpz_t x, mpz_t y); -void mpz_add(mpz_t, mpz_t, mpz_t); -void mpz_sub(mpz_t, mpz_t, mpz_t); -void mpz_mul(mpz_t, mpz_t, mpz_t); -void mpz_neg(mpz_t z, mpz_t x); -void mpz_abs(mpz_t z, mpz_t x); -void mpz_div(mpz_t q, mpz_t r, mpz_t x, mpz_t y); -void mpz_gcd(mpz_t z, mpz_t x, mpz_t y); -int mpz_cmp(mpz_t x, mpz_t y); -int mpz_sgn(mpz_t x); -int mpz_out_str(void *fp, int base, mpz_t x); - -mpq_t _mpq_init(void); -#define mpq_init(x) (void)((x) = _mpq_init()) -void mpq_clear(mpq_t x); -void mpq_canonicalize(mpq_t x); -void mpq_set(mpq_t z, mpq_t x); -void mpq_set_si(mpq_t x, int p, unsigned int q); -double mpq_get_d(mpq_t x); -void mpq_set_d(mpq_t x, double val); -void mpq_add(mpq_t z, mpq_t x, mpq_t y); -void mpq_sub(mpq_t z, mpq_t x, mpq_t y); -void mpq_mul(mpq_t z, mpq_t x, mpq_t y); -void mpq_div(mpq_t z, mpq_t x, mpq_t y); -void mpq_neg(mpq_t z, mpq_t x); -void mpq_abs(mpq_t z, mpq_t x); -int mpq_cmp(mpq_t x, mpq_t y); -int mpq_sgn(mpq_t x); -int mpq_out_str(void *fp, int base, mpq_t x); - -#endif - -#endif - -/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpsdf.c b/resources/3rdparty/glpk-4.57/src/glpsdf.c deleted file mode 100644 index e14bd0662..000000000 --- a/resources/3rdparty/glpk-4.57/src/glpsdf.c +++ /dev/null @@ -1,259 +0,0 @@ -/* glpsdf.c (plain data file reading routines) */ - -/*********************************************************************** -* This code is part of GLPK (GNU Linear Programming Kit). -* -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied -* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights -* reserved. E-mail: . -* -* GLPK is free software: you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* GLPK is distributed in the hope that it will be useful, but WITHOUT -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -* License for more details. -* -* You should have received a copy of the GNU General Public License -* along with GLPK. If not, see . -***********************************************************************/ - -#include "env.h" -#include "glpsdf.h" -#include "misc.h" - -struct glp_data -{ /* plain data file */ - char *fname; - /* name of data file */ - glp_file *fp; - /* stream assigned to data file */ - void *jump; /* jmp_buf jump; */ - /* label for go to in case of error */ - int count; - /* line count */ - int c; - /* current character of EOF */ - char item[255+1]; - /* current data item */ -}; - -static void next_char(glp_data *data); - -glp_data *glp_sdf_open_file(const char *fname) -{ /* open plain data file */ - glp_data *data = NULL; - glp_file *fp; - jmp_buf jump; - fp = glp_open(fname, "r"); - if (fp == NULL) - { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); - goto done; - } - data = xmalloc(sizeof(glp_data)); - data->fname = xmalloc(strlen(fname)+1); - strcpy(data->fname, fname); - data->fp = fp; - data->jump = NULL; - data->count = 0; - data->c = '\n'; - data->item[0] = '\0'; - /* read the very first character */ - if (setjmp(jump)) - { glp_sdf_close_file(data); - data = NULL; - goto done; - } - data->jump = jump; - next_char(data); - data->jump = NULL; -done: return data; -} - -void glp_sdf_set_jump(glp_data *data, void *jump) -{ /* set up error handling */ - data->jump = jump; - return; -} - -void glp_sdf_error(glp_data *data, const char *fmt, ...) -{ /* print error message */ - va_list arg; - xprintf("%s:%d: ", data->fname, data->count); - va_start(arg, fmt); - xvprintf(fmt, arg); - va_end(arg); - if (data->jump == NULL) - xerror(""); - else - longjmp(data->jump, 1); - /* no return */ -} - -void glp_sdf_warning(glp_data *data, const char *fmt, ...) -{ /* print warning message */ - va_list arg; - xprintf("%s:%d: warning: ", data->fname, data->count); - va_start(arg, fmt); - xvprintf(fmt, arg); - va_end(arg); - return; -} - -static void next_char(glp_data *data) -{ /* read next character */ - int c; - if (data->c == EOF) - glp_sdf_error(data, "unexpected end of file\n"); - else if (data->c == '\n') - data->count++; - c = glp_getc(data->fp); - if (c < 0) - { if (glp_ioerr(data->fp)) - glp_sdf_error(data, "read error - %s\n", get_err_msg()); - else if (data->c == '\n') - c = EOF; - else - { glp_sdf_warning(data, "missing final end of line\n"); - c = '\n'; - } - } - else if (c == '\n') - ; - else if (isspace(c)) - c = ' '; - else if (iscntrl(c)) - glp_sdf_error(data, "invalid control character 0x%02X\n", c); - data->c = c; - return; -} - -static void skip_pad(glp_data *data) -{ /* skip uninteresting characters and comments */ -loop: while (data->c == ' ' || data->c == '\n') - next_char(data); - if (data->c == '/') - { next_char(data); - if (data->c != '*') - glp_sdf_error(data, "invalid use of slash\n"); - next_char(data); - for (;;) - { if (data->c == '*') - { next_char(data); - if (data->c == '/') - { next_char(data); - break; - } - } - next_char(data); - } - goto loop; - } - return; -} - -static void next_item(glp_data *data) -{ /* read next item */ - int len; - skip_pad(data); - len = 0; - while (!(data->c == ' ' || data->c == '\n')) - { data->item[len++] = (char)data->c; - if (len == sizeof(data->item)) - glp_sdf_error(data, "data item '%.31s...' too long\n", - data->item); - next_char(data); - } - data->item[len] = '\0'; - return; -} - -int glp_sdf_read_int(glp_data *data) -{ /* read integer number */ - int x; - next_item(data); - switch (str2int(data->item, &x)) - { case 0: - break; - case 1: - glp_sdf_error(data, "integer '%s' out of range\n", - data->item); - case 2: - glp_sdf_error(data, "cannot convert '%s' to integer\n", - data->item); - default: - xassert(data != data); - } - return x; -} - -double glp_sdf_read_num(glp_data *data) -{ /* read floating-point number */ - double x; - next_item(data); - switch (str2num(data->item, &x)) - { case 0: - break; - case 1: - glp_sdf_error(data, "number '%s' out of range\n", - data->item); - case 2: - glp_sdf_error(data, "cannot convert '%s' to number\n", - data->item); - default: - xassert(data != data); - } - return x; -} - -const char *glp_sdf_read_item(glp_data *data) -{ /* read data item */ - next_item(data); - return data->item; -} - -const char *glp_sdf_read_text(glp_data *data) -{ /* read text until end of line */ - int c, len = 0; - for (;;) - { c = data->c; - next_char(data); - if (c == ' ') - { /* ignore initial spaces */ - if (len == 0) continue; - /* and multiple ones */ - if (data->item[len-1] == ' ') continue; - } - else if (c == '\n') - { /* remove trailing space */ - if (len > 0 && data->item[len-1] == ' ') len--; - /* and stop reading */ - break; - } - /* add current character to the buffer */ - data->item[len++] = (char)c; - if (len == sizeof(data->item)) - glp_sdf_error(data, "line too long\n", data->item); - } - data->item[len] = '\0'; - return data->item; -} - -int glp_sdf_line(glp_data *data) -{ /* determine current line number */ - return data->count; -} - -void glp_sdf_close_file(glp_data *data) -{ /* close plain data file */ - glp_close(data->fp); - xfree(data->fname); - xfree(data); - return; -} - -/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpsdf.h b/resources/3rdparty/glpk-4.57/src/glpsdf.h deleted file mode 100644 index d327a1033..000000000 --- a/resources/3rdparty/glpk-4.57/src/glpsdf.h +++ /dev/null @@ -1,63 +0,0 @@ -/* glpsdf.h */ - -/*********************************************************************** -* This code is part of GLPK (GNU Linear Programming Kit). -* -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied -* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights -* reserved. E-mail: . -* -* GLPK is free software: you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* GLPK is distributed in the hope that it will be useful, but WITHOUT -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -* License for more details. -* -* You should have received a copy of the GNU General Public License -* along with GLPK. If not, see . -***********************************************************************/ - -#ifndef GLPSDF_H -#define GLPSDF_H - -typedef struct glp_data glp_data; -/* plain data file */ - -glp_data *glp_sdf_open_file(const char *fname); -/* open plain data file */ - -void glp_sdf_set_jump(glp_data *data, void *jump); -/* set up error handling */ - -void glp_sdf_error(glp_data *data, const char *fmt, ...); -/* print error message */ - -void glp_sdf_warning(glp_data *data, const char *fmt, ...); -/* print warning message */ - -int glp_sdf_read_int(glp_data *data); -/* read integer number */ - -double glp_sdf_read_num(glp_data *data); -/* read floating-point number */ - -const char *glp_sdf_read_item(glp_data *data); -/* read data item */ - -const char *glp_sdf_read_text(glp_data *data); -/* read text until end of line */ - -int glp_sdf_line(glp_data *data); -/* determine current line number */ - -void glp_sdf_close_file(glp_data *data); -/* close plain data file */ - -#endif - -/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spychuzc.c b/resources/3rdparty/glpk-4.57/src/simplex/spychuzc.c deleted file mode 100644 index dbf8029bb..000000000 --- a/resources/3rdparty/glpk-4.57/src/simplex/spychuzc.c +++ /dev/null @@ -1,222 +0,0 @@ -/* spychuzc.c */ - -/*********************************************************************** -* This code is part of GLPK (GNU Linear Programming Kit). -* -* Copyright (C) 2015 Andrew Makhorin, Department for Applied -* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights -* reserved. E-mail: . -* -* GLPK is free software: you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* GLPK is distributed in the hope that it will be useful, but WITHOUT -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -* License for more details. -* -* You should have received a copy of the GNU General Public License -* along with GLPK. If not, see . -***********************************************************************/ - -#include "env.h" -#include "spychuzc.h" - -/*********************************************************************** -* spy_chuzc_std - choose non-basic variable (dual textbook ratio test) -* -* This routine implements an improved dual textbook ratio test to -* choose non-basic variable xN[q]. -* -* Current reduced costs of non-basic variables should be placed in the -* array locations d[1], ..., d[n-m]. Note that d[j] is a value of dual -* basic variable lambdaN[j] in the current basis. -* -* The parameter s specifies the sign of bound violation for basic -* variable xB[p] chosen: s = +1.0 means that xB[p] violates its lower -* bound, so dual non-basic variable lambdaB[p] = lambda^+B[p] -* increases, and s = -1.0 means that xB[p] violates its upper bound, -* so dual non-basic variable lambdaB[p] = lambda^-B[p] decreases. -* (Thus, the dual ray parameter theta = s * lambdaB[p] >= 0.) -* -* Elements of p-th simplex table row t[p] = (t[p,j]) corresponding -* to basic variable xB[p] should be placed in the array locations -* trow[1], ..., trow[n-m]. -* -* The parameter tol_piv specifies a tolerance for elements of the -* simplex table row t[p]. If |t[p,j]| < tol_piv, dual basic variable -* lambdaN[j] is skipped, i.e. it is assumed that it does not depend on -* the dual ray parameter theta. -* -* The parameters tol and tol1 specify tolerances used to increase the -* choice freedom by simulating an artificial degeneracy as follows. -* If lambdaN[j] = lambda^+N[j] >= 0 and d[j] <= +delta[j], or if -* lambdaN[j] = lambda^-N[j] <= 0 and d[j] >= -delta[j], where -* delta[j] = tol + tol1 * |cN[j]|, cN[j] is objective coefficient at -* xN[j], then it is assumed that reduced cost d[j] is equal to zero. -* -* The routine determines the index 1 <= q <= n-m of non-basic variable -* xN[q], for which corresponding dual basic variable lambda^+N[j] or -* lambda^-N[j] reaches its zero bound first on increasing the dual ray -* parameter theta, and returns p on exit. And if theta may increase -* unlimitedly, the routine returns zero. */ - -int spy_chuzc_std(SPXLP *lp, const double d[/*1+n-m*/], - double s, const double trow[/*1+n-m*/], double tol_piv, - double tol, double tol1) -{ int m = lp->m; - int n = lp->n; - double *c = lp->c; - double *l = lp->l; - double *u = lp->u; - int *head = lp->head; - char *flag = lp->flag; - int j, k, q; - double alfa, biga, delta, teta, teta_min; - xassert(s == +1.0 || s == -1.0); - /* nothing is chosen so far */ - q = 0, teta_min = DBL_MAX, biga = 0.0; - /* walk thru the list of non-basic variables */ - for (j = 1; j <= n-m; j++) - { k = head[m+j]; /* x[k] = xN[j] */ - /* if xN[j] is fixed variable, skip it */ - if (l[k] == u[k]) - continue; - alfa = s * trow[j]; - if (alfa >= +tol_piv && !flag[j]) - { /* xN[j] is either free or has its lower bound active, so - * lambdaN[j] = d[j] >= 0 decreases down to zero */ - delta = tol + tol1 * (c[k] >= 0.0 ? +c[k] : -c[k]); - /* determine theta on which lambdaN[j] reaches zero */ - teta = (d[j] < +delta ? 0.0 : d[j] / alfa); - } - else if (alfa <= -tol_piv && (l[k] == -DBL_MAX || flag[j])) - { /* xN[j] is either free or has its upper bound active, so - * lambdaN[j] = d[j] <= 0 increases up to zero */ - delta = tol + tol1 * (c[k] >= 0.0 ? +c[k] : -c[k]); - /* determine theta on which lambdaN[j] reaches zero */ - teta = (d[j] > -delta ? 0.0 : d[j] / alfa); - } - else - { /* lambdaN[j] cannot reach zero on increasing theta */ - continue; - } - /* choose non-basic variable xN[q] by corresponding dual basic - * variable lambdaN[q] for which theta is minimal */ - xassert(teta >= 0.0); - alfa = (alfa >= 0.0 ? +alfa : -alfa); - if (teta_min > teta || (teta_min == teta && biga < alfa)) - q = j, teta_min = teta, biga = alfa; - } - return q; -} - -/*********************************************************************** -* spy_chuzc_harris - choose non-basic var. (dual Harris' ratio test) -* -* This routine implements dual Harris' ratio test to choose non-basic -* variable xN[q]. -* -* All the parameters, except tol and tol1, as well as the returned -* value have the same meaning as for the routine spx_chuzr_std (see -* above). -* -* The parameters tol and tol1 specify tolerances on zero bound -* violations for reduced costs of non-basic variables. For reduced -* cost d[j] the tolerance is delta[j] = tol + tol1 |cN[j]|, where -* cN[j] is objective coefficient at non-basic variable xN[j]. */ - -int spy_chuzc_harris(SPXLP *lp, const double d[/*1+n-m*/], - double s, const double trow[/*1+n-m*/], double tol_piv, - double tol, double tol1) -{ int m = lp->m; - int n = lp->n; - double *c = lp->c; - double *l = lp->l; - double *u = lp->u; - int *head = lp->head; - char *flag = lp->flag; - int j, k, q; - double alfa, biga, delta, teta, teta_min; - xassert(s == +1.0 || s == -1.0); - /*--------------------------------------------------------------*/ - /* first pass: determine teta_min for relaxed bounds */ - /*--------------------------------------------------------------*/ - teta_min = DBL_MAX; - /* walk thru the list of non-basic variables */ - for (j = 1; j <= n-m; j++) - { k = head[m+j]; /* x[k] = xN[j] */ - /* if xN[j] is fixed variable, skip it */ - if (l[k] == u[k]) - continue; - alfa = s * trow[j]; - if (alfa >= +tol_piv && !flag[j]) - { /* xN[j] is either free or has its lower bound active, so - * lambdaN[j] = d[j] >= 0 decreases down to zero */ - delta = tol + tol1 * (c[k] >= 0.0 ? +c[k] : -c[k]); - /* determine theta on which lambdaN[j] reaches -delta */ - teta = ((d[j] < 0.0 ? 0.0 : d[j]) + delta) / alfa; - } - else if (alfa <= -tol_piv && (l[k] == -DBL_MAX || flag[j])) - { /* xN[j] is either free or has its upper bound active, so - * lambdaN[j] = d[j] <= 0 increases up to zero */ - delta = tol + tol1 * (c[k] >= 0.0 ? +c[k] : -c[k]); - /* determine theta on which lambdaN[j] reaches +delta */ - teta = ((d[j] > 0.0 ? 0.0 : d[j]) - delta) / alfa; - } - else - { /* lambdaN[j] cannot reach zero on increasing theta */ - continue; - } - xassert(teta >= 0.0); - if (teta_min > teta) - teta_min = teta; - } - /*--------------------------------------------------------------*/ - /* second pass: choose non-basic variable xN[q] */ - /*--------------------------------------------------------------*/ - if (teta_min == DBL_MAX) - { /* theta may increase unlimitedly */ - q = 0; - goto done; - } - /* nothing is chosen so far */ - q = 0, biga = 0.0; - /* walk thru the list of non-basic variables */ - for (j = 1; j <= n-m; j++) - { k = head[m+j]; /* x[k] = xN[j] */ - /* if xN[j] is fixed variable, skip it */ - if (l[k] == u[k]) - continue; - alfa = s * trow[j]; - if (alfa >= +tol_piv && !flag[j]) - { /* xN[j] is either free or has its lower bound active, so - * lambdaN[j] = d[j] >= 0 decreases down to zero */ - /* determine theta on which lambdaN[j] reaches zero */ - teta = d[j] / alfa; - } - else if (alfa <= -tol_piv && (l[k] == -DBL_MAX || flag[j])) - { /* xN[j] is either free or has its upper bound active, so - * lambdaN[j] = d[j] <= 0 increases up to zero */ - /* determine theta on which lambdaN[j] reaches zero */ - teta = d[j] / alfa; - } - else - { /* lambdaN[j] cannot reach zero on increasing theta */ - continue; - } - /* choose non-basic variable for which theta is not greater - * than theta_min determined for relaxed bounds and which has - * best (largest in magnitude) pivot */ - alfa = (alfa >= 0.0 ? +alfa : -alfa); - if (teta <= teta_min && biga < alfa) - q = j, biga = alfa; - } - /* something must be chosen */ - xassert(1 <= q && q <= n-m); -done: return q; -} - -/* eof */ diff --git a/resources/3rdparty/glpk-4.57/w32/Makefile_VC b/resources/3rdparty/glpk-4.57/w32/Makefile_VC deleted file mode 100644 index e4853f789..000000000 --- a/resources/3rdparty/glpk-4.57/w32/Makefile_VC +++ /dev/null @@ -1,204 +0,0 @@ -## Build GLPK with Microsoft Visual Studio Express ## - -CFLAGS = \ -/I. \ -/I..\src \ -/I..\src\amd \ -/I..\src\bflib \ -/I..\src\cglib \ -/I..\src\colamd \ -/I..\src\env \ -/I..\src\minisat \ -/I..\src\misc \ -/I..\src\proxy \ -/I..\src\simplex \ -/I..\src\zlib \ -/DHAVE_CONFIG_H=1 \ -/D_CRT_SECURE_NO_WARNINGS=1 \ -/nologo \ -/W3 \ -/O2 \ -/Zi - -OBJSET = \ -..\src\avl.obj \ -..\src\bfd.obj \ -..\src\bfx.obj \ -..\src\glpapi01.obj \ -..\src\glpapi02.obj \ -..\src\glpapi03.obj \ -..\src\glpapi04.obj \ -..\src\glpapi05.obj \ -..\src\glpapi06.obj \ -..\src\glpapi07.obj \ -..\src\glpapi08.obj \ -..\src\glpapi09.obj \ -..\src\glpapi10.obj \ -..\src\glpapi11.obj \ -..\src\glpapi12.obj \ -..\src\glpapi13.obj \ -..\src\glpapi14.obj \ -..\src\glpapi15.obj \ -..\src\glpapi16.obj \ -..\src\glpapi17.obj \ -..\src\glpapi18.obj \ -..\src\glpapi19.obj \ -..\src\glpapi20.obj \ -..\src\glpapi21.obj \ -..\src\glpcpx.obj \ -..\src\glpdmx.obj \ -..\src\glpgmp.obj \ -..\src\glphbm.obj \ -..\src\glpini01.obj \ -..\src\glpini02.obj \ -..\src\glpios01.obj \ -..\src\glpios02.obj \ -..\src\glpios03.obj \ -..\src\glpios04.obj \ -..\src\glpios05.obj \ -..\src\glpios06.obj \ -..\src\glpios07.obj \ -..\src\glpios08.obj \ -..\src\glpios09.obj \ -..\src\glpios10.obj \ -..\src\glpios11.obj \ -..\src\glpios12.obj \ -..\src\glpipm.obj \ -..\src\glpmat.obj \ -..\src\glpmpl01.obj \ -..\src\glpmpl02.obj \ -..\src\glpmpl03.obj \ -..\src\glpmpl04.obj \ -..\src\glpmpl05.obj \ -..\src\glpmpl06.obj \ -..\src\glpmps.obj \ -..\src\glpnet03.obj \ -..\src\glpnet04.obj \ -..\src\glpnet05.obj \ -..\src\glpnpp01.obj \ -..\src\glpnpp02.obj \ -..\src\glpnpp03.obj \ -..\src\glpnpp04.obj \ -..\src\glpnpp05.obj \ -..\src\glpnpp06.obj \ -..\src\glprgr.obj \ -..\src\glpscl.obj \ -..\src\glpsdf.obj \ -..\src\glpspm.obj \ -..\src\glpsql.obj \ -..\src\glpssx01.obj \ -..\src\glpssx02.obj \ -..\src\lux.obj \ -..\src\amd\amd_1.obj \ -..\src\amd\amd_2.obj \ -..\src\amd\amd_aat.obj \ -..\src\amd\amd_control.obj \ -..\src\amd\amd_defaults.obj \ -..\src\amd\amd_dump.obj \ -..\src\amd\amd_info.obj \ -..\src\amd\amd_order.obj \ -..\src\amd\amd_post_tree.obj \ -..\src\amd\amd_postorder.obj \ -..\src\amd\amd_preprocess.obj \ -..\src\amd\amd_valid.obj \ -..\src\bflib\btf.obj \ -..\src\bflib\btfint.obj \ -..\src\bflib\fhv.obj \ -..\src\bflib\fhvint.obj \ -..\src\bflib\ifu.obj \ -..\src\bflib\luf.obj \ -..\src\bflib\lufint.obj \ -..\src\bflib\scf.obj \ -..\src\bflib\scfint.obj \ -..\src\bflib\sgf.obj \ -..\src\bflib\sva.obj \ -..\src\cglib\cfg.obj \ -..\src\cglib\cfg1.obj \ -..\src\colamd\colamd.obj \ -..\src\env\alloc.obj \ -..\src\env\dlsup.obj \ -..\src\env\env.obj \ -..\src\env\error.obj \ -..\src\env\stdout.obj \ -..\src\env\stream.obj \ -..\src\env\time.obj \ -..\src\env\tls.obj \ -..\src\minisat\minisat.obj \ -..\src\misc\bignum.obj \ -..\src\misc\dmp.obj \ -..\src\misc\ffalg.obj \ -..\src\misc\fp2rat.obj \ -..\src\misc\gcd.obj \ -..\src\misc\jd.obj \ -..\src\misc\keller.obj \ -..\src\misc\mc13d.obj \ -..\src\misc\mc21a.obj \ -..\src\misc\okalg.obj \ -..\src\misc\qmd.obj \ -..\src\misc\relax4.obj \ -..\src\misc\rng.obj \ -..\src\misc\rng1.obj \ -..\src\misc\round2n.obj \ -..\src\misc\str2int.obj \ -..\src\misc\str2num.obj \ -..\src\misc\strspx.obj \ -..\src\misc\strtrim.obj \ -..\src\misc\triang.obj \ -..\src\misc\wclique.obj \ -..\src\misc\wclique1.obj \ -..\src\proxy\proxy.obj \ -..\src\proxy\proxy1.obj \ -..\src\simplex\spxat.obj \ -..\src\simplex\spxchuzc.obj \ -..\src\simplex\spxchuzr.obj \ -..\src\simplex\spxlp.obj \ -..\src\simplex\spxnt.obj \ -..\src\simplex\spxprim.obj \ -..\src\simplex\spxprob.obj \ -..\src\simplex\spychuzc.obj \ -..\src\simplex\spychuzr.obj \ -..\src\simplex\spydual.obj \ -..\src\zlib\adler32.obj \ -..\src\zlib\compress.obj \ -..\src\zlib\crc32.obj \ -..\src\zlib\deflate.obj \ -..\src\zlib\gzclose.obj \ -..\src\zlib\gzlib.obj \ -..\src\zlib\gzread.obj \ -..\src\zlib\gzwrite.obj \ -..\src\zlib\inffast.obj \ -..\src\zlib\inflate.obj \ -..\src\zlib\inftrees.obj \ -..\src\zlib\trees.obj \ -..\src\zlib\uncompr.obj \ -..\src\zlib\zio.obj \ -..\src\zlib\zutil.obj - -.c.obj: - cl.exe $(CFLAGS) /Fo$*.obj /c $*.c - -all: glpk.lib glpsol.exe - -glpk.lib: $(OBJSET) - lib.exe /out:glpk.lib \ - ..\src\*.obj \ - ..\src\amd\*.obj \ - ..\src\bflib\*.obj \ - ..\src\cglib\*.obj \ - ..\src\colamd\*.obj \ - ..\src\env\*.obj \ - ..\src\minisat\*.obj \ - ..\src\misc\*.obj \ - ..\src\proxy\*.obj \ - ..\src\simplex\*.obj \ - ..\src\zlib\*.obj - -glpsol.exe: ..\examples\glpsol.obj glpk.lib - cl.exe $(CFLAGS) /Feglpsol.exe \ - ..\examples\glpsol.obj glpk.lib - -check: glpsol.exe - .\glpsol.exe --version - .\glpsol.exe --mps ..\examples\plan.mps - -## eof ## diff --git a/resources/3rdparty/glpk-4.57/w32/Makefile_VC_DLL b/resources/3rdparty/glpk-4.57/w32/Makefile_VC_DLL deleted file mode 100644 index 53467e0b5..000000000 --- a/resources/3rdparty/glpk-4.57/w32/Makefile_VC_DLL +++ /dev/null @@ -1,205 +0,0 @@ -## Build GLPK DLL with Microsoft Visual Studio Express ## - -CFLAGS = \ -/I. \ -/I..\src \ -/I..\src\amd \ -/I..\src\bflib \ -/I..\src\cglib \ -/I..\src\colamd \ -/I..\src\env \ -/I..\src\minisat \ -/I..\src\misc \ -/I..\src\proxy \ -/I..\src\simplex \ -/I..\src\zlib \ -/DHAVE_CONFIG_H=1 \ -/D_CRT_SECURE_NO_WARNINGS=1 \ -/nologo \ -/W3 \ -/O2 \ -/Zi - -OBJSET = \ -..\src\avl.obj \ -..\src\bfd.obj \ -..\src\bfx.obj \ -..\src\glpapi01.obj \ -..\src\glpapi02.obj \ -..\src\glpapi03.obj \ -..\src\glpapi04.obj \ -..\src\glpapi05.obj \ -..\src\glpapi06.obj \ -..\src\glpapi07.obj \ -..\src\glpapi08.obj \ -..\src\glpapi09.obj \ -..\src\glpapi10.obj \ -..\src\glpapi11.obj \ -..\src\glpapi12.obj \ -..\src\glpapi13.obj \ -..\src\glpapi14.obj \ -..\src\glpapi15.obj \ -..\src\glpapi16.obj \ -..\src\glpapi17.obj \ -..\src\glpapi18.obj \ -..\src\glpapi19.obj \ -..\src\glpapi20.obj \ -..\src\glpapi21.obj \ -..\src\glpcpx.obj \ -..\src\glpdmx.obj \ -..\src\glpgmp.obj \ -..\src\glphbm.obj \ -..\src\glpini01.obj \ -..\src\glpini02.obj \ -..\src\glpios01.obj \ -..\src\glpios02.obj \ -..\src\glpios03.obj \ -..\src\glpios04.obj \ -..\src\glpios05.obj \ -..\src\glpios06.obj \ -..\src\glpios07.obj \ -..\src\glpios08.obj \ -..\src\glpios09.obj \ -..\src\glpios10.obj \ -..\src\glpios11.obj \ -..\src\glpios12.obj \ -..\src\glpipm.obj \ -..\src\glpmat.obj \ -..\src\glpmpl01.obj \ -..\src\glpmpl02.obj \ -..\src\glpmpl03.obj \ -..\src\glpmpl04.obj \ -..\src\glpmpl05.obj \ -..\src\glpmpl06.obj \ -..\src\glpmps.obj \ -..\src\glpnet03.obj \ -..\src\glpnet04.obj \ -..\src\glpnet05.obj \ -..\src\glpnpp01.obj \ -..\src\glpnpp02.obj \ -..\src\glpnpp03.obj \ -..\src\glpnpp04.obj \ -..\src\glpnpp05.obj \ -..\src\glpnpp06.obj \ -..\src\glprgr.obj \ -..\src\glpscl.obj \ -..\src\glpsdf.obj \ -..\src\glpspm.obj \ -..\src\glpsql.obj \ -..\src\glpssx01.obj \ -..\src\glpssx02.obj \ -..\src\lux.obj \ -..\src\amd\amd_1.obj \ -..\src\amd\amd_2.obj \ -..\src\amd\amd_aat.obj \ -..\src\amd\amd_control.obj \ -..\src\amd\amd_defaults.obj \ -..\src\amd\amd_dump.obj \ -..\src\amd\amd_info.obj \ -..\src\amd\amd_order.obj \ -..\src\amd\amd_post_tree.obj \ -..\src\amd\amd_postorder.obj \ -..\src\amd\amd_preprocess.obj \ -..\src\amd\amd_valid.obj \ -..\src\bflib\btf.obj \ -..\src\bflib\btfint.obj \ -..\src\bflib\fhv.obj \ -..\src\bflib\fhvint.obj \ -..\src\bflib\ifu.obj \ -..\src\bflib\luf.obj \ -..\src\bflib\lufint.obj \ -..\src\bflib\scf.obj \ -..\src\bflib\scfint.obj \ -..\src\bflib\sgf.obj \ -..\src\bflib\sva.obj \ -..\src\cglib\cfg.obj \ -..\src\cglib\cfg1.obj \ -..\src\colamd\colamd.obj \ -..\src\env\alloc.obj \ -..\src\env\dlsup.obj \ -..\src\env\env.obj \ -..\src\env\error.obj \ -..\src\env\stdout.obj \ -..\src\env\stream.obj \ -..\src\env\time.obj \ -..\src\env\tls.obj \ -..\src\minisat\minisat.obj \ -..\src\misc\bignum.obj \ -..\src\misc\dmp.obj \ -..\src\misc\ffalg.obj \ -..\src\misc\fp2rat.obj \ -..\src\misc\gcd.obj \ -..\src\misc\jd.obj \ -..\src\misc\keller.obj \ -..\src\misc\mc13d.obj \ -..\src\misc\mc21a.obj \ -..\src\misc\okalg.obj \ -..\src\misc\qmd.obj \ -..\src\misc\relax4.obj \ -..\src\misc\rng.obj \ -..\src\misc\rng1.obj \ -..\src\misc\round2n.obj \ -..\src\misc\str2int.obj \ -..\src\misc\str2num.obj \ -..\src\misc\strspx.obj \ -..\src\misc\strtrim.obj \ -..\src\misc\triang.obj \ -..\src\misc\wclique.obj \ -..\src\misc\wclique1.obj \ -..\src\proxy\proxy.obj \ -..\src\proxy\proxy1.obj \ -..\src\simplex\spxat.obj \ -..\src\simplex\spxchuzc.obj \ -..\src\simplex\spxchuzr.obj \ -..\src\simplex\spxlp.obj \ -..\src\simplex\spxnt.obj \ -..\src\simplex\spxprim.obj \ -..\src\simplex\spxprob.obj \ -..\src\simplex\spychuzc.obj \ -..\src\simplex\spychuzr.obj \ -..\src\simplex\spydual.obj \ -..\src\zlib\adler32.obj \ -..\src\zlib\compress.obj \ -..\src\zlib\crc32.obj \ -..\src\zlib\deflate.obj \ -..\src\zlib\gzclose.obj \ -..\src\zlib\gzlib.obj \ -..\src\zlib\gzread.obj \ -..\src\zlib\gzwrite.obj \ -..\src\zlib\inffast.obj \ -..\src\zlib\inflate.obj \ -..\src\zlib\inftrees.obj \ -..\src\zlib\trees.obj \ -..\src\zlib\uncompr.obj \ -..\src\zlib\zio.obj \ -..\src\zlib\zutil.obj - -.c.obj: - cl.exe $(CFLAGS) /Fo$*.obj /c $*.c - -all: glpk_4_57.dll glpsol.exe - -glpk_4_57.dll: $(OBJSET) - cl.exe $(CFLAGS) /LD /Feglpk_4_57.dll \ - ..\src\*.obj \ - ..\src\amd\*.obj \ - ..\src\bflib\*.obj \ - ..\src\cglib\*.obj \ - ..\src\colamd\*.obj \ - ..\src\env\*.obj \ - ..\src\minisat\*.obj \ - ..\src\misc\*.obj \ - ..\src\proxy\*.obj \ - ..\src\simplex\*.obj \ - ..\src\zlib\*.obj \ - glpk_4_57.def - -glpsol.exe: ..\examples\glpsol.obj glpk_4_57.dll - cl.exe $(CFLAGS) /Feglpsol.exe \ - ..\examples\glpsol.obj glpk_4_57.lib - -check: glpsol.exe - .\glpsol.exe --version - .\glpsol.exe --mps ..\examples\plan.mps - -## eof ## diff --git a/resources/3rdparty/glpk-4.57/w64/makefile_VC b/resources/3rdparty/glpk-4.57/w64/makefile_VC deleted file mode 100644 index e4853f789..000000000 --- a/resources/3rdparty/glpk-4.57/w64/makefile_VC +++ /dev/null @@ -1,204 +0,0 @@ -## Build GLPK with Microsoft Visual Studio Express ## - -CFLAGS = \ -/I. \ -/I..\src \ -/I..\src\amd \ -/I..\src\bflib \ -/I..\src\cglib \ -/I..\src\colamd \ -/I..\src\env \ -/I..\src\minisat \ -/I..\src\misc \ -/I..\src\proxy \ -/I..\src\simplex \ -/I..\src\zlib \ -/DHAVE_CONFIG_H=1 \ -/D_CRT_SECURE_NO_WARNINGS=1 \ -/nologo \ -/W3 \ -/O2 \ -/Zi - -OBJSET = \ -..\src\avl.obj \ -..\src\bfd.obj \ -..\src\bfx.obj \ -..\src\glpapi01.obj \ -..\src\glpapi02.obj \ -..\src\glpapi03.obj \ -..\src\glpapi04.obj \ -..\src\glpapi05.obj \ -..\src\glpapi06.obj \ -..\src\glpapi07.obj \ -..\src\glpapi08.obj \ -..\src\glpapi09.obj \ -..\src\glpapi10.obj \ -..\src\glpapi11.obj \ -..\src\glpapi12.obj \ -..\src\glpapi13.obj \ -..\src\glpapi14.obj \ -..\src\glpapi15.obj \ -..\src\glpapi16.obj \ -..\src\glpapi17.obj \ -..\src\glpapi18.obj \ -..\src\glpapi19.obj \ -..\src\glpapi20.obj \ -..\src\glpapi21.obj \ -..\src\glpcpx.obj \ -..\src\glpdmx.obj \ -..\src\glpgmp.obj \ -..\src\glphbm.obj \ -..\src\glpini01.obj \ -..\src\glpini02.obj \ -..\src\glpios01.obj \ -..\src\glpios02.obj \ -..\src\glpios03.obj \ -..\src\glpios04.obj \ -..\src\glpios05.obj \ -..\src\glpios06.obj \ -..\src\glpios07.obj \ -..\src\glpios08.obj \ -..\src\glpios09.obj \ -..\src\glpios10.obj \ -..\src\glpios11.obj \ -..\src\glpios12.obj \ -..\src\glpipm.obj \ -..\src\glpmat.obj \ -..\src\glpmpl01.obj \ -..\src\glpmpl02.obj \ -..\src\glpmpl03.obj \ -..\src\glpmpl04.obj \ -..\src\glpmpl05.obj \ -..\src\glpmpl06.obj \ -..\src\glpmps.obj \ -..\src\glpnet03.obj \ -..\src\glpnet04.obj \ -..\src\glpnet05.obj \ -..\src\glpnpp01.obj \ -..\src\glpnpp02.obj \ -..\src\glpnpp03.obj \ -..\src\glpnpp04.obj \ -..\src\glpnpp05.obj \ -..\src\glpnpp06.obj \ -..\src\glprgr.obj \ -..\src\glpscl.obj \ -..\src\glpsdf.obj \ -..\src\glpspm.obj \ -..\src\glpsql.obj \ -..\src\glpssx01.obj \ -..\src\glpssx02.obj \ -..\src\lux.obj \ -..\src\amd\amd_1.obj \ -..\src\amd\amd_2.obj \ -..\src\amd\amd_aat.obj \ -..\src\amd\amd_control.obj \ -..\src\amd\amd_defaults.obj \ -..\src\amd\amd_dump.obj \ -..\src\amd\amd_info.obj \ -..\src\amd\amd_order.obj \ -..\src\amd\amd_post_tree.obj \ -..\src\amd\amd_postorder.obj \ -..\src\amd\amd_preprocess.obj \ -..\src\amd\amd_valid.obj \ -..\src\bflib\btf.obj \ -..\src\bflib\btfint.obj \ -..\src\bflib\fhv.obj \ -..\src\bflib\fhvint.obj \ -..\src\bflib\ifu.obj \ -..\src\bflib\luf.obj \ -..\src\bflib\lufint.obj \ -..\src\bflib\scf.obj \ -..\src\bflib\scfint.obj \ -..\src\bflib\sgf.obj \ -..\src\bflib\sva.obj \ -..\src\cglib\cfg.obj \ -..\src\cglib\cfg1.obj \ -..\src\colamd\colamd.obj \ -..\src\env\alloc.obj \ -..\src\env\dlsup.obj \ -..\src\env\env.obj \ -..\src\env\error.obj \ -..\src\env\stdout.obj \ -..\src\env\stream.obj \ -..\src\env\time.obj \ -..\src\env\tls.obj \ -..\src\minisat\minisat.obj \ -..\src\misc\bignum.obj \ -..\src\misc\dmp.obj \ -..\src\misc\ffalg.obj \ -..\src\misc\fp2rat.obj \ -..\src\misc\gcd.obj \ -..\src\misc\jd.obj \ -..\src\misc\keller.obj \ -..\src\misc\mc13d.obj \ -..\src\misc\mc21a.obj \ -..\src\misc\okalg.obj \ -..\src\misc\qmd.obj \ -..\src\misc\relax4.obj \ -..\src\misc\rng.obj \ -..\src\misc\rng1.obj \ -..\src\misc\round2n.obj \ -..\src\misc\str2int.obj \ -..\src\misc\str2num.obj \ -..\src\misc\strspx.obj \ -..\src\misc\strtrim.obj \ -..\src\misc\triang.obj \ -..\src\misc\wclique.obj \ -..\src\misc\wclique1.obj \ -..\src\proxy\proxy.obj \ -..\src\proxy\proxy1.obj \ -..\src\simplex\spxat.obj \ -..\src\simplex\spxchuzc.obj \ -..\src\simplex\spxchuzr.obj \ -..\src\simplex\spxlp.obj \ -..\src\simplex\spxnt.obj \ -..\src\simplex\spxprim.obj \ -..\src\simplex\spxprob.obj \ -..\src\simplex\spychuzc.obj \ -..\src\simplex\spychuzr.obj \ -..\src\simplex\spydual.obj \ -..\src\zlib\adler32.obj \ -..\src\zlib\compress.obj \ -..\src\zlib\crc32.obj \ -..\src\zlib\deflate.obj \ -..\src\zlib\gzclose.obj \ -..\src\zlib\gzlib.obj \ -..\src\zlib\gzread.obj \ -..\src\zlib\gzwrite.obj \ -..\src\zlib\inffast.obj \ -..\src\zlib\inflate.obj \ -..\src\zlib\inftrees.obj \ -..\src\zlib\trees.obj \ -..\src\zlib\uncompr.obj \ -..\src\zlib\zio.obj \ -..\src\zlib\zutil.obj - -.c.obj: - cl.exe $(CFLAGS) /Fo$*.obj /c $*.c - -all: glpk.lib glpsol.exe - -glpk.lib: $(OBJSET) - lib.exe /out:glpk.lib \ - ..\src\*.obj \ - ..\src\amd\*.obj \ - ..\src\bflib\*.obj \ - ..\src\cglib\*.obj \ - ..\src\colamd\*.obj \ - ..\src\env\*.obj \ - ..\src\minisat\*.obj \ - ..\src\misc\*.obj \ - ..\src\proxy\*.obj \ - ..\src\simplex\*.obj \ - ..\src\zlib\*.obj - -glpsol.exe: ..\examples\glpsol.obj glpk.lib - cl.exe $(CFLAGS) /Feglpsol.exe \ - ..\examples\glpsol.obj glpk.lib - -check: glpsol.exe - .\glpsol.exe --version - .\glpsol.exe --mps ..\examples\plan.mps - -## eof ## diff --git a/resources/3rdparty/glpk-4.57/w64/makefile_VC_DLL b/resources/3rdparty/glpk-4.57/w64/makefile_VC_DLL deleted file mode 100644 index 53467e0b5..000000000 --- a/resources/3rdparty/glpk-4.57/w64/makefile_VC_DLL +++ /dev/null @@ -1,205 +0,0 @@ -## Build GLPK DLL with Microsoft Visual Studio Express ## - -CFLAGS = \ -/I. \ -/I..\src \ -/I..\src\amd \ -/I..\src\bflib \ -/I..\src\cglib \ -/I..\src\colamd \ -/I..\src\env \ -/I..\src\minisat \ -/I..\src\misc \ -/I..\src\proxy \ -/I..\src\simplex \ -/I..\src\zlib \ -/DHAVE_CONFIG_H=1 \ -/D_CRT_SECURE_NO_WARNINGS=1 \ -/nologo \ -/W3 \ -/O2 \ -/Zi - -OBJSET = \ -..\src\avl.obj \ -..\src\bfd.obj \ -..\src\bfx.obj \ -..\src\glpapi01.obj \ -..\src\glpapi02.obj \ -..\src\glpapi03.obj \ -..\src\glpapi04.obj \ -..\src\glpapi05.obj \ -..\src\glpapi06.obj \ -..\src\glpapi07.obj \ -..\src\glpapi08.obj \ -..\src\glpapi09.obj \ -..\src\glpapi10.obj \ -..\src\glpapi11.obj \ -..\src\glpapi12.obj \ -..\src\glpapi13.obj \ -..\src\glpapi14.obj \ -..\src\glpapi15.obj \ -..\src\glpapi16.obj \ -..\src\glpapi17.obj \ -..\src\glpapi18.obj \ -..\src\glpapi19.obj \ -..\src\glpapi20.obj \ -..\src\glpapi21.obj \ -..\src\glpcpx.obj \ -..\src\glpdmx.obj \ -..\src\glpgmp.obj \ -..\src\glphbm.obj \ -..\src\glpini01.obj \ -..\src\glpini02.obj \ -..\src\glpios01.obj \ -..\src\glpios02.obj \ -..\src\glpios03.obj \ -..\src\glpios04.obj \ -..\src\glpios05.obj \ -..\src\glpios06.obj \ -..\src\glpios07.obj \ -..\src\glpios08.obj \ -..\src\glpios09.obj \ -..\src\glpios10.obj \ -..\src\glpios11.obj \ -..\src\glpios12.obj \ -..\src\glpipm.obj \ -..\src\glpmat.obj \ -..\src\glpmpl01.obj \ -..\src\glpmpl02.obj \ -..\src\glpmpl03.obj \ -..\src\glpmpl04.obj \ -..\src\glpmpl05.obj \ -..\src\glpmpl06.obj \ -..\src\glpmps.obj \ -..\src\glpnet03.obj \ -..\src\glpnet04.obj \ -..\src\glpnet05.obj \ -..\src\glpnpp01.obj \ -..\src\glpnpp02.obj \ -..\src\glpnpp03.obj \ -..\src\glpnpp04.obj \ -..\src\glpnpp05.obj \ -..\src\glpnpp06.obj \ -..\src\glprgr.obj \ -..\src\glpscl.obj \ -..\src\glpsdf.obj \ -..\src\glpspm.obj \ -..\src\glpsql.obj \ -..\src\glpssx01.obj \ -..\src\glpssx02.obj \ -..\src\lux.obj \ -..\src\amd\amd_1.obj \ -..\src\amd\amd_2.obj \ -..\src\amd\amd_aat.obj \ -..\src\amd\amd_control.obj \ -..\src\amd\amd_defaults.obj \ -..\src\amd\amd_dump.obj \ -..\src\amd\amd_info.obj \ -..\src\amd\amd_order.obj \ -..\src\amd\amd_post_tree.obj \ -..\src\amd\amd_postorder.obj \ -..\src\amd\amd_preprocess.obj \ -..\src\amd\amd_valid.obj \ -..\src\bflib\btf.obj \ -..\src\bflib\btfint.obj \ -..\src\bflib\fhv.obj \ -..\src\bflib\fhvint.obj \ -..\src\bflib\ifu.obj \ -..\src\bflib\luf.obj \ -..\src\bflib\lufint.obj \ -..\src\bflib\scf.obj \ -..\src\bflib\scfint.obj \ -..\src\bflib\sgf.obj \ -..\src\bflib\sva.obj \ -..\src\cglib\cfg.obj \ -..\src\cglib\cfg1.obj \ -..\src\colamd\colamd.obj \ -..\src\env\alloc.obj \ -..\src\env\dlsup.obj \ -..\src\env\env.obj \ -..\src\env\error.obj \ -..\src\env\stdout.obj \ -..\src\env\stream.obj \ -..\src\env\time.obj \ -..\src\env\tls.obj \ -..\src\minisat\minisat.obj \ -..\src\misc\bignum.obj \ -..\src\misc\dmp.obj \ -..\src\misc\ffalg.obj \ -..\src\misc\fp2rat.obj \ -..\src\misc\gcd.obj \ -..\src\misc\jd.obj \ -..\src\misc\keller.obj \ -..\src\misc\mc13d.obj \ -..\src\misc\mc21a.obj \ -..\src\misc\okalg.obj \ -..\src\misc\qmd.obj \ -..\src\misc\relax4.obj \ -..\src\misc\rng.obj \ -..\src\misc\rng1.obj \ -..\src\misc\round2n.obj \ -..\src\misc\str2int.obj \ -..\src\misc\str2num.obj \ -..\src\misc\strspx.obj \ -..\src\misc\strtrim.obj \ -..\src\misc\triang.obj \ -..\src\misc\wclique.obj \ -..\src\misc\wclique1.obj \ -..\src\proxy\proxy.obj \ -..\src\proxy\proxy1.obj \ -..\src\simplex\spxat.obj \ -..\src\simplex\spxchuzc.obj \ -..\src\simplex\spxchuzr.obj \ -..\src\simplex\spxlp.obj \ -..\src\simplex\spxnt.obj \ -..\src\simplex\spxprim.obj \ -..\src\simplex\spxprob.obj \ -..\src\simplex\spychuzc.obj \ -..\src\simplex\spychuzr.obj \ -..\src\simplex\spydual.obj \ -..\src\zlib\adler32.obj \ -..\src\zlib\compress.obj \ -..\src\zlib\crc32.obj \ -..\src\zlib\deflate.obj \ -..\src\zlib\gzclose.obj \ -..\src\zlib\gzlib.obj \ -..\src\zlib\gzread.obj \ -..\src\zlib\gzwrite.obj \ -..\src\zlib\inffast.obj \ -..\src\zlib\inflate.obj \ -..\src\zlib\inftrees.obj \ -..\src\zlib\trees.obj \ -..\src\zlib\uncompr.obj \ -..\src\zlib\zio.obj \ -..\src\zlib\zutil.obj - -.c.obj: - cl.exe $(CFLAGS) /Fo$*.obj /c $*.c - -all: glpk_4_57.dll glpsol.exe - -glpk_4_57.dll: $(OBJSET) - cl.exe $(CFLAGS) /LD /Feglpk_4_57.dll \ - ..\src\*.obj \ - ..\src\amd\*.obj \ - ..\src\bflib\*.obj \ - ..\src\cglib\*.obj \ - ..\src\colamd\*.obj \ - ..\src\env\*.obj \ - ..\src\minisat\*.obj \ - ..\src\misc\*.obj \ - ..\src\proxy\*.obj \ - ..\src\simplex\*.obj \ - ..\src\zlib\*.obj \ - glpk_4_57.def - -glpsol.exe: ..\examples\glpsol.obj glpk_4_57.dll - cl.exe $(CFLAGS) /Feglpsol.exe \ - ..\examples\glpsol.obj glpk_4_57.lib - -check: glpsol.exe - .\glpsol.exe --version - .\glpsol.exe --mps ..\examples\plan.mps - -## eof ## diff --git a/resources/3rdparty/glpk-4.57/AUTHORS b/resources/3rdparty/glpk-4.65/AUTHORS similarity index 100% rename from resources/3rdparty/glpk-4.57/AUTHORS rename to resources/3rdparty/glpk-4.65/AUTHORS diff --git a/resources/3rdparty/glpk-4.57/COPYING b/resources/3rdparty/glpk-4.65/COPYING similarity index 100% rename from resources/3rdparty/glpk-4.57/COPYING rename to resources/3rdparty/glpk-4.65/COPYING diff --git a/resources/3rdparty/glpk-4.57/ChangeLog b/resources/3rdparty/glpk-4.65/ChangeLog similarity index 83% rename from resources/3rdparty/glpk-4.57/ChangeLog rename to resources/3rdparty/glpk-4.65/ChangeLog index acf5867be..c71214ef6 100644 --- a/resources/3rdparty/glpk-4.57/ChangeLog +++ b/resources/3rdparty/glpk-4.65/ChangeLog @@ -1,3 +1,525 @@ +Thu Feb 16 10:00:00 2018 Andrew Makhorin + + * GLPK 4.65 (43:0:3) has been released. + + * src/glpk.h, src/api/npp.c + New API routines for LP/MIP preprocessing were added: + glp_npp_alloc_wksp allocate the preprocessor workspace + glp_npp_load_prob load original problem instance + glp_npp_preprocess1 perform basic LP/MIP preprocessing + glp_npp_build_prob build resultant problem instance + glp_npp_postprocess postprocess solution to resultant problem + glp_npp_obtain_sol obtain solution to original problem + glp_npp_free_wksp free the preprocessor workspace + See doc/npp.txt for detailed description of these API routines. + + * examples/nppsamp.c + An example program to demonstrate using of LP/MIP preprocessor + was added. + + The following modules were renamed to simplify maintenance. + * src/draft/glpnpp.h RENAMED -> src/npp/npp.h + * src/draft/glpnpp01.c RENAMED -> src/npp/npp1.c + * src/draft/glpnpp02.c RENAMED -> src/npp/npp2.c + * src/draft/glpnpp03.c RENAMED -> src/npp/npp3.c + * src/draft/glpnpp04.c RENAMED -> src/npp/npp4.c + * src/draft/glpnpp05.c RENAMED -> src/npp/npp5.c + * src/draft/glpnpp06.c RENAMED -> src/npp/npp6.c + * src/bflib/fvs.h RENAMED -> src/misc/fvs.h + * src/bflib/fvs.c RENAMED -> src/misc/fvs.c + * src/draft/glpios.h RENAMED -> src/draft/ios.h + * src/cglib/ RENAMED -> src/intopt/ + * src/draft/glpios10.c RENAMED -> src/intopt/fpump.c + + * src/glpk.h, src/intopt/covgen.c + A new, more robust implementation of locally valid simple cover + cuts was included in the MIP solver. + + * src/draft/ios.h, src/draft/glpios01.c, src/draft/glpios03.c + These modules were changed to use the new cover cut generator. + + * src/misc/ks.c, src/misc/ks.h + Routines to solve 0-1 knapsack problem (used by the new cover + cut generator) were added. + + * src/misc/mt1.c, src/misc/mt1.h, src/misc/mt1.f + Routines to solve 0-1 knapsack problem with Martello & Toth + algorithm (used by the new cover cut generator) were added. + (The original Fortran 77 code mt1.f is included for reference + purposes only.) + + * src/draft/glpapi09.c + The API routine glp_init_iocp was changed to enable long-step + dual simplex by default. + + * src/api/cplex.c + The internal routine col_name routine was changed to construct + a fake column name depending on the column's attributes. + + * examples/glpsol.c + A new option --hide was added. This option removes all symbolic + names from the model being processed. + + * src/env/stdc.h + CDECL macro was added. (This macro is defined by config.h only + on building the GLPK DLL with MSVC.) + The following modules affected by this change were changed: + * src/api/cpxbas.c + * src/draft/glpios11.c + * src/intopt/cfg1.c + * src/intopt/fpump.c + * src/intopt/gmigen.c + * src/intopt/mirgen.c + * src/misc/wclique1.c + * src/simplex/spxchuzr.c + * src/simplex/spychuzc.c + +Sat Dec 02 12:00:00 2017 Andrew Makhorin + + * GLPK 4.64 (42:3:2) has been released. + + * src/simplex/spydual.c + The internal routine play_coef of the dual simplex solver was + changed to perform more aggressive perturbation to prevent dual + degeneracy and avoid stalling even if the current dual basic + solution is strongly feasible (mainly if the objective is zero, + so all reduced costs are always zero). Thanks to David Monniaux + for bug report. + + * src/draft/glpssx.h, glpssx02.c, glpapi07.c + The exact simplex solver routines were changed to perform + terminal output according to the verbosity level (specified by + the control parameter smcp.msg_lev). Thanks to Jeroen Demeyer + for bug report. + + * src/simplex/spxchuzr.c + The directive #include was added. Thanks to Heinrich + Schuchardt for bug report. + + * examples/graceful.mod + An example model in MathProg was added. Thanks to Mike Appleby + for contribution. + + * examples/powpl25h.mod powplant.mod wolfra6d.lp wolfra6d.mod + Three example models in MathProg and one in Cplex LP format + were added. Thanks to Peter Naszvadi for + contribution. + +Tue Jul 25 12:00:00 2017 Andrew Makhorin + + * GLPK 4.63 (42:2:2) has been released. + + * src/simplex/spxchuzr.h, src/simplex/spxchuzr.c + An experimental feature (phase I long-step ratio test) was + included in the primal simplex solver. + + * src/simplex/spxprim.c, src/simplex/spydual.c + An internal scaling of the objective coefficients was added to + the primal and dual simplex solvers. + + * src/simplex/spxprim.c + A minor bug was fixed (correction of flags of fixed non-basic + variables after removing the perturbation). + + * src/glpk.h, src/glpapi06.c + New smcp parameters were added (not documented yet): + int excl (default: GLP_ON) + Internal simplex solver option: + GLP_ON - exclude fixed non-basic variables from the working LP; + GLP_OFF - keep original variables in the working LP. + int shift (default: GLP_ON) + Internal simplex solver option: + GLP_ON - shift bounds of variables in the working LP tow. zero; + GLP_OFF - keep original bounds of variables in the working LP. + int aorn (default: GLP_USE_NT) + Internal simplex solver option: + GLP_USE_AT - use A matrix in sparse row-wise format; + GLP_USE_NT - use N matrix in sparse row-wise format. + Parameter out_frq was changed to specify the output frequency + in milliseconds rather than in simplex iterations. + + src/env/time.c + The Posix version of glp_time was replaced by new one, which + doesn't use gmtime functions to improve portability. Thanks to + Rob Schroeder for bug report. + + src/spv.c, src/spv.h + These files were moved to src/cglib/, since they are used only + in the MIR cuts generator. + + examples/life_goe.mod, examples/tiling.mod, examples/toto.mod + Three new example models in MathProg were added. Thanks to + Peter Naszvadi for contribution. + +Wed Jun 14 12:00:00 2017 Andrew Makhorin + + * GLPK 4.62 (42:1:2) has been released. + + * src/simplex/spxprim.c + An experimental feature (bound perturbation) to improve + numerical stabilty and avoid cycling was included in the primal + simplex solver. Currently it is enabled by default. + + * src/simplex/spxprim.c + Some dense vectors were replaced by sparse ones in full-vector + storage (FVS) format. + + * src/simplex/spxprim.c, src/simplex/spydual.c + Assertions trow[q] != 0.0 and tcol[p] != 0.0 were replaced by + setting an error code to prevent abnormal termination. Thanks + to Chris Matrakidis for patch. + + * src/simplex/spydual.c + Removing perturbation was added if the perturbed problem is + dual infeasible while the original one is dual feasible. Thanks + to Chris Matrakidis for patch. + + * src/api/mps.c + A range bug was fixed. + Thanks to Chris Matrakidis for patch. + + * src/minisat/minisat.c + Changes were made to provide 64-bit portability. Thanks to + Chris Matrakidis for patch. + + * src/api/minisat1.c + Changes related to the minisat solver were made. Thanks to + Chris Matrakidis for patch. + + * src/api/intfeas1.c + Changes were made to skip objective integrality check when + no objective bound is specified. Thanks to Chris Matrakidis + for patch. + + * src/glphbm.c, src/glprgr.c, src/env/stream.c, src/env/time.c, + * src/mpl/mpl5.c, src/mpl/mpl6.c, src/mpl/mplsql.c + Calls to non-thread-safe functions gmtime, strerror, and strtok + were replaced by calls to corresponding thread-safe equivalents + (gmtime_r, strerror_r, and strtok_r for GNU/Linux). + + * w32/*.def, w64/*.def + glp_config symbol was added. Thanks to Heinrich Schuchardt + for bug report. + + * examples/pbn/pbn.mod + A bug was fixed (model didn't work for odd number of rows or + columns). Thanks to Chris Matrakidis for + bug report and patch provided. + +Sun Jan 22 12:00:00 2017 Andrew Makhorin + + * GLPK 4.61 (42:0:2) has been released. + + The following modules were renamed to simplify maintenance. + * src/prob.h RENAMED -> src/api/prob.h + * src/glpapi01.c RENAMED -> src/api/prob1.c + * src/glpapi02.c RENAMED -> src/api/prob2.c + * src/glpapi03.c RENAMED -> src/api/prob3.c + * src/glpapi04.c RENAMED -> src/api/prob4.c + * src/glpapi05.c RENAMED -> src/api/prob5.c + + * src/env/tls.c + TLS (thread local storage class specifier) option was added; + see comments in tls.c for details. + + * configure.ac, config.h.in + Test for TLS was added. + Thanks to David Monniaux for + suggestion and Chris Matrakidis for patch. + + * src/env/tls.c + Dll support was added. + Thanks to Heinrich Schuchardt for + contribution. + + The following modules were changed to add __cdecl specifier + for functions passed to qsort (this is needed only on compiling + GLPK with MSVC to run under MS Windows). + * src/api/cpxbas.c + * src/cglib/cfg1.c + * src/cglib/gmigen.c + * src/cglib/mirgen.c + * src/misc/wclique1.c + * src/simplex/spychuzc.c + * src/glpios10.c + * src/glpios11.c + * examples/glpsol.c + + * src/glpk.h, src/env/env.c + The API routine glp_version was changed to avoid initialization + of the GLPK environment. The new API routine glp_config was + added (but not documented yet). Thanks to Heinrich Schuchardt + for suggestion. + + * INSTALL + Description of the configure option '--with-zlib' was removed. + Thanks to Balaco Baco for bug report. + +Fri Apr 01 12:00:00 2016 Andrew Makhorin + + * GLPK 4.60 (41:0:1) has been released. + + * src/glpk.h + Declarations of all non-documented API routines were hidden by + #ifdef GLP_UNDOC / #endif. + + src/simplex/spydual.c + An experimental feature (objective coefficient perturbation) + to improve numerical stabilty and avoid cycling was included in + the dual simplex solver. + + This release also includes all the changes made in 4.59.2 and + 4.59.1 non-official test releases (see below). + +Fri Mar 18 12:00:00 2016 Andrew Makhorin + + * GLPK 4.59.2 (40:1:0) has been released. + + NOTE: THIS IS A NON-OFFICIAL TEST RELEASE. + + src/simplex/spxprim.c + Improvements were made in the internal routine choose_pivot to + prevent choosing a too small pivot in the primal simplex. + + src/simplex/spydual.c + Improvements were made in the internal routine choose_pivot to + prevent choosing a too small pivot in the dual simplex. + + src/simplex/spychuzc.c + The internal routine spy_eval_bp was added to determine break- + points of the dual objective function. + + src/simplex/spydual.c + An experimental feature (long-step ratio test) was included in + the dual simplex. + + src/glpk.h, src/glpapi06.c + The GLP_RT_FLIP option (long-step ratio test) was added to + the simplex solver. Currently it affects only the dual simplex. + For the primal simplex it is equivalent to GLP_RT_HAR. + + src/examples/glpsol.c + The '--flip' command-line option was added to glpsol (long-step + dual ratio test). + + src/proxy/proxy1.c + Additional check was added to reject wrong solutions somwtimes + reported by the PROXY heuristic. + + src/glpios10.c + A bug (memory leak) was fixed in the FPUMP heuristic routine. + Thanks to for bug report. + +Tue Mar 15 12:00:00 2016 Andrew Makhorin + + * GLPK 4.59.1 (40:1:0) has been released. + + NOTE: THIS IS A NON-OFFICIAL BUG-FIX RELEASE. + + * src/simplex/mpl6.c, src/simplex/sql.c, src/simplex/sql.h + The header sql.h was renamed to avoid conflicts with standard + ODBC headers. Thanks to Noli Sicad for bug + report. + + * src/simplex/spychuzc.c, src/simplex/spychuzc.h + Minor changes were made. + +Fri Mar 11 12:00:00 2016 Andrew Makhorin + + * GLPK 4.59 (40:0:0) has been released. + + * src/sgf.c, src/sgf.h + The routines sgf_reduce_nuc and sgf_factorize were changed to + correctly report structural singularity. + + * src/glpios01.c + The routine ios_solve_node was changed to retry solving node + problem in case of the simplex solver failure. Thanks to Chris + Matrakidis for patch. + + * src/glpios03.c + The routine ios_driver was changed to correctly process the + root node. Thanks to Chris Matrakidis for + patch. + + * src/glpios06.c + Some improvements were made in the MIR cut generation routines. + Thanks to Chris Matrakidis for patch. + + The following source modules were splitted/renamed to simplify + maintenance. + * src/glpios04.c RENAMED -> src/spv.c + * src/glpios05.c glp_gmi_cut (new) -> src/cglib/gmicut.c + * src/glpios05.c glp_gmi_gen (new) -> src/cglib/gmigen.c + * src/glpios05.c REMOVED + * src/glpios06.c glp_mir_init (new) -> src/cglib/mirgen.c + * src/glpios06.c glp_mir_gen (new) -> src/cglib/mirgen.c + * src/glpios06.c glp_mir_free (new) -> src/cglib/mirgen.c + * src/glpios06.c REMOVED + * src/glpios08.c glp_cfg_init (new) -> src/cglib/cfg2.c + * src/glpios08.c glp_cfg_free (new) -> src/cglib/cfg2.c + * src/glpios08.c glp_clq_cut (new) -> src/cglib/clqcut.c + * src/glpios08.c REMOVED + * src/glpmpl.h RENAMED -> src/mpl/mpl.h + * src/glpmpl01.c RENAMED -> src/mpl/mpl1.c + * src/glpmpl02.c RENAMED -> src/mpl/mpl2.c + * src/glpmpl03.c RENAMED -> src/mpl/mpl3.c + * src/glpmpl04.c RENAMED -> src/mpl/mpl4.c + * src/glpmpl05.c RENAMED -> src/mpl/mpl5.c + * src/glpmpl06.c RENAMED -> src/mpl/mpl6.c + * src/glpsql.h RENAMED -> src/mpl/sql.h + * src/glpsql.c RENAMED -> src/mpl/sql.c + + * src/proxy/proxy.c + Minor bug was fixed in the PROXY heuristic routine. Thanks to + Chris Matrakidis for bug report. + + * src/cglib/gmicut.c, src/glpk.h + New API routine glp_gmi_cut was added (not documented yet). + + * src/cglib/gmigen.c, src/glpk.h + New API routine glp_gmi_gen was added (not documented yet). + + * src/cglib/mirgen.c, src/glpk.h + New API routines glp_mir_init, glp_mir_gen, and glp_mir_free + were added (not documented yet). + + * src/cglib/cfg2.c, src/glpk.h + New API routines glp_cfg_init and glp_cfg_free were added (not + documented yet). + + * src/cglib/clqcut.c, src/glpk.h + New API routine glp_clq_cut was added (not documented yet). + + * src/api/rdcc.c, src/api/wrcc.c + API routines glp_read_graph and glp_write_graph were changed + due to changes in the data format. For details see the document + "GLPK: Graph and Network Routines". + + * src/api/rdgr.c, src/api/wrgr.c, src/glpsdf.c, src/glpsdf.h + Old versions of API routines glp_read_graph and glp_write_graph + were removed. + + * doc/gmpl_pt-BR.tex, doc/gmpl_pt-BR.pdf + Translation of the document "Modeling Language GNU MathProg" + to Brazilian Portuguese (pt-BR) was included (in LaTeX and pdf + formats). Thanks to Joao Flavio de Freitas Almeida + for contribution. + +Thu Feb 18 12:00:00 2016 Andrew Makhorin + + * GLPK 4.58 (39:0:0) has been released. + + * src/misc/dimacs.c, src/misc/dimacs.h + Routines to read data files in DIMACS format were implemented + as a separate module. + + The following source modules were splitted/renamed to simplify + maintenance. + * src/glpapi11.c glp_print_sol -> src/api/prsol.c + * src/glpapi11.c glp_read_sol -> src/api/rdsol.c + * src/glpapi11.c glp_write_sol -> src/api/wrsol.c + * src/glpapi11.c glp_print_ipt -> src/api/pript.c + * src/glpapi11.c glp_read_ipt -> src/api/rdipt.c + * src/glpapi11.c glp_write_ipt -> src/api/wript.c + * src/glpapi11.c glp_print_mip -> src/api/prmip.c + * src/glpapi11.c glp_read_mip -> src/api/rdmip.c + * src/glpapi11.c glp_write_mip -> src/api/wrmip.c + * src/glpapi11.c glp_print_ranges -> src/api/prrngs.c + * src/glpapi11.c REMOVED + * src/glpapi14.c RENAMED -> src/api/mpl.c + * src/glpapi15.c glp_read_graph -> src/api/rdgr.c + * src/glpapi15.c glp_write_graph -> src/api/wrgr.c + * src/glpapi15.c REMOVED + * src/glpapi16.c glp_weak_comp -> src/api/weak.c + * src/glpapi16.c glp_strong_comp -> src/api/strong.c + * src/glpapi16.c glp_top_sort -> src/api/topsort.c + * src/glpapi16.c REMOVED + * src/glpapi17.c glp_mincost_lp -> src/api/mcflp.c + * src/glpapi17.c glp_mincost_okalg -> src/api/mcfokalg.c + * src/glpapi17.c glp_mincost_relax4 -> src/api/mcfrelax.c + * src/glpapi17.c glp_maxflow_lp -> src/api/maxflp.c + * src/glpapi17.c glp_maxflow_ffalg -> src/api/maxffalg.c + * src/glpapi17.c glp_check_asnprob -> src/api/ckasn.c + * src/glpapi17.c glp_asnprob_lp -> src/api/asnlp.c + * src/glpapi17.c glp_asnprob_okalg -> src/api/asnokalg.c + * src/glpapi17.c glp_asnprob_hall -> src/api/asnhall.c + * src/glpapi17.c glp_cpp -> src/api/cpp.c + * src/glpapi17.c REMOVED + * src/glpapi18.c glp_wclique_exact -> src/api/wcliqex.c + * src/glpapi18.c REMOVED + * src/glpapi19.c RENAMED -> src/api/minisat1.c + * src/glpapi20.c RENAMED -> src/api/intfeas1.c + * src/glpapi21.c RENAMED -> examples/glpsol.c + * src/glpcpx.c RENAMED -> src/api/cplex.c + * src/glpdmx.c glp_read_mincost -> src/api/rdmcf.c + * src/glpdmx.c glp_write_mincost -> src/api/wrmcf.c + * src/glpdmx.c glp_read_maxflow -> src/api/rdmaxf.c + * src/glpdmx.c glp_write_maxflow -> src/api/wrmaxf.c + * src/glpdmx.c glp_read_asnprob -> src/api/rdasn.c + * src/glpdmx.c glp_write_asnprob -> src/api/wrasn.c + * src/glpdmx.c glp_read_ccdata -> src/api/rdcc.c + * src/glpdmx.c glp_write_ccdata -> src/api/wrcc.c + * src/glpdmx.c glp_read_prob -> src/api/rdprob.c + * src/glpdmx.c glp_write_prob -> src/api/wrprob.c + * src/glpdmx.c glp_read_cnfsat -> src/api/rdcnf.c + * src/glpdmx.c glp_write_cnfsat -> src/api/wrcnf.c + * src/glpdmx.c glp_check_cnfsat -> src/api/ckcnf.c + * src/glpdmx.c REMOVED + * src/glpgmp.c RENAMED -> src/misc/mygmp.c + * src/glpini01.c RENAMED -> src/api/advbas.c + * src/glpini02.c RENAMED -> src/api/cpxbas.c + * src/glpmps.c RENAMED -> src/api/mps.c + * src/glpnet03.c RENAMED -> src/api/netgen.c + * src/glpnet04.c RENAMED -> src/api/gridgen.c + * src/glpnet05.c RENAMED -> src/api/rmfgen.c + + The following source modules were changed due to changes in the + data formats: + * src/api/rdsol.c + * src/api/wrsol.c + * src/api/rdipt.c + * src/api/wript.c + * src/api/rdmip.c + * src/api/wrmip.c + + * src/glpk.h + New API routines were added: glp_mpl_init_rand (not documented + yet), glp_time, glp_difftime. The API routine glp_main (glpsol + main routine) was removed. + + * src/glpmpl.h, src/glpmpl01.c, src/glpmpl03.c + The function tan (trigonometric tangent) was added to MathProg. + Thanks to Chris Matrakidis for patch. + + * src/simplex/spydual.c + A minor typo in dual simplex (GLP_EITLIM instead of GLP_ETMLIM) + was fixed. Thanks to Chris Matrakidis for + patch. + + * src/glpapi09.c, src/glpios01.c, src/glpios03.c + A time limit problem was fixed. Thanks to Chris Matrakidis + for patch. + + * doc/gmpl_es.tex, doc/gmpl_es.pdf + A new version of the document "Modeling Language GNU MathProg" + in Spanish was included (in LaTeX and pdf formats). Thanks to + Pablo Yapura for contribution. + + * configure.ac + A check to determine if libtool needs '-no-undefined' flag to + build shared libraries on some platforms was added. + Thanks to Marco Atzeri and Heinrich + Schuchardt for suggestion. + + * autogen.sh + A script to regenerate the configure script and the Makefiles + was added. Thanks to Heinrich Schuchardt . + + * w32/glpk.def, w64/glpk.def + 'glp_at_error' symbol was added to the export list. Thanks to + Heinrich Schuchardt for bug report. + Sun Nov 08 12:00:00 2015 Andrew Makhorin * GLPK 4.57 (38:0:2) has been released. diff --git a/resources/3rdparty/glpk-4.57/INSTALL b/resources/3rdparty/glpk-4.65/INSTALL similarity index 93% rename from resources/3rdparty/glpk-4.57/INSTALL rename to resources/3rdparty/glpk-4.65/INSTALL index 749f33d0a..cf76b2e78 100644 --- a/resources/3rdparty/glpk-4.57/INSTALL +++ b/resources/3rdparty/glpk-4.65/INSTALL @@ -74,17 +74,6 @@ option should be passed to the configure script. For details about the GNU MP bignum library see its web page at . ---with-zlib Enable using the zlib data compression library - - This feature allows GLPK API routines and the stand-alone solver to - read and write compressed data files performing compression and - decompression "on the fly" (compressed data files are recognized by - suffix `.gz' in the file name). It may be useful in case of large - MPS files to save the disk space. - - For details about the zlib compression library see its web page at - . - --enable-dl The same as --enable-dl=ltdl --enable-dl=ltdl Enable shared library support (GNU) --enable-dl=dlfcn Enable shared library support (POSIX) diff --git a/resources/3rdparty/glpk-4.57/Makefile.am b/resources/3rdparty/glpk-4.65/Makefile.am similarity index 100% rename from resources/3rdparty/glpk-4.57/Makefile.am rename to resources/3rdparty/glpk-4.65/Makefile.am diff --git a/resources/3rdparty/glpk-4.57/Makefile.in b/resources/3rdparty/glpk-4.65/Makefile.in similarity index 99% rename from resources/3rdparty/glpk-4.57/Makefile.in rename to resources/3rdparty/glpk-4.65/Makefile.in index 5ae9553c6..7af088a5f 100644 --- a/resources/3rdparty/glpk-4.57/Makefile.in +++ b/resources/3rdparty/glpk-4.65/Makefile.in @@ -175,6 +175,7 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ +NOUNDEFINED = @NOUNDEFINED@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ diff --git a/resources/3rdparty/glpk-4.57/NEWS b/resources/3rdparty/glpk-4.65/NEWS similarity index 90% rename from resources/3rdparty/glpk-4.57/NEWS rename to resources/3rdparty/glpk-4.65/NEWS index 608086d1b..fdef77233 100644 --- a/resources/3rdparty/glpk-4.57/NEWS +++ b/resources/3rdparty/glpk-4.65/NEWS @@ -1,3 +1,191 @@ +GLPK 4.65 (release date: Feb 16, 2018) + + The following new API routines for LP/MIP preprocessing were + added: + + glp_npp_alloc_wksp allocate the preprocessor workspace + glp_npp_load_prob load original problem instance + glp_npp_preprocess1 perform basic LP/MIP preprocessing + glp_npp_build_prob build resultant problem instance + glp_npp_postprocess postprocess solution to resultant problem + glp_npp_obtain_sol obtain solution to original problem + glp_npp_free_wksp free the preprocessor workspace + + See doc/npp.txt for detailed description of these API routines. + + A new, more robust implementation of locally valid simple cover + cuts was included in the MIP solver. + + The API routine glp_init_iocp was changed to enable long-step + option of the dual simplex by default. + +GLPK 4.64 (release date: Dec 02, 2017) + + The dual simplex solver routine was changed to perform more + aggressive perturbation to prevent dual degeneracy and avoid + stalling even if the current dual basic solution is strongly + feasible (mainly if the objective is zero). Thanks to David + Monniaux for bug report + and example model. + + The exact simplex solver routine was changed to perform + terminal output according to the verbosity level (specified by + the control parameter smcp.msg_lev). Thanks to Jeroen Demeyer + for bug report. + + A minor bug (related to MS Windows version) was fixed. Thanks + to Heinrich Schuchardt for bug report. + + An example model (Graceful Tree Labeling Problem) in MathProg + was added. Thanks to Mike Appleby for + contribution. + + Three example models (Power plant LP scheduler, Neumann CA + grid emulator generator) in MathProg and one in Cplex LP format + were added. Thanks to Peter Naszvadi for + contribution. + +GLPK 4.63 (release date: Jul 25, 2017) + + A "smart" LP perturbation was implemented in the primal and + dual simplex solvers. Now LP is perturbed only if it is + necessary, and by default perturbation is not activated. + The sum of primal infeasibilites that appears in the terminal + output of the primal simplex solver (as "inf = ...") now + corresponds to the original bounds of variables. This allows to + see how much perturbed solution violates the original bounds. + + The long-step technique was implemented for phase I of the + primal simplex solver. This feature can be enabled by + specifying --flip option for glpsol or by specifying + glp_smcp.r_test = GLP_RT_FLIP on api level. For many LP + instances the long-step technique allows reducing the number + of simplex iterations to 30-70%. Please note that unlike the + dual simplex, where this technique can be used on both phase I + and II, for the primal simplex it can be used only on phase I, + where the sum of primal infeasibilities (which is a convex + piecewise linear function) is minimized. + + An internal objective scaling was included in both primal and + dual simplex solvers. For many LP/MIP instances this feature + improves numerical stability (for the dual solver) and prevents + cycling near the optimum (for the primal solver). + + The Posix version of glp_time (glpk/src/env/time.c) was changed + to resolve time_t issue on msys2. Thanks to Rob Schroeder + for bug report. + + Three new example models in MathProg were added: + life_goe.mod (Conway's Game of Life garden of eden checker); + tiling.mod (Rectifiable polyomino tilings generator); + toto.mod (Covering code generator). + Thanks to Peter Naszvadi for contribution. + +GLPK 4.62 (release date: Jun 14, 2017) + + The bound perturbation technique was included in the primal + simplex solver to improve numerical stability and avoid cycling. + Currently this feature is enabled by default. + + A range bug was fixed in the MPS reading routine. Thanks to + Chris Matrakidis for bug report and patch. + + Changes were made to provide 64-bit portability of the Minisat + solver. Thanks to Chris Matrakidis for + patch. + + Calls to non-thread-safe functions gmtime, strerror, and strtok + were replaced by calls to corresponding thread-safe equivalents + (gmtime_r, strerror_r, and strtok_r for GNU/Linux). + +GLPK 4.61 (release date: Jan 22, 2017) + + An option was added to build a re-entrant version of the + package suitable for running in a multi-threaded environment. + This option is enabled by default on configuring the package + if the compiler used supports the thread local storage class + specifier (e.g. _Thread_local or __thread). Thanks to + David Monniaux for suggestion and + Chris Matrakidis for configure.ac patch. + + A re-entrant version of the package allows running multiple + independent instances of glpk in different threads of a multi- + threaded application. Note that glpk is not thread-safe by + design, so if the application calls glpk routines from multiple + threads, no thread may access glpk program objects (glp_prob, + glp_tree, etc.) created by other threads; besides, each thread + before termination should call the API routine glp_free_env to + prevent memory leak. + + A DLL support was added. Thanks to Heinrich Schuchardt + for contribution. + + Some changes were made to allow compiling the package using + stdcall calling convention (this is needed only on compiling + GLPK with MSVC to run under MS Windows). + +GLPK 4.60 (release date: Apr 01, 2016) + + Some improvements were made in the primal and dual simplex + solvers to make the solution process more numerically stable. + + An experimental long-step ratio test feature was added to the + dual simplex. On API level this feature is available thru the + GLP_RT_FLIP option. For glpsol it is available thru the options + --flip (for MIP) or --flip and --dual (for LP). This feature is + not documented yet. + + Additional check was added to reject wrong solutions sometimes + reported by the PROXY heuristic. + + A bug (memory leak) was fixed in the FPUMP heuristic routine. + Thanks to for bug report. + + The header sql.h was renamed to avoid conflicts with standard + ODBC headers. Thanks to Noli Sicad for bug + report. + +GLPK 4.59 (release date: Mar 11, 2016) + + This is a maintainer release. + + Some bugs were fixed and some improvements were made in the MIP + solver. Thanks to Chris Matrakidis for bug + reports and patches. + + The data file format used by API routines glp_read_graph and + glp_write_graph was changed. For more details please see the + document "GLPK: Graph and Network Routines" included in the + distribution. + + Translation of the document "Modeling Language GNU MathProg" + to Brazilian Portuguese (pt-BR) was included (in LaTeX and pdf + formats). Thanks to Joao Flavio de Freitas Almeida + for contribution. + +GLPK 4.58 (release date: Feb 18, 2016) + + The solution file format used by API routines glp_read_sol, + glp_write_sol, glp_read_ipt, glp_write_ipt, glp_read_mip, and + glp_write_mip was changed. For more details please see the GLPK + reference manual included in the distribution. + + The tan function (trigonometric tangent) was added to + GNU MathProg modeling language. Thanks to Chris Matrakidis + for contribution. + + A new version of the document "Modeling Language GNU MathProg" + in Spanish was included (in LaTeX and pdf formats). Thanks to + Pablo Yapura for contribution. + + A check to determine if libtool needs '-no-undefined' flag to + build shared libraries on some platforms was added. + Thanks to Marco Atzeri and Heinrich + Schuchardt for suggestion. + + A script to regenerate the configure script and the Makefiles + was added. Thanks to Heinrich Schuchardt . + GLPK 4.57 (release date: Nov 08, 2015) A new, more efficient implementation of the dual simplex method diff --git a/resources/3rdparty/glpk-4.57/README b/resources/3rdparty/glpk-4.65/README similarity index 68% rename from resources/3rdparty/glpk-4.57/README rename to resources/3rdparty/glpk-4.65/README index 23550ef14..7d71d65bf 100644 --- a/resources/3rdparty/glpk-4.57/README +++ b/resources/3rdparty/glpk-4.65/README @@ -1,11 +1,11 @@ Olga K. gewidmet -GLPK (GNU Linear Programming Kit) Version 4.57 +GLPK (GNU Linear Programming Kit) Version 4.65 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -2009, 2010, 2011, 2013, 2014, 2015 Andrew Makhorin, Department for -Applied Informatics, Moscow Aviation Institute, Moscow, Russia. All -rights reserved. E-mail: . +2009, 2010, 2011, 2013, 2014, 2015, 2016, 2017, 2018 Andrew Makhorin, +Department for Applied Informatics, Moscow Aviation Institute, Moscow, +Russia. All rights reserved. E-mail: . GLPK is part of the GNU Project released under the aegis of GNU. @@ -25,14 +25,14 @@ large-scale linear programming (LP), mixed integer linear programming The GLPK package includes the following main components: -* implementation of the simplex method; -* implementation of the exact simplex method based on bignum (rational) - arithmetic; -* implementation of the primal-dual interior-point method; -* implementation of the branch-and-cut method; +* primal simplex method; +* dual simplex method; +* exact simplex method based on rational arithmetic; +* primal-dual interior-point method; +* branch-and-cut method; * application program interface (API); * GNU MathProg modeling language (a subset of AMPL); -* GLPSOL, a stand-alone LP/MIP solver. +* GLPSOL (stand-alone LP/MIP solver). See GLPK webpage . diff --git a/resources/3rdparty/glpk-4.57/THANKS b/resources/3rdparty/glpk-4.65/THANKS similarity index 88% rename from resources/3rdparty/glpk-4.57/THANKS rename to resources/3rdparty/glpk-4.65/THANKS index fc6fd047d..87af37b07 100644 --- a/resources/3rdparty/glpk-4.57/THANKS +++ b/resources/3rdparty/glpk-4.65/THANKS @@ -15,6 +15,8 @@ Anton Voropaev for bug and typo report. Axel Simon for bug report. +Balaco Baco for bug report. + Bernhard Schmidt for bug report. Boris Wirtz for bug report. @@ -35,13 +37,21 @@ Cedric[FR] for bug report. Charles Brixko for bug report. -Chris Matrakidis for suggestion. +Chris Matrakidis for contribution of a patch that +implements the tan function in MathProg. + +Chris Matrakidis for numerous useful suggestions, +contributions, and patches. Chris Rosebrugh for contribution of a new version of GLPK JNI (Java Native Interface). Christophe Caron for bug report. +David Monniaux for some suggestions. + +David Monniaux for bug report. + David T. Price for bug report. Dennis Schridde for bug report. @@ -90,8 +100,14 @@ language reference. Jeroen Demeyer for suggestion. +Jeroen Demeyer for bug report. + Jiri Spitz for bug report. +Joao Flavio de Freitas Almeida for +translation of the document "Modeling Language GNU MathProg" to +Brazilian Portuguese (pt-BR). + Joey Rios for some suggestions. Jonathan Senning for bug report. @@ -119,6 +135,8 @@ Markus Pilz for bug report. Martin Jacob for bug report. +Mike Appleby for example model in MathProg. + Minh Ha Duong for fixing doc typos. Morten Welinder for bug report. @@ -152,7 +170,7 @@ Olivier for bug report. Oscar Gustafsson for contribution of a routine to write data in OPB (pseudo boolean) format. -Pablo Yapura for translation the document +Pablo Yapura for translation of the document "Modeling Language GNU MathProg" to Spanish. Pedro P. Wong for bug report. @@ -165,6 +183,8 @@ Peter Ingerfeld for bug report. Peter Lee for example LP model and bug report. +Peter Naszvadi for example models in MathProg. + Pietro Scionti for report typos found in the reference manual. @@ -175,6 +195,8 @@ Raniere Gaia Costa da Silva for bug report. Remy Roy for bug report. +Rob Schroeder for bug report. + Robbie Morrison for correcting the glpk manual. Robert Wood for example model in MathProg. diff --git a/resources/3rdparty/glpk-4.57/aclocal.m4 b/resources/3rdparty/glpk-4.65/aclocal.m4 similarity index 100% rename from resources/3rdparty/glpk-4.57/aclocal.m4 rename to resources/3rdparty/glpk-4.65/aclocal.m4 diff --git a/resources/3rdparty/glpk-4.65/autogen.sh b/resources/3rdparty/glpk-4.65/autogen.sh new file mode 100755 index 000000000..4dd02fbc1 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/autogen.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +######################################################################## +# Run this script on the top level of GLPK directory to regenerate the +# configure script and the Makefiles from templates. +# +# NOTE: You need to have GNU autotools installed. +######################################################################## + +set -e + +test -f configure.ac || { + echo "You should run this script on the top level of GLPK directory." + exit +} + +echo "Executing libtoolize..." +libtoolize -c -f +echo "Executing aclocal..." +aclocal -I m4 +echo "Executing autoconf..." +autoconf +echo "Executing automake..." +automake -c -a +echo "Done." + +echo "See file INSTALL for installation instructions." diff --git a/resources/3rdparty/glpk-4.57/config.guess b/resources/3rdparty/glpk-4.65/config.guess similarity index 100% rename from resources/3rdparty/glpk-4.57/config.guess rename to resources/3rdparty/glpk-4.65/config.guess diff --git a/resources/3rdparty/glpk-4.57/config.h.in b/resources/3rdparty/glpk-4.65/config.h.in similarity index 89% rename from resources/3rdparty/glpk-4.57/config.h.in rename to resources/3rdparty/glpk-4.65/config.h.in index 2849bf9c4..794e00c5d 100644 --- a/resources/3rdparty/glpk-4.57/config.h.in +++ b/resources/3rdparty/glpk-4.65/config.h.in @@ -24,4 +24,7 @@ #undef MYSQL_DLNAME /* MySQL shared library name if this feature is enabled */ +#undef TLS +/* thread local storage-class specifier for re-entrancy (if any) */ + /* eof */ diff --git a/resources/3rdparty/glpk-4.57/config.sub b/resources/3rdparty/glpk-4.65/config.sub similarity index 100% rename from resources/3rdparty/glpk-4.57/config.sub rename to resources/3rdparty/glpk-4.65/config.sub diff --git a/resources/3rdparty/glpk-4.57/configure b/resources/3rdparty/glpk-4.65/configure similarity index 99% rename from resources/3rdparty/glpk-4.57/configure rename to resources/3rdparty/glpk-4.65/configure index b6b02927c..c238f864f 100755 --- a/resources/3rdparty/glpk-4.57/configure +++ b/resources/3rdparty/glpk-4.65/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for GLPK 4.57. +# Generated by GNU Autoconf 2.69 for GLPK 4.65. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='GLPK' PACKAGE_TARNAME='glpk' -PACKAGE_VERSION='4.57' -PACKAGE_STRING='GLPK 4.57' +PACKAGE_VERSION='4.65' +PACKAGE_STRING='GLPK 4.65' PACKAGE_BUGREPORT='bug-glpk@gnu.org' PACKAGE_URL='' @@ -636,6 +636,7 @@ ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS +NOUNDEFINED CPP OTOOL64 OTOOL @@ -751,6 +752,7 @@ with_gmp enable_dl enable_odbc enable_mysql +enable_reentrant enable_dependency_tracking enable_shared enable_static @@ -1309,7 +1311,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GLPK 4.57 to adapt to many kinds of systems. +\`configure' configures GLPK 4.65 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1379,7 +1381,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GLPK 4.57:";; + short | recursive ) echo "Configuration of GLPK 4.65:";; esac cat <<\_ACEOF @@ -1390,6 +1392,7 @@ Optional Features: --enable-dl enable shared library support [[default=no]] --enable-odbc enable MathProg ODBC support [[default=no]] --enable-mysql enable MathProg MySQL support [[default=no]] + --enable-reentrant enable reentrancy support [[default=yes]] --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking @@ -1486,7 +1489,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GLPK configure 4.57 +GLPK configure 4.65 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1855,7 +1858,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GLPK $as_me 4.57, which was +It was created by GLPK $as_me 4.65, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2684,7 +2687,7 @@ fi # Define the identity of the package. PACKAGE='glpk' - VERSION='4.57' + VERSION='4.65' cat >>confdefs.h <<_ACEOF @@ -2779,6 +2782,17 @@ else fi +# Check whether --enable-reentrant was given. +if test "${enable_reentrant+set}" = set; then : + enableval=$enable_reentrant; case $enableval in + yes | no) ;; + *) as_fn_error $? "invalid value \`$enableval' for --enable-reentrant" "$LINENO" 5;; + esac +else + enable_reentrant=yes +fi + + @@ -11470,6 +11484,63 @@ else $as_echo "no" >&6; } fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable reentrancy support" >&5 +$as_echo_n "checking whether to enable reentrancy support... " >&6; } +if test "$enable_reentrant" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread local storage (TLS) class specifier" >&5 +$as_echo_n "checking for thread local storage (TLS) class specifier... " >&6; } + keywords="_Thread_local __thread __declspec(thread)" + tls=none + for tls_keyword in $keywords; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + static void foo(void) + { static $tls_keyword int bar; + exit(1); + } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + tls=$tls_keyword; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tls" >&5 +$as_echo "$tls" >&6; } + if test "$tls" != "none"; then + +cat >>confdefs.h <<_ACEOF +#define TLS $tls +_ACEOF + + else + as_fn_error $? "Reentrancy needs complier support for TLS" "$LINENO" 5 + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool needs -no-undefined flag to build shared libraries" >&5 +$as_echo_n "checking if libtool needs -no-undefined flag to build shared libraries... " >&6; } +case "${host}" in + *-*-cygwin* | *-*-mingw* | *-*-aix*) + ## Add in the -no-undefined flag to LDFLAGS for libtool. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + NOUNDEFINED=" -no-undefined" + ;; + *) + ## Don't add in anything. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; +esac + + ac_config_files="$ac_config_files src/Makefile examples/Makefile Makefile" cat >confcache <<\_ACEOF @@ -12002,7 +12073,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GLPK $as_me 4.57, which was +This file was extended by GLPK $as_me 4.65, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -12068,7 +12139,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -GLPK config.status 4.57 +GLPK config.status 4.65 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/resources/3rdparty/glpk-4.57/configure.ac b/resources/3rdparty/glpk-4.65/configure.ac similarity index 72% rename from resources/3rdparty/glpk-4.57/configure.ac rename to resources/3rdparty/glpk-4.65/configure.ac index e0e06cf49..96c4cc547 100644 --- a/resources/3rdparty/glpk-4.57/configure.ac +++ b/resources/3rdparty/glpk-4.65/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script -AC_INIT([GLPK], [4.57], [bug-glpk@gnu.org]) +AC_INIT([GLPK], [4.65], [bug-glpk@gnu.org]) AC_CONFIG_SRCDIR([src/glpk.h]) @@ -46,6 +46,16 @@ AC_HELP_STRING([--enable-mysql], esac], [enable_mysql=no]) +AC_ARG_ENABLE(reentrant, +AC_HELP_STRING([--enable-reentrant], + [enable reentrancy support [[default=yes]]]), + [case $enableval in + yes | no) ;; + *) AC_MSG_ERROR( + [invalid value `$enableval' for --enable-reentrant]);; + esac], + [enable_reentrant=yes]) + dnl Disable unnecessary libtool tests define([AC_LIBTOOL_LANG_CXX_CONFIG], [:]) define([AC_LIBTOOL_LANG_F77_CONFIG], [:]) @@ -141,6 +151,45 @@ else AC_MSG_RESULT([no]) fi +AC_MSG_CHECKING([whether to enable reentrancy support]) +if test "$enable_reentrant" = "yes"; then + AC_MSG_RESULT([yes]) + AC_MSG_CHECKING([for thread local storage (TLS) class specifier]) + keywords="_Thread_local __thread __declspec(thread)" + tls=none + for tls_keyword in $keywords; do + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + #include + static void foo(void) + { static ] $tls_keyword [ int bar; + exit(1); + }])], [tls=$tls_keyword; break], []) + done + AC_MSG_RESULT($tls) + if test "$tls" != "none"; then + AC_DEFINE_UNQUOTED([TLS], $tls, [N/A]) + else + AC_MSG_ERROR([Reentrancy needs complier support for TLS]) + fi +else + AC_MSG_RESULT([no]) +fi + +AC_MSG_CHECKING( + [if libtool needs -no-undefined flag to build shared libraries]) +case "${host}" in + *-*-cygwin* | *-*-mingw* | *-*-aix*) + ## Add in the -no-undefined flag to LDFLAGS for libtool. + AC_MSG_RESULT([yes]) + NOUNDEFINED=" -no-undefined" + ;; + *) + ## Don't add in anything. + AC_MSG_RESULT([no]) + ;; +esac +AC_SUBST([NOUNDEFINED]) + AC_CONFIG_FILES( [src/Makefile examples/Makefile Makefile]) AC_OUTPUT diff --git a/resources/3rdparty/glpk-4.57/depcomp b/resources/3rdparty/glpk-4.65/depcomp similarity index 100% rename from resources/3rdparty/glpk-4.57/depcomp rename to resources/3rdparty/glpk-4.65/depcomp diff --git a/resources/3rdparty/glpk-4.57/doc/cnfsat.pdf b/resources/3rdparty/glpk-4.65/doc/cnfsat.pdf similarity index 100% rename from resources/3rdparty/glpk-4.57/doc/cnfsat.pdf rename to resources/3rdparty/glpk-4.65/doc/cnfsat.pdf diff --git a/resources/3rdparty/glpk-4.57/doc/cnfsat.tex b/resources/3rdparty/glpk-4.65/doc/cnfsat.tex similarity index 100% rename from resources/3rdparty/glpk-4.57/doc/cnfsat.tex rename to resources/3rdparty/glpk-4.65/doc/cnfsat.tex diff --git a/resources/3rdparty/glpk-4.65/doc/glpk.pdf b/resources/3rdparty/glpk-4.65/doc/glpk.pdf new file mode 100644 index 0000000000000000000000000000000000000000..34edcb198edaecfc432a7ae61bcc18472c642625 GIT binary patch literal 493688 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

_s+#cd^xlD(axiz>pCs&jVV*6#Y7t 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

f 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 B~?<-=F) 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

q!lCQ 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

i$?Ap<~7NC6>8?))T1I=qs7FMz-Px(aL{gtF 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 z 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

obs2IorRTC$^?VoGMS>e`O(%ag8c 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 z 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. +% 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2017 Andrew Makhorin, +% Department for Applied Informatics, Moscow Aviation Institute, +% Moscow, Russia. All rights reserved. E-mail: . % % GLPK is free software: you can redistribute it and/or modify it % under the terms of the GNU General Public License as published by @@ -22,30 +22,38 @@ % along with GLPK. If not, see . %*********************************************************************** +% To produce glpk.pdf from glpk.tex run the following two commands: +% latex glpk.tex +% dvipdfm -p letter glpk.dvi +% Note: You need TeX Live 2010 or later version. + \documentclass[11pt]{report} \usepackage{amssymb} \usepackage[dvipdfm,linktocpage,colorlinks,linkcolor=blue, urlcolor=blue]{hyperref} \usepackage{indentfirst} \usepackage{lscape} +\usepackage{niceframe} \usepackage[all]{xy} +% US Letter = 8.5 x 11 in \setlength{\textwidth}{6.5in} -\setlength{\textheight}{8.5in} +\setlength{\textheight}{9in} \setlength{\oddsidemargin}{0in} \setlength{\topmargin}{0in} \setlength{\headheight}{0in} \setlength{\headsep}{0in} -\setlength{\footskip}{0.5in} +%\setlength{\footskip}{0.5in} \setlength{\parindent}{16pt} \setlength{\parskip}{5pt} \setlength{\topsep}{0pt} \setlength{\partopsep}{0pt} -\setlength{\itemsep}{\parskip} -\setlength{\parsep}{0pt} -\setlength{\leftmargini}{\parindent} -\renewcommand{\labelitemi}{---} +%\setlength{\itemsep}{\parskip} +%\setlength{\parsep}{0pt} +%\setlength{\leftmargini}{\parindent} +%\renewcommand{\labelitemi}{---} +\newcommand{\Item}[1]{\parbox[t]{\parindent}{#1}} \def\para#1{\noindent{\bf#1}} \def\synopsis{\para{Synopsis}} \def\description{\para{Description}} @@ -67,6 +75,8 @@ urlcolor=blue]{hyperref} \thispagestyle{empty} +\artdecoframe{ + \begin{center} \vspace*{1.5in} @@ -84,15 +94,18 @@ urlcolor=blue]{hyperref} \vspace{0.5in} \begin{LARGE} -\sf for GLPK Version 4.57 +\sf for GLPK Version 4.64 \end{LARGE} \vspace{0.5in} \begin{Large} -\sf (DRAFT, November 2015) +\sf (DRAFT, November 2017) \end{Large} \end{center} +\vspace*{3.8in} +} + \newpage \vspace*{1in} @@ -105,9 +118,9 @@ GNU. \noindent Copyright \copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, -2008, 2009, 2010, 2011, 2013, 2014, 2015 Andrew Makhorin, Department -for Applied Informatics, Moscow Aviation Institute, Moscow, Russia. All -rights reserved. +2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2017 Andrew Makhorin, +Department for Applied Informatics, Moscow Aviation Institute, Moscow, +Russia. All rights reserved. \noindent Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA @@ -133,9 +146,7 @@ versions. \newpage -{\setlength{\parskip}{0pt} -\tableofcontents -} +{\setlength{\parskip}{0pt}\tableofcontents} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/resources/3rdparty/glpk-4.57/doc/glpk01.tex b/resources/3rdparty/glpk-4.65/doc/glpk01.tex similarity index 96% rename from resources/3rdparty/glpk-4.57/doc/glpk01.tex rename to resources/3rdparty/glpk-4.65/doc/glpk01.tex index 29ed67cce..3ffc587e6 100644 --- a/resources/3rdparty/glpk-4.57/doc/glpk01.tex +++ b/resources/3rdparty/glpk-4.65/doc/glpk01.tex @@ -11,10 +11,10 @@ intended for solving linear programming (LP), mixed integer programming \section{LP problem} \label{seclp} -GLPK assumes the following formulation of {\it linear programming (LP)} -problem: +GLPK assumes the following formulation of the {\it linear programming +(LP)} problem: -\medskip\noindent +\noindent \hspace{.5in} minimize (or maximize) $$z = c_1x_{m+1} + c_2x_{m+2} + \dots + c_nx_{m+n} + c_0 \eqno (1.1)$$ \hspace{.5in} subject to linear constraints @@ -36,8 +36,6 @@ l_2&\leq&x_2&\leq&u_2 \\ l_{m+n}&\leq&x_{m+n}&\leq&u_{m+n} \\ \end{array} \eqno (1.3) $$ - -\medskip\noindent where: $x_1, x_2, \dots, x_m$ are auxiliary variables; $x_{m+1}, x_{m+2}, \dots, x_{m+n}$ are structural variables; $z$ is the objective function; @@ -76,16 +74,16 @@ structural as well as to auxiliary variables. To solve the LP problem (1.1)---(1.3) is to find such values of all structural and auxiliary variables, which: -\vspace*{-10pt} +%\vspace*{-10pt} -\begin{itemize}\setlength{\itemsep}{0pt} -\item satisfy to all the linear constraints (1.2), and +%\begin{itemize}\setlength{\itemsep}{0pt} +\Item{---}satisfy to all the linear constraints (1.2), and -\item are within their bounds (1.3), and +\Item{---}are within their bounds (1.3), and -\item provide smallest (in case of minimization) or largest (in case of -maximization) value of the objective function (1.1). -\end{itemize} +\Item{---}provide smallest (in case of minimization) or largest (in +case of maximization) value of the objective function (1.1). +%\end{itemize} \section{MIP problem} @@ -107,8 +105,6 @@ structural variables to be of integer kind.) In order to understand what GLPK is from the user's standpoint, consider the following simple LP problem: -\medskip - \noindent \hspace{.5in} maximize $$z = 10 x_1 + 6 x_2 + 4 x_3$$ @@ -128,8 +124,6 @@ At first, this LP problem should be transformed to the standard form variables, by one for each original inequality constraint. Thus, the problem can be reformulated as follows: -\medskip - \noindent \hspace{.5in} maximize $$z = 10 x_1 + 6 x_2 + 4 x_3$$ @@ -149,9 +143,6 @@ $$ \nonumber -\infty < r \leq 300 && 0 \leq x_3 < +\infty \\ \end{array} $$ - -\medskip - where $p, q, r$ are auxiliary variables (rows), and $x_1, x_2, x_3$ are structural variables (columns). @@ -268,6 +259,8 @@ optimal basic solution found by the solver. The statement \verb|s36| writes the optimal solution to the standard output. The printout may look like follows: +\newpage + \begin{footnotesize} \begin{verbatim} * 0: objval = 0.000000000e+00 infeas = 0.000000000e+00 (0) diff --git a/resources/3rdparty/glpk-4.57/doc/glpk02.tex b/resources/3rdparty/glpk-4.65/doc/glpk02.tex similarity index 95% rename from resources/3rdparty/glpk-4.57/doc/glpk02.tex rename to resources/3rdparty/glpk-4.65/doc/glpk02.tex index 3fa6ef7f7..f49ae75f0 100644 --- a/resources/3rdparty/glpk-4.57/doc/glpk02.tex +++ b/resources/3rdparty/glpk-4.65/doc/glpk02.tex @@ -87,17 +87,17 @@ structure directly and should deal only with pointers to these objects The problem object consists of the following segments: -\vspace*{-8pt} +%\vspace*{-8pt} -\begin{itemize}\setlength{\itemsep}{0pt} -\item problem segment, +%\begin{itemize}\setlength{\itemsep}{0pt} +\Item{---}problem segment, -\item basis segment, +\Item{---}basis segment, -\item interior-point segment, and +\Item{---}interior-point segment, and -\item MIP segment. -\end{itemize} +\Item{---}MIP segment. +%\end{itemize} \subsection{Problem segment} @@ -106,37 +106,37 @@ corresponds to the problem formulation (1.1)---(1.3) (see Section \ref{seclp}, page \pageref{seclp}). This segment includes the following components: -\vspace*{-8pt} +%\vspace*{-8pt} -\begin{itemize}\setlength{\itemsep}{0pt} -\item rows (auxiliary variables), +%\begin{itemize}\setlength{\itemsep}{0pt} +\Item{---}rows (auxiliary variables), -\item columns (structural variables), +\Item{---}columns (structural variables), -\item objective function, and +\Item{---}objective function, and -\item constraint matrix. -\end{itemize} +\Item{---}constraint matrix. +%\end{itemize} -\vspace*{-7pt} +%\vspace*{-7pt} Rows and columns have the same set of the following attributes: -\vspace*{-7pt} +%\vspace*{-7pt} -\begin{itemize}\setlength{\itemsep}{0pt} -\item ordinal number, +%\begin{itemize}\setlength{\itemsep}{0pt} +\Item{---}ordinal number, -\item symbolic name (1 up to 255 arbitrary graphic characters), +\Item{---}symbolic name (1 up to 255 arbitrary graphic characters), -\item type (free, lower bound, upper bound, double bound, fixed), +\Item{---}type (free, lower bound, upper bound, double bound, fixed), -\item numerical values of lower and upper bounds, +\Item{---}numerical values of lower and upper bounds, -\item scale factor. -\end{itemize} +\Item{---}scale factor. +%\end{itemize} -\vspace*{-7pt} +%\vspace*{-7pt} {\it Ordinal numbers} are intended for referencing rows and columns. Row ordinal numbers are integers $1, 2, \dots, m$, and column ordinal @@ -173,19 +173,19 @@ order. The {\it basis segment} of the problem object keeps information related to the current basic solution. It includes: -\vspace*{-8pt} +%\vspace*{-8pt} -\begin{itemize}\setlength{\itemsep}{0pt} -\item row and column statuses, +%\begin{itemize}\setlength{\itemsep}{0pt} +\Item{---}row and column statuses, -\item basic solution statuses, +\Item{---}basic solution statuses, -\item factorization of the current basis matrix, and +\Item{---}factorization of the current basis matrix, and -\item basic solution components. -\end{itemize} +\Item{---}basic solution components. +%\end{itemize} -\vspace*{-8pt} +%\vspace*{-8pt} The {\it row and column statuses} define which rows and columns are basic and which are non-basic. These statuses may be assigned either by @@ -223,17 +223,17 @@ values of all auxiliary and structural variables. The {\it MIP segment} is used only for MIP problems. This segment includes: -\vspace*{-8pt} +%\vspace*{-8pt} -\begin{itemize}\setlength{\itemsep}{0pt} -\item column kinds, +%\begin{itemize}\setlength{\itemsep}{0pt} +\Item{---}column kinds, -\item MIP solution status, and +\Item{---}MIP solution status, and -\item MIP solution components. -\end{itemize} +\Item{---}MIP solution components. +%\end{itemize} -\vspace*{-8pt} +%\vspace*{-8pt} The {\it column kinds} define which columns (i.e. structural variables) are integer and which are continuous. @@ -332,8 +332,7 @@ by the parameter \verb|dir|: \verb|GLP_MAX| means maximization. -\noindent -(Note that by default the problem is minimization.) +Note that by default the problem is minimization. \subsection{glp\_add\_rows --- add new rows to problem object} @@ -513,7 +512,7 @@ while the parameter \verb|ub| is ignored. Being added to the problem object each column is initially fixed at zero, i.e. its type is \verb|GLP_FX| and both bounds are 0. -\newpage +%\newpage \subsection{glp\_set\_obj\_coef --- set (change) objective coefficient or constant term} @@ -533,6 +532,8 @@ the objective coefficient is specified by the parameter \verb|coef|. If the parameter \verb|j| is 0, the routine sets (changes) the constant term (``shift'') of the objective function. +\newpage + \subsection{glp\_set\_mat\_row --- set (replace) row of the constraint matrix} @@ -597,6 +598,8 @@ If the parameter \verb|len| is 0, the parameters \verb|ind| and/or If the basis factorization exists, changing the column corresponding to a basic structural variable invalidates it. +\newpage + \subsection{glp\_load\_matrix --- load (replace) the whole constraint matrix} @@ -710,7 +713,7 @@ remaining rows $a$, $c$, $e$ are assigned new oridinal numbers 1, 2, 3. If the basis factorization exists, deleting active (binding) rows, i.e. whose auxiliary variables are marked as non-basic, invalidates it. -\newpage +%\newpage \subsection{glp\_del\_cols --- delete columns from problem object} @@ -772,7 +775,7 @@ problem object would be deleted with the routine \verb|glp_delete_prob| and then created anew with the routine \verb|glp_create_prob|, with the only exception that the pointer to the problem object remains valid. -\newpage +%\newpage \subsection{glp\_delete\_prob --- delete problem object} @@ -854,6 +857,8 @@ flag (i.e. ``sense'' of the objective function): The routine \verb|glp_get_num_rows| returns the current number of rows in the specified problem object. +\newpage + \subsection{glp\_get\_num\_cols --- retrieve number of columns} \synopsis @@ -1061,7 +1066,7 @@ number of elements in $i$-th row, $n$ is the number of columns. The parameter \verb|ind| and/or \verb|val| can be specified as \verb|NULL|, in which case corresponding information is not stored. -\newpage +%\newpage \returns @@ -1116,28 +1121,28 @@ object. It is important to note that: -1. On creating the problem object with the routine +\Item{1.}On creating the problem object with the routine \verb|glp_create_prob| the name index is {\it not} created. -2. The name index can be created (destroyed) at any time with the +\Item{2.}The name index can be created (destroyed) at any time with the routine \verb|glp_create_index| (\verb|glp_delete_index|). Having been created the name index becomes part of the corresponding problem object. -3. The time taken to create the name index is $O[(m+n)\log_2(m+n)]$, -so it is recommended to create the index only once, for example, just -after the problem object was created. +\Item{3.}The time taken to create the name index is +$O[(m+n)\log_2(m+n)]$, so it is recommended to create the index only +once, for example, just after the problem object was created. -4. If the name index exists, it is automatically updated every time -the name of a row/column is assigned/changed. The update operation +\Item{4.}If the name index exists, it is automatically updated every +time the name of a row/column is assigned/changed. The update operation takes logarithmic time. -5. If the name index does not exist, the application should not call -the routines \verb|glp_find_row| and \verb|glp_find_col|. Otherwise, -an error message will be issued and abnormal program termination will -occur. +\Item{5.}If the name index does not exist, the application should not +call the routines \verb|glp_find_row| and \verb|glp_find_col|. +Otherwise, an error message will be issued and abnormal program +termination will occur. -6. On destroying the problem object with the routine +\Item{6.}On destroying the problem object with the routine \verb|glp_delete_prob|, the name index, if exists, is automatically destroyed. @@ -1267,6 +1272,8 @@ for $i$-th row of the specified problem object. The routine \verb|glp_set_sjj| sets (changes) the scale factor $s_{jj}$ for $j$-th column of the specified problem object. +\newpage + \subsection{glp\_get\_rii --- retrieve row scale factor} \synopsis @@ -1385,7 +1392,7 @@ Another way to construct an initial basis is to use API routines like {\it crashing}.\footnote{This term is from early linear programming systems and means a heuristic to construct a valid initial basis.} Note that on normal exit the simplex solver remains the basis valid, so in -case of reoptimization there is no need to construct an initial basis +case of re-optimization there is no need to construct an initial basis from scratch. \subsection{glp\_set\_row\_stat --- set (change) row status} @@ -1653,9 +1660,7 @@ solver failure.\\ \verb|GLP_EOBJLL| & The search was prematurely terminated, because the objective function being maximized has reached its lower limit and continues decreasing (the dual simplex only).\\ -\end{retlist} -\begin{retlist} \verb|GLP_EOBJUL| & The search was prematurely terminated, because the objective function being minimized has reached its upper limit and continues increasing (the dual simplex only).\\ @@ -1665,7 +1670,9 @@ simplex iteration limit has been exceeded.\\ \verb|GLP_ETMLIM| & The search was prematurely terminated, because the time limit has been exceeded.\\ +\end{retlist} +\begin{retlist} \verb|GLP_ENOPFS| & The LP problem instance has no primal feasible solution (only if the LP presolver is used).\\ @@ -1710,7 +1717,7 @@ reports some information about the current basic solution, which is sent to the terminal. This information has the following format: \begin{verbatim} - nnn: obj = xxx infeas = yyy (ddd) + nnn: obj = xxx infeas = yyy (num) cnt \end{verbatim} \noindent @@ -1718,8 +1725,9 @@ where: `\verb|nnn|' is the iteration number, `\verb|xxx|' is the current value of the objective function (it is unscaled and has correct sign); `\verb|yyy|' is the current sum of primal or dual infeasibilities (it is scaled and therefore may be used only for visual -estimating), `\verb|ddd|' is the current number of fixed basic -variables. +estimating), `\verb|num|' is the current number of primal or dual +infeasibilities (phase I) or non-optimalities (phase II), `\verb|cnt|' +is the number of basis factorizations since the last terminal output. The symbol preceding the iteration number indicates which phase of the simplex method is in effect: @@ -1731,8 +1739,10 @@ the dual simplex; {\it Asterisk} (\verb|*|) means that the solver is searching for optimal solution using the primal simplex; -{\it Vertical dash} (\verb/|/) means that the solver is searching for -optimal solution using the dual simplex. +{\it Hash} (\verb|#|) means that the solver is searching for optimal +solution using the dual simplex. + +\newpage \para{Control parameters} @@ -1795,7 +1805,8 @@ Tolerance used to check if the basic solution is primal feasible. (Do not change this parameter without detailed understanding its purpose.) -\newpage +%\newpage +\bigskip {\tt double tol\_dj} (default: {\tt 1e-7}) @@ -1811,7 +1822,8 @@ Tolerance used to choose eligble pivotal elements of the simplex table. (Do not change this parameter without detailed understanding its purpose.) -\bigskip +%\bigskip +\newpage {\tt double obj\_ll} (default: {\tt -DBL\_MAX}) @@ -1903,28 +1915,25 @@ Below here is shown the terminal output from this example program. \begin{footnotesize} \begin{verbatim} -Reading problem data from `25fv47.mps'... +Reading problem data from '25fv47.mps'... Problem: 25FV47 Objective: R0000 822 rows, 1571 columns, 11127 non-zeros 6919 records were read -Crashing... -Size of triangular part = 799 - 0: obj = 1.627307307e+04 infeas = 5.194e+04 (23) - 200: obj = 1.474901610e+04 infeas = 1.233e+04 (19) - 400: obj = 1.343909995e+04 infeas = 3.648e+03 (13) - 600: obj = 1.756052217e+04 infeas = 4.179e+02 (7) -* 775: obj = 1.789251591e+04 infeas = 4.982e-14 (1) -* 800: obj = 1.663354510e+04 infeas = 2.857e-14 (1) -* 1000: obj = 1.024935068e+04 infeas = 1.958e-12 (1) -* 1200: obj = 7.860174791e+03 infeas = 2.810e-29 (1) -* 1400: obj = 6.642378184e+03 infeas = 2.036e-16 (1) -* 1600: obj = 6.037014568e+03 infeas = 0.000e+00 (1) -* 1800: obj = 5.662171307e+03 infeas = 6.447e-15 (1) -* 2000: obj = 5.528146165e+03 infeas = 9.764e-13 (1) -* 2125: obj = 5.501845888e+03 infeas = 0.000e+00 (1) -OPTIMAL SOLUTION FOUND -Writing basic solution to `25fv47.txt'... +One free row was removed +Constructing initial basis... +Size of triangular part is 812 +GLPK Simplex Optimizer, v4.57 +821 rows, 1571 columns, 10400 non-zeros + 0: obj = 7.131703290e+03 inf = 2.145e+05 (204) + 500: obj = 1.886711682e+04 inf = 8.273e+02 (36) 4 + 741: obj = 1.846047936e+04 inf = 5.575e-14 (0) 2 +* 1000: obj = 9.220063473e+03 inf = 2.423e-14 (432) 2 +* 1500: obj = 6.187659664e+03 inf = 1.019e-13 (368) 4 +* 2000: obj = 5.503442062e+03 inf = 0.000e+00 (33) 5 +* 2052: obj = 5.501845888e+03 inf = 0.000e+00 (0) +OPTIMAL LP SOLUTION FOUND +Writing basic solution to '25fv47.txt'... \end{verbatim} \end{footnotesize} @@ -1965,31 +1974,24 @@ Below here is shown the terminal output from this example program. \begin{footnotesize} \begin{verbatim} -Reading problem data from `25fv47.mps'... +Reading problem data from '25fv47.mps'... Problem: 25FV47 Objective: R0000 822 rows, 1571 columns, 11127 non-zeros 6919 records were read - 0: infeas = 1.223e+03 (516) - 200: infeas = 7.000e+00 (471) - 240: infeas = 1.106e-14 (461) -| 400: obj = -5.394267152e+03 infeas = 5.571e-16 (391) -| 600: obj = -4.586395752e+03 infeas = 1.389e-15 (340) -| 800: obj = -4.158268146e+03 infeas = 1.640e-15 (264) -| 1000: obj = -3.725320045e+03 infeas = 5.181e-15 (245) -| 1200: obj = -3.104802163e+03 infeas = 1.019e-14 (210) -| 1400: obj = -2.584190499e+03 infeas = 8.865e-15 (178) -| 1600: obj = -2.073852927e+03 infeas = 7.867e-15 (142) -| 1800: obj = -1.164037407e+03 infeas = 8.792e-15 (109) -| 2000: obj = -4.370590250e+02 infeas = 2.591e-14 (85) -| 2200: obj = 1.068240144e+03 infeas = 1.025e-13 (70) -| 2400: obj = 1.607481126e+03 infeas = 3.272e-14 (67) -| 2600: obj = 3.038230551e+03 infeas = 4.850e-14 (52) -| 2800: obj = 4.316238187e+03 infeas = 2.622e-14 (36) -| 3000: obj = 5.443842629e+03 infeas = 3.976e-15 (11) -| 3060: obj = 5.501845888e+03 infeas = 8.806e-15 (2) -OPTIMAL SOLUTION FOUND -Writing basic solution to `25fv47.txt'... +One free row was removed +GLPK Simplex Optimizer, v4.57 +821 rows, 1571 columns, 10400 non-zeros + 0: inf = 1.223e+02 (41) + 258: inf = 3.091e-16 (0) 2 +# 500: obj = -5.071287080e+03 inf = 2.947e-15 (292) 2 +# 1000: obj = -1.352843873e+03 inf = 8.452e-15 (302) 5 +# 1500: obj = 7.985859737e+02 inf = 1.127e-14 (263) 5 +# 2000: obj = 3.059023029e+03 inf = 6.290e-11 (197) 4 +# 2500: obj = 5.354770966e+03 inf = 7.172e-13 (130) 5 +# 2673: obj = 5.501845888e+03 inf = 3.802e-16 (0) 2 +OPTIMAL LP SOLUTION FOUND +Writing basic solution to '25fv47.txt'... \end{verbatim} \end{footnotesize} @@ -2012,9 +2014,9 @@ internal computations it uses arithmetic of rational numbers, which is exact in mathematical sense, i.e. free of round-off errors unlike floating-point arithmetic. -Note that the routine \verb|glp_exact| uses only two control parameters -passed in the structure \verb|glp_smcp|, namely, \verb|it_lim| and -\verb|tm_lim|. +Note that the routine \verb|glp_exact| uses only three control +parameters passed in the structure \verb|glp_smcp|, namely, +\verb|msg_lev|, \verb|it_lim|, and \verb|tm_lim|. \returns @@ -2182,7 +2184,7 @@ the auxiliary variable associated with \verb|i|-th row as follows: \verb|GLP_NS| --- non-basic fixed variable. -\newpage +%\newpage \subsection{glp\_get\_row\_prim --- retrieve row primal value} @@ -2246,7 +2248,7 @@ the structural variable associated with \verb|j|-th column as follows: The routine \verb|glp_get_col_prim| returns primal value of the structural variable associated with \verb|j|-th column. -\newpage +%\newpage \subsection{glp\_get\_col\_dual --- retrieve column dual value} @@ -2261,6 +2263,8 @@ structural variable associated with \verb|j|-th column. The routine \verb|glp_get_col_dual| returns dual value (i.e. reduced cost) of the structural variable associated with \verb|j|-th column. +\newpage + \subsection{glp\_get\_unbnd\_ray --- determine variable causing unboundedness} @@ -2433,22 +2437,22 @@ interior point method. SIAM J. on Optim., 2(4), pp. 575-601, 1992.} Note that currently the GLPK interior-point solver does not include many important features, in particular: -\vspace*{-8pt} +%\vspace*{-8pt} -\begin{itemize} -\item it is not able to process dense columns. Thus, if the constraint -matrix of the LP problem has dense columns, the solving process may be -inefficient; +%\begin{itemize} +\Item{---}it is not able to process dense columns. Thus, if the +constraint matrix of the LP problem has dense columns, the solving +process may be inefficient; -\item it has no features against numerical instability. For some LP +\Item{---}it has no features against numerical instability. For some LP problems premature termination may happen if the matrix $ADA^T$ becomes singular or ill-conditioned; -\item it is not able to identify the optimal basis, which corresponds -to the interior-point solution found. -\end{itemize} +\Item{---}it is not able to identify the optimal basis, which +corresponds to the interior-point solution found. +%\end{itemize} -\vspace*{-8pt} +%\vspace*{-8pt} \para{Terminal output} @@ -3207,6 +3211,8 @@ by the solver). The routine \verb|glp_mip_obj_val| returns value of the objective function for MIP solution. +\newpage + \subsection{glp\_mip\_row\_val --- retrieve row value} \synopsis @@ -3305,6 +3311,8 @@ and variables with numbers $m+1$ to $m+n$ correspond to columns. If the error reported is exact zero, corresponding row, column or variable number is set to zero. +\newpage + \para{Background} \def\arraystretch{1.5} @@ -3359,6 +3367,8 @@ correspond to largest absolute and relative errors: $${\tt ae\_max}=\max_{1\leq k \leq m+n}|h_k|,$$ $${\tt re\_max}=\max_{1\leq k \leq m+n}\frac{|h_k|}{1+|x_k|}.$$ +\newpage + The third condition checked by the routine is: $${\rm grad}\;Z = c = (\tilde{A})^T \pi + d,$$ where $Z$ is the objective function, $c$ is the vector of objective diff --git a/resources/3rdparty/glpk-4.57/doc/glpk03.tex b/resources/3rdparty/glpk-4.65/doc/glpk03.tex similarity index 62% rename from resources/3rdparty/glpk-4.57/doc/glpk03.tex rename to resources/3rdparty/glpk-4.65/doc/glpk03.tex index 82848a14b..6086c54c1 100644 --- a/resources/3rdparty/glpk-4.57/doc/glpk03.tex +++ b/resources/3rdparty/glpk-4.65/doc/glpk03.tex @@ -168,7 +168,7 @@ If the operation was successful, the routine \verb|glp_read_prob| returns zero. Otherwise, it prints an error message and returns non-zero. -\newpage +%\newpage \para{GLPK LP/MIP format} @@ -182,6 +182,8 @@ end-of-line character. Fields in each line are separated by at least one blank space. Each line begins with a one-character designator to identify the line type. +\newpage + The first line of the data file must be the problem line (except optional comment lines, which may precede the problem line). The last line of the data file must be the end line. Other lines may follow in @@ -553,45 +555,46 @@ an internal code and then interprets (executes) this code. The processing of a model written in GNU MathProg includes several steps, which should be performed in the following order: -\vspace*{-8pt} +%\vspace*{-8pt} -\begin{enumerate} -\item{\it Allocating the workspace.} +%\begin{enumerate} +\Item{1.}{\it Allocating the workspace.} The translator allocates the workspace, an internal data structure used on all subsequent steps. -\item{\it Reading model section.} The translator reads model section -and, optionally, data section from a specified text file and translates -them into the internal code. If necessary, on this step data section -may be ignored. +\Item{2.}{\it Reading model section.} The translator reads model +section and, optionally, data section from a specified text file and +translates them into the internal code. If necessary, on this step data +section may be ignored. -\item{\it Reading data section(s).} The translator reads one or more -data sections from specified text file(s) and translates them into the -internal code. +\Item{3.}{\it Reading data section(s).} The translator reads one or +more data sections from specified text file(s) and translates them into +the internal code. -\item{\it Generating the model.} The translator executes the internal -code to evaluate the content of the model objects such as sets, +\Item{4.}{\it Generating the model.} The translator executes the +internal code to evaluate the content of the model objects such as sets, parameters, variables, constraints, and objectives. On this step the execution is suspended at the solve statement. -\item {\it Building the problem object.} The translator obtains all +\Item{5.}{\it Building the problem object.} The translator obtains all necessary information from the workspace and builds the standard problem object (that is, the program object of type \verb|glp_prob|). -\item{\it Solving the problem.} On this step the problem object built -on the previous step is passed to a solver, which solves the problem -instance and stores its solution back to the problem object. +\Item{6.}{\it Solving the problem.} On this step the problem object +built on the previous step is passed to a solver, which solves the +problem instance and stores its solution back to the problem object. -\item{\it Postsolving the model.} The translator copies the solution -from the problem object to the workspace and then executes the internal -code from the solve statement to the end of the model. (If model has -no solve statement, the translator does nothing on this step.) +\Item{7.}{\it Postsolving the model.} The translator copies the +solution from the problem object to the workspace and then executes the +internal code from the solve statement to the end of the model. +(If model has no solve statement, the translator does nothing on this +step.) -\item{\it Freeing the workspace.} The translator frees all the memory -allocated to the workspace. -\end{enumerate} +\Item{8.}{\it Freeing the workspace.} The translator frees all the +memory allocated to the workspace. +%\end{enumerate} -\vspace*{-8pt} +%\vspace*{-8pt} Note that the MathProg translator performs no error correction, so if any of steps 2 to 7 fails (due to errors in the model), the application @@ -725,6 +728,26 @@ allocated, if necessary.) The routine returns a pointer to the workspace, which should be used in all subsequent operations. +\subsection{glp\_mpl\_init\_rand --- initialize pseudo-random number +generator} + +\synopsis + +\begin{verbatim} + void glp_mpl_init_rand(glp_tran *tran, int seed); +\end{verbatim} + +\description + +The routine \verb|glp_mpl_init_rand| initializes a pseudo-random number +generator used by the MathProg translator, where the parameter +\verb|seed| may be any integer number. + +A call to the routine \verb|glp_mpl_init_rand| should immediately +follow the call to the routine \verb|glp_mpl_alloc_wksp|. However, +using of this routine is optional. If it is not called, the effect is +the same as if it were called with \verb|seed| equal to 1. + \subsection{glp\_mpl\_read\_model --- read and translate model section} \synopsis @@ -751,6 +774,8 @@ allows reading data section(s) from other file(s). If the operation is successful, the routine returns zero. Otherwise the routine prints an error message and returns non-zero. +\newpage + \subsection{glp\_mpl\_read\_data --- read and translate data section} \synopsis @@ -771,8 +796,6 @@ workspace. If necessary, this routine may be called more than once. If the operation is successful, the routine returns zero. Otherwise the routine prints an error message and returns non-zero. -\newpage - \subsection{glp\_mpl\_generate --- generate the model} \synopsis @@ -816,7 +839,7 @@ from the translator work\-space and stores it in the specified problem object \verb|P|. Note that before building the current content of the problem object is erased with the routine \verb|glp_erase_prob|. -\vspace*{-6pt} +\newpage \subsection{glp\_mpl\_postsolve --- postsolve the model} @@ -878,7 +901,7 @@ format} \description -The routine \verb|glp_print_sol writes| the current basic solution of +The routine \verb|glp_print_sol writes| the current basic solution to an LP problem, which is specified by the pointer \verb|P|, to a text file, whose name is the character string \verb|fname|, in printable format. @@ -891,7 +914,7 @@ mainly for visual analysis. If no errors occurred, the routine returns zero. Otherwise the routine prints an error message and returns non-zero. -\subsection{glp\_read\_sol --- read basic solution from text file} +\subsection{glp\_read\_sol --- read basic solution in GLPK format} \synopsis @@ -902,95 +925,217 @@ prints an error message and returns non-zero. \description The routine \verb|glp_read_sol| reads basic solution from a text file -whose name is specified by the parameter \verb|fname| into the problem -object. +in the GLPK format. (For description of the format see below.) -For the file format see description of the routine -\verb|glp_write_sol|. +The character string \verb|fname| specifies the name of the text file +to be read in. (If the file name ends with suffix `\verb|.gz|', the +file is assumed to be compressed, in which case the routine +\verb|glp_read_sol| decompresses it "on the fly".) \returns -On success the routine returns zero, otherwise non-zero. +If the operation was successful, the routine \verb|glp_read_sol| +returns zero. Otherwise, it prints an error message and returns +non-zero. -\subsection{glp\_write\_sol --- write basic solution to text file} +\para{GLPK basic solution format} -\synopsis +The GLPK basic solution format is a DIMACS-like format.\footnote{The +DIMACS formats were developed by the Center for Discrete Mathematics +and Theoretical Computer Science (DIMACS) to facilitate exchange of +problem data. +For details see: {\tt }. } +The file in this format is a plain ASCII text file containing lines of +several types described below. A line is terminated with the +end-of-line character. Fields in each line are separated by at least +one blank space. Each line begins with a one-character designator to +identify the line type. + +The first line of the solution file must be the solution line (except +optional comment lines, which may precede the problem line). The last +line of the data file must be the end line. Other lines may follow in +arbitrary order, however, duplicate lines are not allowed. + +\newpage + +\para{Comment lines.} Comment lines give human-readable information +about the solution file and are ignored by GLPK routines. Comment lines +can appear anywhere in the data file. Each comment line begins with the +lower-case character \verb|c|. \begin{verbatim} - int glp_write_sol(glp_prob *P, const char *fname); + c This is an example of comment line \end{verbatim} -\description +\para{Solution line.} There must be exactly one solution line in the +solution file. This line must appear before any other lines except +comment lines and has the following format: -The routine \verb|glp_write_sol| writes the current basic solution to -a text file whose name is specified by the parameter \verb|fname|. This -file can be read back with the routine \verb|glp_read_sol|. +\begin{verbatim} + s bas ROWS COLS PST DST OBJ +\end{verbatim} -\returns +The lower-case letter \verb|s| specifies that this is the solution +line. -On success the routine returns zero, otherwise non-zero. +The three-character solution designator \verb|bas| identifies the file +as containing a basic solution to the LP problem instance. -\newpage +The \verb|ROWS| and \verb|COLS| fields contain non-negative integer +values that specify the number of rows (constraints) and columns +(variables), resp., in the LP problem instance. + +The \verb|PST| and \verb|DST| fields contain lower-case letters that +specify the primal and dual solution status, resp., as follows: + +\verb|u| --- solution is undefined; + +\verb|f| --- solution is feasible; -\para{File format} +\verb|i| --- solution is infeasible; -The file created by the routine \verb|glp_write_sol| is a plain text -file, which contains the following information: +\verb|n| --- no feasible solution exists. + +The \verb|OBJ| field contains a floating-point number that specifies +the objective function value in the basic solution. + +\para{Row solution descriptors.} There must be exactly one row solution +descriptor line in the solution file for each row (constraint). This +line has the following format: \begin{verbatim} - m n - p_stat d_stat obj_val - r_stat[1] r_prim[1] r_dual[1] - . . . - r_stat[m] r_prim[m] r_dual[m] - c_stat[1] c_prim[1] c_dual[1] - . . . - c_stat[n] c_prim[n] c_dual[n] + i ROW ST PRIM DUAL \end{verbatim} -\noindent -where: +The lower-case letter \verb|i| specifies that this is the row solution +descriptor line. -\noindent -$m$ is the number of rows (auxiliary variables); +The \verb|ROW| field specifies the row ordinal number, an integer +between 1 and $m$, where $m$ is the number of rows in the problem +instance. -\noindent -$n$ is the number of columns (structural variables); +The \verb|ST| field contains one of the following lower-case letters +that specifies the row status in the basic solution:\footnote{The row +status is the status of the associated auxiliary variable.} -\noindent -\verb|p_stat| is the primal status of the basic solution\\ -(\verb|GLP_UNDEF| = 1, \verb|GLP_FEAS| = 2, \verb|GLP_INFEAS| = 3, or -\verb|GLP_NOFEAS| = 4); +\verb|b| --- inactive constraint; -\noindent -\verb|d_stat| is the dual status of the basic solution\\ -(\verb|GLP_UNDEF| = 1, \verb|GLP_FEAS| = 2, \verb|GLP_INFEAS| = 3, or -\verb|GLP_NOFEAS| = 4); +\verb|l| --- inequality constraint active on its lower bound; -\noindent -\verb|obj_val| is the objective value; +\verb|u| --- inequality constraint active on its upper bound; -\noindent -\verb|r_stat[i]|, $i=1,\dots,m$, is the status of $i$-th row\\ -(\verb|GLP_BS| = 1, \verb|GLP_NL| = 2, \verb|GLP_NU| = 3, -\verb|GLP_NF| = 4, or \verb|GLP_NS| = 5); +\verb|f| --- active free (unounded) row; -\noindent -\verb|r_prim[i]|, $i=1,\dots,m$, is the primal value of $i$-th row; +\verb|s| --- active equality constraint. -\noindent -\verb|r_dual[i]|, $i=1,\dots,m$, is the dual value of $i$-th row; +The \verb|PRIM| field contains a floating-point number that specifies +the row primal value (the value of the corresponding linear form). -\noindent -\verb|c_stat[j]|, $j=1,\dots,n$, is the status of $j$-th column\\ -(\verb|GLP_BS| = 1, \verb|GLP_NL| = 2, \verb|GLP_NU| = 3, -\verb|GLP_NF| = 4, or \verb|GLP_NS| = 5); +The \verb|DUAL| field contains a floating-point number that specifies +the row dual value (the Lagrangian multiplier for active bound). -\noindent -\verb|c_prim[j]|, $j=1,\dots,n$, is the primal value of $j$-th column; +\para{Column solution descriptors.} There must be exactly one column +solution descriptor line in the solution file for each column +(variable). This line has the following format: -\noindent -\verb|c_dual[j]|, $j=1,\dots,n$, is the dual value of $j$-th column. +\begin{verbatim} + j COL ST PRIM DUAL +\end{verbatim} + +The lower-case letter \verb|j| specifies that this is the column +solution descriptor line. + +The \verb|COL| field specifies the column ordinal number, an integer +between 1 and $n$, where $n$ is the number of columns in the problem +instance. + +The \verb|ST| field contains one of the following lower-case letters +that specifies the column status in the basic solution: + +\verb|b| --- basic variable; + +\verb|l| --- non-basic variable having its lower bound active; + +\verb|u| --- non-basic variable having its upper bound active; + +\verb|f| --- non-basic free (unounded) variable; + +\verb|s| --- non-basic fixed variable. + +The \verb|PRIM| field contains a floating-point number that specifies +the column primal value. + +The \verb|DUAL| field contains a floating-point number that specifies +the column dual value (the Lagrangian multiplier for active bound). + +\para{End line.} There must be exactly one end line in the solution +file. This line must appear last in the file and has the following +format: + +\begin{verbatim} + e +\end{verbatim} + +The lower-case letter \verb|e| specifies that this is the end line. +Anything that follows the end line is ignored by GLPK routines. + +\para{Example of solution file in GLPK basic solution format} + +The following example of a solution file in GLPK basic solution format +specifies the optimal basic solution to the LP problem instance from +Subsection ``Example of MPS file''. + +\bigskip + +\begin{center} +\footnotesize\tt +\begin{tabular}{l@{\hspace*{50pt}}} +s bas 7 7 f f 296.216606498195 \\ +i 1 s 2000 -0.0135956678700369 \\ +i 2 u 60 -2.56823104693141 \\ +i 3 b 83.9675090252707 0 \\ +i 4 u 40 -0.544404332129962 \\ +i 5 b 19.9602888086643 0 \\ +i 6 l 1500 0.251985559566788 \\ +i 7 l 250 0.48519855595668 \\ +\end{tabular} +\begin{tabular}{|@{\hspace*{50pt}}l} +j 1 l 0 0.253624548736462 \\ +j 2 b 665.342960288809 0 \\ +j 3 b 490.252707581226 0 \\ +j 4 b 424.187725631769 0 \\ +j 5 l 0 0.0145559566787004 \\ +j 6 b 299.638989169676 0 \\ +j 7 b 120.57761732852 0 \\ +e o f \\ +\end{tabular} +\end{center} + +\newpage + +\subsection{glp\_write\_sol --- write basic solution in GLPK format} + +\synopsis + +\begin{verbatim} + int glp_write_sol(glp_prob *P, const char *fname); +\end{verbatim} + +\description + +The routine \verb|glp_write_sol| writes the current basic solution to +a text file in the GLPK format. (For description of the GLPK basic +solution format see Subsection ``Read basic solution in GLPK format.'') + +The character string \verb|fname| specifies the name of the text file +to be written. (If the file name ends with suffix `\verb|.gz|', the +routine \verb|glp_write_sol| compresses it "on the fly".) + +\returns + +If the operation was successful, the routine \verb|glp_write_sol| +returns zero. Otherwise, it prints an error message and returns +non-zero. \subsection{glp\_print\_ipt --- write interior-point solution in printable format} @@ -1004,22 +1149,20 @@ printable format} \description The routine \verb|glp_print_ipt| writes the current interior point -solution of an LP problem, which the parameter \verb|P| points to, to +solution to an LP problem, which the parameter \verb|P| points to, to a text file, whose name is the character string \verb|fname|, in printable format. Information reported by the routine \verb|glp_print_ipt| is intended mainly for visual analysis. -\newpage - \returns If no errors occurred, the routine returns zero. Otherwise the routine prints an error message and returns non-zero. -\subsection{glp\_read\_ipt --- read interior-point solution from text -file} +\subsection{glp\_read\_ipt --- read interior-point solution in GLPK +format} \synopsis @@ -1030,79 +1173,193 @@ file} \description The routine \verb|glp_read_ipt| reads interior-point solution from -a text file whose name is specified by the parameter \verb|fname| into -the problem object. +a text file in the GLPK format. (For description of the format see +below.) + +The character string \verb|fname| specifies the name of the text file +to be read in. (If the file name ends with suffix `\verb|.gz|', the +file is assumed to be compressed, in which case the routine +\verb|glp_read_ipt| decompresses it "on the fly".) -For the file format see description of the routine -\verb|glp_write_ipt|. +%\newpage \returns -On success the routine returns zero, otherwise non-zero. +If the operation was successful, the routine \verb|glp_read_ipt| +returns zero. Otherwise, it prints an error message and returns +non-zero. -\subsection{glp\_write\_ipt --- write interior-point solution to text -file} +\para{GLPK interior-point solution format} -\synopsis +The GLPK interior-point solution format is a DIMACS-like +format.\footnote{The DIMACS formats were developed by the Center for +Discrete Mathematics and Theoretical Computer Science (DIMACS) to +facilitate exchange of problem data. For details see: +{\tt }. } +The file in this format is a plain ASCII text file containing lines of +several types described below. A line is terminated with the +end-of-line character. Fields in each line are separated by at least +one blank space. Each line begins with a one-character designator to +identify the line type. + +The first line of the solution file must be the solution line (except +optional comment lines, which may precede the problem line). The last +line of the data file must be the end line. Other lines may follow in +arbitrary order, however, duplicate lines are not allowed. + +\para{Comment lines.} Comment lines give human-readable information +about the solution file and are ignored by GLPK routines. Comment lines +can appear anywhere in the data file. Each comment line begins with the +lower-case character \verb|c|. \begin{verbatim} - int glp_write_ipt(glp_prob *P, const char *fname); + c This is an example of comment line \end{verbatim} -\description +\para{Solution line.} There must be exactly one solution line in the +solution file. This line must appear before any other lines except +comment lines and has the following format: -The routine \verb|glp_write_ipt| writes the current interior-point -solution to a text file whose name is specified by the parameter -\verb|fname|. This file can be read back with the routine -\verb|glp_read_ipt|. +\begin{verbatim} + s ipt ROWS COLS SST OBJ +\end{verbatim} -\returns +The lower-case letter \verb|s| specifies that this is the solution +line. + +The three-character solution designator \verb|ipt| identifies the file +as containing an interior-point solution to the LP problem instance. + +The \verb|ROWS| and \verb|COLS| fields contain non-negative integer +values that specify the number of rows (constraints) and columns +(variables), resp., in the LP problem instance. -On success the routine returns zero, otherwise non-zero. +The \verb|SST| field contains one of the following lower-case letters +that specifies the solution status: -\para{File format} +\verb|o| --- solution is optimal; -The file created by the routine \verb|glp_write_ipt| is a plain text -file, which contains the following information: +\verb|i| --- solution is infeasible; + +\verb|n| --- no feasible solution exists; + +\verb|u| --- solution is undefined. + +The \verb|OBJ| field contains a floating-point number that specifies +the objective function value in the interior-point solution. + +\para{Row solution descriptors.} There must be exactly one row solution +descriptor line in the solution file for each row (constraint). This +line has the following format: \begin{verbatim} - m n - stat obj_val - r_prim[1] r_dual[1] - . . . - r_prim[m] r_dual[m] - c_prim[1] c_dual[1] - . . . - c_prim[n] c_dual[n] + i ROW PRIM DUAL \end{verbatim} -\noindent -where: +The lower-case letter \verb|i| specifies that this is the row solution +descriptor line. -\noindent -$m$ is the number of rows (auxiliary variables); +%\newpage -\noindent -$n$ is the number of columns (structural variables); +The \verb|ROW| field specifies the row ordinal number, an integer +between 1 and $m$, where $m$ is the number of rows in the problem +instance. -\noindent -\verb|stat| is the solution status (\verb|GLP_UNDEF| = 1 or -\verb|GLP_OPT| = 5); +The \verb|PRIM| field contains a floating-point number that specifies +the row primal value (the value of the corresponding linear form). -\noindent -\verb|obj_val| is the objective value; +The \verb|DUAL| field contains a floating-point number that specifies +the row dual value (the Lagrangian multiplier for active bound). -\noindent -\verb|r_prim[i]|, $i=1,\dots,m$, is the primal value of $i$-th row; +\para{Column solution descriptors.} There must be exactly one column +solution descriptor line in the solution file for each column +(variable). This line has the following format: -\noindent -\verb|r_dual[i]|, $i=1,\dots,m$, is the dual value of $i$-th row; +\begin{verbatim} + j COL PRIM DUAL +\end{verbatim} -\noindent -\verb|c_prim[j]|, $j=1,\dots,n$, is the primal value of $j$-th column; +The lower-case letter \verb|j| specifies that this is the column +solution descriptor line. -\noindent -\verb|c_dual[j]|, $j=1,\dots,n$, is the dual value of $j$-th column. +The \verb|COL| field specifies the column ordinal number, an integer +between 1 and $n$, where $n$ is the number of columns in the problem +instance. + +The \verb|PRIM| field contains a floating-point number that specifies +the column primal value. + +The \verb|DUAL| field contains a floating-point number that specifies +the column dual value (the Lagrangian multiplier for active bound). + +\para{End line.} There must be exactly one end line in the solution +file. This line must appear last in the file and has the following +format: + +\begin{verbatim} + e +\end{verbatim} + +The lower-case letter \verb|e| specifies that this is the end line. +Anything that follows the end line is ignored by GLPK routines. + +\para{Example of solution file in GLPK interior-point solution format} + +The following example of a solution file in GLPK interior-point +solution format specifies the optimal interior-point solution to the LP +problem instance from Subsection ``Example of MPS file''. + +\bigskip + +\begin{center} +\footnotesize\tt +\begin{tabular}{l@{\hspace*{10pt}}} +s ipt 7 7 o 296.216606851403 \\ +i 1 2000.00000290369 -0.0135956757623443 \\ +i 2 60.0000001302903 -2.568231024875 \\ +i 3 83.9675094251819 -8.85591445202383e-10 \\ +i 4 39.9999999985064 -0.544404310443766 \\ +i 5 19.9602886941262 -2.24817803513554e-09 \\ +i 6 1500.00000199013 0.251985567257828 \\ +i 7 250.000000244896 0.48519856304979 \\ +\end{tabular} +\begin{tabular}{|@{\hspace*{10pt}}l} +j 1 3.3482079213784e-07 0.253624547432525 \\ +j 2 665.342955760768 6.04613825351601e-11 \\ +j 3 490.25271366802 5.8488360240978e-10 \\ +j 4 424.187729774275 -2.54144550490434e-11 \\ +j 5 1.46067738492801e-06 0.0145559574770786 \\ +j 6 299.638985053112 1.49359074902927e-10 \\ +j 7 120.577616852015 3.50297708781545e-10 \\ +e o f +\end{tabular} +\end{center} + +\subsection{glp\_write\_ipt --- write interior-point solution in GLPK +format} + +\synopsis + +\begin{verbatim} + int glp_write_ipt(glp_prob *P, const char *fname); +\end{verbatim} + +\description + +The routine \verb|glp_write_ipt| writes the current interior-point +solution to a text file in the GLPK format. (For description of the +GLPK interior-point solution format see Subsection ``Read +interior-point solution in GLPK format.'') + +The character string \verb|fname| specifies the name of the text file +to be written. (If the file name ends with suffix `\verb|.gz|', the +routine \verb|glp_write_ipt| compresses it "on the fly".) + +\returns + +If the operation was successful, the routine \verb|glp_write_ipt| +returns zero. Otherwise, it prints an error message and returns +non-zero. \subsection{glp\_print\_mip --- write MIP solution in printable format} @@ -1114,10 +1371,9 @@ $n$ is the number of columns (structural variables); \description -The routine \verb|glp_print_mip| writes a best known integer solution -of a MIP problem, which is specified by the pointer \verb|P|, to -a text file, whose name is the character string \verb|fname|, in -printable format. +The routine \verb|glp_print_mip| writes the current solution to a MIP +problem, which is specified by the pointer \verb|P|, to a text file, +whose name is the character string \verb|fname|, in printable format. Information reported by the routine \verb|glp_print_mip| is intended mainly for visual analysis. @@ -1127,7 +1383,7 @@ mainly for visual analysis. If no errors occurred, the routine returns zero. Otherwise the routine prints an error message and returns non-zero. -\subsection{glp\_read\_mip --- read MIP solution from text file} +\subsection{glp\_read\_mip --- read MIP solution in GLPK format} \synopsis @@ -1137,74 +1393,182 @@ prints an error message and returns non-zero. \description -The routine \verb|glp_read_mip| reads MIP solution from a text file -whose name is specified by the parameter \verb|fname| into the problem -object. +The routine \verb|glp_read_mip| reads MIP solution from a text file in +the GLPK format. (For description of the format see below.) -For the file format see description of the routine -\verb|glp_write_mip|. +The character string \verb|fname| specifies the name of the text file +to be read in. (If the file name ends with suffix `\verb|.gz|', the +file is assumed to be compressed, in which case the routine +\verb|glp_read_mip| decompresses it "on the fly".) \returns -On success the routine returns zero, otherwise non-zero. +If the operation was successful, the routine \verb|glp_read_mip| +returns zero. Otherwise, it prints an error message and returns +non-zero. -\newpage +\para{GLPK MIP solution format} -\subsection{glp\_write\_mip --- write MIP solution to text file} +The GLPK MIP solution format is a DIMACS-like format.\footnote{The +DIMACS formats were developed by the Center for Discrete Mathematics +and Theoretical Computer Science (DIMACS) to facilitate exchange of +problem data. For details see: +{\tt }. } +The file in this format is a plain ASCII text file containing lines of +several types described below. A line is terminated with the +end-of-line character. Fields in each line are separated by at least +one blank space. Each line begins with a one-character designator to +identify the line type. -\synopsis +The first line of the solution file must be the solution line (except +optional comment lines, which may precede the problem line). The last +line of the data file must be the end line. Other lines may follow in +arbitrary order, however, duplicate lines are not allowed. + +\para{Comment lines.} Comment lines give human-readable information +about the solution file and are ignored by GLPK routines. Comment lines +can appear anywhere in the data file. Each comment line begins with the +lower-case character \verb|c|. \begin{verbatim} - int glp_write_mip(glp_prob *P, const char *fname); + c This is an example of comment line \end{verbatim} -\description +\para{Solution line.} There must be exactly one solution line in the +solution file. This line must appear before any other lines except +comment lines and has the following format: -The routine \verb|glp_write_mip| writes the current MIP solution to -a text file whose name is specified by the parameter \verb|fname|. This -file can be read back with the routine \verb|glp_read_mip|. +\begin{verbatim} + s mip ROWS COLS SST OBJ +\end{verbatim} -\returns +The lower-case letter \verb|s| specifies that this is the solution +line. + +The three-character solution designator \verb|mip| identifies the file +as containing a solution to the MIP problem instance. + +The \verb|ROWS| and \verb|COLS| fields contain non-negative integer +values that specify the number of rows (constraints) and columns +(variables), resp., in the LP problem instance. + +The \verb|SST| field contains one of the following lower-case letters +that specifies the solution status: + +\verb|o| --- solution is integer optimal; -On success the routine returns zero, otherwise non-zero. +\verb|f| --- solution is integer feasible (non-optimal); -\para{File format} +\verb|n| --- no integer feasible solution exists; -The file created by the routine \verb|glp_write_sol| is a plain text -file, which contains the following information: +\verb|u| --- solution is undefined. + +The \verb|OBJ| field contains a floating-point number that specifies +the objective function value in the MIP solution. + +\para{Row solution descriptors.} There must be exactly one row solution +descriptor line in the solution file for each row (constraint). This +line has the following format: \begin{verbatim} - m n - stat obj_val - r_val[1] - . . . - r_val[m] - c_val[1] - . . . - c_val[n] + i ROW VAL \end{verbatim} -\noindent -where: +The lower-case letter \verb|i| specifies that this is the row solution +descriptor line. -\noindent -$m$ is the number of rows (auxiliary variables); +The \verb|ROW| field specifies the row ordinal number, an integer +between 1 and $m$, where $m$ is the number of rows in the problem +instance. -\noindent -$n$ is the number of columns (structural variables); +The \verb|VAL| field contains a floating-point number that specifies +the row value (the value of the corresponding linear form). -\noindent -\verb|stat| is the solution status\\(\verb|GLP_UNDEF| = 1, -\verb|GLP_FEAS| = 2, \verb|GLP_NOFEAS| = 4, or \verb|GLP_OPT| = 5); +\para{Column solution descriptors.} There must be exactly one column +solution descriptor line in the solution file for each column +(variable). This line has the following format: -\noindent -\verb|obj_val| is the objective value; +\begin{verbatim} + j COL VAL +\end{verbatim} -\noindent -\verb|r_val[i]|, $i=1,\dots,m$, is the value of $i$-th row; +The lower-case letter \verb|j| specifies that this is the column +solution descriptor line. -\noindent -\verb|c_val[j]|, $j=1,\dots,n$, is the value of $j$-th column. +The \verb|COL| field specifies the column ordinal number, an integer +between 1 and $n$, where $n$ is the number of columns in the problem +instance. + +The \verb|VAL| field contains a floating-point number that specifies +the column value. + +\para{End line.} There must be exactly one end line in the solution +file. This line must appear last in the file and has the following +format: + +\begin{verbatim} + e +\end{verbatim} + +The lower-case letter \verb|e| specifies that this is the end line. +Anything that follows the end line is ignored by GLPK routines. + +\para{Example of solution file in GLPK MIP solution format} + +The following example of a solution file in GLPK MIP solution format +specifies an optimal solution to a MIP problem instance. + +\bigskip + +\begin{center} +\footnotesize\tt +\begin{tabular}{l@{\hspace*{50pt}}} +s mip 8 8 o 1201500 \\ +i 1 60 \\ +i 2 8400 \\ +i 3 -1200 \\ +i 4 0 \\ +i 5 9000 \\ +i 6 -600 \\ +i 7 0 \\ +i 8 8000 \\ +\end{tabular} +\begin{tabular}{|@{\hspace*{80pt}}l} +j 1 60 \\ +j 2 6 \\ +j 3 0 \\ +j 4 60 \\ +j 5 6 \\ +j 6 600 \\ +j 7 60 \\ +j 8 16 \\ +e o f \\ +\end{tabular} +\end{center} + +\subsection{glp\_write\_mip --- write MIP solution in GLPK format} + +\synopsis + +\begin{verbatim} + int glp_write_mip(glp_prob *P, const char *fname); +\end{verbatim} + +\description + +The routine \verb|glp_write_mip| writes the current MIP solution to +a text file in the GLPK format. (For description of the GLPK MIP +solution format see Subsection ``Read MIP solution in GLPK format.'') + +The character string \verb|fname| specifies the name of the text file +to be written. (If the file name ends with suffix `\verb|.gz|', the +routine \verb|glp_write_mip| compresses it "on the fly".) + +\returns + +If the operation was successful, the routine \verb|glp_write_mip| +returns zero. Otherwise, it prints an error message and returns +non-zero. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -1282,37 +1646,37 @@ between rows and columns. \begin{landscape} \begin{footnotesize} \begin{verbatim} -GLPK 4.42 - SENSITIVITY ANALYSIS REPORT Page 1 + GLPK 4.42 - SENSITIVITY ANALYSIS REPORT Page 1 -Problem: PLAN -Objective: VALUE = 296.2166065 (MINimum) + Problem: PLAN + Objective: VALUE = 296.2166065 (MINimum) - No. Row name St Activity Slack Lower bound Activity Obj coef Obj value at Limiting - Marginal Upper bound range range break point variable ------- ------------ -- ------------- ------------- ------------- ------------- ------------- ------------- ------------ - 1 VALUE BS 296.21661 -296.21661 -Inf 299.25255 -1.00000 . MN - . +Inf 296.21661 +Inf +Inf + No. Row name St Activity Slack Lower bound Activity Obj coef Obj value at Limiting + Marginal Upper bound range range break point variable + ------ ------------ -- ------------- ------------- ------------- ------------- ------------- ------------- ------------ + 1 VALUE BS 296.21661 -296.21661 -Inf 299.25255 -1.00000 . MN + . +Inf 296.21661 +Inf +Inf - 2 YIELD NS 2000.00000 . 2000.00000 1995.06864 -Inf 296.28365 BIN3 - -.01360 2000.00000 2014.03479 +Inf 296.02579 CU + 2 YIELD NS 2000.00000 . 2000.00000 1995.06864 -Inf 296.28365 BIN3 + -.01360 2000.00000 2014.03479 +Inf 296.02579 CU - 3 FE NU 60.00000 . -Inf 55.89016 -Inf 306.77162 BIN4 - -2.56823 60.00000 62.69978 2.56823 289.28294 BIN3 + 3 FE NU 60.00000 . -Inf 55.89016 -Inf 306.77162 BIN4 + -2.56823 60.00000 62.69978 2.56823 289.28294 BIN3 - 4 CU BS 83.96751 16.03249 -Inf 93.88467 -.30613 270.51157 MN - . 100.00000 79.98213 .21474 314.24798 BIN5 + 4 CU BS 83.96751 16.03249 -Inf 93.88467 -.30613 270.51157 MN + . 100.00000 79.98213 .21474 314.24798 BIN5 - 5 MN NU 40.00000 . -Inf 34.42336 -Inf 299.25255 BIN4 - -.54440 40.00000 41.68691 .54440 295.29825 BIN3 + 5 MN NU 40.00000 . -Inf 34.42336 -Inf 299.25255 BIN4 + -.54440 40.00000 41.68691 .54440 295.29825 BIN3 - 6 MG BS 19.96029 10.03971 -Inf 24.74427 -1.79618 260.36433 BIN1 - . 30.00000 9.40292 .28757 301.95652 MN + 6 MG BS 19.96029 10.03971 -Inf 24.74427 -1.79618 260.36433 BIN1 + . 30.00000 9.40292 .28757 301.95652 MN - 7 AL NL 1500.00000 . 1500.00000 1485.78425 -.25199 292.63444 CU - .25199 +Inf 1504.92126 +Inf 297.45669 BIN3 + 7 AL NL 1500.00000 . 1500.00000 1485.78425 -.25199 292.63444 CU + .25199 +Inf 1504.92126 +Inf 297.45669 BIN3 - 8 SI NL 250.00000 50.00000 250.00000 235.32871 -.48520 289.09812 CU - .48520 300.00000 255.06073 +Inf 298.67206 BIN3 + 8 SI NL 250.00000 50.00000 250.00000 235.32871 -.48520 289.09812 CU + .48520 300.00000 255.06073 +Inf 298.67206 BIN3 \end{verbatim} \end{footnotesize} \end{landscape} @@ -1322,36 +1686,36 @@ Objective: VALUE = 296.2166065 (MINimum) \begin{landscape} \begin{footnotesize} \begin{verbatim} -GLPK 4.42 - SENSITIVITY ANALYSIS REPORT Page 2 + GLPK 4.42 - SENSITIVITY ANALYSIS REPORT Page 2 -Problem: PLAN -Objective: VALUE = 296.2166065 (MINimum) + Problem: PLAN + Objective: VALUE = 296.2166065 (MINimum) - No. Column name St Activity Obj coef Lower bound Activity Obj coef Obj value at Limiting - Marginal Upper bound range range break point variable ------- ------------ -- ------------- ------------- ------------- ------------- ------------- ------------- ------------ - 1 BIN1 NL . .03000 . -28.82475 -.22362 288.90594 BIN4 - .25362 200.00000 33.88040 +Inf 304.80951 BIN4 + No. Column name St Activity Obj coef Lower bound Activity Obj coef Obj value at Limiting + Marginal Upper bound range range break point variable + ------ ------------ -- ------------- ------------- ------------- ------------- ------------- ------------- ------------ + 1 BIN1 NL . .03000 . -28.82475 -.22362 288.90594 BIN4 + .25362 200.00000 33.88040 +Inf 304.80951 BIN4 - 2 BIN2 BS 665.34296 .08000 . 802.22222 .01722 254.44822 BIN1 - . 2500.00000 313.43066 .08863 301.95652 MN + 2 BIN2 BS 665.34296 .08000 . 802.22222 .01722 254.44822 BIN1 + . 2500.00000 313.43066 .08863 301.95652 MN - 3 BIN3 BS 490.25271 .17000 400.00000 788.61314 .15982 291.22807 MN - . 800.00000 -347.42857 .17948 300.86548 BIN5 + 3 BIN3 BS 490.25271 .17000 400.00000 788.61314 .15982 291.22807 MN + . 800.00000 -347.42857 .17948 300.86548 BIN5 - 4 BIN4 BS 424.18773 .12000 100.00000 710.52632 .10899 291.54745 MN - . 700.00000 -256.15524 .14651 307.46010 BIN1 + 4 BIN4 BS 424.18773 .12000 100.00000 710.52632 .10899 291.54745 MN + . 700.00000 -256.15524 .14651 307.46010 BIN1 - 5 BIN5 NL . .15000 . -201.78739 .13544 293.27940 BIN3 - .01456 1500.00000 58.79586 +Inf 297.07244 BIN3 + 5 BIN5 NL . .15000 . -201.78739 .13544 293.27940 BIN3 + .01456 1500.00000 58.79586 +Inf 297.07244 BIN3 - 6 ALUM BS 299.63899 .21000 . 358.26772 .18885 289.87879 AL - . +Inf 112.40876 .22622 301.07527 MN + 6 ALUM BS 299.63899 .21000 . 358.26772 .18885 289.87879 AL + . +Inf 112.40876 .22622 301.07527 MN - 7 SILICON BS 120.57762 .38000 . 124.27093 .14828 268.27586 BIN5 - . +Inf 85.54745 .46667 306.66667 MN + 7 SILICON BS 120.57762 .38000 . 124.27093 .14828 268.27586 BIN5 + . +Inf 85.54745 .46667 306.66667 MN -End of report + End of report \end{verbatim} \end{footnotesize} \end{landscape} @@ -1491,13 +1855,13 @@ thus, minimal value of the objective coefficient, on which the current basis still remains optimal, is $0.15-0.01456=0.13644$, that is indicated in the field `\verb|Obj coef range|'. -\newpage +%\newpage -{\parskip=0pt +%{\parskip=0pt \noindent {\it Sensitivity analysis of objective coefficients at basic variables} -\medskip +%\medskip To perform sensitivity analysis for every auxiliary (row) or structural (column) variable the routine starts changing its objective coefficient @@ -1567,6 +1931,6 @@ Note that if the basis does not change, the objective function depends on the objective coefficient at the basic variable linearly, and the per-unit change of the objective function is the value of the basic variable. -} +%} %* eof *% diff --git a/resources/3rdparty/glpk-4.57/doc/glpk04.tex b/resources/3rdparty/glpk-4.65/doc/glpk04.tex similarity index 98% rename from resources/3rdparty/glpk-4.57/doc/glpk04.tex rename to resources/3rdparty/glpk-4.65/doc/glpk04.tex index 2367db573..0a981befe 100644 --- a/resources/3rdparty/glpk-4.57/doc/glpk04.tex +++ b/resources/3rdparty/glpk-4.65/doc/glpk04.tex @@ -51,6 +51,8 @@ auxiliary and structural variables. This allows combining all these variables into one vector that leads to the following problem statement: +\newpage + \noindent \hspace{.5in} minimize (or maximize) $$z=(0\ |\ c)^Tx+c_0\eqno(3.4)$$ @@ -113,7 +115,7 @@ $$(I\ |-\!A)\Pi^T\Pi x=0\ \ \ \Rightarrow\ \ \ (B\ |\ N) where $$(B\ |\ N)=(I\ |-\!A)\Pi^T.\eqno(3.9)$$ -\newpage +%\newpage Matrix $B$ is a square non-singular $m\times m$-matrix, which is composed from columns of the augmented constraint matrix corresponding @@ -166,14 +168,17 @@ $$\lambda_l\leq 0,\ \ \lambda_u\geq 0\ \ \mbox{(maximization)} $$(\lambda_l)_k(x_k-l_k)=0,\ \ (\lambda_u)_k(x_k-u_k)=0,\ \ k=1,2,\dots, m+n\eqno(3.19)$$ where: -$\pi=(\pi_1,\pi_2,\dots,\pi_m)$ is a $m$-vector of Lagrange + +$\pi=(\pi_1,\dots,\pi_m)$ is a $m$-vector of Lagrange multipliers for equality constraints (3.5); -$\lambda_l=[(\lambda_l)_1,(\lambda_l)_2,\dots,(\lambda_l)_n]$ is a -$n$-vector of Lagrange multipliers for lower bound constraints (3.6); -$\lambda_u=[(\lambda_u)_1,(\lambda_u)_2,\dots,(\lambda_u)_n]$ is a -$n$-vector of Lagrange multipliers for upper bound constraints (3.6). -\newpage +$\lambda_l=[(\lambda_l)_1,\dots,(\lambda_l)_n]$ is a $n$-vector of +Lagrange multipliers for lower bound constraints (3.6); + +$\lambda_u=[(\lambda_u)_1,\dots,(\lambda_u)_n]$ is a $n$-vector of +Lagrange multipliers for upper bound constraints (3.6). + +%\newpage Condition (3.14) is the {\it primal} (original) system of equality constraints (3.5). @@ -196,11 +201,11 @@ the corresponding Lagrange multiplier ($(\lambda_l)_k$ or $(\lambda_u)_k$) must be active. In GLPK two multipliers $(\lambda_l)_k$ and $(\lambda_u)_k$ for each -primal (original) variable $x_k$, $k=1,2,\dots,\linebreak m+n$, are -combined into one multiplier: +primal variable $x_k$, $k=1,\dots,m+n$, are combined into one +multiplier: $$\lambda_k=(\lambda_l)_k+(\lambda_u)_k,\eqno(3.20)$$ which is called a {\it dual variable} for $x_k$. This {\it cannot} lead -to the ambiguity, because both lower and upper bounds of $x_k$ cannot be +to an ambiguity, because both lower and upper bounds of $x_k$ cannot be active at the same time,\footnote{If $x_k$ is a fixed variable, we can think it as double-bounded variable $l_k\leq x_k\leq u_k$, where $l_k=u_k.$} so at least one of $(\lambda_l)_k$ and $(\lambda_u)_k$ must @@ -258,10 +263,6 @@ any basic solution $\lambda_B=0$. Corresponding values of dual variables $\lambda_N$ for non-basic variables $x_N$ can be determined in the following way. From the dual system (3.15) we have: $$(I\ |-\!A)^T\pi+\lambda=(0\ |\ c)^T,\eqno(3.22)$$ - -\newpage - -\noindent so multiplying both sides of (3.22) by matrix $\Pi$ gives: $$\Pi(I\ |-\!A)^T\pi+\Pi\lambda=\Pi(0\ |\ c)^T.\eqno(3.23)$$ From (3.9) it follows that @@ -402,7 +403,7 @@ routine, which uses the basis factorization, the application program must make sure (using the routine \verb|glp_bf_exists|) that the factorization exists and therefore available for computations. -\newpage +%\newpage \subsection{glp\_factorize --- compute the basis factorization} @@ -560,6 +561,8 @@ glp_set_bfcp(lp, &parm); \end{verbatim} \end{footnotesize} +\newpage + \para{Control parameters} This paragraph describes all basis factorization control parameters @@ -622,7 +625,7 @@ on choosing a pivot element, \verb|piv_lim| $\geq$ 1. If \verb|piv_lim| candidates have been considered, the pivoting routine prematurely terminates the search with the best candidate found. -\newpage +\medskip {\tt int suhl} (default: {\tt GLP\_ON}) @@ -1014,6 +1017,8 @@ simplex table column $\Xi_j=(\xi_{ij})$ and uses the permutation matrix $\Pi$ to convert row indices $i$ to original ordinal numbers of auxiliary and structural variables. +\newpage + \subsection{glp\_transform\_row --- transform explicitly specified row} \synopsis diff --git a/resources/3rdparty/glpk-4.57/doc/glpk05.tex b/resources/3rdparty/glpk-4.65/doc/glpk05.tex similarity index 99% rename from resources/3rdparty/glpk-4.57/doc/glpk05.tex rename to resources/3rdparty/glpk-4.65/doc/glpk05.tex index d15123e3f..66e3c40a7 100644 --- a/resources/3rdparty/glpk-4.57/doc/glpk05.tex +++ b/resources/3rdparty/glpk-4.65/doc/glpk05.tex @@ -103,7 +103,7 @@ If $L=\varnothing$ then GO TO 9. Select $P\in L$, i.e. make active subproblem $P$ current. -\newpage +%\newpage {\it 3. Solving LP relaxation} @@ -231,23 +231,23 @@ Fig. 1. An example of the search tree. In GLPK each node may have one of the following four statuses: -\vspace*{-8pt} +%\vspace*{-8pt} -\begin{itemize} -\item {\it current node} is the active node currently being +%\begin{itemize} +\Item{---}{\it current node} is the active node currently being processed; -\item {\it active node} is a leaf node, which still has to be +\Item{---}{\it active node} is a leaf node, which still has to be processed; -\item {\it non-active node} is a node, which has been processed, +\Item{---}{\it non-active node} is a node, which has been processed, but not fathomed; -\item {\it fathomed node} is a node, which has been processed and +\Item{---}{\it fathomed node} is a node, which has been processed and fathomed. -\end{itemize} +%\end{itemize} -\vspace*{-8pt} +%\vspace*{-8pt} In the data structure representing the search tree GLPK keeps only current, active, and non-active nodes. Once a node has been fathomed, @@ -571,6 +571,8 @@ where \verb|best_mip| is the best integer feasible solution found so far, \verb|best_bnd| is the best (global) bound. If no integer feasible solution has been found yet, \verb|gap| is set to \verb|DBL_MAX|. +\newpage + \returns The routine \verb|glp_ios_mip_gap| returns the relative MIP gap. @@ -713,6 +715,8 @@ The parameter \verb|sel| is a flag that indicates which branch \verb|GLP_NO_BRNCH| --- use general selection technique. +\newpage + \para{Comments} On branching the solver removes the current active subproblem from the @@ -885,6 +889,8 @@ subproblem is the level of its parent plus one.) The routine \verb|glp_ios_node_bound| returns the local bound for (active or inactive) subproblem, whose reference number is $p$. +\newpage + \para{Comments} The local bound for subproblem $p$ is an lower (minimization) or upper @@ -992,6 +998,8 @@ The parameter \verb|type| specifies the constraint type as follows: \verb|GLP_UP| means inequality constraint $\Sigma a_jx_j\leq b$; +\newpage + The parameter \verb|rhs| specifies the right-hand side $b$. All cutting plane constraints in the cut pool are identified by their diff --git a/resources/3rdparty/glpk-4.57/doc/glpk06.tex b/resources/3rdparty/glpk-4.65/doc/glpk06.tex similarity index 99% rename from resources/3rdparty/glpk-4.57/doc/glpk06.tex rename to resources/3rdparty/glpk-4.65/doc/glpk06.tex index dad96c578..51bec189b 100644 --- a/resources/3rdparty/glpk-4.57/doc/glpk06.tex +++ b/resources/3rdparty/glpk-4.65/doc/glpk06.tex @@ -388,6 +388,8 @@ The routine \verb|glp_realloc| returns a pointer to the memory block reallocated. To free this block the routine \verb|glp_free| (not the standard C function \verb|free|!) should be used. +\newpage + \subsection{glp\_free --- free memory block} \synopsis diff --git a/resources/3rdparty/glpk-4.57/doc/glpk07.tex b/resources/3rdparty/glpk-4.65/doc/glpk07.tex similarity index 100% rename from resources/3rdparty/glpk-4.57/doc/glpk07.tex rename to resources/3rdparty/glpk-4.65/doc/glpk07.tex diff --git a/resources/3rdparty/glpk-4.57/doc/glpk08.tex b/resources/3rdparty/glpk-4.65/doc/glpk08.tex similarity index 96% rename from resources/3rdparty/glpk-4.57/doc/glpk08.tex rename to resources/3rdparty/glpk-4.65/doc/glpk08.tex index e56a8e892..2636cb3c8 100644 --- a/resources/3rdparty/glpk-4.57/doc/glpk08.tex +++ b/resources/3rdparty/glpk-4.65/doc/glpk08.tex @@ -28,7 +28,7 @@ fixed fields: \begin{center} \begin{tabular}{lcccccc} -& Field 1 & Field 2 & Field 3 & Field 4 & Field 5 & Feld 6 \\ +& Field 1 & Field 2 & Field 3 & Field 4 & Field 5 & Field 6 \\ \hline Columns & 2---3 & 5---12 & 15---22 & 25---36 & 40---47 & 50---61 \\ Contents & Code & Name & Name & Number & Name & Number \\ @@ -55,7 +55,7 @@ characters. If the sign $s$ is omitted, the plus sign is assumed. The exponent part is optional. If a number contains spaces, the spaces are ignored. -\newpage +%\newpage If a card has the asterisk `\verb|*|' in the column 1, this card is considered as a comment and ignored. Besides, if the first character in @@ -64,37 +64,37 @@ dollar sign to the end of card are considered as a comment and ignored. MPS file should contain cards in the following order: -\vspace*{-8pt} +%\vspace*{-8pt} -\begin{itemize} -\item NAME indicator card; +%\begin{itemize} +\Item{---}NAME indicator card; -\item ROWS indicator card; +\Item{---}ROWS indicator card; -\item data cards specifying rows (constraints); +\Item{---}data cards specifying rows (constraints); -\item COLUMNS indicator card; +\Item{---}COLUMNS indicator card; -\item data cards specifying columns (structural variables) and +\Item{---}data cards specifying columns (structural variables) and constraint coefficients; -\item RHS indicator card; +\Item{---}RHS indicator card; -\item data cards specifying right-hand sides of constraints; +\Item{---}data cards specifying right-hand sides of constraints; -\item RANGES indicator card; +\Item{---}RANGES indicator card; -\item data cards specifying ranges for double-bounded constraints; +\Item{---}data cards specifying ranges for double-bounded constraints; -\item BOUNDS indicator card; +\Item{---}BOUNDS indicator card; -\item data cards specifying types and bounds of structural +\Item{---}data cards specifying types and bounds of structural variables; -\item ENDATA indicator card. -\end{itemize} +\Item{---}ENDATA indicator card. +%\end{itemize} -\vspace*{-8pt} +%\vspace*{-8pt} {\it Section} is a group of cards consisting of an indicator card and data cards succeeding this indicator card. For example, the ROWS section @@ -120,7 +120,7 @@ position, except position 1, which must be blank, and must be separated from each other by one or more blanks. However, the fields must appear in the same order as in fixed MPS format. -\newpage +%\newpage Symbolic names in fields 2, 3, and 5 may be longer than 8 characters\footnote{GLPK allows symbolic names having up to 255 @@ -136,6 +136,8 @@ If the first character of any field (not necessarily fields 3 and 5) is the dollar sign (\$), all characters from the dollar sign to the end of record are considered as a comment and ignored. +\newpage + \section{NAME indicator card} The NAME indicator card should be the first card in the MPS file @@ -178,7 +180,7 @@ can be considered as bounds of such auxiliary variable. The filed 2 specifies a row name (which is considered as the name of the corresponding auxiliary variable). -\newpage +%\newpage The fields 3, 4, 5, and 6 are not used and should be empty. @@ -236,7 +238,7 @@ vectors in the same MPS file. However, before solving the problem a particular RHS vector should be chosen.}. If this field is empty, the RHS vector name from the immediately preceeding data card is assumed. -\newpage +%\newpage The field 3 specifies a row name defined in the ROWS section. @@ -260,6 +262,8 @@ Right-hand sides not specified in the RHS section are considered as zeros. Therefore zero right-hand sides may be omitted, although it is allowed to explicitly specify them. +\newpage + \section{RANGES section} The RANGES section should start with the indicator card, which contains @@ -297,7 +301,7 @@ section. For each double-side constraint specified in the RANGES section its lower and upper bounds are determined as follows: -\newpage +%\newpage \begin{center} \begin{tabular}{cccc} @@ -366,7 +370,7 @@ have zero lower bound and no upper bound. Lower ($l_j$) and upper following way, where $s_j$ is a corresponding bound value explicitly specified in the BOUNDS section: -\newpage +%\newpage \verb|LO| sets $l_j$ to $s_j$; @@ -430,9 +434,6 @@ SI &= .02\ bin_1 + .06\ bin_2 + .08\ bin_3 + .12\ bin_4 + .02\ bin_5 + .01\ al + .97\ si \\ \end{array} $$ - -\newpage - \noindent\hspace{.5in}and bounds of (auxiliary and structural) variables $$ @@ -452,7 +453,7 @@ $$ A complete MPS file which specifies data for this example is shown below (the first two comment lines show card positions). -\bigskip +\newpage \begin{footnotesize} \begin{verbatim} @@ -513,11 +514,11 @@ ENDATA \end{verbatim} \end{footnotesize} -\vspace*{-6pt} +%\vspace*{-6pt} \section{MIP features} -\vspace*{-4pt} +%\vspace*{-4pt} The MPS format provides two ways for introducing integer variables into the problem. @@ -590,9 +591,9 @@ $$ \end{array} $$ -The corresponding MPS file may look like the following: +The corresponding MPS file may look like follows: -\medskip +\newpage \begin{footnotesize} \begin{verbatim} @@ -628,13 +629,14 @@ ENDATA \end{verbatim} \end{footnotesize} -\newpage +%\newpage +\vspace{-3pt} The same example may be coded without INTORG/INTEND markers using the bound type UI for the variable $x_2$ and the bound type BV for the variable $x_3$: -\medskip +%\medskip \begin{footnotesize} \begin{verbatim} diff --git a/resources/3rdparty/glpk-4.57/doc/glpk09.tex b/resources/3rdparty/glpk-4.65/doc/glpk09.tex similarity index 93% rename from resources/3rdparty/glpk-4.57/doc/glpk09.tex rename to resources/3rdparty/glpk-4.65/doc/glpk09.tex index d04865d9d..a78e9878e 100644 --- a/resources/3rdparty/glpk-4.57/doc/glpk09.tex +++ b/resources/3rdparty/glpk-4.65/doc/glpk09.tex @@ -93,24 +93,24 @@ improve readability of the LP file. Besides, blanks should be used to separate elements from each other if there is no other way to do that (for example, to separate a keyword from a following symbolic name). -The order of an LP file is: +The order of an LP file is the following: -\vspace*{-8pt} +%\vspace*{-8pt} -\begin{itemize} -\item objective function definition; +%\begin{itemize} +\Item{---}objective function definition; -\item constraints section; +\Item{---}constraints section; -\item bounds section; +\Item{---}bounds section; -\item general, integer, and binary sections (can appear in arbitrary -order); +\Item{---}general, integer, and binary sections (can appear in +arbitrary order); -\item end keyword. -\end{itemize} +\Item{---}end keyword. +%\end{itemize} -\vspace*{-8pt} +%\vspace*{-8pt} These components are discussed in following sections. @@ -126,7 +126,7 @@ $$ \begin{array}{@{}c@{}} {\tt minimize} \\ {\tt maximize} \end{array} -\right\}\ f\ {\tt :}\ s\ c\ x\ s\ c\ x\ \dots\ s\ c\ x +\right\}\ f\ {\tt :}\ s\ c\ x\ \dots\ s\ c\ x $$ where $f$ is a symbolic name of the objective function, $s$ is a sign \verb|+| or \verb|-|, $c$ is a numeric constant that denotes an @@ -165,7 +165,6 @@ The constraint section has the following form: \begin{tabular}{l} \verb|subject to| \\ {\it constraint}$_1$ \\ -{\it constraint}$_2$ \\ \hspace{20pt}\dots \\ {\it constraint}$_m$ \\ \end{tabular} @@ -181,7 +180,7 @@ line as the keyword `\verb|subject to|'. Constraint definitions have the following form: $$ -r\ {\tt:}\ s\ c\ x\ s\ c\ x\ \dots\ s\ c\ x +r\ {\tt:}\ s\ c\ x\ \dots\ s\ c\ x \ \left\{ \begin{array}{@{}c@{}} \mbox{\tt<=} \\ \mbox{\tt>=} \\ \mbox{\tt=} @@ -194,13 +193,13 @@ coefficient, $x$ is a symbolic name of a variable, $b$ is a right-hand side. The name $r$ of a constraint (which is the name of the corresponding -auxiliary variable) is optional and may be omitted (together with the -semicolon that follows it). In this case the default names like +auxiliary variable) is optional and may be omitted together with the +semicolon that follows it. In the latter case the default names like `\verb|r.nnn|' are assigned to unnamed constraints. -The linear form $s\ c\ x\ s\ c\ x\ \dots\ s\ c\ x$ in the left-hand -side of a constraint definition has exactly the same meaning as in the -case of the objective function definition (see above). +The linear form $s\ c\ x\ \dots\ s\ c\ x$ in the left-hand side of +a constraint definition has exactly the same meaning as in the case of +the objective function definition (see above). After the linear form one of the following delimiters that indicates the constraint sense must be specified: @@ -251,7 +250,6 @@ The bounds section has the following form: \begin{tabular}{l} \verb|bounds| \\ {\it definition}$_1$ \\ -{\it definition}$_2$ \\ \hspace{20pt}\dots \\ {\it definition}$_p$ \\ \end{tabular} @@ -266,7 +264,7 @@ implementation allows several bound definitions to be placed on the same line.} except the very first bound definition which can begin on the same line as the keyword `\verb|bounds|'. -\newpage +%\newpage Syntactically constraint definitions can have one of the following six forms: @@ -285,8 +283,8 @@ $x$ \verb|free| &specifies free variable \noindent where $x$ is a symbolic name of a variable, $l$ is a numeric constant with an optional sign that defines a lower bound of the variable or -\verb|-inf| that means that the variable has no lower bound, $u$ is a -numeric constant with an optional sign that defines an upper bound of +\verb|-inf| that means that the variable has no lower bound, $u$ is +a~numeric constant with an optional sign that defines an upper bound of the variable or \verb|+inf| that means that the variable has no upper bound, $t$ is a numeric constant with an optional sign that defines a fixed value of the variable. @@ -329,7 +327,6 @@ $ \right\} $ \\ \hspace{10pt}$x_1$ \\ -\hspace{10pt}$x_2$ \\ \hspace{10pt}\dots \\ \hspace{10pt}$x_q$ \\ \end{tabular} @@ -344,7 +341,7 @@ line.} except the very first symbolic name which can begin on the same line as the keyword `\verb|general|', `\verb|integer|', or `\verb|binary|'. -\newpage +%\newpage If a variable appears in the general or the integer section, it is assumed to be general integer variable. If a variable appears in the @@ -363,6 +360,8 @@ Here is an example of the integer section: z35 \end{verbatim} +\newpage + \section{End keyword} The keyword `\verb|end|' is intended to end the LP file. It must begin diff --git a/resources/3rdparty/glpk-4.57/doc/glpk10.tex b/resources/3rdparty/glpk-4.65/doc/glpk10.tex similarity index 99% rename from resources/3rdparty/glpk-4.57/doc/glpk10.tex rename to resources/3rdparty/glpk-4.65/doc/glpk10.tex index 01c4f35d4..1943ef02e 100644 --- a/resources/3rdparty/glpk-4.57/doc/glpk10.tex +++ b/resources/3rdparty/glpk-4.65/doc/glpk10.tex @@ -138,11 +138,6 @@ the problem, and write its solution to an output text file. --mipgap tol set relative mip gap tolerance to tol --minisat translate integer feasibility problem to CNF-SAT and solve it with MiniSat solver -\end{verbatim} - -\newpage - -\begin{verbatim} --objbnd bound add inequality obj <= bound (minimization) or obj >= bound (maximization) to integer feasibility problem (assumes --minisat) diff --git a/resources/3rdparty/glpk-4.57/doc/glpk11.tex b/resources/3rdparty/glpk-4.65/doc/glpk11.tex similarity index 96% rename from resources/3rdparty/glpk-4.57/doc/glpk11.tex rename to resources/3rdparty/glpk-4.65/doc/glpk11.tex index d45ab3d29..ff731fb56 100644 --- a/resources/3rdparty/glpk-4.57/doc/glpk11.tex +++ b/resources/3rdparty/glpk-4.65/doc/glpk11.tex @@ -1,10 +1,10 @@ %* glpk11.tex *% -\chapter{External Software Modules Used In GLPK} +\chapter{External Software Used In GLPK} -In the GLPK package there are used some external software modules -listed in this Appendix. Note that these modules are {\it not} part of -GLPK, but are used with GLPK and included in the distribution. +In the GLPK package there are used some external software listed in +this Appendix. Note that these software are {\it not} part of GLPK, but +are used with GLPK and included in the distribution. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -117,6 +117,8 @@ details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\newpage + \section{MiniSat} \noindent @@ -128,6 +130,8 @@ MiniSat is a minimalistic implementation of a Chaff-like SAT solver based on the two-literal watch scheme for fast BCP and clause learning by conflict analysis. +\newpage + \para{License} Permission is hereby granted, free of charge, to any person obtaining a diff --git a/resources/3rdparty/glpk-4.57/doc/glpk12.tex b/resources/3rdparty/glpk-4.65/doc/glpk12.tex similarity index 96% rename from resources/3rdparty/glpk-4.57/doc/glpk12.tex rename to resources/3rdparty/glpk-4.65/doc/glpk12.tex index 2c2b1b7a6..ea69587a0 100644 --- a/resources/3rdparty/glpk-4.57/doc/glpk12.tex +++ b/resources/3rdparty/glpk-4.65/doc/glpk12.tex @@ -21,7 +21,7 @@ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. \end{quotation} -\section*{Preamble} +\medskip\para{\normalsize Preamble} The GNU General Public License is a free, copyleft license for software and other kinds of works. @@ -84,9 +84,11 @@ patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. -\section*{TERMS AND CONDITIONS} +\newpage + +\medskip\para{\normalsize TERMS AND CONDITIONS} -\subsubsection*{0. Definitions.} +\medskip\para{\normalsize 0. Definitions.} ``This License'' refers to version 3 of the GNU General Public License. @@ -126,7 +128,7 @@ work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. -\subsubsection*{1. Source Code.} +\medskip\para{\normalsize 1. Source Code.} The ``source code'' for a work means the preferred form of the work for making modifications to it. ``Object code'' means any non-source @@ -168,7 +170,7 @@ Source. The Corresponding Source for a work in source code form is that same work. -\subsubsection*{2. Basic Permissions.} +\medskip\para{\normalsize 2. Basic Permissions.} All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated @@ -193,7 +195,7 @@ your copyrighted material outside their relationship with you. the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. -\subsubsection*{3. Protecting Users' Legal Rights From +\medskip\para{\normalsize 3. Protecting Users' Legal Rights From Anti-Circumvention Law.} No covered work shall be deemed part of an effective technological @@ -210,7 +212,7 @@ modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. -\subsubsection*{4. Conveying Verbatim Copies.} +\medskip\para{\normalsize 4. Conveying Verbatim Copies.} You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and @@ -223,7 +225,7 @@ recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. -\subsubsection*{5. Conveying Modified Source Versions.} +\medskip\para{\normalsize 5. Conveying Modified Source Versions.} You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the @@ -260,7 +262,7 @@ beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. -\subsubsection*{6. Conveying Non-Source Forms.} +\medskip\para{\normalsize 6. Conveying Non-Source Forms.} You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the @@ -359,10 +361,10 @@ documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. -\subsubsection*{7. Additional Terms.} +\medskip\para{\normalsize 7. Additional Terms.} - ``Additional permissions'' are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. + ``Additional permissions'' are terms that supplement the terms of +this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions @@ -423,7 +425,7 @@ where to find the applicable terms. form of a separately written license, or stated as exceptions; the above requirements apply either way. -\subsubsection*{8. Termination.} +\medskip\para{\normalsize 8. Termination.} You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or @@ -451,7 +453,7 @@ this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. -\subsubsection*{9. Acceptance Not Required for Having Copies.} +\medskip\para{\normalsize 9. Acceptance Not Required for Having Copies.} You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work @@ -462,7 +464,7 @@ modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. -\subsubsection*{10. Automatic Licensing of Downstream Recipients.} +\medskip\para{\normalsize 10. Automatic Licensing of Downstream Recipients.} Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and @@ -487,7 +489,7 @@ rights granted under this License, and you may not initiate litigation any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. -\subsubsection*{11. Patents.} +\medskip\para{\normalsize 11. Patents.} A ``contributor'' is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The @@ -556,7 +558,7 @@ or that patent license was granted, prior to 28 March 2007. any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. -\subsubsection*{12. No Surrender of Others' Freedom.} +\medskip\para{\normalsize 12. No Surrender of Others' Freedom.} If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not @@ -569,7 +571,8 @@ whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. -\subsubsection*{13. Use with the GNU Affero General Public License.} +\medskip\para{\normalsize 13. Use with the GNU Affero General Public +License.} Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed @@ -580,7 +583,7 @@ but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. -\subsubsection*{14. Revised Versions of this License.} +\medskip\para{\normalsize 14. Revised Versions of this License.} The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions @@ -606,7 +609,7 @@ permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. -\subsubsection*{15. Disclaimer of Warranty.} +\medskip\para{\normalsize 15. Disclaimer of Warranty.} THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT @@ -617,7 +620,7 @@ PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. -\subsubsection*{16. Limitation of Liability.} +\medskip\para{\normalsize 16. Limitation of Liability.} IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR @@ -629,7 +632,7 @@ SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -\subsubsection*{17. Interpretation of Sections 15 and 16.} +\medskip\para{\normalsize 17. Interpretation of Sections 15 and 16.} If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, @@ -638,11 +641,11 @@ an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. -\section*{END OF TERMS AND CONDITIONS} +\medskip\para{\normalsize END OF TERMS AND CONDITIONS} \newpage -\section*{How to Apply These Terms to Your New Programs} +\medskip\para{\normalsize How to Apply These Terms to Your New Programs} If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it diff --git a/resources/3rdparty/glpk-4.57/doc/gmpl.pdf b/resources/3rdparty/glpk-4.65/doc/gmpl.pdf similarity index 62% rename from resources/3rdparty/glpk-4.57/doc/gmpl.pdf rename to resources/3rdparty/glpk-4.65/doc/gmpl.pdf index 0f6833f682a49484f2be289b556aaac9e8f0b5ac..110b92455616e3207b73ec31d7d25471d33eb211 100644 GIT binary patch delta 80451 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

pWC=CPf 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 Zf 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

;uQ*S)Hw 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ⅅnBabtWq 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

6RS(^7=yrJ=gB*)`|Nl*G<^;f=!Lc7YwKA1 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 r5n8-!>7Srw3V5Rb-@Dhz*}&1+-O. +% 2009, 2010, 2011, 2013, 2014, 2015 Andrew Makhorin, Department for +% Applied Informatics, Moscow Aviation Institute, Moscow, Russia. All +% rights reserved. E-mail: . % % GLPK is free software: you can redistribute it and/or modify it % under the terms of the GNU General Public License as published by @@ -25,6 +25,7 @@ \documentclass[11pt,spanish]{report} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} +\usepackage{lmodern} \usepackage{amssymb} \usepackage[dvipdfm,linktocpage,colorlinks,linkcolor=blue, urlcolor=blue]{hyperref} @@ -73,12 +74,12 @@ urlcolor=blue]{hyperref} \vspace{0.5in} \begin{LARGE} -\sf para GLPK Versión 4.50 +\sf para GLPK Versión 4.57 \end{LARGE} \vspace{0.5in} \begin{Large} -\sf (BORRADOR, Mayo del 2013) +\sf (BORRADOR, octubre del 2015) \end{Large} \end{center} @@ -93,10 +94,7 @@ urlcolor=blue]{hyperref} El paquete GLPK es parte del Proyecto GNU distribuido bajo la égida de GNU \noindent -Copyright \copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, -2008, 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied -Informatics, Moscow Aviation Institute, Moscow, Russia. Todos los derechos -reservados. +Copyright \copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2015 Andrew Makhorin, Department for Applied Informatics, Moscow Aviation Institute, Moscow, Russia. Todos los derechos reservados. \noindent Título original en inglés: Modeling Language GNU MathProg - Language Reference for GLPK Version 4.50 @@ -105,7 +103,7 @@ Título original en inglés: Modeling Language GNU MathProg - Language Reference Traducción: Pablo Yapura, Facultad de Ciencias Agrarias y Forestales, Universidad Nacional de La Plata, La Plata, Argentina. \noindent -Copyright \copyright{} 2013 Pablo Yapura, para esta traducción. Todos los derechos reservados. +Copyright \copyright{} 2013, 2014, 2015 Pablo Yapura, para esta traducción. Todos los derechos reservados. \noindent Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, @@ -1534,7 +1532,7 @@ El atributo de valor fijo ({\tt=}) especifica una expresión numérica para calc s.t. r: x + y + z, >= 0, <= 1; limite{t in 1..T}: sum{j in producto} elaborar[j,t] <= max_producto; subject to balance{i in insumo, t in 1..T}: - almacenar[i,t+1] - almacenar[i,t] - + almacenar[i,t+1] = almacenar[i,t] - sum{j in producto} unidades[i,j] * elaborar[j,t]; subject to ltn 'limite tiempo normal' {t in tiempo}: sum{p in producto} pt[p] * rprd[p,t] <= 1.3 * dpp[t] * brigadas[t]; @@ -3075,7 +3073,7 @@ Abajo hay un ejemplo completo de la descripción de un modelo escrito en el leng \begin{verbatim} # UN PROBLEMA DE TRANSPORTE # -# Este problema encuentra la logística de costo mínimo de flete +# Este problema determina la logística de costo mínimo de flete # que cumple los requerimientos en los mercados y en las fábricas # de suministro. # diff --git a/resources/3rdparty/glpk-4.65/doc/gmpl_pt-BR.pdf b/resources/3rdparty/glpk-4.65/doc/gmpl_pt-BR.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a2f25cb6d98ea8d8dd3f5008455357bcd97dea1b GIT binary patch literal 256626 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≈DsMUK9OZt90|$a*fZcs;?EAkrBQL~ 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

    V@s!cRXkUL-{}Ie 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 RyLGPWblY@ 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

    {Zz-${zP?VdN7^ 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 VBO-Uh;Pwtk_-. +% +% GLPK is free software: you can redistribute it and/or modify it +% under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% GLPK is distributed in the hope that it will be useful, but WITHOUT +% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +% or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +% License for more details. +% +% You should have received a copy of the GNU General Public License +% along with GLPK. If not, see . +%*********************************************************************** + +\documentclass[11pt, brazil]{report} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{amssymb} +\usepackage[dvipdfm,linktocpage,colorlinks,linkcolor=blue, +urlcolor=blue]{hyperref} +\usepackage{indentfirst} + +\setlength{\textwidth}{6.5in} +\setlength{\textheight}{8.5in} +\setlength{\oddsidemargin}{0in} +\setlength{\topmargin}{0in} +\setlength{\headheight}{0in} +\setlength{\headsep}{0in} +\setlength{\footskip}{0.5in} +\setlength{\parindent}{16pt} +\setlength{\parskip}{5pt} +\setlength{\topsep}{0pt} +\setlength{\partopsep}{0pt} +\setlength{\itemsep}{\parskip} +\setlength{\parsep}{0pt} +\setlength{\leftmargini}{\parindent} +\renewcommand{\labelitemi}{---} + +\def\para#1{\noindent{\bf#1}} + +\renewcommand\contentsname{\sf\bfseries Conteúdo} +\renewcommand\chaptername{\sf\bfseries Capítulo} +\renewcommand\appendixname{\sf\bfseries Apêndice} + +% \renewcommand\contentsname{\sf\bfseries Contents} +% \renewcommand\chaptername{\sf\bfseries Chapter} +% \renewcommand\appendixname{\sf\bfseries Appendix} + +\begin{document} + +\thispagestyle{empty} + +\begin{center} + +\vspace*{1.5in} + +\begin{huge} +\sf\bfseries Linguagem de Modelagem GNU MathProg +\end{huge} + +\vspace{0.5in} + +\begin{LARGE} +\sf Linguagem de Referência % Language Reference +\end{LARGE} + +\vspace{0.5in} + +\begin{LARGE} +\sf para o GLPK Versão 4.57 +\end{LARGE} + +\vspace{0.5in} +\begin{Large} +\sf (RASCUNHO, Fevereiro 2016) +\end{Large} + +\end{center} + +\newpage + +\vspace*{1in} + +\vfill + +\noindent +% The GLPK package is part of the GNU Project released under the aegis of GNU. +O pacote GLPK é parte do Projeto GNU distribuído sob a égide do GNU. + +\noindent +Copyright \copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016 Andrew Makhorin, Department +for Applied Informatics, Moscow Aviation Institute, Moscow, Russia. +% All rights reserved. +Todos os direitos reservados. + +\noindent +Título original: Modeling Language GNU MathProg - Language Reference for GLPK Version 4.57 + +\noindent +Tradução: João Flávio de Freitas Almeida, Departamento de Engenharia de Produção, Universidade Federal de Minas Gerais, +Minas Gerais, Brasil. + +\noindent +Copyright \copyright{} 2015 João Flávio de Freitas Almeida, para esta tradução. Todos os direitos reservados. + +\noindent +Free Software Foundation, Inc., Rua Franklin, 51, 5$^{o}$ andar, Boston, +MA 02110-1301, USA. + +\noindent +É permitido realizar e distribuir cópias textuais deste manual +mantendo o aviso de copyright e preservando este aviso de permissão +em todas as cópias. +% Permission is granted to make and distribute verbatim copies of this +% manual provided the copyright notice and this permission notice are +% preserved on all copies. + +\noindent +É concedida a permissão para copiar e distribuir versões modificadas deste manual sob +as condições de cópias textuais, desde que o resultado completo derivado +do trabalho resultante seja distribuído sob os termos de uma notificação +de permissão idêntica a esta. + +% Permission is granted to copy and distribute modified versions of this +% manual under the conditions for verbatim copying, provided also that +% the entire resulting derived work is distributed under the terms of +% a permission notice identical to this one. + +\noindent +É concedida a permissão para copiar e distribuir traduções deste manual +em outra linguagem, sob as condições acima para as versões modificadas. + +% Permission is granted to copy and distribute translations of this +% manual into another language, under the above conditions for modified +% versions. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newpage + +{\setlength{\parskip}{0pt} +\tableofcontents +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Introdução} + +{\it GNU MathProg} é uma linguagem de modelagem projetada para descrever +modelos lineares de programação matemática. +\footnote{A linguagem GNU MathProg é um subconjunto da linguagem AMPL. +A implementação do GLPK é \linebreak principalmente baseada no artigo: +{\it Robert Fourer}, {\it David M. Gay}, and +{\it Brian W. Kernighan}, ``A Modeling Language for Mathematical +Programming.'' {\it Management Science} 36 (1990), pp.~519-54.} + +% {\it GNU MathProg} is a modeling language intended for describing +% linear mathematical programming models.\footnote{The GNU MathProg +% language is a subset of the AMPL language. Its GLPK implementation is +% mainly based on the paper: {\it Robert Fourer}, {\it David M. Gay}, and +% {\it Brian W. Kernighan}, ``A Modeling Language for Mathematical +% Programming.'' {\it Management Science} 36 (1990), pp.~519-54.} + +A descrição de um modelo escrito na linguagem GNU MathProg consiste +em um conjunto de sentenças e blocos de dados construído pelo +usuário a partir dos elementos de linguagem descritos neste documento. + + +% Model descriptions written in the GNU MathProg language consist of +% a set of statements and data blocks constructed by the user from the +% language elements described in this document. + +Em um processo denominado {\it tradução}, um programa denominado +{\it tradutor do modelo} analisa a descrição do modelo e o traduz +para uma estrutura de dados interna, que pode ser usado tanto para gerar +instância de um problema de programação matemática ou obter diretamente +a solução numérica do problema por meio de um programa chamado {\it solver}. + +% In a process called {\it translation}, a program called the {\it model +% translator} analyzes the model description and translates it into +% internal data structures, which may be then used either for generating +% mathematical programming problem instance or directly by a program +% called the {\it solver} to obtain numeric solution of the problem. + +\section{Problema de programação linear} +\label{problem} + +Em MathProg o problema de programação linear (PL) é expresso da seguinte forma: + +% In MathProg the linear programming (LP) problem is stated as follows: + +\medskip + +\noindent\hspace{1in}minimizar (ou maximizar) +$$z=c_1x_1+c_2x_2+\dots+c_nx_n+c_0\eqno(1.1)$$ +\noindent\hspace{1in}subjeito às restrições lineares +$$ +\begin{array}{l@{\ }c@{\ }r@{\ }c@{\ }r@{\ }c@{\ }r@{\ }c@{\ }l} +L_1&\leq&a_{11}x_1&+&a_{12}x_2&+\dots+&a_{1n}x_n&\leq&U_1\\ +L_2&\leq&a_{21}x_1&+&a_{22}x_2&+\dots+&a_{2n}x_n&\leq&U_2\\ +\multicolumn{9}{c}{.\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .}\\ +L_m&\leq&a_{m1}x_1&+&a_{m2}x_2&+\dots+&a_{mn}x_n&\leq&U_m\\ +\end{array}\eqno(1.2) +$$ +\noindent\hspace{1in}e os limites das variáveis +$$ +\begin{array}{l@{\ }c@{\ }c@{\ }c@{\ }l} +l_1&\leq&x_1&\leq&u_1\\ +l_2&\leq&x_2&\leq&u_2\\ +\multicolumn{5}{c}{.\ \ .\ \ .\ \ .\ \ .}\\ +l_n&\leq&x_n&\leq&u_n\\ +\end{array}\eqno(1.3) +$$ + +% \newpage + +\noindent +onde $x_1$, $x_2$, \dots, $x_n$ são variáveis; $z$ é a função objetivo +; $c_1$, $c_2$, \dots, $c_n$ são coeficientes da função objetivo; $c_0$ +é o termo constante da função objetivo; $a_{11}$, +$a_{12}$, \dots, $a_{mn}$ são coeficientes das restrições; $L_1$, $L_2$, +\dots, $L_m$ são limites inferiores das restrições; $U_1$, $U_2$, \dots, $U_m$ +são limites superiores das restrições; $l_1$, $l_2$, \dots, $l_n$ são limites +inferiores das variáveis; $u_1$, $u_2$, \dots, $u_n$ são limites superiores das +variáveis. + +Os limites das variáveis e das restrições podem ser tanto finitos quanto +infinitos. Além disso, os limites inferiores podem ser igual aos limites +superiores correspondentes. Logo, os seguintes tipos de variáveis e +restrições são permitidos: + + +% where $x_1$, $x_2$, \dots, $x_n$ are variables; $z$ is the objective +% function; $c_1$, $c_2$, \dots, $c_n$ are objective coefficients; $c_0$ +% is the constant term (``shift'') of the objective function; $a_{11}$, +% $a_{12}$, \dots, $a_{mn}$ are constraint coefficients; $L_1$, $L_2$, +% \dots, $L_m$ are lower constraint bounds; $U_1$, $U_2$, \dots, $U_m$ +% are upper constraint bounds; $l_1$, $l_2$, \dots, $l_n$ are lower +% bounds of variables; $u_1$, $u_2$, \dots, $u_n$ are upper bounds of +% variables. +% +% Bounds of variables and constraint bounds can be finite as well as +% infinite. Besides, lower bounds can be equal to corresponding upper +% bounds. Thus, the following types of variables and constraints are +% allowed: + +\medskip + +{\def\arraystretch{1.4} +\noindent\hspace{54pt} +\begin{tabular}{@{}r@{\ }c@{\ }c@{\ }c@{\ }l@{\hspace*{39.5pt}}l} +$-\infty$&$<$&$x$&$<$&$+\infty$&Variável livre (ilimitada)\\ +$l$&$\leq$&$x$&$<$&$+\infty$&Variável com limite inferior\\ +$-\infty$&$<$&$x$&$\leq$&$u$&Variável com limite superior\\ +$l$&$\leq$&$x$&$\leq$&$u$&Variável duplamente limitada\\ +$l$&$=$&$x$&=&$u$&Variável fixa\\ +\end{tabular} +% \begin{tabular}{@{}r@{\ }c@{\ }c@{\ }c@{\ }l@{\hspace*{39.5pt}}l} +% $-\infty$&$<$&$x$&$<$&$+\infty$&Free (unbounded) variable\\ +% $l$&$\leq$&$x$&$<$&$+\infty$&Variable with lower bound\\ +% $-\infty$&$<$&$x$&$\leq$&$u$&Variable with upper bound\\ +% $l$&$\leq$&$x$&$\leq$&$u$&Double-bounded variable\\ +% $l$&$=$&$x$&=&$u$&Fixed variable\\ +% \end{tabular} + +\noindent\hfil +\begin{tabular}{@{}r@{\ }c@{\ }c@{\ }c@{\ }ll} +$-\infty$&$<$&$\sum a_jx_j$&$<$&$+\infty$&Forma linear livre (ilimitada)\\ +$L$&$\leq$&$\sum a_jx_j$&$<$&$+\infty$&Restrição de desigualdade ``maior ou igual a''\\ +$-\infty$&$<$&$\sum a_jx_j$&$\leq$&$U$&Restrição de desigualdade ``menor ou igual a''\\ +$L$&$\leq$&$\sum a_jx_j$&$\leq$&$U$&Restrição de desigualdade duplamente limitada\\ +$L$&$=$&$\sum a_jx_j$&=&$U$&Restrição de igualdade\\ +\end{tabular} +% \begin{tabular}{@{}r@{\ }c@{\ }c@{\ }c@{\ }ll} +% $-\infty$&$<$&$\sum a_jx_j$&$<$&$+\infty$&Free (unbounded) linear +% form\\ +% $L$&$\leq$&$\sum a_jx_j$&$<$&$+\infty$&Inequality constraint ``greater +% than or equal to''\\ +% $-\infty$&$<$&$\sum a_jx_j$&$\leq$&$U$&Inequality constraint ``less +% than or equal to''\\ +% $L$&$\leq$&$\sum a_jx_j$&$\leq$&$U$&Double-bounded inequality +% constraint\\ +% $L$&$=$&$\sum a_jx_j$&=&$U$&Equality constraint\\ +% \end{tabular} +} + +\medskip + +Além de problemas puramente PL, MathProg também permite +problemas de programação inteira mista (PIM), onde algumas ou +todas as variáveis são restritas a serem inteiras ou binárias. + +% In addition to pure LP problems MathProg also allows mixed integer +% linear programming (MIP) problems, where some or all variables are +% restricted to be integer or binary. + +\section{Objetos do modelo} + +Em MathProg o modelo é descrito em termos de conjuntos, parâmetros, +variáveis, restrições e objetivos, que se denominam {\it objetos +do modelo}. + +O usuário introduz objetos particulares do modelo usando as sentenças +da linguagem. Cada objeto do modelo possui um nome simbólico que o identifica +de maneira única sendo projetado para propósitos de referenciação. + +% In MathProg the model is described in terms of sets, parameters, +% variables, constraints, and objectives, which are called {\it model +% objects}. +% +% The user introduces particular model objects using the language +% statements. Each model object is provided with a symbolic name which +% uniquely identifies the object and is intended for referencing +% purposes. + +Objetos do modelo, incluindo conjuntos, podem ser matrizes multidimensionais +construídos sobre conjuntos indexantes. Formalmente, uma matriz $n$-dimensional $A$ +é o mapeamento: +% Model objects, including sets, can be multidimensional arrays built +% over indexing sets. Formally, $n$-dimensional array $A$ is the mapping: +$$A:\Delta\rightarrow\Xi,\eqno(1.4)$$ +onde $\Delta\subseteq S_1\times\dots\times S_n$ é um subconjunto do +produto Cartesiano de conjuntos indexantes, $\Xi$ é um conjunto dos +membros da matriz. Em MathProg o conjunto $\Delta$ é chamado o {\it domínio do subíndice}. % REVISAR +Seus membros são $n$-tuplas $(i_1,\dots,i_n)$, onde $i_1\in S_1$, \dots, +$i_n\in S_n$. +% where $\Delta\subseteq S_1\times\dots\times S_n$ is a subset of the +% Cartesian product of indexing sets, $\Xi$ is a set of array members. +% In MathProg the set $\Delta$ is called the {\it subscript domain}. Its +% members are $n$-tuples $(i_1,\dots,i_n)$, where $i_1\in S_1$, \dots, +% $i_n\in S_n$. + +Se $n=0$, o produto Cartesiano acima possui exatamente um membro (denominado +0-tupla), portanto, é conveniente pensar nos objetos escalares como sendo +matrizes 0-dimensionais que \linebreak possuem apenas um membro. +% If $n=0$, the Cartesian product above has exactly one member (namely, +% 0-tuple), so it is convenient to think scalar objects as 0-dimensional +% arrays having one member. + +% \newpage + +O tipo dos membros da matriz é determinado pelo tipo de objeto do modelo +correspondente, como segue: +% The type of array members is determined by the type of corresponding +% model object as follows: + +\medskip + +\noindent\hfil +\begin{tabular}{@{}ll@{}} +Objeto do modelo&Membro da matriz\\ +\hline +Conjunto&Conjunto plano elementar\\ +Parâmetro&Número ou símbolo\\ +Variável&Variável elementar\\ +Restrição&Restrição elementar\\ +Objetivo&Objetivo elementar\\ +\end{tabular} +% \begin{tabular}{@{}ll@{}} +% Model object&Array member\\ +% \hline +% Set&Elemental plain set\\ +% Parameter&Number or symbol\\ +% Variable&Elemental variable\\ +% Constraint&Elemental constraint\\ +% Objective&Elemental objective\\ +% \end{tabular} + +\medskip + +Para referir a um membro particular de um objeto, este deve possuir +{\it subíndices}. Por exemplo, se $a$ é um parâmetro 2-dimensional +definido sobre $I\times J$, uma referência a seus membros particulares +pode ser escrito como $a[i,j]$, onde $i\in I$ e $j\in J$. Entende-se +que objetos escalares não necessitam de subíndices por serem 0-dimensionais. + +% In order to refer to a particular object member the object should be +% provided with {\it subscripts}. For example, if $a$ is a 2-dimensional +% parameter defined over $I\times J$, a reference to its particular +% member can be written as $a[i,j]$, where $i\in I$ and $j\in J$. It is +% understood that scalar objects being 0-dimensional need no subscripts. + +\section{Estrutura da descrição do modelo} + +Às vezes é desejável escrever um modelo que, por diferentes motivos, +tenha que requerer diferentes dados para resolver cada instância do problema +usando o mesmo modelo. +Por esta razão, em MathProg a descrição do modelo consiste em duas partes: +a {\it seção de modelo} e a {\it seção de dados}. + +% It is sometimes desirable to write a model which, at various points, +% may require different data for each problem instance to be solved using +% that model. For this reason in MathProg the model description consists +% of two parts: the {\it model section} and the {\it data section}. + +A seção de modelo é a principal parte da descrição do modelo, pois ela contém +as declarações dos objetos do modelo. Ela também é comum a todos os problemas +baseados no modelo correspondente. + +% The model section is a main part of the model description that contains +% declarations of model objects and is common for all problems based on +% the corresponding model. + +A seção de dados é uma parte opcional da descrição do modelo que +contém dados específicos para uma instância particular do problema. + +% The data section is an optional part of the model description that +% contains data specific for a particular problem instance. + +Dependendo do que seja mais conveniente, as seções de modelo e de dados +podem ser dispostas em um arquivo único ou em dois arquivos separados. +Esta última funcionalidade permite que se tenha um quantidade arbitrária +de seções de dados diferentes a serem usadas com a mesma seção de modelo. + +% Depending on what is more convenient the model and data sections can be +% placed either in one file or in two separate files. The latter feature +% allows having arbitrary number of different data sections to be used +% with the same model section. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Codificação da descrição do modelo} +\label{coding} + +A descrição do modelo é codificada em um formato de arquivo plano de +texto usando o conjunto de caracteres ASCII. +Os caracteres válidos na descrição do modelo são os seguintes: + +% The model description is coded in a plain text format using ASCII +% character set. Characters valid in the model description are the +% following: + +\begin{itemize} +\item Caracteres alfabéticos:\\ +\verb|A B C D E F G H I J K L M N O P Q R S T U V W X Y Z|\\ +\verb|a b c d e f g h i j k l m n o p q r s t u v w x y z _| +\item caracteres numéricos:\\ +\verb|0 1 2 3 4 5 6 7 8 9| +\item caracteres especiais:\\ +\verb?! " # & ' ( ) * + , - . / : ; < = > [ ] ^ { | } ~? +\item caracteres de espaço em branco:\\ +\verb|SP HT CR NL VT FF| +\end{itemize} + +Dentro de literais de cadeia e comentários quaisquer +caracteres ASCII (exceto caracteres de controle) são válidos. + +% Within string literals and comments any ASCII characters (except +% control characters) are valid. + + +Caracteres de espaço-em-branco não são significativos. Eles podem ser +usados livremente entre unidades léxicas para melhorar a legibilidade da +descrição do modelo. Eles também são usados para separar unidades léxicas +entre si, no caso de não existir outra forma de fazê-lo. + +% White-space characters are non-significant. They can be used freely +% between lexical units to improve readability of the model description. +% They are also used to separate lexical units from each other if there +% is no other way to do that. + +Sintaticamente a descrição do modelo é uma sequência de unidades léxicas +nas seguintes \linebreak categorias: + +% Syntactically model description is a sequence of lexical units in the +% following categories: + +\begin{itemize} +\item nomes simbólicos; +\item literais numéricos; +\item literais de cadeia; +\item palavras-chave; +\item delimitadores; +\item comentários. +\end{itemize} + +% \begin{itemize} +% \item symbolic names; +% \item numeric literals; +% \item string literals; +% \item keywords; +% \item delimiters; +% \item comments. +% \end{itemize} + +As unidades léxicas da linguagem são discutidas abaixo. + +% \newpage + +\section{Nomes simbólicos} + +Um {\it nome simbólico} consiste de caracteres alfabéticos e numéricos, +em que o primeiro deste deve ser alfabético. Todos os nomes simbólicos +devem ser distintos (sensibilidade às maiúsculas: case-sensitive). + +% A {\it symbolic name} consists of alphabetic and numeric characters, +% the first of which should be alphabetic. All symbolic names are +% distinct (case sensitive). + +\para{Exemplos} + +\begin{verbatim} +alfa123 +Este_eh_um_nome +_P123_abc_321 +\end{verbatim} + +Nomes simbólicos são usados para identificar objetos do modelo +(conjuntos, parâmetros, \linebreak variáveis, restrições, objetivos) +e os índices. + +% Symbolic names are used to identify model objects (sets, parameters, +% variables, constraints, objectives) and dummy indices. + +Todos os nomes simbólicos (exceto os nomes dos índices) devem ser únicos, +i.e., a descrição do modelo não pode ter objetos com nomes idênticos. +Nomes simbólicos de índices devem ser únicos dentro do escopo em que são válidos. + +% All symbolic names (except names of dummy indices) should be unique, +% i.e. the model description should have no objects with identical names. +% Symbolic names of dummy indices should be unique within the scope, +% where they are valid. + +\section{Literais numéricos} + +Um {\it literal numérico} possui a forma {\it xx}{\tt E}{\it syy}, onde +{\it xx} é um número com ponto decimal opcional, {\it s} é o sinal +{\tt+} ou {\tt-}, {\it yy} é um expoente decimal. A letra {\tt E} é +insensível à maiúsculas (case-insensitive) e pode ser codificada como {\tt e}. + +% A {\it numeric literal} has the form {\it xx}{\tt E}{\it syy}, where +% {\it xx} is a number with optional decimal point, {\it s} is the sign +% {\tt+} or {\tt-}, {\it yy} is a decimal exponent. The letter {\tt E} is +% case insensitive and can be coded as {\tt e}. + +\para{Exemplos} + +\begin{verbatim} +123 +3.14159 +56.E+5 +.78 +123.456e-7 +\end{verbatim} + +Literais numéricos são usados para representar quantidades numéricas. Eles +possuem significado fixo óbvio. + +% Numeric literals are used to represent numeric quantities. They have +% obvious fixed meaning. + +\section{Literais de cadeia} + +Uma {\it literal de cadeia} é uma sequência arbitrária de caracteres cercada +por aspas tanto simples como duplas. Ambas formas são equivalentes. + +% A {\it string literal} is a sequence of arbitrary characters enclosed +% either in single quotes or in double quotes. Both these forms are +% equivalent. + +Se uma aspa simples é parte de uma literal de cadeia cercada por +aspas simples, ela deve ser codificada duas vezes. De forma análoga, +se uma aspa dupla é parte de um literal de cadeia cercada por aspas duplas, +ela deve ser codificada duas vezes. + +% If a single quote is part of a string literal enclosed in single +% quotes, it should be coded twice. Analogously, if a double quote is +% part of a string literal enclosed in double quotes, it should be coded +% twice. + +\para{Exemplos} + +\begin{verbatim} +'Esta eh uma string' +"Esta eh outra string" +'Copo d''agua' +"""Beleza"" disse o capitao." +\end{verbatim} + +Literais de cadeia são usadas para representar quantidades simbólicas. +% String literals are used to represent symbolic quantities. + +\section{Palavras-chave} + +Uma {\it palavra-chave} é uma sequência de caracteres alfabéticos e +possivelmente alguns caracteres especiais. + +% A {\it keyword} is a sequence of alphabetic characters and possibly +% some special characters. + +Todas as palavras-chave caem em algumas das duas categorias: +{\it palavras-chave reservadas}, que não podem ser usadas como nomes simbólicos, +e {\it palavras-chave não-reservadas}, que são reconhecidas pelo contexto, +portanto, podem ser usadas como nomes simbólicos. + + +As palavras-chave reservadas são as seguintes: + +% All keywords fall into two categories: {\it reserved keywords}, which +% cannot be used as symbolic names, and {\it non-reserved keywords}, +% which are recognized by context and therefore can be used as symbolic +% names. +% +% The reserved keywords are the following: + +\noindent\hfil +\begin{tabular}{@{}p{.7in}p{.7in}p{.7in}p{.7in}@{}} +{\tt and}&{\tt else}&{\tt mod}&{\tt union}\\ +{\tt by}&{\tt if}&{\tt not}&{\tt within}\\ +{\tt cross}&{\tt in}&{\tt or}\\ +{\tt diff}&{\tt inter}&{\tt symdiff}\\ +{\tt div}&{\tt less}&{\tt then}\\ +\end{tabular} + +Palavras-chave não-reservadas são descritas nas seções posteriores. + +Todas as palavras-chave possuem um significado fixo, a ser +explicado nas discussões das \linebreak construções sintáticas correspondentes, +onde as palavras-chave são usadas. + +% Non-reserved keywords are described in following sections. +% +% All the keywords have fixed meaning, which will be explained on +% discussion of corresponding syntactic constructions, where the keywords +% are used. + +\section{Delimitadores} + +Um {\it delimitador} é tanto um caractere especial único quanto uma sequência +de dois caracteres especiais, como segue: + +% A {\it delimiter} is either a single special character or a sequence of +% two special characters as follows: + +\noindent\hfil +\begin{tabular}{@{}p{.3in}p{.3in}p{.3in}p{.3in}p{.3in}p{.3in}p{.3in} +p{.3in}p{.3in}@{}} +{\tt+}&{\tt**}&{\tt<=}&{\tt>}&{\tt\&\&}&{\tt:}&{\tt|}&{\tt[}& +{\tt>>}\\ +{\tt-}&{\tt\textasciicircum}&{\tt=}&{\tt<>}&{\tt||}&{\tt;}& +{\tt\char126}&{\tt]}&{\tt<-}\\ +{\tt*}&{\tt\&}&{\tt==}&{\tt!=}&{\tt.}&{\tt:=}&{\tt(}&{\tt\{}\\ +{\tt/}&{\tt<}&{\tt>=}&{\tt!}&{\tt,}&{\tt..}&{\tt)}&{\tt\}}\\ +\end{tabular} + +Se um delimitador consiste de dois caracteres, não deve haver espaços +entre os eles. + +Todos os delimitadores possuem um significado fixo, a ser +explicado nas discussões das \linebreak construções sintáticas correspondentes, +onde os delimitadores são usados. + +% If the delimiter consists of two characters, there should be no spaces +% between the characters. +% +% All the delimiters have fixed meaning, which will be explained on +% discussion corresponding syntactic constructions, where the delimiters +% are used. + +\section{Comentários} + +Com propósitos de documentação, a descrição do modelo pode conter +{\it comentários}, que podem ter duas formas diferentes. A primeira forma é +um {\it comentário de linha-única}, que começa com o caractere {\tt\#} +e se estende até o final da linha. A segunda forma é uma {\it sequência de +comentários}, que é uma sequência de quaisquer caracteres cercados por +{\tt/*} e {\tt*/}. + +% For documenting purposes the model description can be provided with +% {\it comments}, which may have two different forms. The first form is +% a {\it single-line comment}, which begins with the character {\tt\#} +% and extends until end of line. The second form is a {\it comment +% sequence}, which is a sequence of any characters enclosed within +% {\tt/*} and {\tt*/}. + +\para{Exemplos} + +\begin{verbatim} +param n := 10; # Este é um comentario +/* Este é outro comentário */ +\end{verbatim} + +Comentários e caracteres de espaço-em-branco são ignorados pelo tradutor +do modelo e podem aparecer em qualquer local da descrição do modelo. + +% Comments are ignored by the model translator and can appear anywhere in +% the model description, where white-space characters are allowed. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newpage + +\chapter{Expressões} + +Uma {\it expressão} é uma regra para calcular um valor. Na descrição +de um modelo, expressões são usadas como constituintes de certas sentenças. + +No geral, expressões são constituídas de operandos e operadores. + +Dependendo do tipo de valor resultante, todas expressões se enquadram nas +seguintes categorias: + +% An {\it expression} is a rule for computing a value. In model +% description expressions are used as constituents of certain statements. +% +% In general case expressions consist of operands and operators. +% +% Depending on the type of the resultant value all expressions fall into +% the following categories: + +\vspace*{-8pt} + +\begin{itemize} +\item expressões numéricas; +\item expressões simbólicas; +\item expressões indexantes; +\item expressões de conjuntos; +\item expressões lógicas; +\item expressões lineares. +\end{itemize} + +% \begin{itemize} +% \item numeric expressions; +% \item symbolic expressions; +% \item indexing expressions; +% \item set expressions; +% \item logical expressions; +% \item linear expressions. +% \end{itemize} + +\vspace*{-8pt} + +\section{Expressões numéricas} + +Uma {\it expressão numérica} é uma regra para calcular um valor numérico individual +representado como um número de ponto-flutuante. + +A expressão numérica primária pode ser um literal numérico, um índice, +um parâmetro não-indexado, um parâmetro indexado, uma função interna de +referência, uma expressão numérica iterada, uma expressão numérica condicional +ou outra expressão cercada por parênteses. + +% A {\it numeric expression} is a rule for computing a single numeric +% value represented as a floating-point number. +% +% The primary numeric expression may be a numeric literal, dummy index, +% unsubscripted parameter, subscripted parameter, built-in function +% reference, iterated numeric expression, conditional numeric expression, +% or another numeric expression enclosed in parentheses. + +\para{Exemplos} + +\noindent +\begin{tabular}{@{}ll@{}} +\verb|1.23 |&(literal numérico)\\ +\verb|j|&(índice)\\ +\verb|time|&(parâmetro não-indexado)\\ +\verb|a['May 2003',j+1]|&(parâmetro indexado)\\ +\verb|abs(b[i,j])|&(função de referência)\\ +\end{tabular} + +% \begin{tabular}{@{}ll@{}} +% \verb|1.23 |&(numeric literal)\\ +% \verb|j|&(dummy index)\\ +% \verb|time|&(unsubscripted parameter)\\ +% \verb|a['May 2003',j+1]|&(subscripted parameter)\\ +% \verb|abs(b[i,j])|&(function reference)\\ +% \end{tabular} + +\newpage + +\noindent +\begin{tabular}{@{}ll@{}} +\verb|sum{i in S diff T} alpha[i] * b[i,j]|&(expressão iterada)\\ +\verb|if i in I then 2 * p else q[i+1]|&(expressão condicional)\\ +\verb|(b[i,j] + .5 * c)|&(expressão entre parênteses)\\ +\end{tabular} + +% \begin{tabular}{@{}ll@{}} +% \verb|sum{i in S diff T} alpha[i] * b[i,j]|&(iterated expression)\\ +% \verb|if i in I then 2 * p else q[i+1]|&(conditional expression)\\ +% \verb|(b[i,j] + .5 * c)|&(parenthesized expression)\\ +% \end{tabular} + +Expressões numéricas mais genéricas, contendo duas ou mais +expressões numéricas primárias, podem ser construídas usando +determinados operadores aritméticos. + +% More general numeric expressions containing two or more primary numeric +% expressions may be constructed by using certain arithmetic operators. + +\para{Exemplos} + +\begin{verbatim} +j+1 +2 * a[i-1,j+1] - b[i,j] +sum{j in J} a[i,j] * x[j] + sum{k in K} b[i,k] * x[k] +(if i in I and p >= 1 then 2 * p else q[i+1]) / (a[i,j] + 1.5) +\end{verbatim} + +\subsection{Literais numéricos} + +Se a expressão numérica primária é um literal numérico, +o valor resultante é óbvio. + +% If the primary numeric expression is a numeric literal, the resultant +% value is obvious. + +\subsection{Índices} + +Se a expressão numérica primária é um índice, +o valor resultante é o valor corrente atribuído àquele índice. + +% If the primary numeric expression is a dummy index, the resultant value +% is current value assigned to that dummy index. + +\subsection{Parâmetros não-indexados} + +Se a expressão numérica primária é um parâmetro não-indexado +(que deve ser 0-dimensional), o valor resultante é o valor +do parâmetro. + +% If the primary numeric expression is an unsubscripted parameter (which +% should be 0-dimen\-sional), the resultant value is the value of that +% parameter. + +\subsection{Parâmetros indexados} + +A expressão numérica primária, que se refere ao parâmetro indexado, +possui a seguinte forma sintática: +% The primary numeric expression, which refers to a subscripted +% parameter, has the following syntactic form: +$$ +\mbox{{\it nome}{\tt[}$i_1${\tt,} $i_2${\tt,} \dots{\tt,} $i_n${\tt]}} +$$ +onde {\it nome} é o nome simbólico do parâmetro e $i_1$, $i_2$, +\dots, $i_n$ são subíndices. + +Cada subíndice deve ser uma expressão numérica ou simbólica. O número +de subíndices na lista de subíndices deve ser o mesmo da dimensão +do parâmetro com o qual a lista de subíndices está associada. + +Os valores reais das expressões de subíndice são usadas para identificar +um membro particular do parâmetro que determina o valor resultante +da expressão primária. + +% where {\it name} is the symbolic name of the parameter, $i_1$, $i_2$, +% \dots, $i_n$ are subscripts. +% +% Each subscript should be a numeric or symbolic expression. The number +% of subscripts in the subscript list should be the same as the dimension +% of the parameter with which the subscript list is associated. +% +% Actual values of subscript expressions are used to identify +% a particular member of the parameter that determines the resultant +% value of the primary expression. + +\newpage + +\subsection{Funções de referência} + +Em MathProg existem as seguintes funções internas, que podem ser +usadas como expressões numéricas: + +% In MathProg there exist the following built-in functions which may be +% used in numeric expressions: + +\begin{tabular}{@{}p{112pt}p{328pt}@{}} +{\tt abs(}$x${\tt)}&$|x|$, valor absoluto de $x$\\ +{\tt atan(}$x${\tt)}&$\arctan x$, valor principal do arco tangente de +$x$ (em radianos)\\ +{\tt atan(}$y${\tt,} $x${\tt)}&$\arctan y/x$, valor principal do +arco tangente de $y/x$ (em radianos). Neste caso, os sinais de ambos +argumentos $y$ e $x$ são usados para determinar o quadrante do valor +resultante\\ +{\tt card(}$X${\tt)}&$|X|$, cardinalidade (o número de elementos) do +conjunto $X$\\ +{\tt ceil(}$x${\tt)}&$\lceil x\rceil$, menor inteiro não menor que +$x$ (``teto de $x$'')\\ +{\tt cos(}$x${\tt)}&$\cos x$, cosseno de $x$ (em radianos)\\ +{\tt exp(}$x${\tt)}&$e^x$, exponencial de $x$ na base-$e$\\ +{\tt floor(}$x${\tt)}&$\lfloor x\rfloor$, maior inteiro não maior +que $x$ (``piso de $x$'')\\ +{\tt gmtime()}&o número de segundos decorridos deste 00:00:00 de~01~de~Jan de 1970, +Tempo Universal Coordenado (detalhes na Seção \ref{gmtime}, +página \pageref{gmtime})\\ +{\tt length(}$s${\tt)}&$|s|$, comprimento da cadeia de caracteres $s$\\ +{\tt log(}$x${\tt)}&$\log x$, logaritmo natural de $x$\\ +{\tt log10(}$x${\tt)}&$\log_{10}x$, logaritmo comum (decimal) de $x$\\ +{\tt max(}$x_1${\tt,} $x_2${\tt,} \dots{\tt,} $x_n${\tt)}&o maior +dos valores $x_1$, $x_2$, \dots, $x_n$\\ +{\tt min(}$x_1${\tt,} $x_2${\tt,} \dots{\tt,} $x_n${\tt)}&o menor +dos valores $x_1$, $x_2$, \dots, $x_n$\\ +{\tt round(}$x${\tt)}&arrendondamento de $x$ ao inteiro mais próximo\\ +{\tt round(}$x${\tt,} $n${\tt)}&arrendondamento de $x$ a $n$ dígitos decimais\\ +{\tt sin(}$x${\tt)}&$\sin x$, seno de $x$ (em radianos)\\ +{\tt sqrt(}$x${\tt)}&$\sqrt{x}$, raiz quadrada não-negativa de $x$\\ +{\tt str2time(}$s${\tt,} $f${\tt)}&conversão de uma cadeia de caracteres $s$ ao +tempo calendário (detalhes na Seção \ref{str2time}, página +\pageref{str2time})\\ +{\tt trunc(}$x${\tt)}&truncado de $x$ ao inteiro mais próximo\\ +{\tt trunc(}$x${\tt,} $n${\tt)}&truncado de $x$ a $n$ dígitos decimais\\ +{\tt Irand224()}&gera inteiro pseudo-aleatório uniformemente distribuído +em $[0,2^{24})$\\ +{\tt Uniform01()}&gera número pseudo-aleatório uniformemente distribuído +em $[0,1)$\\ +{\tt Uniform(}$a${\tt,} $b${\tt)}&gera número pseudo-aleatório uniformemente +distribuído em $[a,b)$\\ +{\tt Normal01()}&gera variável Gaussiana pseudo-aleatória com +$\mu=0$ e $\sigma=1$\\ +{\tt Normal(}$\mu${\tt,} $\sigma${\tt)}&gera variável Gaussiana pseudo-aleatória +com $\mu$ e $\sigma$ dados\\ +\end{tabular} + +% \begin{tabular}{@{}p{112pt}p{328pt}@{}} +% {\tt abs(}$x${\tt)}&$|x|$, absolute value of $x$\\ +% {\tt atan(}$x${\tt)}&$\arctan x$, principal value of the arc tangent of +% $x$ (in radians)\\ +% {\tt atan(}$y${\tt,} $x${\tt)}&$\arctan y/x$, principal value of the +% arc tangent of $y/x$ (in radians). In this case the signs of both +% arguments $y$ and $x$ are used to determine the quadrant of the +% resultant value\\ +% {\tt card(}$X${\tt)}&$|X|$, cardinality (the number of elements) of +% set $X$\\ +% {\tt ceil(}$x${\tt)}&$\lceil x\rceil$, smallest integer not less than +% $x$ (``ceiling of $x$'')\\ +% {\tt cos(}$x${\tt)}&$\cos x$, cosine of $x$ (in radians)\\ +% {\tt exp(}$x${\tt)}&$e^x$, base-$e$ exponential of $x$\\ +% {\tt floor(}$x${\tt)}&$\lfloor x\rfloor$, largest integer not greater +% than $x$ (``floor of $x$'')\\ +% {\tt gmtime()}&the number of seconds elapsed since 00:00:00~Jan~1, 1970, +% Coordinated Universal Time (for details see Section \ref{gmtime}, +% page \pageref{gmtime})\\ +% {\tt length(}$s${\tt)}&$|s|$, length of character string $s$\\ +% {\tt log(}$x${\tt)}&$\log x$, natural logarithm of $x$\\ +% {\tt log10(}$x${\tt)}&$\log_{10}x$, common (decimal) logarithm of $x$\\ +% {\tt max(}$x_1${\tt,} $x_2${\tt,} \dots{\tt,} $x_n${\tt)}&the largest +% of values $x_1$, $x_2$, \dots, $x_n$\\ +% {\tt min(}$x_1${\tt,} $x_2${\tt,} \dots{\tt,} $x_n${\tt)}&the smallest +% of values $x_1$, $x_2$, \dots, $x_n$\\ +% {\tt round(}$x${\tt)}&rounding $x$ to nearest integer\\ +% {\tt round(}$x${\tt,} $n${\tt)}&rounding $x$ to $n$ fractional decimal +% digits\\ +% {\tt sin(}$x${\tt)}&$\sin x$, sine of $x$ (in radians)\\ +% {\tt sqrt(}$x${\tt)}&$\sqrt{x}$, non-negative square root of $x$\\ +% {\tt str2time(}$s${\tt,} $f${\tt)}&converting character string $s$ to +% calendar time (for details see Section \ref{str2time}, page +% \pageref{str2time})\\ +% {\tt trunc(}$x${\tt)}&truncating $x$ to nearest integer\\ +% {\tt trunc(}$x${\tt,} $n${\tt)}&truncating $x$ to $n$ fractional +% decimal digits\\ +% {\tt Irand224()}&generating pseudo-random integer uniformly distributed +% in $[0,2^{24})$\\ +% {\tt Uniform01()}&generating pseudo-random number uniformly distributed +% in $[0,1)$\\ +% {\tt Uniform(}$a${\tt,} $b${\tt)}&generating pseudo-random number +% uniformly distributed in $[a,b)$\\ +% {\tt Normal01()}&generating Gaussian pseudo-random variate with +% $\mu=0$ and $\sigma=1$\\ +% {\tt Normal(}$\mu${\tt,} $\sigma${\tt)}&generating Gaussian +% pseudo-random variate with given $\mu$ and $\sigma$\\ +% \end{tabular} + +Os argumentos de todas as funções internas, exceto {\tt card}, {\tt length}, +e {\tt str2time}, devem ser \linebreak expressões numéricas. O argumento de +{\tt card} deve ser uma expressão de conjunto. O argumento de {\tt length} e +ambos argumentos de {\tt str2time} devem ser expressões simbólicas. + +O valor resultante da expressão numérica, que é uma função de referência, +é o resultado da aplicação da função ao(s) seu(s) argumento(s). + +Note que cada função geradora de números pseudo-aleatórios possui um argumento +latente (i.e., algum estado interno), que é alterado sempre que função é aplicada. +Assim, se a função é aplicada repetidamente mesmos aos argumentos idênticos, +devido ao efeito secundário, sempre se produzirão valores resultantes diferentes. + +% Arguments of all built-in functions, except {\tt card}, {\tt length}, +% and {\tt str2time}, should be numeric expressions. The argument of +% {\tt card} should be a set expression. The argument of {\tt length} and +% both arguments of {\tt str2time} should be symbolic expressions. +% +% The resultant value of the numeric expression, which is a function +% reference, is the result of applying the function to its argument(s). +% +% Note that each pseudo-random generator function has a latent argument +% (i.e. some internal state), which is changed whenever the function has +% been applied. Thus, if the function is applied repeatedly even to +% identical arguments, due to the side effect different resultant values +% are always produced. +\newpage + +\subsection{Expressões iteradas} +\label{itexpr} + +Uma {\it expressão numérica iterada} é uma expressão numérica primária, +que possui a seguinte forma sintática: +$$\mbox{\it operador-iterado expressão-indexada integrando}$$ +onde o {\it operador-iterado} é o nome simbólico do operador de iteração +a ser executado (veja abaixo), {\it expressão-indexada} é uma +expressão indexada que introduz índices e controla a iteração e +{\it integrando} é uma expressão numérica que participa da operação. + +\noindent +Em MathProg existem quatro operadores iterados, que podem ser usados +em expressões numéricas: + +% An {\it iterated numeric expression} is a primary numeric expression, +% which has the following syntactic form: +% $$\mbox{\it iterated-operator indexing-expression integrand}$$ +% where {\it iterated-operator} is the symbolic name of the iterated +% operator to be performed (see below), {\it indexing-expression} is an +% indexing expression which introduces dummy indices and controls +% iterating, {\it integrand} is a numeric expression that participates in +% the operation. +% +% In MathProg there exist four iterated operators, which may be used in +% numeric expressions: + +{\def\arraystretch{2} +\noindent\hfil +\begin{tabular}{@{}lll@{}} +{\tt sum}&somatório&$\displaystyle\sum_{(i_1,\dots,i_n)\in\Delta} +f(i_1,\dots,i_n)$\\ +{\tt prod}&produtório&$\displaystyle\prod_{(i_1,\dots,i_n)\in\Delta} +f(i_1,\dots,i_n)$\\ +{\tt min}&mínimo&$\displaystyle\min_{(i_1,\dots,i_n)\in\Delta} +f(i_1,\dots,i_n)$\\ +{\tt max}&máximo&$\displaystyle\max_{(i_1,\dots,i_n)\in\Delta} +f(i_1,\dots,i_n)$\\ +\end{tabular} +} + +% {\def\arraystretch{2} +% \noindent\hfil +% \begin{tabular}{@{}lll@{}} +% {\tt sum}&summation&$\displaystyle\sum_{(i_1,\dots,i_n)\in\Delta} +% f(i_1,\dots,i_n)$\\ +% {\tt prod}&production&$\displaystyle\prod_{(i_1,\dots,i_n)\in\Delta} +% f(i_1,\dots,i_n)$\\ +% {\tt min}&minimum&$\displaystyle\min_{(i_1,\dots,i_n)\in\Delta} +% f(i_1,\dots,i_n)$\\ +% {\tt max}&maximum&$\displaystyle\max_{(i_1,\dots,i_n)\in\Delta} +% f(i_1,\dots,i_n)$\\ +% \end{tabular} +% } + +\noindent onde $i_1$, \dots, $i_n$ são índices introduzidos nas +expressões indexadas, $\Delta$ é o domínio, um conjunto de $n$-tuplas +especificado pela expressão indexada que define valores particulares +atribuído aos índices ao executar a operação iterada e +$f(i_1,\dots,i_n)$ é o integrando, uma expressão numérica cujo valor +resultante depende dos índices. + +O valor resultante de uma expressão numérica iterada é o resultado da aplicação +do operador iterado ao seu integrando por todas as $n$-tuplas +contidas no domínio. + +% \noindent where $i_1$, \dots, $i_n$ are dummy indices introduced in +% the indexing expression, $\Delta$ is the domain, a set of $n$-tuples +% specified by the indexing expression which defines particular values +% assigned to the dummy indices on performing the iterated operation, +% $f(i_1,\dots,i_n)$ is the integrand, a numeric expression whose +% resultant value depends on the dummy indices. +% +% The resultant value of an iterated numeric expression is the result of +% applying of the iterated operator to its integrand over all $n$-tuples +% contained in the domain. + +\subsection{Expressões condicionais} +\label{ifthen} + +Uma {\it expressão numérica condicional} é uma expressão numérica primária +que possui uma das seguintes formas sintáticas: +% A {\it conditional numeric expression} is a primary numeric expression, +% which has one of the following two syntactic forms: +$$ +{\def\arraystretch{1.4} +\begin{array}{l} +\mbox{{\tt if} $b$ {\tt then} $x$ {\tt else} $y$}\\ +\mbox{{\tt if} $b$ {\tt then} $x$}\\ +\end{array} +} +$$ +onde $b$ é uma expressão lógica, enquanto que $x$ e $y$ são expressões numéricas. + +% where $b$ is an logical expression, $x$ and $y$ are numeric +% expressions. + + +O valor resultante da expressão condicional depende do valor da +expressão lógica que segue a palavra-chave {\tt if}. Se ela recebe +o valor {\it verdadeiro}, o valor da expressão condicional é o valor +da expressão que segue a palavra-chave {\tt then}. +Caso contrário, se a expressão lógica recebe o valor {\it falso}, +o valor da expressão condicional é o valor da expressão que segue +a palavra-chave {\it else}. Se ocorre a segunda forma sintática +da expressão condicional, a reduzida, e a expressão lógica recebe o valor +{\it falso}, então o valor resultante da expressão condicional é zero. + +% The resultant value of the conditional expression depends on the value +% of the logical expression that follows the keyword {\tt if}. If it +% takes on the value {\it true}, the value of the conditional expression +% is the value of the expression that follows the keyword {\tt then}. +% Otherwise, if the logical expression takes on the value {\it false}, +% the value of the conditional expression is the value of the expression +% that follows the keyword {\it else}. If the second, reduced form of the +% conditional expression is used and the logical expression takes on the +% value {\it false}, the resultant value of the conditional expression is +% zero. + +\newpage + +\subsection{Expressões parentizadas} + +Qualquer expressão numérica pode ser cercada por parênteses, o que as +torna sintaticamente uma expressão numérica primária. + +Parênteses podem ser usados em expressões numéricas, como em álgebra, para +especificar a ordem desejada na qual as operações devem ser realizadas. +Quando se usam parênteses, a expressão entre parênteses é avaliada +antes e seu o valor resultante é usado. + +O valor resultante de uma expressão parentizada é o mesmo +valor de uma expressão cercada entre parênteses. + +% Any numeric expression may be enclosed in parentheses that +% syntactically makes it a primary numeric expression. +% +% Parentheses may be used in numeric expressions, as in algebra, to +% specify the desired order in which operations are to be performed. +% Where parentheses are used, the expression within the parentheses is +% evaluated before the resultant value is used. +% +% The resultant value of the parenthesized expression is the same as the +% value of the expression enclosed within parentheses. + +\subsection{Operadores aritméticos} + +Em MathProg exitem os seguintes operadores aritméticos, que podem ser +usados em expressões numéricas: + +% In MathProg there exist the following arithmetic operators, which may +% be used in numeric expressions: + +\begin{tabular}{@{}ll@{}} +{\tt +} $x$&mais unário\\ +{\tt -} $x$&menos unário\\ +$x$ {\tt +} $y$&adição\\ +$x$ {\tt -} $y$&subtração\\ +$x$ {\tt less} $y$&diferença positiva (se $x1$, a segunda forma deve ser usada. + +% The number of indices in the indexing entry should be the same as the +% dimension of the basic set $S$, i.e. if $S$ consists of 1-tuples, the +% first form should be used, and if $S$ consists of $n$-tuples, where +% $n>1$, the second form should be used. + +Se a primeira forma da entrada indexante é usada, o índice $i$ pode ser +apenas um índice (veja mais adiante). Se a segunda forma é utilizada, os índices +$i_1$, $i_2$, \dots, $i_n$ podem ser tanto índices como alguma expressão numérica +ou simbólica, em que pelo menos um dos índices deve ser um índice. +Na terceira, a forma reduzida da entrada indexante possui o mesmo efeito +se houver $i$ (se $S$ é 1-dimensional) ou +$i_1$, $i_2$, \dots, $i_n$ (se $S$ é $n$-dimensional) onde todos são especificados +como índices. + +% If the first form of the indexing entry is used, the index $i$ can be +% a dummy index only (see below). If the second form is used, the indices +% $i_1$, $i_2$, \dots, $i_n$ can be either dummy indices or some numeric +% or symbolic expressions, where at least one index should be a dummy +% index. The third, reduced form of the indexing entry has the same +% effect as if there were $i$ (if $S$ is 1-dimensional) or +% $i_1$, $i_2$, \dots, $i_n$ (if $S$ is $n$-dimensional) all specified as +% dummy indices. + +Um {\it índice} é um objeto auxiliar do modelo, que atua como uma +variável individual. Os valores atribuídos aos índices são componentes +das $n$-tuplas dos conjuntos básicos, i.e., algumas quantidades +numéricas e simbólicas. + +% A {\it dummy index} is an auxiliary model object, which acts like an +% individual variable. Values assigned to dummy indices are components of +% $n$-tuples from basic sets, i.e. some numeric and symbolic quantities. + +Com propósitos de referência, índices podem ter nomes simbólicos. +No entanto, diferentemente de outros objetos de modelo (conjuntos, +parâmetros, etc.) índices não precisam ser \linebreak explicitamente declarados. +Cada nome simbólico {\it não-declarado} usado na posição indexante de +uma entrada indexante é reconhecida como o nome simbólico do índice +correspondente. + +% For referencing purposes dummy indices can be provided with symbolic +% names. However, unlike other model objects (sets, parameters, etc.) +% dummy indices need not be explicitly declared. Each {\it undeclared} +% symbolic name being used in the indexing position of an indexing entry +% is recognized as the symbolic name of corresponding dummy index. + +Os nomes simbólicos dos índices são válidos somente dentro do escopo +da expressão indexante, onde o índice foi inserido. Além do escopo, +os índices são completamente inacessíveis, de modo que os mesmos +nomes simbólicos podem ser usados para outros propósitos, em particular, +para representar índices em outras expressões indexantes. + +% Symbolic names of dummy indices are valid only within the scope of the +% indexing expression, where the dummy indices were introduced. Beyond +% the scope the dummy indices are completely inaccessible, so the same +% symbolic names may be used for other purposes, in particular, to +% represent dummy indices in other indexing expressions. + +O escopo da expressão indexante, em que declarações implícitas de índices +são válidas, depende do contexto em que a expressão indexante é usada: + +% The scope of indexing expression, where implicit declarations of dummy +% indices are valid, depends on the context, in which the indexing +% expression is used: + +\vspace*{-8pt} + +\begin{itemize} +\item Se a expressão indexante é usada em um operador-iterado, seu +escopo se estende até o final do integrando. +\item Se a expressão indexante é usada como uma expressão de conjunto +primária, seu escopo de estende até o final desta expressão indexante. +\item Se a expressão indexante é usada para definir o domínio do subíndice +na declaração de alguns objetos de modelo, seu escopo se estende até o +final da declaração correspondente. +\end{itemize} + +% \begin{itemize} +% \item If the indexing expression is used in iterated operator, its +% scope extends until the end of the integrand. +% \item If the indexing expression is used as a primary set expression, +% its scope extends until the end of that indexing expression. +% \item If the indexing expression is used to define the subscript domain +% in declarations of some model objects, its scope extends until the end +% of the corresponding statement. +% \end{itemize} + +\vspace*{-8pt} + +O mecanismo de indexação implementado para indexar expressões é melhor +explicado por alguns exemplos discutidos abaixo. + +Sejam três conjuntos: +% The indexing mechanism implemented by means of indexing expressions is +% best explained by some examples discussed below. +% +% Let there be given three sets: +$$ +{\def\arraystretch{1.4} +\begin{array}{l} +A=\{4,7,9\},\\ +B=\{(1,Jan),(1,Fev),(2,Mar),(2,Abr),(3,Mai),(3,Jun)\},\\ +C=\{a,b,c\},\\ +\end{array} +} +$$ +% $$ +% {\def\arraystretch{1.4} +% \begin{array}{l} +% A=\{4,7,9\},\\ +% B=\{(1,Jan),(1,Feb),(2,Mar),(2,Apr),(3,May),(3,Jun)\},\\ +% C=\{a,b,c\},\\ +% \end{array} +% } +% $$ +onde $A$ e $C$ consistem de 1-tuplas (singletos), $B$ consiste de +2-tuplas (dobletes). Considere a seguinte expressão indexante: +$$\mbox{{\tt\{i in A, (j,k) in B, l in C\}}}$$ +onde {\tt i}, {\tt j}, {\tt k}, e {\tt l} são índices. + +% where $A$ and $C$ consist of 1-tuples (singlets), $B$ consists of +% 2-tuples (doublets). Consider the following indexing expression: +% $$\mbox{{\tt\{i in A, (j,k) in B, l in C\}}}$$ +% where {\tt i}, {\tt j}, {\tt k}, and {\tt l} are dummy indices. + +\newpage + +Embora MathProg não seja uma linguagem procedural, para qualquer +expressão indexante uma descrição algorítmica equivalente pode ser dada. +Em particular, a descrição algorítmica da expressão indexante acima +poderia ser vista como segue: + +% Although MathProg is not a procedural language, for any indexing +% expression an equivalent algorithmic description can be given. In +% particular, the algorithmic description of the indexing expression +% above could look like follows: + +\noindent\hfil +\begin{tabular}{@{}l@{}} +{\bf para todo} $i\in A$ {\bf faça}\\ +\hspace{16pt}{\bf para todo} $(j,k)\in B$ {\bf faça}\\ +\hspace{32pt}{\bf para todo} $l\in C$ {\bf faça}\\ +\hspace{48pt}{\it ação};\\ +\end{tabular} + +% \noindent\hfil +% \begin{tabular}{@{}l@{}} +% {\bf for all} $i\in A$ {\bf do}\\ +% \hspace{16pt}{\bf for all} $(j,k)\in B$ {\bf do}\\ +% \hspace{32pt}{\bf for all} $l\in C$ {\bf do}\\ +% \hspace{48pt}{\it action};\\ +% \end{tabular} + +\noindent onde os índices $i$, $j$, $k$, $l$ são consecutivamente +atribuídos aos componentes correspondentes das $n$-tuplas dos conjuntos +básicos $A$, $B$, $C$, e {\it ação} é alguma ação que dependa do contexto +no qual a expressão indexante é usada. Por exemplo, se a ação fosse +imprimir os valores atuais dos índices, a impressão seria vista como segue: + +% \noindent where the dummy indices $i$, $j$, $k$, $l$ are consecutively +% assigned corresponding components of $n$-tuples from the basic sets $A$, +% $B$, $C$, and {\it action} is some action that depends on the context, +% where the indexing expression is used. For example, if the action were +% printing current values of dummy indices, the printout would look like +% follows: + +\noindent\hfil +\begin{tabular}{@{}llll@{}} +$i=4$&$j=1$&$k=Jan$&$l=a$\\ +$i=4$&$j=1$&$k=Jan$&$l=b$\\ +$i=4$&$j=1$&$k=Jan$&$l=c$\\ +$i=4$&$j=1$&$k=Fev$&$l=a$\\ +$i=4$&$j=1$&$k=Fev$&$l=b$\\ +\multicolumn{4}{c}{.\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .}\\ +$i=9$&$j=3$&$k=Jun$&$l=b$\\ +$i=9$&$j=3$&$k=Jun$&$l=c$\\ +\end{tabular} + +% \noindent\hfil +% \begin{tabular}{@{}llll@{}} +% $i=4$&$j=1$&$k=Jan$&$l=a$\\ +% $i=4$&$j=1$&$k=Jan$&$l=b$\\ +% $i=4$&$j=1$&$k=Jan$&$l=c$\\ +% $i=4$&$j=1$&$k=Feb$&$l=a$\\ +% $i=4$&$j=1$&$k=Feb$&$l=b$\\ +% \multicolumn{4}{c}{.\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .}\\ +% $i=9$&$j=3$&$k=Jun$&$l=b$\\ +% $i=9$&$j=3$&$k=Jun$&$l=c$\\ +% \end{tabular} + +Seja o exemplo da expressão indexante usado na seguinte +operação iterada: +$$\mbox{{\tt sum\{i in A, (j,k) in B, l in C\} p[i,j,k,l]}}$$ +onde {\tt p} é uma parâmetro numérico 4-dimensional ou alguma +expressão numérica cujo valor resultante dependa de +{\tt i}, {\tt j}, {\tt k} e {\tt l}. Neste caso, a ação é o somatório, +de forma que o valor resultante da expressão numérica primária é: +$$\sum_{i\in A,(j,k)\in B,l\in C}(p_{ijkl}).$$ + +% Let the example indexing expression be used in the following iterated +% operation: +% $$\mbox{{\tt sum\{i in A, (j,k) in B, l in C\} p[i,j,k,l]}}$$ +% where {\tt p} is a 4-dimensional numeric parameter or some numeric +% expression whose resultant value depends on {\tt i}, {\tt j}, {\tt k}, +% and {\tt l}. In this case the action is summation, so the resultant +% value of the primary numeric expression is: +% $$\sum_{i\in A,(j,k)\in B,l\in C}(p_{ijkl}).$$ + +Agora seja a expressão indexante do exemplo usada como uma expressão +de conjunto primária. Neste caso, a ação é reunir todas as 4-tuplas +(quádruplas) da forma $(i,j,k,l)$ em um conjunto, de forma que o +valor resultante de tal operação é simplesmente o produto +Cartesiano dos conjuntos básicos: +$$A\times B\times C=\{(i,j,k,l):i\in A,(j,k)\in B,l\in C\}.$$ +Note que neste caso, a mesma expressão indexante pode ser escrita +na forma reduzida: +$$\mbox{{\tt\{A, B, C\}}}$$ +pois os índices $i$, $j$, $k$ e $l$ não são referenciados, portanto, +seus nomes simbólicos não precisam ser especificados. + +% Now let the example indexing expression be used as a primary set +% expression. In this case the action is gathering all 4-tuples +% (quadruplets) of the form $(i,j,k,l)$ in one set, so the resultant +% value of such operation is simply the Cartesian product of the basic +% sets: +% $$A\times B\times C=\{(i,j,k,l):i\in A,(j,k)\in B,l\in C\}.$$ +% Note that in this case the same indexing expression might be written in +% the reduced form: +% $$\mbox{{\tt\{A, B, C\}}}$$ +% because the dummy indices $i$, $j$, $k$, and $l$ are not referenced and +% therefore their symbolic names need not be specified. + +\newpage + +Finalmente, seja a expressão indexante do exemplo usada como o domínio do +subíndice na declaração de um objeto de modelo 4-dimensional, por exemplo, +um parâmetro numérico: +% Finally, let the example indexing expression be used as the subscript +% domain in the declaration of a 4-dimensional model object, say, +% a numeric parameter: +$$\mbox{{\tt param p\{i in A, (j,k) in B, l in C\}} \dots {\tt;}}$$ + +\noindent Neste caso, a ação é gerar os membros do parâmetro, +onde cada membro possui a forma $p[i,j,k,l]$. + +% \noindent In this case the action is generating the parameter members, +% where each member has the form $p[i,j,k,l]$. + +Como mencionado anteriormente, alguns índices da segunda forma das entradas +indexantes podem ser expressões numéricas ou simbólicas, não apenas índices. +Neste caso, os valores resultantes destas expressões desempenham o papel +de algumas condições lógicas para selecionar apenas aquelas $n$-tuplas +do produto Cartesiano dos conjuntos básicos que satisfaçam estas +condições. + +% As was said above, some indices in the second form of indexing entries +% may be numeric or symbolic expressions, not only dummy indices. In this +% case resultant values of such expressions play role of some logical +% conditions to select only that $n$-tuples from the Cartesian product of +% basic sets that satisfy these conditions. + +Considere, por exemplo, a seguinte expressão indexante: +$$\mbox{{\tt\{i in A, (i-1,k) in B, l in C\}}}$$ +onde {\tt i}, {\tt k} e {\tt l} são índices, e {\tt i-1} é uma +expressão numérica. A descrição algorítmica desta expressão +indexante é a seguinte: + +% Consider, for example, the following indexing expression: +% $$\mbox{{\tt\{i in A, (i-1,k) in B, l in C\}}}$$ +% where {\tt i}, {\tt k}, {\tt l} are dummy indices, and {\tt i-1} is +% a numeric expression. The algorithmic decsription of this indexing +% expression is the following: + +\noindent\hfil +\begin{tabular}{@{}l@{}} +{\bf para todo} $i\in A$ {\bf faça}\\ +\hspace{16pt}{\bf para todo} $(j,k)\in B$ {\bf e} $j=i-1$ {\bf faça}\\ +\hspace{32pt}{\bf para todo} $l\in C$ {\bf faça}\\ +\hspace{48pt}{\it ação};\\ +\end{tabular} + +% \noindent\hfil +% \begin{tabular}{@{}l@{}} +% {\bf for all} $i\in A$ {\bf do}\\ +% \hspace{16pt}{\bf for all} $(j,k)\in B$ {\bf and} $j=i-1$ {\bf do}\\ +% \hspace{32pt}{\bf for all} $l\in C$ {\bf do}\\ +% \hspace{48pt}{\it action};\\ +% \end{tabular} + +\noindent Assim, se esta expressão indexante fosse usada como uma expressão de conjunto +primária, o conjunto resultante seira o seguinte: +$$\{(4,Mai,a),(4,Mai,b),(4,Mai,c),(4,Jun,a),(4,Jun,b),(4,Jun,c)\}.$$ +Deve-se notar que neste caso o conjunto resultante consiste em 3-tuplas, +e não de 4-tuplas, porque na expressão indexante não há índice que +corresponda ao primeiro componente das 2-tuplas do conjunto $B$. + +% \noindent Thus, if this indexing expression were used as a primary set +% expression, the resultant set would be the following: +% $$\{(4,May,a),(4,May,b),(4,May,c),(4,Jun,a),(4,Jun,b),(4,Jun,c)\}.$$ +% Should note that in this case the resultant set consists of 3-tuples, +% not of 4-tuples, because in the indexing expression there is no dummy +% index that corresponds to the first component of 2-tuples from the set +% $B$. + +A regra geral é: o número de componentes de $n$-tuplas definido por +uma expressão indexante é o mesmo do número de índices naquela expressão, +onde a correspondência entre índices e componentes nas $n$-tuplas no +conjunto resultante é posicional, i.e., o primeiro índice corresponde +ao primeiro componente, o segundo índice corresponde ao segundo +componente, etc. + +% The general rule is: the number of components of $n$-tuples defined by +% an indexing expression is the same as the number of dummy indices in +% that expression, where the correspondence between dummy indices and +% components on $n$-tuples in the resultant set is positional, i.e. the +% first dummy index corresponds to the first component, the second dummy +% index corresponds to the second component, etc. + +Em alguns casos é necessário selecionar um subconjunto do produto +Cartesiano de alguns \linebreak conjuntos. Isto pode ser alcançado mediante o +emprego de um predicado lógico opcional, que é especificado na +expressão indexante. + +% In some cases it is needed to select a subset from the Cartesian +% product of some sets. This may be attained by using an optional logical +% predicate, which is specified in the indexing expression. + +Considere, por exemplo, a seguinte expressão indexante: +$$\mbox{{\tt\{i in A, (j,k) in B, l in C: i <= 5 and k <> 'Mar'\}}}$$ +onde a expressão lógica após os dois pontos é um predicado. A +descrição algorítmica desta expressão indexante é a seguinte: + +% Consider, for example, the following indexing expression: +% $$\mbox{{\tt\{i in A, (j,k) in B, l in C: i <= 5 and k <> 'Mar'\}}}$$ +% where the logical expression following the colon is a predicate. The +% algorithmic description of this indexing expression is the following: + +\noindent\hfil +\begin{tabular}{@{}l@{}} +{\bf para todo} $i\in A$ {\bf faça}\\ +\hspace{16pt}{\bf para todo} $(j,k)\in B$ {\bf faça}\\ +\hspace{32pt}{\bf para todo} $l\in C$ {\bf faça}\\ +\hspace{48pt}{\bf se} $i\leq 5$ {\bf e} $k\neq`Mar'$ {\bf então}\\ +\hspace{64pt}{\it ação};\\ +\end{tabular} + +% \noindent\hfil +% \begin{tabular}{@{}l@{}} +% {\bf for all} $i\in A$ {\bf do}\\ +% \hspace{16pt}{\bf for all} $(j,k)\in B$ {\bf do}\\ +% \hspace{32pt}{\bf for all} $l\in C$ {\bf do}\\ +% \hspace{48pt}{\bf if} $i\leq 5$ {\bf and} $k\neq`Mar'$ {\bf then}\\ +% \hspace{64pt}{\it action};\\ +% \end{tabular} + +\noindent Assim, se a expressão indexante fosse usada como uma +expressão de conjunto primária, o conjunto resultante seria o seguinte: +$$\{(4,1,Jan,a),(4,1,Fev,a),(4,2,Abr,a),\dots,(4,3,Jun,c)\}.$$ + +Se o predicado não é especificado na expressão indexante assume-se um, +que recebe o valor {\it verdadeiro}. + +% \noindent Thus, if this indexing expression were used as a primary set +% expression, the resultant set would be the following: +% $$\{(4,1,Jan,a),(4,1,Feb,a),(4,2,Apr,a),\dots,(4,3,Jun,c)\}.$$ +% +% If no predicate is specified in the indexing expression, one, which +% takes on the value {\it true}, is assumed. + +\section{Expressões de conjunto} + +Uma {\it expressão de conjunto} é uma regra para calcular um conjunto +elementar, i.e., uma coleção de $n$-tuplas, onde os componentes das +$n$-tuplas são quantidades numéricas e simbólicas. + +% A {\it set expression} is a rule for computing an elemental set, i.e. +% a collection of $n$-tuples, where components of $n$-tuples are numeric +% and symbolic quantities. + +A expressão de conjunto primária pode ser um conjunto de literais, um conjunto +não-indexado, um conjunto indexado, um conjunto ``aritmético'', uma expressão +indexante, uma expressão de \linebreak conjunto iterada, uma expressão de conjunto +condicional ou outra expressão cercada por \linebreak parênteses. + +\para{Exemplos} + +% The primary set expression may be a literal set, unsubscripted set, +% subscripted set, ``arithmetic'' set, indexing expression, iterated set +% expression, conditional set expression, or another set expression +% enclosed in parentheses. +% +% \para{Examples} + +\noindent +\begin{tabular}{@{}ll@{}} +\verb|{(123,'aaa'), (i+1,'bbb'), (j-1,'ccc')}| &(conjunto de literais)\\ +\verb|I| &(conjunto não-indexado)\\ +\verb|S[i-1,j+1]| &(conjunto indexado)\\ +\verb|1..t-1 by 2| &(conjunto ``aritmético'')\\ +\verb|{t in 1..T, (t+1,j) in S: (t,j) in F}| &(expressão indexante)\\ +\verb|setof{i in I, j in J}(i+1,j-1)| &(expressão de conjunto iterado)\\ +\verb|if i < j then S[i,j] else F diff S[i,j]| &(expressão de conjunto +condicional)\\ +\verb|(1..10 union 21..30)| &(expressão de conjunto parentizado)\\ +\end{tabular} + +% \noindent +% \begin{tabular}{@{}ll@{}} +% \verb|{(123,'aaa'), (i+1,'bbb'), (j-1,'ccc')}| &(literal set)\\ +% \verb|I| &(unsubscripted set)\\ +% \verb|S[i-1,j+1]| &(subscripted set)\\ +% \verb|1..t-1 by 2| &(``arithmetic'' set)\\ +% \verb|{t in 1..T, (t+1,j) in S: (t,j) in F}| &(indexing expression)\\ +% \verb|setof{i in I, j in J}(i+1,j-1)| &(iterated set expression)\\ +% \verb|if i < j then S[i,j] else F diff S[i,j]| &(conditional set +% expression)\\ +% \verb|(1..10 union 21..30)| &(parenthesized set expression)\\ +% \end{tabular} + +Expressões de conjuntos mais genéricas contendo duas ou mais expressões +de conjunto primárias podem ser construídas usando operadores +específicos de conjunto . + +\para{Exemplos} + +% More general set expressions containing two or more primary set +% expressions may be constructed by using certain set operators. +% +% \para{Examples} + +\begin{verbatim} +(A union B) inter (I cross J) +1..10 cross (if i < j then {'a', 'b', 'c'} else {'d', 'e', 'f'}) +\end{verbatim} + +\subsection{Conjuntos de literais} + +Um {\it conjunto de literais} é uma expressão de conjunto primária +que possui as duas formas \linebreak sintáticas seguintes: +% A {\it literal set} is a primary set expression, which has the +% following two syntactic forms: +$$ +{\def\arraystretch{1.4} +\begin{array}{l} +\mbox{{\tt\{}$e_1${\tt,} $e_2${\tt,} \dots{\tt,} $e_m${\tt\}}}\\ +\mbox{{\tt\{(}$e_{11}${\tt,} \dots{\tt,} $e_{1n}${\tt),} +{\tt(}$e_{21}${\tt,} \dots{\tt,} $e_{2n}${\tt),} \dots{\tt,} +{\tt(}$e_{m1}${\tt,} \dots{\tt,} $e_{mn}${\tt)\}}}\\ +\end{array} +} +$$ +% $$ +% {\def\arraystretch{1.4} +% \begin{array}{l} +% \mbox{{\tt\{}$e_1${\tt,} $e_2${\tt,} \dots{\tt,} $e_m${\tt\}}}\\ +% \mbox{{\tt\{(}$e_{11}${\tt,} \dots{\tt,} $e_{1n}${\tt),} +% {\tt(}$e_{21}${\tt,} \dots{\tt,} $e_{2n}${\tt),} \dots{\tt,} +% {\tt(}$e_{m1}${\tt,} \dots{\tt,} $e_{mn}${\tt)\}}}\\ +% \end{array} +% } +% $$ +onde $e_1$, \dots, $e_m$, $e_{11}$, \dots, $e_{mn}$ são expressões +numéricas ou simbólicas. + +Se a primeira forma é adotada, o conjunto resultante consiste +de 1-tuplas (singletos) enumerados entre as chaves. +É permitido especificar um conjunto vazio como {\tt\{\ \}}, +que não possui 1-tuplas. Se a segunda forma é adotada, +o conjunto resultante consiste de $n$-tuplas enumeradas entre as chaves, +onde uma $n$-tupla particular consiste nos componentes correspondentes +enumerados entre parênteses. Todas as $n$-tuplas devem ter o mesmo +número de componentes. + +% where $e_1$, \dots, $e_m$, $e_{11}$, \dots, $e_{mn}$ are numeric or +% symbolic expressions. +% +% If the first form is used, the resultant set consists of 1-tuples +% (singlets) enumerated within the curly braces. It is allowed to specify +% an empty set as {\tt\{\ \}}, which has no 1-tuples. If the second form +% is used, the resultant set consists of $n$-tuples enumerated within the +% curly braces, where a particular $n$-tuple consists of corresponding +% components enumerated within the parentheses. All $n$-tuples should +% have the same number of components. + +\subsection{Conjuntos não-indexados} + +Se a expressão de conjunto primária é um conjunto não-indexado +(que deve ser 0-dimensional), o conjunto resultante é um conjunto +elementar associado com o objeto conjunto correspondente. + +% If the primary set expression is an unsubscripted set (which should be +% 0-dimen\-sional), the resultant set is an elemental set associated with +% the corresponding set object. + +\subsection{Conjuntos indexados} + +A expressão de conjunto primária, que se refere a um conjunto indexado, +tem a seguinte forma sintática: +$$\mbox{{\it nome}{\tt[}$i_1${\tt,} $i_2${\tt,} \dots{\tt,} +$i_n${\tt]}}$$ +onde {\it nome} é o nome simbólico do objeto conjunto e $i_1$, $i_2$, +\dots, $i_n$ são subíndices. + +% The primary set expression, which refers to a subscripted set, has the +% following syntactic form: +% $$\mbox{{\it name}{\tt[}$i_1${\tt,} $i_2${\tt,} \dots{\tt,} +% $i_n${\tt]}}$$ +% where {\it name} is the symbolic name of the set object, $i_1$, $i_2$, +% \dots, $i_n$ are subscripts. + +Cada subíndice deve ser uma expressão numérica ou simbólica. O número de +subíndices nas lista de subíndices deve ser o mesmo da dimensão do objeto +conjunto com o qual as lista de subíndice está associada. + +Os valores correntes das expressões de subíndices são usados para identificar +um membro \linebreak particular do objeto conjunto que determina o conjunto resultante. + +% Each subscript should be a numeric or symbolic expression. The number +% of subscripts in the subscript list should be the same as the dimension +% of the set object with which the subscript list is associated. +% +% Actual values of subscript expressions are used to identify a +% particular member of the set object that determines the resultant set. + +\subsection{Conjuntos ``aritméticos''} + +A expressão de conjunto primária que constitui um conjunto ``aritmético'', +possui as duas formas sintáticas seguintes: +% The primary set expression, which is an ``arithmetic'' set, has the +% following two syntactic forms: +$$ +{\def\arraystretch{1.4} +\begin{array}{l} +\mbox{$t_0$ {\tt..} $t_1$ {\tt by} $\delta t$}\\ +\mbox{$t_0$ {\tt..} $t_1$}\\ +\end{array} +} +$$ +onde $t_0$, $t_1$, e $\delta t$ são expressões numéricas (o valor de +$\delta t$ não deve ser zero). A segunda forma é equivalente a primeira +forma, onde $\delta t=1$. + +Se $\delta t>0$, o conjunto resultante é determinado como segue: +$$\{t:\exists k\in{\cal Z}(t=t_0+k\delta t,\ t_0\leq t\leq t_1)\}.$$ +Caso contrário, se $\delta t<0$, o conjunto resultante é determinado como segue: +$$\{t:\exists k\in{\cal Z}(t=t_0+k\delta t,\ t_1\leq t\leq t_0)\}.$$ +% $$ +% {\def\arraystretch{1.4} +% \begin{array}{l} +% \mbox{$t_0$ {\tt..} $t_1$ {\tt by} $\delta t$}\\ +% \mbox{$t_0$ {\tt..} $t_1$}\\ +% \end{array} +% } +% $$ +% where $t_0$, $t_1$, and $\delta t$ are numeric expressions (the value +% of $\delta t$ should not be zero). The second form is equivalent to the +% first form, where $\delta t=1$. +% +% If $\delta t>0$, the resultant set is determined as follows: +% $$\{t:\exists k\in{\cal Z}(t=t_0+k\delta t,\ t_0\leq t\leq t_1)\}.$$ +% Otherwise, if $\delta t<0$, the resultant set is determined as follows: +% $$\{t:\exists k\in{\cal Z}(t=t_0+k\delta t,\ t_1\leq t\leq t_0)\}.$$ + +\subsection{Expressões indexantes} + +Se a expressão primária é uma expressão indexante, o conjunto resultante +é determinado como descrito anteriormente, na Seção \ref{indexing}, página +\pageref{indexing}. + +% If the primary set expression is an indexing expression, the resultant +% set is determined as described above in Section \ref{indexing}, page +% \pageref{indexing}. + +\newpage + +\subsection{Expressões iteradas} + +Uma {\it expressão de conjunto iterada} é uma expressão de conjunto +primária, que possui a seguinte forma sintática: +$$\mbox{{\tt setof} {\it expressão-indexante} {\it integrando}}$$ +onde {\it expressão-indexante} é uma expressão indexante, que +introduz índices e controla a iteração, {\it integrando} é +tanto uma expressão numérica ou simbólica individual, como uma +lista de expressões numéricas ou simbólicas separadas por vírgula +e cercadas entre parênteses. + +% An {\it iterated set expression} is a primary set expression, which has +% the following syntactic form: +% $$\mbox{{\tt setof} {\it indexing-expression} {\it integrand}}$$ +% where {\it indexing-expression} is an indexing expression, which +% introduces dummy indices and controls iterating, {\it integrand} is +% either a single numeric or symbolic expression or a list of numeric and +% symbolic expressions separated by commae and enclosed in parentheses. + +Se o integrando é uma expressão numérica ou simbólica individual, o +conjunto resultante consiste de 1-tuplas, sendo determinado como segue: +$$\{x:(i_1,\dots,i_n)\in\Delta\},$$ +\noindent onde $x$ é um valor do integrando, $i_1$, \dots, $i_n$ +são índices introduzidos na expressão indexante, $\Delta$ é +o domínio, um conjunto de $n$-tuplas especificado pela expressão +indexante que define valores particulares atribuídos aos índices ao +realizar a operação de iteração. + +% If the integrand is a single numeric or symbolic expression, the +% resultant set consists of 1-tuples and is determined as follows: +% $$\{x:(i_1,\dots,i_n)\in\Delta\},$$ +% \noindent where $x$ is a value of the integrand, $i_1$, \dots, $i_n$ +% are dummy indices introduced in the indexing expression, $\Delta$ is +% the domain, a set of $n$-tuples specified by the indexing expression, +% which defines particular values assigned to the dummy indices on +% performing the iterated operation. + +Se o integrando é uma lista contendo $m$ expressões numéricas e simbólicas, +o conjunto resultante consiste de $m$-tuplas, sendo determinado +como segue: +$$\{(x_1,\dots,x_m):(i_1,\dots,i_n)\in\Delta\},$$ +onde $x_1$, \dots, $x_m$ são valores das expressões na lista +de integrandos, $i_1$, \dots, $i_n$ e $\Delta$ possuem o mesmo significado +anterior. + +% If the integrand is a list containing $m$ numeric and symbolic +% expressions, the resultant set consists of $m$-tuples and is determined +% as follows: +% $$\{(x_1,\dots,x_m):(i_1,\dots,i_n)\in\Delta\},$$ +% where $x_1$, \dots, $x_m$ are values of the expressions in the +% integrand list, $i_1$, \dots, $i_n$ and $\Delta$ have the same meaning +% as above. + +\subsection{Expressões condicionais} + +Uma {\it expressão de conjunto condicional} é uma expressão de conjunto +primária que possui a seguinte forma sintática: +$$\mbox{{\tt if} $b$ {\tt then} $X$ {\tt else} $Y$}$$ +onde $b$ é uma expressão lógica, $X$ e $Y$ são expressões de conjunto, +que devem definir conjuntos da mesma dimensão. + +% A {\it conditional set expression} is a primary set expression that has +% the following syntactic form: +% $$\mbox{{\tt if} $b$ {\tt then} $X$ {\tt else} $Y$}$$ +% where $b$ is an logical expression, $X$ and $Y$ are set expressions, +% which should define sets of the same dimension. + +O valor resultante da expressão condicional depende do valor da +expressão lógica que segue a palavra-chave {\tt if}. Se ela recebe +o valor {\it verdadeiro}, o conjunto resultante é o valor da expressão +que segue a palavra-chave {\tt then}. Caso contrário, se a +expressão lógica recebe o valor {\it falso}, o conjunto resultante é +o valor da expressão que segue a palavra-chave {\tt else}. + +% The resultant value of the conditional expression depends on the value +% of the logical expression that follows the keyword {\tt if}. If it +% takes on the value {\it true}, the resultant set is the value of the +% expression that follows the keyword {\tt then}. Otherwise, if the +% logical expression takes on the value {\it false}, the resultant set is +% the value of the expression that follows the keyword {\tt else}. + +\subsection{Expressões parentizadas} + +Qualquer expressão de conjunto pode ser cercada entre parênteses, o que as tornam +\linebreak sintaticamente uma expressão de conjunto primária. +Parênteses podem ser usados em expressões de conjunto, como em álgebra, para +especificar a ordem desejada nas quais as operações devem ser executadas. +Quando se usam parênteses, a expressão entre parênteses é avaliada +antes que o valor resultante seja usado. +O valor resultante de uma expressão parentizada é idêntico ao valor da expressão +cercada entre parênteses. + +% Any set expression may be enclosed in parentheses that syntactically +% makes it a primary set expression. +% +% Parentheses may be used in set expressions, as in algebra, to specify +% the desired order in which operations are to be performed. Where +% parentheses are used, the expression within the parentheses is +% evaluated before the resultant value is used. +% +% The resultant value of the parenthesized expression is the same as the +% value of the expression enclosed within parentheses. + +\newpage + +\subsection{Operadores de conjunto} + +Em MathProg existem os seguintes operadores de conjunto, que podem ser +usados em expressões de conjunto: + +% In MathProg there exist the following set operators, which may be used +% in set expressions: + +\begin{tabular}{@{}ll@{}} +$X$ {\tt union} $Y$&união $X\cup Y$\\ +$X$ {\tt diff} $Y$&diferença $X\backslash Y$\\ +$X$ {\tt symdiff} $Y$&diferença simétrica +$X\oplus Y=(X\backslash Y)\cup(Y\backslash X)$\\ +$X$ {\tt inter} $Y$&interseção $X\cap Y$\\ +$X$ {\tt cross} $Y$&produto Cartesiano (cruzado) $X\times Y$\\ +\end{tabular} + +% \begin{tabular}{@{}ll@{}} +% $X$ {\tt union} $Y$&union $X\cup Y$\\ +% $X$ {\tt diff} $Y$&difference $X\backslash Y$\\ +% $X$ {\tt symdiff} $Y$&symmetric difference +% $X\oplus Y=(X\backslash Y)\cup(Y\backslash X)$\\ +% $X$ {\tt inter} $Y$&intersection $X\cap Y$\\ +% $X$ {\tt cross} $Y$&cross (Cartesian) product $X\times Y$\\ +% \end{tabular} + +\noindent onde $X$ e Y são expressões de conjunto, que devem definir conjuntos +de dimensões idênticas (exceto o produto Cartesiano). + +Se a expressão inclui mais de um operador de conjunto, todos operadores +são executados da esquerda para a direita de acordo com a hierarquia das +operações (veja adiante). + +O valor resultante da expressão, que contém operadores de conjunto, é +o resultado da aplicação dos operadores aos seus operandos. + +A dimensão do conjunto resultante, i.e., a dimensão das $n$-tuplas, +dos quais consistem o conjunto resultante, é a mesma da dimensão dos +operandos, exceto o produto Cartesiano, onde a dimensão do conjunto +resultante é a soma das dimensões dos seus operandos. + +% \noindent where $X$ and Y are set expressions, which should define sets +% of identical dimension (except the Cartesian product). +% +% If the expression includes more than one set operator, all operators +% are performed from left to right according to the hierarchy of +% operations (see below). +% +% The resultant value of the expression, which contains set operators, is +% the result of applying the operators to their operands. +% +% The dimension of the resultant set, i.e. the dimension of $n$-tuples, +% of which the resultant set consists of, is the same as the dimension of +% the operands, except the Cartesian product, where the dimension of the +% resultant set is the sum of the dimensions of its operands. + +\subsection{Hierarquia das operações} + +A lista seguinte mostra a hierarquia das operações em expressões de conjunto: + +% The following list shows the hierarchy of operations in set +% expressions: + +\noindent\hfil +\begin{tabular}{@{}ll@{}} +Operação&Hierarquia\\ +\hline +Avaliação de operações numéricas& +1{\textsuperscript{\b{a}}}-7{\textsuperscript{\b{a}}}\\ +Avaliação de operações simbólicas& +8{\textsuperscript{\b{a}}}-9{\textsuperscript{\b{a}}}\\ +Avaliação de conjuntos iterados ou ``aritméticos'' ({\tt setof}, {\tt..})& +10{\textsuperscript{\b{a}}}\\ +Produto Cartesiano ({\tt cross})& +11{\textsuperscript{\b{a}}}\\ +Interseção ({\tt inter})& +12{\textsuperscript{\b{a}}}\\ +União e diferença ({\tt union}, {\tt diff}, {\tt symdiff})& +13{\textsuperscript{\b{a}}}\\ +Avaliação condicional ({\tt if} \dots {\tt then} \dots {\tt else})& +14{\textsuperscript{\b{a}}}\\ +\end{tabular} + +% \noindent\hfil +% \begin{tabular}{@{}ll@{}} +% Operation&Hierarchy\\ +% \hline +% Evaluation of numeric operations&1st-7th\\ +% Evaluation of symbolic operations&8th-9th\\ +% Evaluation of iterated or ``arithmetic'' set ({\tt setof}, {\tt..})& +% 10th\\ +% Cartesian product ({\tt cross})&11th\\ +% Intersection ({\tt inter})&12th\\ +% Union and difference ({\tt union}, {\tt diff}, {\tt symdiff})&13th\\ +% Conditional evaluation ({\tt if} \dots {\tt then} \dots {\tt else})& +% 14th\\ +% \end{tabular} + +Esta hierarquia possui o mesmo significado como explicado anteriormente +para expressões \linebreak numéricas (ver Subseção \ref{hierarchy}, página \pageref{hierarchy}). + +% This hierarchy has the same meaning as was explained above for numeric +% expressions (see Subsection \ref{hierarchy}, page \pageref{hierarchy}). + +\newpage + +\section{Expressões lógicas} + +Uma {\it expressão lógica} é uma regra para calcular um valor lógico +individual, que pode ser {\it verdadeiro} ou {\it falso}. + +A expressão lógica primária pode ser uma expressão numérica, +uma expressão relacional, uma expressão lógica iterada ou +outra expressão lógica cercada entre parênteses. + +\para{Exemplos} + +% A {\it logical expression} is a rule for computing a single logical +% value, which can be either {\it true} or {\it false}. +% +% The primary logical expression may be a numeric expression, relational +% expression, iterated logical expression, or another logical expression +% enclosed in parentheses. +% +% \para{Examples} + +\noindent +\begin{tabular}{@{}ll@{}} +\verb|i+1| &(expressão numérica)\\ +\verb|a[i,j] < 1.5| &(expressão relacional)\\ +\verb|s[i+1,j-1] <> 'Mar' & year | &(expressão relacional)\\ +\verb|(i+1,'Jan') not in I cross J| &(expressão relacional)\\ +\verb|S union T within A[i] inter B[j]| &(expressão relacional)\\ +\verb|forall{i in I, j in J} a[i,j] < .5 * b[i]| &(expressão lógica iterada)\\ +\verb|(a[i,j] < 1.5 or b[i] >= a[i,j])| &(expressão lógica parentizada)\\ +\end{tabular} + +% \noindent +% \begin{tabular}{@{}ll@{}} +% \verb|i+1| &(numeric expression)\\ +% \verb|a[i,j] < 1.5| &(relational expression)\\ +% \verb|s[i+1,j-1] <> 'Mar' & year | &(relational expression)\\ +% \verb|(i+1,'Jan') not in I cross J| &(relational expression)\\ +% \verb|S union T within A[i] inter B[j]| &(relational expression)\\ +% \verb|forall{i in I, j in J} a[i,j] < .5 * b[i]| &(iterated logical +% expression)\\ +% \verb|(a[i,j] < 1.5 or b[i] >= a[i,j])| &(parenthesized logical +% expression)\\ +% \end{tabular} + +Expressões lógicas mais genéricas, contendo duas ou mais +expressões lógicas primárias, podem ser construídas usando +determinados operadores lógicos. + +\para{Exemplos} + +\begin{verbatim} +not (a[i,j] < 1.5 or b[i] >= a[i,j]) and (i,j) in S +(i,j) in S or (i,j) not in T diff U +\end{verbatim} + +% More general logical expressions containing two or more primary logical +% expressions may be constructed by using certain logical operators. +% +% \para{Examples} +% +% \begin{verbatim} +% not (a[i,j] < 1.5 or b[i] >= a[i,j]) and (i,j) in S +% (i,j) in S or (i,j) not in T diff U +% \end{verbatim} +\vspace*{-8pt} + +\subsection{Expressões numéricas} + +O valor resultante da expressão lógica primária, que é uma +expressão numérica, é {\it verdadeiro}, se o valor resultante da +expressão numérica é diferente de zero. Caso contrário o valor resultante +da expressão lógica é {\it falso}. + +% The resultant value of the primary logical expression, which is a +% numeric expression, is {\it true}, if the resultant value of the +% numeric expression is non-zero. Otherwise the resultant value of the +% logical expression is {\it false}. + +\vspace*{-8pt} + +\subsection{Operadores relacionais} + +Em MathProg existem os seguintes operadores relacionais, que podem +ser usados em expressões lógicas: + +% In MathProg there exist the following relational operators, which may +% be used in logical expressions: + +\begin{tabular}{@{}ll@{}} +$x$ {\tt<} $y$&verifica se $x=} $y$&verifica se $x\geq y$\\ +$x$ {\tt>} $y$&verifica se $x>y$\\ +$x$ {\tt<>} $y$, $x$ {\tt!=} $y$&verifica se $x\neq y$\\ +$x$ {\tt in} $Y$&verifica se $x\in Y$\\ +{\tt(}$x_1${\tt,}\dots{\tt,}$x_n${\tt)} {\tt in} $Y$&verifica se +$(x_1,\dots,x_n)\in Y$\\ +$x$ {\tt not} {\tt in} $Y$, $x$ {\tt!in} $Y$&verifica se $x\not\in Y$\\ +{\tt(}$x_1${\tt,}\dots{\tt,}$x_n${\tt)} {\tt not} {\tt in} $Y$, +{\tt(}$x_1${\tt,}\dots{\tt,}$x_n${\tt)} {\tt !in} $Y$&verifica se +$(x_1,\dots,x_n)\not\in Y$\\ +$X$ {\tt within} $Y$&verifica se $X\subseteq Y$\\ +$X$ {\tt not} {\tt within} $Y$, $X$ {\tt !within} $Y$&verifica se +$X\not\subseteq Y$\\ +\end{tabular} + +% \begin{tabular}{@{}ll@{}} +% $x$ {\tt<} $y$&test on $x=} $y$&test on $x\geq y$\\ +% $x$ {\tt>} $y$&test on $x>y$\\ +% $x$ {\tt<>} $y$, $x$ {\tt!=} $y$&test on $x\neq y$\\ +% $x$ {\tt in} $Y$&test on $x\in Y$\\ +% {\tt(}$x_1${\tt,}\dots{\tt,}$x_n${\tt)} {\tt in} $Y$&test on +% $(x_1,\dots,x_n)\in Y$\\ +% $x$ {\tt not} {\tt in} $Y$, $x$ {\tt!in} $Y$&test on $x\not\in Y$\\ +% {\tt(}$x_1${\tt,}\dots{\tt,}$x_n${\tt)} {\tt not} {\tt in} $Y$, +% {\tt(}$x_1${\tt,}\dots{\tt,}$x_n${\tt)} {\tt !in} $Y$&test on +% $(x_1,\dots,x_n)\not\in Y$\\ +% $X$ {\tt within} $Y$&test on $X\subseteq Y$\\ +% $X$ {\tt not} {\tt within} $Y$, $X$ {\tt !within} $Y$&test on +% $X\not\subseteq Y$\\ +% \end{tabular} + +\noindent onde $x$, $x_1$, \dots, $x_n$, $y$ são expressões numéricas ou +simbólicas, $X$ e $Y$ são expressões de conjunto. + +% \noindent where $x$, $x_1$, \dots, $x_n$, $y$ are numeric or symbolic +% expressions, $X$ and $Y$ are set expression. + +\newpage + +1. Nas operações {\tt in}, {\tt not in} e {\tt !in} o número +de componentes nos primeiros operandos deve ser igual a +dimensão do segundo operando. + +2. Nas operações {\tt within}, {\tt not within} e {\tt !within} +ambos operandos devem ter a mesma dimensão. + +Todos operadores relacionais listados acima têm seus significados +matemáticos convencionais. O valor resultante é {\it verdadeiro}, se +a relação correspondente é satisfeita para seus operandos, caso contrário +é {\it falso}. (Note que valores simbólicos são ordenados de forma +lexicográfica e qualquer valor numérico precede qualquer valor simbólico.) + +% 1. In the operations {\tt in}, {\tt not in}, and {\tt !in} the +% number of components in the first operands should be the same as the +% dimension of the second operand. +% +% 2. In the operations {\tt within}, {\tt not within}, and {\tt !within} +% both operands should have identical dimension. +% +% All the relational operators listed above have their conventional +% mathematical meaning. The resultant value is {\it true}, if +% corresponding relation is satisfied for its operands, otherwise +% {\it false}. (Note that symbolic values are ordered lexicographically, +% and any numeric value precedes any symbolic value.) + +\subsection{Expressões iteradas} + +Uma {\it expressão lógica iterada} é uma expressão lógica primária +com a seguinte forma sintática: +$$\mbox{{\it operador-iterado} {\it expressão-indexante} +{\it integrando}}$$ +onde {\it operador-iterado} é o nome simbólico do operador iterado +a ser executado (veja adiante), {\it expressão-indexante} é uma +expressão indexante que introduz índices e controla a iteração, \linebreak +{\it integrando} é uma expressão numérica que participa da operação. + +Em MathProg existem dois operadores iterados que podem ser usados +em expressões lógicas: + +% An {\it iterated logical expression} is a primary logical expression, +% which has the following syntactic form: +% $$\mbox{{\it iterated-operator} {\it indexing-expression} +% {\it integrand}}$$ +% where {\it iterated-operator} is the symbolic name of the iterated +% operator to be performed (see below), {\it indexing-expression} is an +% indexing expression which introduces dummy indices and controls +% iterating, {\it integrand} is a numeric expression that participates in +% the operation. +% +% In MathProg there exist two iterated operators, which may be used in +% logical expressions: + +{\def\arraystretch{1.4} +\noindent\hfil +\begin{tabular}{@{}lll@{}} +{\tt forall}&quantificador-$\forall$&$\displaystyle +\forall(i_1,\dots,i_n)\in\Delta[f(i_1,\dots,i_n)],$\\ +{\tt exists}&quantificador-$\exists$&$\displaystyle +\exists(i_1,\dots,i_n)\in\Delta[f(i_1,\dots,i_n)],$\\ +\end{tabular} +} + +% {\def\arraystretch{1.4} +% \noindent\hfil +% \begin{tabular}{@{}lll@{}} +% {\tt forall}&$\forall$-quantification&$\displaystyle +% \forall(i_1,\dots,i_n)\in\Delta[f(i_1,\dots,i_n)],$\\ +% {\tt exists}&$\exists$-quantification&$\displaystyle +% \exists(i_1,\dots,i_n)\in\Delta[f(i_1,\dots,i_n)],$\\ +% \end{tabular} +% } + +\noindent onde $i_1$, \dots, $i_n$ são índices introduzidos na +expressão indexante, $\Delta$ é o domínio, um conjunto de $n$-tuplas +especificado pela expressão indexante que define valores específicos +atribuídos aos índices ao executar a operação iterada, e +$f(i_1,\dots,i_n)$ é o integrando, uma expressão lógica cujo +valor resultante depende dos índices. + +Para o quantificador $\forall$, o valor resultante da expressão +lógica iterada é {\it verdadeiro}, se o valor do integrando é +{\it verdadeiro} para todas as $n$-tuplas contidas no domínio, +caso contrário, é {\it falso}. + +Para o quantificador $\exists$ o valor resultante da expressão +lógica iterada é {\it falso}, se o valor do integrando é +{\it falso} para todas as $n$-tuplas contidas no domínio, +caso contrário, é {\it verdadeiro}. + +% \noindent where $i_1$, \dots, $i_n$ are dummy indices introduced in +% the indexing expression, $\Delta$ is the domain, a set of $n$-tuples +% specified by the indexing expression which defines particular values +% assigned to the dummy indices on performing the iterated operation, +% $f(i_1,\dots,i_n)$ is the integrand, a logical expression whose +% resultant value depends on the dummy indices. +% +% For $\forall$-quantification the resultant value of the iterated +% logical expression is {\it true}, if the value of the integrand is +% {\it true} for all $n$-tuples contained in the domain, otherwise +% {\it false}. +% +% For $\exists$-quantification the resultant value of the iterated +% logical expression is {\it false}, if the value of the integrand is +% {\it false} for all $n$-tuples contained in the domain, otherwise +% {\it true}. + +\subsection{Expressões parentizadas} + +Qualquer expressão lógica pode ser cercada entre parênteses, o que a +converte sintaticamente em uma expressão lógica primária. + +Parênteses podem ser usados em expressões lógicas, como em álgebra, para +especificar a ordem desejada na qual as operações devem ser executadas. +Quando se usam parênteses, a expressão entre parênteses é avaliada antes +que o valor resultante seja usado. + +O valor resultante da expressão parentizada é idêntico ao valor da expressão +cercada entre parênteses. + +% Any logical expression may be enclosed in parentheses that +% syntactically makes it a primary logical expression. +% +% Parentheses may be used in logical expressions, as in algebra, to +% specify the desired order in which operations are to be performed. +% Where parentheses are used, the expression within the parentheses is +% evaluated before the resultant value is used. +% +% The resultant value of the parenthesized expression is the same as the +% value of the expression enclosed within parentheses. + +\newpage + +\subsection{Operadores lógicos} + +Em MathProg existem os seguintes operadores lógicos, que podem ser usados em +expressões lógicas: + +% In MathProg there exist the following logical operators, which may be +% used in logical expressions: + +\begin{tabular}{@{}ll@{}} +{\tt not} $x$, {\tt!}$x$&negação $\neg\ x$\\ +$x$ {\tt and} $y$, $x$ {\tt\&\&} $y$&conjunção (``e'' lógico) +$x\;\&\;y$\\ +$x$ {\tt or} $y$, $x$ {\tt||} $y$&disjunção (``ou'' lógico) +$x\vee y$\\ +\end{tabular} + +% \begin{tabular}{@{}ll@{}} +% {\tt not} $x$, {\tt!}$x$&negation $\neg\ x$\\ +% $x$ {\tt and} $y$, $x$ {\tt\&\&} $y$&conjunction (logical ``and'') +% $x\;\&\;y$\\ +% $x$ {\tt or} $y$, $x$ {\tt||} $y$&disjunction (logical ``or'') +% $x\vee y$\\ +% \end{tabular} + +\noindent onde $x$ e $y$ são expressões lógicas. + +Se a expressão inclui mais de um operador lógico, todos operadores +são executados da esquerda para a direita de acordo com a hierarquia +das operações (veja adiante). O valor resultante da \linebreak expressão +que contém operadores lógicos é o resultado da aplicação dos +operadores aos seus \linebreak operandos. + +% \noindent where $x$ and $y$ are logical expressions. +% +% If the expression includes more than one logical operator, all +% operators are performed from left to right according to the hierarchy +% of the operations (see below). The resultant value of the expression, +% which contains logical operators, is the result of applying the +% operators to their operands. + +\subsection{Hierarquia das operações} + +A lista seguinte mostra a hierarquia das operações em expressões +lógicas: + +% The following list shows the hierarchy of operations in logical +% expressions: + +\noindent\hfil +\begin{tabular}{@{}ll@{}} +Operation&Hierarchy\\ +\hline +Avaliação de operações numéricas& +1{\textsuperscript{\b{a}}}-7{\textsuperscript{\b{a}}}\\ +Avaliação de operações simbólicas& +8{\textsuperscript{\b{a}}}-9{\textsuperscript{\b{a}}}\\ +Avaliação de operações de conjunto& +10{\textsuperscript{\b{a}}}-14{\textsuperscript{\b{a}}}\\ +Operações relacionais ({\tt<}, {\tt<=}, etc.)& +15{\textsuperscript{\b{a}}}\\ +negação ({\tt not}, {\tt!})& +16{\textsuperscript{\b{a}}}\\ +Conjunção({\tt and}, {\tt\&\&})& +17{\textsuperscript{\b{a}}}\\ +Quantificação-$\forall$ e -$\exists$ ({\tt forall}, {\tt exists})& +18{\textsuperscript{\b{a}}}\\ +Disjunção ({\tt or}, {\tt||})& +19{\textsuperscript{\b{a}}}\\ +\end{tabular} + +% \noindent\hfil +% \begin{tabular}{@{}ll@{}} +% Operation&Hierarchy\\ +% \hline +% Evaluation of numeric operations&1st-7th\\ +% Evaluation of symbolic operations&8th-9th\\ +% Evaluation of set operations&10th-14th\\ +% Relational operations ({\tt<}, {\tt<=}, etc.)&15th\\ +% Negation ({\tt not}, {\tt!})&16th\\ +% Conjunction ({\tt and}, {\tt\&\&})&17th\\ +% $\forall$- and $\exists$-quantification ({\tt forall}, {\tt exists})& +% 18th\\ +% Disjunction ({\tt or}, {\tt||})&19th\\ +% \end{tabular} + +Esta hierarquia possui o mesmo significado como explicado anteriormente +para expressões \linebreak numéricas (ver Subseção \ref{hierarchy}, página \pageref{hierarchy}). + +% This hierarchy has the same meaning as was explained above for numeric +% expressions (see Subsection \ref{hierarchy}, page \pageref{hierarchy}). + +\newpage + +\section{Expressões lineares} + +Uma {\it expressão linear} é uma regra para calcular a chamada +{\it forma linear} ou simplesmente {\it fórmula}, que é uma função linear (ou +afim) de variáveis elementares. + +A expressão linear primária pode ser uma variável não-indexada, uma +variável indexada, uma expressão linear iterada, uma expressão linear condicional +ou outra expressão linear cercada entre parênteses. + +Também e permitido usar uma expressão numérica como a expressão linear +primária, neste caso, o valor resultante da expressão numérica +é automaticamente convertido para uma fórmula que inclui o +termo constante apenas. + +\para{Exemplos} + +% A {\it linear expression} is a rule for computing so called +% a {\it linear form} or simply a {\it formula}, which is a linear (or +% affine) function of elemental variables. +% +% The primary linear expression may be an unsubscripted variable, +% subscripted variable, iterated linear expression, conditional linear +% expression, or another linear expression enclosed in parentheses. +% +% It is also allowed to use a numeric expression as the primary linear +% expression, in which case the resultant value of the numeric expression +% is automatically converted to a formula that includes the constant term +% only. +% +% \para{Examples} + +\noindent +\begin{tabular}{@{}ll@{}} +\verb|z| &(variável não-indexada)\\ +\verb|x[i,j]| &(variável indexada)\\ +\verb|sum{j in J} (a[i,j] * x[i,j] + 3 * y[i-1])| & +(expressão linear iterada)\\ +\verb|if i in I then x[i,j] else 1.5 * z + 3.25| & +(expressão linear condicional)\\ +\verb|(a[i,j] * x[i,j] + y[i-1] + .1)| & +(expressão linear parentizada)\\ +\end{tabular} + +% \noindent +% \begin{tabular}{@{}ll@{}} +% \verb|z| &(unsubscripted variable)\\ +% \verb|x[i,j]| &(subscripted variable)\\ +% \verb|sum{j in J} (a[i,j] * x[i,j] + 3 * y[i-1])| & +% (iterated linear expression)\\ +% \verb|if i in I then x[i,j] else 1.5 * z + 3.25| & +% (conditional linear expression)\\ +% \verb|(a[i,j] * x[i,j] + y[i-1] + .1)| & +% (parenthesized linear expression)\\ +% \end{tabular} + +Expressões lineares mais genéricas, contendo duas ou mais +expressões lineares primárias, podem ser construídas usando +determinados operadores aritméticos. + +\para{Exemplos} + +% More general linear expressions containing two or more primary linear +% expressions may be constructed by using certain arithmetic operators. +% +% \para{Examples} + +\begin{verbatim} +2 * x[i-1,j+1] + 3.5 * y[k] + .5 * z +(- x[i,j] + 3.5 * y[k]) / sum{t in T} abs(d[i,j,t]) +\end{verbatim} + +\vspace*{-5pt} + +\subsection{Variáveis não-indexadas} + +Se a expressão linear primária é uma variável não-indexada (que deve +se 0-dimensional), a fórmula resultante formula é aquela variável +não-indexada. + +% If the primary linear expression is an unsubscripted variable (which +% should be 0-dimensional), the resultant formula is that unsubscripted +% variable. + +\vspace*{-5pt} + +\subsection{Variáveis indexadas} + +A expressão linear primária que se refere a uma variável indexada possui +a seguinte forma sintática: +$$\mbox{{\it nome}{\tt[}$i_1${\tt,} $i_2${\tt,} \dots{\tt,} +$i_n${\tt]}}$$ +onde {\it nome} é o nome simbólico da variável do modelo, $i_1$, +$i_2$, \dots, $i_n$ são subíndices. + +Cada subíndice deve ser uma expressão numérica ou simbólica. O número +de subíndices na lista de subíndices deve ser igual ao da dimensão da +variável do modelo com a qual está associada a lista de subíndices. + +Os valores correntes das expressões dos subíndices são usados para identificar +um membro \linebreak particular da variável do modelo que determina a fórmula resultante, +que é uma variável elementar associada com o membro correspondente. + +% The primary linear expression, which refers to a subscripted variable, +% has the following syntactic form: +% $$\mbox{{\it name}{\tt[}$i_1${\tt,} $i_2${\tt,} \dots{\tt,} +% $i_n${\tt]}}$$ +% where {\it name} is the symbolic name of the model variable, $i_1$, +% $i_2$, \dots, $i_n$ are subscripts. +% +% Each subscript should be a numeric or symbolic expression. The number +% of subscripts in the subscript list should be the same as the dimension +% of the model variable with which the subscript list is associated. +% +% Actual values of the subscript expressions are used to identify a +% particular member of the model variable that determines the resultant +% formula, which is an elemental variable associated with corresponding +% member. + +\vspace*{-5pt} + +\subsection{Expressões iteradas} + +Uma {\it expressão linear iterada} é uma expressão linear primária, +que tem a seguinte forma sintática: +$$\mbox{{\tt sum} {\it expressão-indexante} {\it integrando}}$$ +onde {\it expressão-indexante} é uma expressão indexante, que +introduz índices e controla iterações, {\it integrando} é +uma expressão linear que participa da operação. + +A expressão linear iterada é avaliada exatamente da mesma forma que a +expressão numérica iterada (ver Subseção \ref{itexpr}, página +\pageref{itexpr}), exceto que o integrando participante do +somatório é uma fórmula e não um valor numérico. + +% An {\it iterated linear expression} is a primary linear expression, +% which has the following syntactic form: +% $$\mbox{{\tt sum} {\it indexing-expression} {\it integrand}}$$ +% where {\it indexing-expression} is an indexing expression, which +% introduces dummy indices and controls iterating, {\it integrand} is +% a linear expression that participates in the operation. +% +% The iterated linear expression is evaluated exactly in the same way as +% the iterated numeric expression (see Subection \ref{itexpr}, page +% \pageref{itexpr}) with exception that the integrand participated in the +% summation is a formula, not a numeric value. + +\vspace*{-5pt} + +\subsection{Expressões condicionais} + +Uma {\it expressão linear condicional} é uma expressão linear primária, +que possui uma das duas formas sintáticas seguintes: +$$ +{\def\arraystretch{1.4} +\begin{array}{l} +\mbox{{\tt if} $b$ {\tt then} $f$ {\tt else} $g$}\\ +\mbox{{\tt if} $b$ {\tt then} $f$}\\ +\end{array} +} +$$ +onde $b$ é uma expressão lógica, $f$ e $g$ são expressões lineares. + + +% A {\it conditional linear expression} is a primary linear expression, +% which has one of the following two syntactic forms: +% $$ +% {\def\arraystretch{1.4} +% \begin{array}{l} +% \mbox{{\tt if} $b$ {\tt then} $f$ {\tt else} $g$}\\ +% \mbox{{\tt if} $b$ {\tt then} $f$}\\ +% \end{array} +% } +% $$ +% where $b$ is an logical expression, $f$ and $g$ are linear expressions. + +% \newpage + +A expressão linear condicional é avaliada exatamente da mesma forma +que a expressão \linebreak condicional numérica (ver Subseção \ref{ifthen}, +página \pageref{ifthen}), exceto que os operandos que participam da operação +são fórmulas e não valores numéricos. + +% The conditional linear expression is evaluated exactly in the same way +% as the conditional numeric expression (see Subsection \ref{ifthen}, +% page \pageref{ifthen}) with exception that operands participated in the +% operation are formulae, not numeric values. + +\subsection{Expressões parentizadas} + +Qualquer expressão linear pode ser cercada entre parênteses, o que a +converte sintaticamente em uma expressão linear primária. + +Parênteses podem ser usados em expressões lineares, como em álgebra, para +especificar a ordem desejada na qual as operações devem ser executadas. +Quando se usam parênteses, a expressão entre parênteses é avaliada antes +que a fórmula resultante seja usada. + +O valor resultante da expressão parentizada é idêntico ao valor da +expressão cercada entre parênteses. + +% Any linear expression may be enclosed in parentheses that syntactically +% makes it a primary linear expression. +% +% Parentheses may be used in linear expressions, as in algebra, to +% specify the desired order in which operations are to be performed. +% Where parentheses are used, the expression within the parentheses is +% evaluated before the resultant formula is used. +% +% The resultant value of the parenthesized expression is the same as the +% value of the expression enclosed within parentheses. + +\subsection{Operadores aritméticos} + +Em MathProg existem os seguintes operadores aritméticos, que podem ser +usados em expressões lineares: + +% In MathProg there exists the following arithmetic operators, which may +% be used in linear expressions: + +\begin{tabular}{@{}ll@{}} +{\tt+} $f$&mais unário\\ +{\tt-} $f$&menos unário\\ +$f$ {\tt+} $g$&adição\\ +$f$ {\tt-} $g$&subtração\\ +$x$ {\tt*} $f$, $f$ {\tt*} $x$&multiplicação\\ +$f$ {\tt/} $x$&divisão +\end{tabular} + +% \begin{tabular}{@{}ll@{}} +% {\tt+} $f$&unary plus\\ +% {\tt-} $f$&unary minus\\ +% $f$ {\tt+} $g$&addition\\ +% $f$ {\tt-} $g$&subtraction\\ +% $x$ {\tt*} $f$, $f$ {\tt*} $x$&multiplication\\ +% $f$ {\tt/} $x$&division +% \end{tabular} + +\noindent onde $f$ e $g$ são expressões lineares, $x$ é uma expressão +numérica (mais precisamente, uma expressão linear contendo apenas o termo +constante). + +Se a expressão inclui mais de um operador aritmético, todos +operadores são executados da esquerda para a direita de acordo com a hierarquia +das operações (veja adiante). O valor resultante da expressão, que +contém operadores aritméticos, é o resultado de aplicar os operadores aos +seus operandos. + +% \noindent where $f$ and $g$ are linear expressions, $x$ is a numeric +% expression (more precisely, a linear expression containing only the +% constant term). +% +% If the expression includes more than one arithmetic operator, all +% operators are performed from left to right according to the hierarchy +% of operations (see below). The resultant value of the expression, which +% contains arithmetic operators, is the result of applying the operators +% to their operands. + +\subsection{Hierarquia das operações} + +A hierarquia de operações aritméticas usada em expressões lineares é a mesma +para expressões numéricas (ver Subseção \ref{hierarchy}, página \pageref{hierarchy}). + +% The hierarchy of arithmetic operations used in linear expressions is +% the same as for numeric expressions (see Subsection \ref{hierarchy}, +% page \pageref{hierarchy}). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Sentenças} + +{\it Sentenças} são unidades básicas da descrição do modelo. Em MathProg +todas as sentenças são divididas em duas categorias: sentenças de declaração +e sentenças funcionais. + +{\it Sentenças de declaração} (sentença {\it set}, sentença {\it parameter}, +sentença {\it variable}, sentença \linebreak {\it constraint}, sentença {\it objective}) são +usados para declarar objetos de certo tipo do modelo e definir certas propriedades +de tais objetos. + +{\it Sentenças funcionais} (sentença {\it solve}, sentença {\it check}, +sentença {\it display}, sentença {\it printf}, sentença {\it loop}, sentença +{\it table}) são projetadas para executar ações específicas. + +Note que sentenças de declaração podem seguir em qualquer ordem arbitrária, +o que não afeta o resultado da tradução. Entretanto, qualquer objeto de modelo +deve ser declarado antes de ser referenciado por outras sentenças. + +% {\it Statements} are basic units of the model description. In MathProg +% all statements are divided into two categories: declaration statements +% and functional statements. +% +% {\it Declaration statements} (set statement, parameter statement, +% variable statement, constraint statement, objective statement) are used +% to declare model objects of certain kinds and define certain properties +% of such objects. +% +% {\it Functional statements} (solve statement, check statement, display +% statement, printf statement, loop statement, table statement) are +% intended for performing some specific actions. +% +% Note that declaration statements may follow in arbitrary order, which +% does not affect the result of translation. However, any model object +% should be declared before it is referenced in other statements. + +\section{Sentença set} + +\noindent +\framebox[468pt][l]{ +\parbox[c][24pt]{468pt}{ +\hspace{6pt} {\tt set} {\it nome} {\it alias} {\it domínio} {\tt,} +{\it atributo} {\tt,} \dots {\tt,} {\it atributo} {\tt;} +}} + +% \noindent +% \framebox[468pt][l]{ +% \parbox[c][24pt]{468pt}{ +% \hspace{6pt} {\tt set} {\it name} {\it alias} {\it domain} {\tt,} +% {\it attrib} {\tt,} \dots {\tt,} {\it attrib} {\tt;} +% }} + +\medskip + +\noindent +{\it nome} é um nome simbólico do conjunto; + +\noindent +{\it alias} é um literal de cadeia opcional que especifica um pseudônimo +para o conjunto; + +\noindent +{\it domínio} é uma expressão indexante opcional que especifica o domínio +do subíndice do conjunto; + +\noindent +{\it atributo}, \dots, {\it atributo} são atributos opcionais do conjunto +(as vírgulas que precedem os atributos podem ser omitidas.) + +\para{Atributos opcionais} + +% \noindent +% {\it name} is a symbolic name of the set; +% +% \noindent +% {\it alias} is an optional string literal, which specifies an alias of +% the set; +% +% \noindent +% {\it domain} is an optional indexing expression, which specifies +% a subscript domain of the set; +% +% \noindent +% {\it attrib}, \dots, {\it attrib} are optional attributes of the set. +% (Commae preceding attributes may be omitted.) +% +% \para{Optional attributes} + +\vspace*{-8pt} + +\begin{description} +\item[{\tt dimen} $n$]\hspace*{0pt}\\ +especifica a dimensão de $n$-tuplas das quais o conjunto é consistido; +\item[{\tt within} {\it expressão}]\hspace*{0pt}\\ +especifica um superconjunto que restringe ao conjunto ou a todos seus +membros (conjuntos elementares) a estarem incluídos naquele superconjunto; +\item[{\tt:=} {\it expressão}]\hspace*{0pt}\\ +especifica um conjunto elementar atribuído ao conjunto ou aos seus membros; +\item[{\tt default} {\it expressão}]\hspace*{0pt}\\ +especifica um conjunto elementar atribuído ao conjunto ou aos seus membros +sempre que não há dados apropriados disponíveis na seção de dados. +\end{description} + +% \begin{description} +% \item[{\tt dimen} $n$]\hspace*{0pt}\\ +% specifies the dimension of $n$-tuples which the set consists of; +% \item[{\tt within} {\it expression}]\hspace*{0pt}\\ +% specifies a superset which restricts the set or all its members +% (elemental sets) to be within that superset; +% \item[{\tt:=} {\it expression}]\hspace*{0pt}\\ +% specifies an elemental set assigned to the set or its members; +% \item[{\tt default} {\it expression}]\hspace*{0pt}\\ +% specifies an elemental set assigned to the set or its members whenever +% no appropriate data are available in the data section. +% \end{description} + +\vspace*{-8pt} + +\para{Exemplos} + +% \para{Examples} + +\begin{verbatim} +set nos; +set arcos within nos cross nos; +set passo{s in 1..maxiter} dimen 2 := if s = 1 then arcos else passo[s-1] + union setof{k in nos, (i,k) in passo[s-1], (k,j) in passo[s-1]}(i,j); +set A{i in I, j in J}, within B[i+1] cross C[j-1], within D diff E, + default {('abc',123), (321,'cba')}; +\end{verbatim} + +% \begin{verbatim} +% set nodes; +% set arcs within nodes cross nodes; +% set step{s in 1..maxiter} dimen 2 := if s = 1 then arcs else step[s-1] +% union setof{k in nodes, (i,k) in step[s-1], (k,j) in step[s-1]}(i,j); +% set A{i in I, j in J}, within B[i+1] cross C[j-1], within D diff E, +% default {('abc',123), (321,'cba')}; +% \end{verbatim} + +A sentença set declara um conjunto. Se o domínio do subíndice não é +especificado, o conjunto é um conjunto simples, caso contrário será +uma matriz de conjuntos elementares. + +O atributo {\tt dimen} especifica a dimensão de $n$-tuplas da qual é +consistida o conjunto (se o conjunto é simples) ou seus membros +(se o conjunto é uma matriz de conjuntos elementares), +em que $n$ deve ser um inteiro de 1 a 20. Pode-se especificar +no máximo um atributo {\tt dimen}. Se o atributo {\tt dimen} não é +especificado, a dimensão das $n$-tuplas é implicitamente determinada +por outros atributos (por exemplo, se há uma expressão que segue +{\tt:=} ou a palavra-chave {\tt default}, usa-se a dimensão das $n$-tuplas +do conjunto elementar correspondente). +Se nenhuma informação de dimensão é fornecida, assume-se +{\tt dimen 1}. + +O atributo {\tt within} especifica uma expressão de conjunto cujo +valor resultante é um superconjunto usado para restringir o conjunto +(se o conjunto é simples) ou seus membros (se o conjunto é uma matriz +de conjuntos elementares) a estar incluído naquele superconjunto. +Um número arbitrário de atributos {\tt within} podem ser especificados +na mesma sentença set. + +O atributo de atribuição ({\tt:=}) especifica uma expressão de conjunto +usada para avaliar conjunto(s) \linebreak elementar(es) atribuído(s) ao conjunto +(se o conjunto é simples) ou seus membros (se o conjunto é uma matriz +de conjuntos elementares). Se o atributo de atribuição é especificado, +o conjunto é {\it calculável}, portanto, não há a necessidade de fornecer +dados na seção de dados. Se o atributo de atribuição não é especificado, +deve-se fornecer os dados na seção de dados. Pode-se especificar no +máximo um atributo de atribuição ou {\tt default} para o mesmo conjunto. + +O atributo {\tt default} especifica uma expressão de conjunto usado para +avaliar conjunto(s) \linebreak elementar(es) atribuído(s) ao conjunto +(se o conjunto é simples) ou seus membros (se o conjunto é uma matriz +de conjuntos elementares) sempre que não houver dados apropriados +disponíveis na seção de dados. Se não se especifica nem o atributo de +atribuição nem o atributo {\tt default}, a falta de dados causará um erro. + +% The set statement declares a set. If the subscript domain is not +% specified, the set is a simple set, otherwise it is an array of +% elemental sets. +% +% The {\tt dimen} attribute specifies the dimension of $n$-tuples, which +% the set (if it is a simple set) or its members (if the set is an array +% of elemental sets) consist of, where $n$ should be an unsigned integer +% from 1 to 20. At most one {\tt dimen} attribute can be specified. If +% the {\tt dimen} attribute is not specified, the dimension of $n$-tuples +% is implicitly determined by other attributes (for example, if there is +% a set expression that follows {\tt:=} or the keyword {\tt default}, the +% dimension of $n$-tuples of corresponding elemental set is used). +% If no dimension information is available, {\tt dimen 1} is assumed. +% +% The {\tt within} attribute specifies a set expression whose resultant +% value is a superset used to restrict the set (if it is a simple set) or +% its members (if the set is an array of elemental sets) to be within +% that superset. Arbitrary number of {\tt within} attributes may be +% specified in the same set statement. +% +% The assign ({\tt:=}) attribute specifies a set expression used to +% evaluate elemental set(s) assigned to the set (if it is a simple set) +% or its members (if the set is an array of elemental sets). If the +% assign attribute is specified, the set is {\it computable} and +% therefore needs no data to be provided in the data section. If the +% assign attribute is not specified, the set should be provided with data +% in the data section. At most one assign or default attribute can be +% specified for the same set. +% +% The {\tt default} attribute specifies a set expression used to evaluate +% elemental set(s) assigned to the set (if it is a simple set) or its +% members (if the set is an array of elemental sets) whenever +% no appropriate data are available in the data section. If neither +% assign nor default attribute is specified, missing data will cause an +% error. + +\newpage + +\section{Sentença parameter} + +\noindent +\framebox[468pt][l]{ +\parbox[c][24pt]{468pt}{ +\hspace{6pt} {\tt param} {\it nome} {\it alias} {\it domínio} {\tt,} +{\it attrib} {\tt,} \dots {\tt,} {\it attrib} {\tt;} +}} + +% \noindent +% \framebox[468pt][l]{ +% \parbox[c][24pt]{468pt}{ +% \hspace{6pt} {\tt param} {\it name} {\it alias} {\it domain} {\tt,} +% {\it attrib} {\tt,} \dots {\tt,} {\it attrib} {\tt;} +% }} + +\medskip + +\noindent +{\it nome} é um nome simbólico do parâmetro; + +\noindent +{\it alias} é um literal de cadeia opcional que especifica um pseudônimo +para o parâmetro; + +\noindent +{\it domínio} é uma expressão indexante opcional que especifica o domínio +do subíndice do parâmetro; + +\noindent +{\it atributo}, \dots, {\it atributo} são atributos opcionais do parâmetro +(as vírgulas que precedem os atributos podem ser omitidas.) + +\para{Atributos opcionais} + +% \noindent +% {\it name} is a symbolic name of the parameter; +% +% \noindent +% {\it alias} is an optional string literal, which specifies an alias of +% the parameter; +% +% \noindent +% {\it domain} is an optional indexing expression, which specifies +% a subscript domain of the parameter; +% +% \noindent +% {\it attrib}, \dots, {\it attrib} are optional attributes of the +% parameter. (Commae preceding attributes may be omitted.) +% +% \para{Optional attributes} + +\vspace*{-8pt} + +\begin{description} +\item[{\tt integer}]\hspace*{0pt}\\ +especifica que o parâmetro é inteiro; +\item[{\tt binary}]\hspace*{0pt}\\ +especifica que o parâmetro é binário; +\item[{\tt symbolic}]\hspace*{0pt}\\ +especifica que o parâmetro é simbólico; +\item[{\it expressão de relação}]\hspace*{0pt}\\ +(onde {\it relação} é algum de: {\tt<}, {\tt<=}, {\tt=}, {\tt==}, +{\tt>=}, {\tt>}, {\tt<>}, {\tt!=})\\ +especifica uma condição que restringe o parâmetro ou seus membros a +satisfazer aquela condição; +\item[{\tt in} {\it expressão}]\hspace*{0pt}\\ +especifica um superconjunto que restringe o parâmetro ou seus membros +a estarem inseridos naquele superconjunto; +\item[{\tt:=} {\it expressão}]\hspace*{0pt}\\ +especifica um valor atribuído ao parâmetro ou a seus membros; +\item[{\tt default} {\it expressão}]\hspace*{0pt}\\ +especifica um valor atribuído ao parâmetro ou aos seus membros sempre +que não houverem dados disponíveis na seção de dados. +\end{description} + +% \begin{description} +% \item[{\tt integer}]\hspace*{0pt}\\ +% specifies that the parameter is integer; +% \item[{\tt binary}]\hspace*{0pt}\\ +% specifies that the parameter is binary; +% \item[{\tt symbolic}]\hspace*{0pt}\\ +% specifies that the parameter is symbolic; +% \item[{\it relation expression}]\hspace*{0pt}\\ +% (where {\it relation} is one of: {\tt<}, {\tt<=}, {\tt=}, {\tt==}, +% {\tt>=}, {\tt>}, {\tt<>}, {\tt!=})\\ +% specifies a condition that restricts the parameter or its members to +% satisfy that condition; +% \item[{\tt in} {\it expression}]\hspace*{0pt}\\ +% specifies a superset that restricts the parameter or its members to be +% in that superset; +% \item[{\tt:=} {\it expression}]\hspace*{0pt}\\ +% specifies a value assigned to the parameter or its members; +% \item[{\tt default} {\it expression}]\hspace*{0pt}\\ +% specifies a value assigned to the parameter or its members whenever +% no appropriate data are available in the data section. +% \end{description} + +\vspace*{-8pt} + +\para{Exemplos} + +% \para{Examples} + +\begin{verbatim} +param unidades{insumo, produto} >= 0; +param lucro{produto, 1..T+1}; +param N := 20 integer >= 0 <= 100; +param combinacao 'n escolhe k' {n in 0..N, k in 0..n} := + if k = 0 or k = n then 1 else combinacao[n-1,k-1] + combinacao[n-1,k]; +param p{i in I, j in J}, integer, >= 0, <= i+j, in A[i] symdiff B[j], + in C[i,j], default 0.5 * (i + j); +param mes symbolic default 'Mai' in {'Mar', 'Abr', 'Mai'}; +\end{verbatim} + +% \begin{verbatim} +% param units{raw, prd} >= 0; +% param profit{prd, 1..T+1}; +% param N := 20 integer >= 0 <= 100; +% param comb 'n choose k' {n in 0..N, k in 0..n} := +% if k = 0 or k = n then 1 else comb[n-1,k-1] + comb[n-1,k]; +% param p{i in I, j in J}, integer, >= 0, <= i+j, in A[i] symdiff B[j], +% in C[i,j], default 0.5 * (i + j); +% param month symbolic default 'May' in {'Mar', 'Apr', 'May'}; +% \end{verbatim} + +A sentença parameter declara um parâmetro. Se o domínio de subíndice não +é especificado, o parâmetro é simples (escalar), caso contrário, +é uma matriz $n$-dimensional. + +Os atributos de tipo {\tt integer}, {\tt binary} e {\tt symbolic} +qualificam os tipos de valores que podem ser atribuídos ao parâmetro, conforme +demonstrado: + +% The parameter statement declares a parameter. If a subscript domain is +% not specified, the parameter is a simple (scalar) parameter, otherwise +% it is a $n$-dimensional array. +% +% The type attributes {\tt integer}, {\tt binary}, and {\tt symbolic} +% qualify the type of values that can be assigned to the parameter as +% shown below: + +\noindent\hfil +\begin{tabular}{@{}ll@{}} +Tipo de atributo&Valores atribuídos\\ +\hline +(não especificado)&Qualquer valor numérico\\ +{\tt integer}&Apenas valores numéricos inteiros\\ +{\tt binary}&Tanto 0 quanto 1\\ +{\tt symbolic}&Qualquer valor numérico e simbólico\\ +\end{tabular} + +% \noindent\hfil +% \begin{tabular}{@{}ll@{}} +% Type attribute&Assigned values\\ +% \hline +% (not specified)&Any numeric values\\ +% {\tt integer}&Only integer numeric values\\ +% {\tt binary}&Either 0 or 1\\ +% {\tt symbolic}&Any numeric and symbolic values\\ +% \end{tabular} + +O atributo {\tt symbolic} não pode ser especificado juntamente com outros tipos +de atributos. Uma vez especificado, ele deve preceder todos os outros atributos. + +O atributo de condição especifica uma condição opcional que restringe +os valores atribuídos ao parâmetro para satisfazer aquela condição. +Este atributo tem as seguintes formas sintáticas: + +% The {\tt symbolic} attribute cannot be specified along with other type +% attributes. Being specified it should precede all other attributes. +% +% The condition attribute specifies an optional condition that restricts +% values assigned to the parameter to satisfy that condition. This +% attribute has the following syntactic forms: + +\begin{tabular}{@{}ll@{}} +{\tt<} $v$&verifica se $x=} $v$&verifica se $x\geq v$\\ +{\tt>} $v$&verifica se $x\geq v$\\ +{\tt<>} $v$, {\tt!=} $v$&verifica se $x\neq v$\\ +\end{tabular} + +% \begin{tabular}{@{}ll@{}} +% {\tt<} $v$&check for $x=} $v$&check for $x\geq v$\\ +% {\tt>} $v$&check for $x\geq v$\\ +% {\tt<>} $v$, {\tt!=} $v$&check for $x\neq v$\\ +% \end{tabular} + +\noindent onde $x$ é um valor atribuído ao parâmetro, $v$ é o +valor resultante de uma expressão numérica ou simbólica especificado +no atributo de condição. Um número arbitrário de atributos de condição +pode ser especificado para o mesmo parâmetro. Se, durante a avaliação do +modelo, um valor atribuído ao parâmetro viola pelo menos uma das +condições especificadas, ocorrerá um erro. (Note que valores simbólicos +são ordenados de forma lexicográfica e qualquer valor numérico precede +qualquer valor simbólico.) + +O atributo {\tt in} é similar ao atributo de condição e especifica +uma expressão de conjunto cujo valor resultante é um superconjunto usado +para restringir valores numéricos ou simbólicos atribuídos ao parâmetro +a estarem incluídos naquele superconjunto. Pode-se especificar um número +arbitrário de atributos {\tt in} para o mesmo parâmetro. Se, durante a avaliação do +modelo, o valor atribuído ao parâmetro não pertence a pelo menos um dos +superconjuntos especificados, ocorrerá um erro. + +O atributo de atribuição ({\tt:=}) especifica uma expressão numérica +ou simbólica usada para \linebreak computar um valor atribuído ao parâmetro +(se é um parâmetro simples) ou seus membros (se o parâmetro é uma matriz). +Se o atributo de atribuição é especificado, +o parâmetro é {\it calculável}, \linebreak portanto, não há a necessidade de fornecer +dados na seção de dados. Se o atributo de atribuição não é especificado, +deve-se fornecer os dados para o parâmetro na seção de dados. Pode-se especificar no +máximo um atributo de atribuição ou {\tt default} para o mesmo parâmetro. + +O atributo {\tt default} especifica uma expressão numérica ou simbólica +usada para computar um valor atribuído ao parâmetro ou seus membros +sempre que não houver dados apropriados disponíveis na seção de dados. +Se não se especifica nem o atributo de atribuição nem o atributo +{\tt default}, a falta de dados causará um erro. + +% \noindent where $x$ is a value assigned to the parameter, $v$ is the +% resultant value of a numeric or symbolic expression specified in the +% condition attribute. Arbitrary number of condition attributes can be +% specified for the same parameter. If a value being assigned to the +% parameter during model evaluation violates at least one of specified +% conditions, an error is raised. (Note that symbolic values are ordered +% lexicographically, and any numeric value precedes any symbolic value.) +% +% The {\tt in} attribute is similar to the condition attribute and +% specifies a set expression whose resultant value is a superset used to +% restrict numeric or symbolic values assigned to the parameter to be in +% that superset. Arbitrary number of the {\tt in} attributes can be +% specified for the same parameter. If a value being assigned to the +% parameter during model evaluation is not in at least one of specified +% supersets, an error is raised. +% +% The assign ({\tt:=}) attribute specifies a numeric or symbolic +% expression used to compute a value assigned to the parameter (if it is +% a simple parameter) or its member (if the parameter is an array). If +% the assign attribute is specified, the parameter is {\it computable} +% and therefore needs no data to be provided in the data section. If the +% assign attribute is not specified, the parameter should be provided +% with data in the data section. At most one assign or {\tt default} +% attribute can be specified for the same parameter. +% +% The {\tt default} attribute specifies a numeric or symbolic expression +% used to compute a value assigned to the parameter or its member +% whenever no appropriate data are available in the data section. If +% neither assign nor {\tt default} attribute is specified, missing data +% will cause an error. + +\newpage + +\section{Sentença variable} + +\noindent +\framebox[468pt][l]{ +\parbox[c][24pt]{468pt}{ +\hspace{6pt} {\tt var} {\it nome} {\it alias} {\it domínio} {\tt,} +{\it atrib} {\tt,} \dots {\tt,} {\it atrib} {\tt;} +}} + +\medskip + +\noindent +{\it nome} é um nome simbólico da variável; + +\noindent +{\it alias} é um literal de cadeia opcional que especifica um pseudônimo +para a variável; + +\noindent +{\it domínio} é uma expressão indexante opcional que especifica o domínio +do subíndice da variável; + +\noindent +{\it atrib}, \dots, {\it atrib} são atributos opcionais da variável +(as vírgulas que precedem os atributos podem ser omitidas.) + +\para{Atributos opcionais} + +\vspace*{-8pt} + +\begin{description} +\item[{\tt integer}]\hspace*{0pt}\\ +restringe a variável a ser inteira; +\item[{\tt binary}]\hspace*{0pt}\\ +restringe a variável a ser binária; +\item[{\tt>=} {\it expressão}]\hspace*{0pt}\\ +especifica um limite inferior para a variável; +\item[{\tt<=} {\it expressão}]\hspace*{0pt}\\ +especifica um limite superior para a variável; +\item[{\tt=} {\it expressão}]\hspace*{0pt}\\ +especifica um valor fixo para a variável; +\end{description} + + +% \noindent +% \framebox[468pt][l]{ +% \parbox[c][24pt]{468pt}{ +% \hspace{6pt} {\tt var} {\it name} {\it alias} {\it domain} {\tt,} +% {\it attrib} {\tt,} \dots {\tt,} {\it attrib} {\tt;} +% }} +% +% \medskip +% +% \noindent +% {\it name} is a symbolic name of the variable; +% +% \noindent +% {\it alias} is an optional string literal, which specifies an alias of +% the variable; +% +% \noindent +% {\it domain} is an optional indexing expression, which specifies +% a subscript domain of the variable; +% +% \noindent +% {\it attrib}, \dots, {\it attrib} are optional attributes of the +% variable. (Commae preceding attributes may be omitted.) +% +% \para{Optional attributes} +% +% \vspace*{-8pt} +% +% \begin{description} +% \item[{\tt integer}]\hspace*{0pt}\\ +% restricts the variable to be integer; +% \item[{\tt binary}]\hspace*{0pt}\\ +% restricts the variable to be binary; +% \item[{\tt>=} {\it expression}]\hspace*{0pt}\\ +% specifies an lower bound of the variable; +% \item[{\tt<=} {\it expression}]\hspace*{0pt}\\ +% specifies an upper bound of the variable; +% \item[{\tt=} {\it expression}]\hspace*{0pt}\\ +% specifies a fixed value of the variable; +% \end{description} + +\vspace*{-8pt} + +\para{Exemplos} + +% \para{Examples} + +\begin{verbatim} +var x >= 0; +var y{I,J}; +var produzir{p in prod}, integer, >= comprometido[p], <= mercado[p]; +var armazenar{insumo, 1..T+1} >= 0; +var z{i in I, j in J} >= i+j; +\end{verbatim} + +% \begin{verbatim} +% var x >= 0; +% var y{I,J}; +% var make{p in prd}, integer, >= commit[p], <= market[p]; +% var store{raw, 1..T+1} >= 0; +% var z{i in I, j in J} >= i+j; +% \end{verbatim} + +A sentença variable declara uma variável. Se não se especifica o +domínio do subíndice, a variável e uma variável simples (escalar), +caso contrário é uma matriz $n$-dimensional de variáveis elementares. + +As variáveis elementares associadas com a variável do modelo +(se é uma variável simples) ou seus membros (se é uma matriz) corresponde +às variáveis na formulação do problema PL/PIM (ver Seção \ref{problem}, +página \pageref{problem}). Note que somente variáveis elementares +realmente referenciadas em algumas restrições e/ou objetivos serão +incluídas na instância do problema PL/PIM a ser gerado. + +Os atributos de tipo {\tt integer} e {\tt binary} restringem a variável +a ser inteira ou binária, \linebreak respectivamente. Se nenhum atributo de tipo +é especificado, a variável é contínua. Se todas as variáveis no modelo +são contínuas, o problema correspondente é da classe PL. Se há pelo +menos uma variável inteira ou binária, o problema é da classe PIM. + +\newpage + +O atributo de limite inferior ({\tt>=}) especifica uma expressão numérica +para calcular um limite inferior da variável. No máximo um limite inferior +pode ser especificado. Por padrão, todas as variáveis (exceto as binárias) +não tem limite inferior, assim, se há a necessidade de uma variável ser +não-negativa, seu limite inferior zero deve ser explicitamente especificado. + +O atributo de limite superior ({\tt<=}) especifica uma expressão numérica +para calcular um limite superior da variável. No máximo um limite superior +pode ser especificado. + +O atributo de valor fixo ({\tt=}) especifica uma expressão numérica para +calcular um valor no qual a variável é fixada. Este atributo não pode +ser especificado junto com os atributos de limite. + + +% The variable statement declares a variable. If a subscript domain is +% not specified, the variable is a simple (scalar) variable, otherwise it +% is a $n$-dimensional array of elemental variables. +% +% Elemental variable(s) associated with the model variable (if it is a +% simple variable) or its members (if it is an array) correspond to the +% variables in the LP/MIP problem formulation (see Section \ref{problem}, +% page \pageref{problem}). Note that only elemental variables actually +% referenced in some constraints and/or objectives are included in the +% LP/MIP problem instance to be generated. +% +% The type attributes {\tt integer} and {\tt binary} restrict the +% variable to be integer or binary, respectively. If no type attribute is +% specified, the variable is continuous. If all variables in the model +% are continuous, the corresponding problem is of LP class. If there is +% at least one integer or binary variable, the problem is of MIP class. +% +% The lower bound ({\tt>=}) attribute specifies a numeric expression for +% computing an lower bound of the variable. At most one lower bound can +% be specified. By default all variables (except binary ones) have no +% lower bound, so if a variable is required to be non-negative, its zero +% lower bound should be explicitly specified. +% +% The upper bound ({\tt<=}) attribute specifies a numeric expression for +% computing an upper bound of the variable. At most one upper bound +% attribute can be specified. +% +% The fixed value ({\tt=}) attribute specifies a numeric expression for +% computing a value, at which the variable is fixed. This attribute +% cannot be specified along with the bound attributes. + + +\section{Sentença constraint} + +\noindent +\framebox[468pt][l]{ +\parbox[c][106pt]{468pt}{ +\hspace{6pt} {\tt s.t.} {\it nome} {\it alias} {\it domínio} {\tt:} +{\it expressão} {\tt,} {\tt=} {\it expressão} {\tt;} + +\medskip + +\hspace{6pt} {\tt s.t.} {\it nome} {\it alias} {\it domínio} {\tt:} +{\it expressão} {\tt,} {\tt<=} {\it expressão} {\tt;} + +\medskip + +\hspace{6pt} {\tt s.t.} {\it nome} {\it alias} {\it domínio} {\tt:} +{\it expressão} {\tt,} {\tt>=} {\it expressão} {\tt;} + +\medskip + +\hspace{6pt} {\tt s.t.} {\it nome} {\it alias} {\it domínio} {\tt:} +{\it expressão} {\tt,} {\tt<=} {\it expressão} {\tt,} {\tt<=} +{\it expressão} {\tt;} + +\medskip + +\hspace{6pt} {\tt s.t.} {\it nome} {\it alias} {\it domínio} {\tt:} +{\it expressão} {\tt,} {\tt>=} {\it expressão} {\tt,} {\tt>=} +{\it expressão} {\tt;} +}} + +\medskip + +\noindent +{\it nome} é um nome simbólico da restrição; + +\noindent +{\it alias} é um literal de cadeia opcional que especifica um pseudônimo +da restrição; + +\noindent +{\it domínio} é uma expressão indexante opcional, que especifica +o domínio do subíndice da restrição; + +\noindent +{\it expressão} é uma expressão linear usada para calcular um componente +da restrição (as vírgulas que precedem os atributos podem ser omitidas). + +\noindent +(A palavra-chave {\tt s.t.} pode ser escrita como {\tt subject to}, como +{\tt subj to} ou pode ser omitido por completo). + + +% \noindent +% \framebox[468pt][l]{ +% \parbox[c][106pt]{468pt}{ +% \hspace{6pt} {\tt s.t.} {\it name} {\it alias} {\it domain} {\tt:} +% {\it expression} {\tt,} {\tt=} {\it expression} {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt s.t.} {\it name} {\it alias} {\it domain} {\tt:} +% {\it expression} {\tt,} {\tt<=} {\it expression} {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt s.t.} {\it name} {\it alias} {\it domain} {\tt:} +% {\it expression} {\tt,} {\tt>=} {\it expression} {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt s.t.} {\it name} {\it alias} {\it domain} {\tt:} +% {\it expression} {\tt,} {\tt<=} {\it expression} {\tt,} {\tt<=} +% {\it expression} {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt s.t.} {\it name} {\it alias} {\it domain} {\tt:} +% {\it expression} {\tt,} {\tt>=} {\it expression} {\tt,} {\tt>=} +% {\it expression} {\tt;} +% }} +% +% \medskip +% +% \noindent +% {\it name} is a symbolic name of the constraint; +% +% \noindent +% {\it alias} is an optional string literal, which specifies an alias of +% the constraint; +% +% \noindent +% {\it domain} is an optional indexing expression, which specifies +% a subscript domain of the constraint; +% +% \noindent +% {\it expression} is a linear expression used to compute a component of +% the constraint. (Commae following expressions may be omitted.) +% +% \noindent +% (The keyword {\tt s.t.} may be written as {\tt subject to} or as +% {\tt subj to}, or may be omitted at all.) + + +\para{Exemplos} + +% \para{Examples} + +\begin{verbatim} +s.t. r: x + y + z, >= 0, <= 1; +limite{t in 1..T}: sum{j in produto} produzir[j,t] <= max_prod; +subject to balanco{i in insumo, t in 1..T}: + estoque[i,t+1] = estoque[i,t] - sum{j in produto} unidades[i,j] * produzir[j,t]; +subject to rlim 'limite tempo-regular' {t in tempo}: + sum{p in produto} pt[p] * rprod[p,t] <= 1.3 * dpp[t] * equipes[t]; +\end{verbatim} + +% \begin{verbatim} +% s.t. r: x + y + z, >= 0, <= 1; +% limit{t in 1..T}: sum{j in prd} make[j,t] <= max_prd; +% subject to balance{i in raw, t in 1..T}: +% store[i,t+1] = store[i,t] - sum{j in prd} units[i,j] * make[j,t]; +% subject to rlim 'regular-time limit' {t in time}: +% sum{p in prd} pt[p] * rprd[p,t] <= 1.3 * dpp[t] * crews[t]; +% \end{verbatim} + +A sentença de restrição declara uma restrição. Se o domínio do subíndice +não é especificado, a restrição é uma restrição simples (escalar), +caso contrário, é uma matriz $n$-dimensional de restrições elementares. + +Restrições elementares associadas com a restrição do modelo (se é +uma restrição simples) ou seus membros (se é uma matriz) correspondem +a restrições lineares na formulação do problema de PL/PIM (ver +Seção \ref{problem}, página \pageref{problem}). + +Se a restrição possui a forma de igualdade ou desigualdade simples, i.e., +inclui duas expressões, uma segue depois dos dois pontos e a outra +segue depois do sinal de relação {\tt=}, {\tt<=} ou {\tt>=}, \linebreak ambas +expressões na sentença podem ser expressões lineares. Se a restrição +possui a forma de uma \linebreak desigualdade dupla, i.e., inclui três expressões, +a expressão do meio pode ser uma expressão linear, enquanto a da +esquerda e a da direita podem ser apenas expressões numéricas. + +Gerar o modelo é, a grosso modo, gerar suas restrições, que são sempre +avaliadas para todo domínio do subíndice. Avaliar as restrições, +por sua vez, leva a avaliação de outros objetos de modelo tais como +conjuntos, parâmetros e variáveis. + +A construção de uma restrição linear incluída na instância do problema, +que corresponde a uma restrição elementar particular, é realizada +como segue. + + +% The constraint statement declares a constraint. If a subscript domain +% is not specified, the\linebreak constraint is a simple (scalar) +% constraint, otherwise it is a $n$-dimensional array of elemental +% constraints. +% +% Elemental constraint(s) associated with the model constraint (if it is +% a simple constraint) or its members (if it is an array) correspond to +% the linear constraints in the LP/MIP problem formulation (see +% Section \ref{problem}, page \pageref{problem}). +% +% If the constraint has the form of equality or single inequality, i.e. +% includes two expressions, one of which follows the colon and other +% follows the relation sign {\tt=}, {\tt<=}, or {\tt>=}, both expressions +% in the statement can be linear expressions. If the constraint has the +% form of double inequality,\linebreak i.e. includes three expressions, +% the middle expression can be a linear expression while the leftmost and +% rightmost ones can be only numeric expressions. +% +% Generating the model is, roughly speaking, generating its constraints, +% which are always evaluated for the entire subscript domain. Evaluation +% of the constraints leads, in turn, to evaluation of other model objects +% such as sets, parameters, and variables. +% +% Constructing an actual linear constraint included in the problem +% instance, which (constraint) corresponds to a particular elemental +% constraint, is performed as follows. + + +Se a restrição possui a forma de igualdade ou desigualdade simples, +a avaliação de ambas \linebreak expressões lineares resultam em duas formas lineares: +$$\begin{array}{r@{\ }c@{\ }r@{\ }c@{\ }r@{\ }c@{\ }r@{\ }c@{\ }r} +f&=&a_1x_1&+&a_2x_2&+\dots+&a_nx_n&+&a_0,\\ +g&=&b_1x_1&+&b_2x_2&+\dots+&b_nx_n&+&b_0,\\ +\end{array}$$ +onde $x_1$, $x_2$, \dots, $x_n$ são variáveis elementares; $a_1$, $a_2$, +\dots, $a_n$, $b_1$, $b_2$, \dots, $b_n$ são coeficientes numéricos; +$a_0$ e $b_0$ são termos constantes. Em seguida, todos os termos lineares +de $f$ e $g$ são levados ao lado esquerdo, enquanto que os termos constantes +são levados ao lado direito, resultando na restrição elementar +final na forma padrão: +$$(a_1-b_1)x_1+(a_2-b_2)x_2+\dots+(a_n-b_n)x_n\left\{ +\begin{array}{@{}c@{}}=\\\leq\\\geq\\\end{array}\right\}b_0-a_0.$$ + +Se a restrição possui a forma de desigualdade dupla, a avaliação da +expressão linear do meio resulta na seguinte forma linear: +$$f=a_1x_1+a_2x_2+\dots+a_nx_n+a_0,$$ +e a avaliação das expressões numéricas da esquerda e da direita dão +dois valores numéricos $l$ e $u$, respectivamente. Logo, +o termo constante da forma linear é levado tanto à esquerda como +à direita para gerar a restrição elementar final na forma padrão: +$$l-a_0\leq a_1x_1+a_2x_2+\dots+a_nx_n\leq u-a_0.$$ + + +% If the constraint has the form of equality or single inequality, +% evaluation of both linear expressions gives two resultant linear forms: +% $$\begin{array}{r@{\ }c@{\ }r@{\ }c@{\ }r@{\ }c@{\ }r@{\ }c@{\ }r} +% f&=&a_1x_1&+&a_2x_2&+\dots+&a_nx_n&+&a_0,\\ +% g&=&b_1x_1&+&a_2x_2&+\dots+&a_nx_n&+&b_0,\\ +% \end{array}$$ +% where $x_1$, $x_2$, \dots, $x_n$ are elemental variables; $a_1$, $a_2$, +% \dots, $a_n$, $b_1$, $b_2$, \dots, $b_n$ are numeric coefficients; +% $a_0$ and $b_0$ are constant terms. Then all linear terms of $f$ and +% $g$ are carried to the left-hand side, and the constant terms are +% carried to the right-hand side, that gives the final elemental +% constraint in the standard form: +% $$(a_1-b_1)x_1+(a_2-b_2)x_2+\dots+(a_n-b_n)x_n\left\{ +% \begin{array}{@{}c@{}}=\\\leq\\\geq\\\end{array}\right\}b_0-a_0.$$ +% +% If the constraint has the form of double inequality, evaluation of the +% middle linear expression gives the resultant linear form: +% $$f=a_1x_1+a_2x_2+\dots+a_nx_n+a_0,$$ +% and evaluation of the leftmost and rightmost numeric expressions gives +% two numeric values $l$ and $u$, respectively. Then the constant term of +% the linear form is carried to both left-hand and right-handsides that +% gives the final elemental constraint in the standard form: +% $$l-a_0\leq a_1x_1+a_2x_2+\dots+a_nx_n\leq u-a_0.$$ + + +\section{Sentença objective} + +\noindent +\framebox[468pt][l]{ +\parbox[c][44pt]{468pt}{ +\hspace{6pt} {\tt minimize} {\it nome} {\it alias} {\it domínio} {\tt:} +{\it expressão} {\tt;} + +\medskip + +\hspace{6pt} {\tt maximize} {\it nome} {\it alias} {\it domínio} {\tt:} +{\it expressão} {\tt;} +}} + +\medskip + +\noindent +{\it nome} é um nome simbólico do objetivo; + +\noindent +{\it alias} é uma literal de cadeia opcional que especifica um +pseudônimo do objetivo; + +\noindent +{\it domínio} é uma expressão indexante opcional que especifica +um domínio do subíndice do objetivo; + +\noindent +{\it expressão} é uma expressão linear usada pra calcular a forma +linear do objetivo. + + +% \noindent +% \framebox[468pt][l]{ +% \parbox[c][44pt]{468pt}{ +% \hspace{6pt} {\tt minimize} {\it name} {\it alias} {\it domain} {\tt:} +% {\it expression} {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt maximize} {\it name} {\it alias} {\it domain} {\tt:} +% {\it expression} {\tt;} +% }} +% +% \medskip +% +% \noindent +% {\it name} is a symbolic name of the objective; +% +% \noindent +% {\it alias} is an optional string literal, which specifies an alias of +% the objective; +% +% \noindent +% {\it domain} is an optional indexing expression, which specifies +% a subscript domain of the objective; +% +% \noindent +% {\it expression} is a linear expression used to compute the linear form +% of the objective. + +\newpage + +\para{Exemplos} + +% \para{Examples} + +\begin{verbatim} +minimize obj: x + 1.5 * (y + z); +maximize lucro_total: sum{p in produto} lucro[p] * produzir[p]; +\end{verbatim} + +% \begin{verbatim} +% minimize obj: x + 1.5 * (y + z); +% maximize total_profit: sum{p in prd} profit[p] * make[p]; +% \end{verbatim} + +A sentença objective declara um objetivo. Se o domínio do subíndice +não é especificado, o objetivo é um objetivo simples (escalar). Caso contrário, +é uma matriz $n$-dimensional de objetivos elementares. + +Objetivos elementares associados com o objetivo do modelo (se é um +objetivo simples) ou seus membros (se é uma matriz) correspondem +a restrições lineares genéricas na formulação do problema PL/PIM +(ver Seção \ref{problem}, página \pageref{problem}). No entanto, +diferentemente das restrições, estas formas lineares são livres +(ilimitadas). + +A construção de uma forma linear incluída na instância do problema, +a qual corresponde a uma restrição elementar particular, +é realizada como segue. A expressão linear especificada da na +sentença objective é avaliada para resultar na seguinte forma linear: +$$f=a_1x_1+a_2x_2+\dots+a_nx_n+a_0,$$ +onde $x_1$, $x_2$, \dots, $x_n$ são variáveis elementares; $a_1$, $a_2$, +\dots, $a_n$ são coeficientes numéricos; $a_0$ é o termo constante. Logo, +a forma linear é usada para construir a restrição final elementar na +forma padrão: +$$-\infty= 0 and y >= 0; +check sum{i in ORIG} suprimento[i] = sum{j in DEST} demanda[j]; +check{i in I, j in 1..10}: S[i,j] in U[i] union V[j]; +\end{verbatim} + +A sentença check permite a verificação do valor resultante +de uma expressão lógica especificada na sentença. Se o valor +é {\it falso}, um erro é reportado. + +Se o domínio do subíndice não é especificado, a verificação é realizada +apenas uma vez. \linebreak Especificar o domínio do subíndice +permite a execução de verificações múltiplas para cada $n$-tupla +no conjunto domínio. Neste último caso, a expressão lógica pode +incluir índices introduzidos na expressão indexante correspondente. + + +% \noindent +% \framebox[468pt][l]{ +% \parbox[c][24pt]{468pt}{ +% \hspace{6pt} {\tt check} {\it domain} {\tt:} {\it expression} {\tt;} +% }} +% +% \medskip +% +% \noindent +% {\it domain} is an optional indexing expression, which specifies +% a subscript domain of the check statement; +% +% \noindent +% {\it expression} is an logical expression which specifies the logical +% condition to be checked. (The colon preceding {\it expression} may be +% omitted.) +% +% \para{Examples} +% +% \begin{verbatim} +% check: x + y <= 1 and x >= 0 and y >= 0; +% check sum{i in ORIG} supply[i] = sum{j in DEST} demand[j]; +% check{i in I, j in 1..10}: S[i,j] in U[i] union V[j]; +% \end{verbatim} +% +% The check statement allows checking the resultant value of an logical +% expression specified in the statement. If the value is {\it false}, an +% error is reported. +% +% If the subscript domain is not specified, the check is performed only +% once. Specifying the subscript domain allows performing multiple check +% for every $n$-tuple in the domain set. In the latter case the logical +% expression may include dummy indices introduced in corresponding +% indexing expression. + +\section{Sentença display} + +\noindent +\framebox[468pt][l]{ +\parbox[c][24pt]{468pt}{ +\hspace{6pt} {\tt display} {\it domínio} {\tt:} {\it item} {\tt,} +\dots {\tt,} {\it item} {\tt;} +}} + +\medskip + +\noindent +{\it domínio} é uma expressão indexante opcional que especifica +um domínio do subíndice da sentença display; + +\noindent +{\it item}, \dots, {\it item} são itens a serem mostrados (os dois pontos +que precedem o primeiro item podem ser omitidos). + +\para{Exemplos} + +\begin{verbatim} +display: 'x =', x, 'y =', y, 'z =', z; +display sqrt(x ** 2 + y ** 2 + z ** 2); +display{i in I, j in J}: i, j, a[i,j], b[i,j]; +\end{verbatim} + +A sentença display avalia todos itens especificados na sentença +e escreve seus valores em saída padrão (terminal) em formato de +texto plano. + +Se um domínio de subíndice não é especificado, os itens são avaliados e +mostrados apenas uma vez. Ao especificar o domínio do subíndice, itens +são avaliados e mostrados para cada $n$-tupla no conjunto do domínio. No +último caso, os itens podem incluir índices introduzidos na expressão +indexante correspondente. + +Um item a ser mostrado pode ser um objeto de modelo (conjunto, parâmetro, +variável, restrição, objetivo) ou uma expressão. + +Se um item é um objeto calculável (i.e., um conjunto ou parâmetro com +o atributo de atribuição), o objeto é avaliado por todo domínio +e em seguida, seu conteúdo (i.e., o conteúdo da matriz de objetos) é +mostrado. Caso contrário, se o item não é um objeto calculável, somente seu +seu conteúdo corrente (i.e., os membros realmente gerados durante a +avaliação do modelo) é mostrado. + +Se o item é uma expressão, a expressão é avaliada e seu valor +resultante é mostrado. + + +% \noindent +% \framebox[468pt][l]{ +% \parbox[c][24pt]{468pt}{ +% \hspace{6pt} {\tt display} {\it domain} {\tt:} {\it item} {\tt,} +% \dots {\tt,} {\it item} {\tt;} +% }} +% +% \medskip +% +% \noindent +% {\it domain} is an optional indexing expression, which specifies +% a subscript domain of the display statement; +% +% \noindent +% {\it item}, \dots, {\it item} are items to be displayed. (The colon +% preceding the first item may be omitted.) +% +% \para{Examples} +% +% \begin{verbatim} +% display: 'x =', x, 'y =', y, 'z =', z; +% display sqrt(x ** 2 + y ** 2 + z ** 2); +% display{i in I, j in J}: i, j, a[i,j], b[i,j]; +% \end{verbatim} +% +% The display statement evaluates all items specified in the statement +% and writes their values on the standard output (terminal) in plain text +% format. +% +% If a subscript domain is not specified, items are evaluated and then +% displayed only once. Specifying the subscript domain causes items to be +% evaluated and displayed for every $n$-tuple in the domain set. In the +% latter case items may include dummy indices introduced in corresponding +% indexing expression. +% +% An item to be displayed can be a model object (set, parameter, +% variable, constraint, objective) or an expression. +% +% If the item is a computable object (i.e. a set or parameter provided +% with the assign attribute), the object is evaluated over the entire +% domain and then its content (i.e. the content of the object array) is +% displayed. Otherwise, if the item is not a computable object, only its +% current content (i.e. members actually generated during the model +% evaluation) is displayed. +% +% If the item is an expression, the expression is evaluated and its +% resultant value is displayed. + +\section{Sentença printf} + +\noindent +\framebox[468pt][l]{ +\parbox[c][64pt]{468pt}{ +\hspace{6pt} {\tt printf} {\it domínio} {\tt:} {\it formato} {\tt,} +{\it expressão} {\tt,} \dots {\tt,} {\it expressão} {\tt;} + +\medskip + +\hspace{6pt} {\tt printf} {\it domínio} {\tt:} {\it formato} {\tt,} +{\it expressão} {\tt,} \dots {\tt,} {\it expressão} {\tt>} +{\it nome-do-arquivo} {\tt;} + +\medskip + +\hspace{6pt} {\tt printf} {\it domínio} {\tt:} {\it formato} {\tt,} +{\it expressão} {\tt,} \dots {\tt,} {\it expressão} {\tt>>} +{\it nome-do-arquivo} {\tt;} +}} + +\medskip + +\noindent +{\it domínio} é uma expressão indexante opcional que especifica o domínio +do subíndice da sentença printf; + +\noindent +{\it formato} é uma expressão simbólica cujo valor especifica uma cadeia de +controle de formato (os dois pontos que precedem a expressão de formato +podem ser omitidos). + +\noindent +{\it expressão}, \dots, {\it expressão} são zero ou mais expressões +cujos valores devem ser formatados e impressos. Cada expressão deve +ser de tipo numérico, simbólico ou lógico. + +\noindent +{\it nome-do-arquivo} é uma expressão simbólica cujo valor especifica um nome +de um arquivo de texto para onde a saída é redirecionada. O sinal {\tt>} +significa criar um novo aquivo vazio, enquanto o sinal {\tt>>} significa +acrescentar a saída a um arquivo existente. Se o nome do arquivo não é especificado, +a saída é escrita na saída padrão (terminal). + +\para{Exemplos} + +\begin{verbatim} +printf 'Ola, mundo!\n'; +printf: "x = %.3f; y = %.3f; z = %.3f\n", x, y, z > "resultado.txt"; +printf{i in I, j in J}: "fluxo de %s para %s eh %d\n", i, j, x[i,j] + >> arquivo_resultado & ".txt"; +printf{i in I} 'fluxo total de %s eh %g\n', i, sum{j in J} x[i,j]; +printf{k in K} "x[%s] = " & (if x[k] < 0 then "?" else "%g"), + k, x[k]; +\end{verbatim} + +A sentença printf é similar a sentença display, no entanto, ela +permite formatar os dados a serem escritos. + +Se um domínio do subíndice não é especificado, a sentença printf +é executada apenas uma vez. Especificar um domínio do subíndice gera +a execução da sentença printf para cada $n$-tupla no conjunto do domínio. +No último caso, o formato e a expressão podem incluir índices introduzidos +nas expressões indexantes correspondentes. + +A cadeia de controle de formato é valor da expressão simbólica +{\it formato} especificada na sentença printf. Ela é composta de zero +ou mais diretivas, como segue: tanto caracteres ordinários (exceto {\tt\%}), que +são copiados sem modificação ao fluxo de saída, quanto especificações de conversão, +provocam a avaliação da expressão correspondente especificada na sentença +printf, do seu formato e da escrita do valor resultante no fluxo de saída. + +As especificações de conversão que podem ser usadas na cadeia de controle +de formato são as seguintes: {\tt d}, {\tt i}, {\tt f}, {\tt F}, +{\tt e}, {\tt E}, {\tt g}, {\tt G} e {\tt s}. Estas especificações +possuem a mesma sintaxe e semântica que na linguagem de programação C. + + +% \noindent +% \framebox[468pt][l]{ +% \parbox[c][64pt]{468pt}{ +% \hspace{6pt} {\tt printf} {\it domain} {\tt:} {\it format} {\tt,} +% {\it expression} {\tt,} \dots {\tt,} {\it expression} {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt printf} {\it domain} {\tt:} {\it format} {\tt,} +% {\it expression} {\tt,} \dots {\tt,} {\it expression} {\tt>} +% {\it filename} {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt printf} {\it domain} {\tt:} {\it format} {\tt,} +% {\it expression} {\tt,} \dots {\tt,} {\it expression} {\tt>>} +% {\it filename} {\tt;} +% }} +% +% \medskip +% +% \noindent +% {\it domain} is an optional indexing expression, which specifies +% a subscript domain of the printf statement; +% +% \noindent +% {\it format} is a symbolic expression whose value specifies a format +% control string. (The colon preceding the format expression may be +% omitted.) +% +% \noindent +% {\it expression}, \dots, {\it expression} are zero or more expressions +% whose values have to be formatted and printed. Each expression should +% be of numeric, symbolic, or logical type. +% +% \noindent +% {\it filename} is a symbolic expression whose value specifies a name +% of a text file, to which the output is redirected. The flag {\tt>} +% means creating a new empty file while the flag {\tt>>} means appending +% the output to an existing file. If no file name is specified, the +% output is written on the standard output (terminal). +% +% \para{Examples} +% +% \begin{verbatim} +% printf 'Hello, world!\n'; +% printf: "x = %.3f; y = %.3f; z = %.3f\n", x, y, z > "result.txt"; +% printf{i in I, j in J}: "flow from %s to %s is %d\n", i, j, x[i,j] +% >> result_file & ".txt"; +% printf{i in I} 'total flow from %s is %g\n', i, sum{j in J} x[i,j]; +% printf{k in K} "x[%s] = " & (if x[k] < 0 then "?" else "%g"), +% k, x[k]; +% \end{verbatim} +% +% The printf statement is similar to the display statement, however, it +% allows formatting data to be written. +% +% If a subscript domain is not specified, the printf statement is +% executed only once. Specifying a subscript domain causes executing the +% printf statement for every $n$-tuple in the domain set. In the latter +% case the format and expression may include dummy indices introduced in +% corresponding indexing expression. +% +% The format control string is a value of the symbolic expression +% {\it format} specified in the printf statement. It is composed of zero +% or more directives as follows: ordinary characters (not {\tt\%}), which +% are copied unchanged to the output stream, and conversion +% specifications, each of which causes evaluating corresponding +% expression specified in the printf statement, formatting it, and +% writing its resultant value to the output stream. +% +% Conversion specifications that may be used in the format control string +% are the following:\linebreak {\tt d}, {\tt i}, {\tt f}, {\tt F}, +% {\tt e}, {\tt E}, {\tt g}, {\tt G}, and {\tt s}. These specifications +% have the same syntax and semantics as in the C programming language. + +\section{Sentença for} + +\noindent +\framebox[468pt][l]{ +\parbox[c][44pt]{468pt}{ +\hspace{6pt} {\tt for} {\it domínio} {\tt:} {\it sentença} {\tt;} + +\medskip + +\hspace{6pt} {\tt for} {\it domínio} {\tt:} {\tt\{} {\it sentença} +\dots {\it sentença} {\tt\}} {\tt;} +}} + +\medskip + +\noindent +{\it domínio} é uma expressão indexante que especifica um +domínio do subíndice da sentença for. (Os dois pontos que seguem a +expressão indexante podem ser omitidos). + +\noindent +{\it sentença} é uma sentença que deve ser executada sob o controle +da sentença for; + +\noindent +{\it sentença}, \dots, {\it sentença} é uma sequência de sentenças +(cercada entre chaves) que deve ser executada sob o controle da +sentença for. + +Apenas as sentenças seguintes podem ser usadas dentro da +sentença for: check, display, printf e outro for. + +\para{Exemplos} + +\begin{verbatim} +for {(i,j) in E: i != j} +{ printf "fluxo de %s para %s eh %g\n", i, j, x[i,j]; + check x[i,j] >= 0; +} +for {i in 1..n} +{ for {j in 1..n} printf " %s", if x[i,j] then "Q" else "."; + printf("\n"); +} +for {1..72} printf("*"); +\end{verbatim} + +A sentença for faz com que a sentença, ou uma sequência de sentenças +especificadas como parte da sentença for, seja executada para cada +$n$-tupla no conjunto do domínio. Assim, sentenças dentro da sentença for +podem incluir índices introduzidos na expressão indexante correspondente. + +% \noindent +% \framebox[468pt][l]{ +% \parbox[c][44pt]{468pt}{ +% \hspace{6pt} {\tt for} {\it domain} {\tt:} {\it statement} {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt for} {\it domain} {\tt:} {\tt\{} {\it statement} +% \dots {\it statement} {\tt\}} {\tt;} +% }} +% +% \medskip +% +% \noindent +% {\it domain} is an indexing expression which specifies a subscript +% domain of the for statement. (The colon following the indexing +% expression may be omitted.) +% +% \noindent +% {\it statement} is a statement, which should be executed under control +% of the for statement; +% +% \noindent +% {\it statement}, \dots, {\it statement} is a sequence of statements +% (enclosed in curly braces), which should be executed under control of +% the for statement. +% +% Only the following statements can be used within the for statement: +% check, display, printf, and another for. +% +% \para{Examples} +% +% \begin{verbatim} +% for {(i,j) in E: i != j} +% { printf "flow from %s to %s is %g\n", i, j, x[i,j]; +% check x[i,j] >= 0; +% } +% for {i in 1..n} +% { for {j in 1..n} printf " %s", if x[i,j] then "Q" else "."; +% printf("\n"); +% } +% for {1..72} printf("*"); +% \end{verbatim} +% +% The for statement causes a statement or a sequence of statements +% specified as part of the for statement to be executed for every +% $n$-tuple in the domain set. Thus, statements within the for statement +% may include dummy indices introduced in corresponding indexing +% expression. + +\newpage + +\section{Sentença table} + +\noindent +\framebox[468pt][l]{ +\parbox[c][80pt]{468pt}{ +\hspace{6pt} {\tt table} {\it nome} {\it alias} {\tt IN} {\it controlador} +{\it arg} \dots {\it arg} {\tt:} + +\hspace{6pt} {\tt\ \ \ \ \ } {\it conjunto} {\tt<-} {\tt[} {\it cmp} {\tt,} +\dots {\tt,} {\it cmp} {\tt]} {\tt,} {\it par} {\tt\textasciitilde} +{\it cmp} {\tt,} \dots {\tt,} {\it par} {\tt\textasciitilde} {\it cmp} +{\tt;} + +\medskip + +\hspace{6pt} {\tt table} {\it nome} {\it alias} {\it domínio} {\tt OUT} +{\it controlador} {\it arg} \dots {\it arg} {\tt:} + +\hspace{6pt} {\tt\ \ \ \ \ } {\it expr} {\tt\textasciitilde} {\it cmp} +{\tt,} \dots {\tt,} {\it expr} {\tt\textasciitilde} {\it cmp} {\tt;} +}} + +\medskip + +\noindent +{\it nome} é um nome simbólico da tabela; + +\noindent +{\it alias} é um literal de cadeia opcional que especifica um pseudônimo +da tabela; + +\noindent +{\it domínio} é uma expressão indexante que especifica o domínio do +subíndice da tabela (de saída); + +\noindent +{\tt IN} significa ler dados de uma tabela de entrada; + +\noindent +{\tt OUT} significa escrever dados em uma tabela de saída; + +\noindent +{\it controlador} é uma expressão simbólica que especifica o controlador +usado para acessar a tabela (para mais detalhes, ver Apêndice \ref{drivers}, +página \pageref{drivers}); + +\noindent +{\it arg} é uma expressão simbólica opcional, que é um argumento +passado ao controlador da tabela. Esta expressão simbólica não deveria +incluir índices especificados no domínio; + +\noindent +{\it conjunto} é o nome de um conjunto simples opcional chamado +{\it conjunto de controle}. Pode ser omitido junto com o delimitador {\tt<-}; + +\noindent +{\it cmp} é um nome de campo. Entre colchetes, pelo menos um campo deve ser +especificado. O nome do campo, que segue o nome do parâmetro ou de uma +expressão, é opcional e pode ser omitido juntamente com o +delimitador~{\tt\textasciitilde}. Neste caso o nome do objeto de modelo +correspondente é usado como nome de campo; + +\noindent +{\it par} é um nome simbólico de um parâmetro do modelo; + +\noindent +{\it expr} é uma expressão numérica ou simbólica. + +\para{Exemplos} + +\begin{verbatim} +table dados IN "CSV" "dados.csv": S <- [DE,PARA], d~DISTANCIA, + c~CUSTO; +table resultado{(d,p) in S} OUT "CSV" "resultado.csv": d~DE, p~PARA, + x[d,p]~FLUXO; +\end{verbatim} + +A sentença table permite a leitura de dados de uma tabela para objetos +de modelo como conjuntos e parâmetros (não-escalares) assim como escrever +dados do modelo para uma tabela. + + +% \noindent +% \framebox[468pt][l]{ +% \parbox[c][80pt]{468pt}{ +% \hspace{6pt} {\tt table} {\it name} {\it alias} {\tt IN} {\it driver} +% {\it arg} \dots {\it arg} {\tt:} +% +% \hspace{6pt} {\tt\ \ \ \ \ } {\it set} {\tt<-} {\tt[} {\it fld} {\tt,} +% \dots {\tt,} {\it fld} {\tt]} {\tt,} {\it par} {\tt\textasciitilde} +% {\it fld} {\tt,} \dots {\tt,} {\it par} {\tt\textasciitilde} {\it fld} +% {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt table} {\it name} {\it alias} {\it domain} {\tt OUT} +% {\it driver} {\it arg} \dots {\it arg} {\tt:} +% +% \hspace{6pt} {\tt\ \ \ \ \ } {\it expr} {\tt\textasciitilde} {\it fld} +% {\tt,} \dots {\tt,} {\it expr} {\tt\textasciitilde} {\it fld} {\tt;} +% }} +% +% \medskip +% +% \noindent +% {\it name} is a symbolic name of the table; +% +% \noindent +% {\it alias} is an optional string literal, which specifies an alias of +% the table; +% +% \noindent +% {\it domain} is an indexing expression, which specifies a subscript +% domain of the (output) table; +% +% \noindent +% {\tt IN} means reading data from the input table; +% +% \noindent +% {\tt OUT} means writing data to the output table; +% +% \noindent +% {\it driver} is a symbolic expression, which specifies the driver used +% to access the table (for details see Appendix \ref{drivers}, page +% \pageref{drivers}); +% +% \noindent +% {\it arg} is an optional symbolic expression, which is an argument +% pass\-ed to the table driver. This symbolic expression should not +% include dummy indices specified in the domain; +% +% \noindent +% {\it set} is the name of an optional simple set called {\it control +% set}. It can be omitted along with the delimiter {\tt<-}; +% +% \noindent +% {\it fld} is a field name. Within square brackets at least one field +% should be specified. The field name following a parameter name or +% expression is optional and can be omitted along with the +% delimiter~{\tt\textasciitilde}, in which case the name of corresponding +% model object is used as the field name; +% +% \noindent +% {\it par} is a symbolic name of a model parameter; +% +% \noindent +% {\it expr} is a numeric or symbolic expression. +% +% \para{Examples} +% +% \begin{verbatim} +% table data IN "CSV" "data.csv": S <- [FROM,TO], d~DISTANCE, +% c~COST; +% table result{(f,t) in S} OUT "CSV" "result.csv": f~FROM, t~TO, +% x[f,t]~FLOW; +% \end{verbatim} +% +% The table statement allows reading data from a table into model +% objects such as sets and (non-scalar) parameters as well as writing +% data from the model to a table. + +\newpage + +\subsection{Estrutura de tabelas} + +Uma {\it tabela de dados} é um conjunto (desordenado) de {\it registros}, onde cada +registro consiste do mesmo número de {\it campos} e cada campo possui um único +nome simbólico denominado o {\it nome do campo}. Por exemplo: + +\bigskip + +\begin{tabular}{@{\hspace*{42mm}}c@{\hspace*{11mm}}c@{\hspace*{10mm}}c +@{\hspace*{9mm}}c} +Primeiro&Segundo&&Último\\ +campo&campo&.\ \ .\ \ .&campo\\ +$\downarrow$&$\downarrow$&&$\downarrow$\\ +\end{tabular} + +\begin{tabular}{ll@{}} +Cabeçalho da tabela&$\rightarrow$\\ +Primeiro registro&$\rightarrow$\\ +Segundo registro&$\rightarrow$\\ +\\ +\hfil .\ \ .\ \ .\\ +\\ +Último registro&$\rightarrow$\\ +\end{tabular} +\begin{tabular}{|l|l|c|c|} +\hline +{\tt DE}&{\tt PARA}&{\tt DISTANCIA}&{\tt CUSTO}\\ +\hline +{\tt Seattle} &{\tt New-York}&{\tt 2.5}&{\tt 0.12}\\ +{\tt Seattle} &{\tt Chicago} &{\tt 1.7}&{\tt 0.08}\\ +{\tt Seattle} &{\tt Topeka} &{\tt 1.8}&{\tt 0.09}\\ +{\tt San-Diego}&{\tt New-York}&{\tt 2.5}&{\tt 0.15}\\ +{\tt San-Diego}&{\tt Chicago} &{\tt 1.8}&{\tt 0.10}\\ +{\tt San-Diego}&{\tt Topeka} &{\tt 1.4}&{\tt 0.07}\\ +\hline +\end{tabular} + + +% A {\it data table} is an (unordered) set of {\it records}, where each +% record consists of the same number of {\it fields}, and each field is +% provided with a unique symbolic name called the {\it field name}. For +% example: +% +% \bigskip +% +% \begin{tabular}{@{\hspace*{42mm}}c@{\hspace*{11mm}}c@{\hspace*{10mm}}c +% @{\hspace*{9mm}}c} +% First&Second&&Last\\ +% field&field&.\ \ .\ \ .&field\\ +% $\downarrow$&$\downarrow$&&$\downarrow$\\ +% \end{tabular} +% +% \begin{tabular}{ll@{}} +% Table header&$\rightarrow$\\ +% First record&$\rightarrow$\\ +% Second record&$\rightarrow$\\ +% \\ +% \hfil .\ \ .\ \ .\\ +% \\ +% Last record&$\rightarrow$\\ +% \end{tabular} +% \begin{tabular}{|l|l|c|c|} +% \hline +% {\tt FROM}&{\tt TO}&{\tt DISTANCE}&{\tt COST}\\ +% \hline +% {\tt Seattle} &{\tt New-York}&{\tt 2.5}&{\tt 0.12}\\ +% {\tt Seattle} &{\tt Chicago} &{\tt 1.7}&{\tt 0.08}\\ +% {\tt Seattle} &{\tt Topeka} &{\tt 1.8}&{\tt 0.09}\\ +% {\tt San-Diego}&{\tt New-York}&{\tt 2.5}&{\tt 0.15}\\ +% {\tt San-Diego}&{\tt Chicago} &{\tt 1.8}&{\tt 0.10}\\ +% {\tt San-Diego}&{\tt Topeka} &{\tt 1.4}&{\tt 0.07}\\ +% \hline +% \end{tabular} + +\subsection{Lendo dados de uma tabela de entrada} + +A sentença tabela de entrada faz a leitura de dados +da tabela especificada, registro por registro. + +Uma vez que o registro subsequente foi lido, valores numéricos ou simbólicos +dos campos, cujos nomes são cercados entre colchetes na sentença table, +são reunidos em um $n$-tuplo. Se o conjunto de controle é especificado +na sentença table, este $n$-tuplo é adicionado a ele. Além disso, um valor +numérico ou simbólico de cada campo associado com um parâmetro do modelo +é atribuído ao membro do parâmetro identificado por subíndices, que são +componentes da $n$-tupla que acabou de ser lida. + +Por exemplo, a seguinte sentença de tabela de entrada: + +\noindent\hfil +\verb|table dados IN "...": S <- [DE,PARA], d~DISTANCIA, c~CUSTO;| + +\noindent +faz a leitura de valores de quatro campos chamados {\tt DE}, {\tt PARA}, +{\tt DISTANCIA} e {\tt CUSTO} de cada registro da tabela especificada. +Os valores dos campos {\tt DE} e {\tt PARA} dão um par $(f,t)$, que é +adicionado ao conjunto de controle {\tt S}. O valor do campo {\tt DISTANCIA} é +atribuído ao membro do parâmetro ${\tt d}[f,t]$ enquanto que o valor do campo +{\tt CUSTO} é atribuído ao membro do parâmetro ${\tt c}[f,t]$. + +Note que a tabela de entrada pode conter campos adicionais cujos nomes +não sejam especificados na sentença tabela, neste caso, os valores destes +campos serão ignorados na leitura da tabela. + +% The input table statement causes reading data from the specified table +% record by record. +% +% Once a next record has been read, numeric or symbolic values of fields, +% whose names are enclosed in square brackets in the table statement, are +% gathered into $n$-tuple, and if the control set is specified in the +% table statement, this $n$-tuple is added to it. Besides, a numeric or +% symbolic value of each field associated with a model parameter is +% assigned to the parameter member identified by subscripts, which are +% components of the $n$-tuple just read. +% +% For example, the following input table statement: +% +% \noindent\hfil +% \verb|table data IN "...": S <- [FROM,TO], d~DISTANCE, c~COST;| +% +% \noindent +% causes reading values of four fields named {\tt FROM}, {\tt TO}, +% {\tt DISTANCE}, and {\tt COST} from each record of the specified table. +% Values of fields {\tt FROM} and {\tt TO} give a pair $(f,t)$, which is +% added to the control set {\tt S}. The value of field {\tt DISTANCE} is +% assigned to parameter member ${\tt d}[f,t]$, and the value of field +% {\tt COST} is assigned to parameter member ${\tt c}[f,t]$. +% +% Note that the input table may contain extra fields whose names are not +% specified in the table statement, in which case values of these fields +% on reading the table are ignored. + +\subsection{Escrevendo dados em uma tabela de saída} + +A sentença tabela de saída gera a escrita de dados na tabela especificada. +Note que alguns controladores (chamados CSV e xBASE) destroem a tabela de saída +antes de escrever os dados, i.e., deletam todos os registros existentes. + +Cada $n$-tupla no domínio do conjunto especificado gera um registro escrito na +tabela de saída. Os valores dos campos são valores numéricos ou simbólicos +das expressões correspondentes especificadas na sentença table. Estas +expressões são avaliadas para cada $n$-tupla no conjunto do domínio, +portanto, podem incluir índices introduzidos na expressão indexante correspondente. + +Por exemplo, a seguinte sentença da tabela de saída: + +\noindent\hfil +\verb|table resultado{(f,t) in S} OUT "...": f~DE, t~PARA, x[f,t]~FLUXO;| + +\noindent +gera a escrita de registros; um registro para cada par $(f,t)$ no conjunto +{\tt S} para a tabela de saída, onde cada registro consiste de três campos +chamados {\tt DE}, {\tt PARA} e {\tt FLUXO}. Os valores escritos nos campos +{\tt DE} e {\tt PARA} são os valores correntes dos índices {\tt f} e {\tt t}. +O valor escrito no campo {\tt FLUXO} é um valor do membro ${\tt x}[f,t]$ +do correspondente parâmetro ou variável indexada. + + +% The output table statement causes writing data to the specified table. +% Note that some drivers (namely, CSV and xBASE) destroy the output table +% before writing data, i.e. delete all its existing records. +% +% Each $n$-tuple in the specified domain set generates one record written +% to the output table. Values of fields are numeric or symbolic values of +% corresponding expressions specified in the table statement. These +% expressions are evaluated for each $n$-tuple in the domain set and, +% thus, may include dummy indices introduced in the corresponding indexing +% expression. +% +% For example, the following output table statement: +% +% \noindent\hfil +% \verb|table result{(f,t) in S} OUT "...": f~FROM, t~TO, x[f,t]~FLOW;| +% +% \noindent +% causes writing records, by one record for each pair $(f,t)$ in set +% {\tt S}, to the output table, where each record consists of three +% fields named {\tt FROM}, {\tt TO}, and {\tt FLOW}. The values written +% to fields {\tt FROM} and {\tt TO} are current values of dummy indices +% {\tt f} and {\tt t}, and the value written to field {\tt FLOW} is +% a value of member ${\tt x}[f,t]$ of corresponding subscripted parameter +% or variable. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Dados do modelo} + +Os {\it dados do modelo} includem conjuntos elementares, que são ``valores'' dos +conjuntos do modelo, e valores numéricos e simbólicos dos parâmetros do modelo. + +Em MathProg existem duas formas diferentes de fornecer valores aos conjuntos +e parâmetros do modelo. Uma forma é simplesmente prover os dados necessários +usando o atributo de atribuição. No entanto, em muitos casos é mais prático separar +o modelo próprio dos dados particulares necessários para o modelo. Para o último +caso, em MathProg há uma outra forma, em que a descrição do modelo é dividida +em duas partes: a seção de modelo e a seção de dados. + +A {\it seção de modelo} é a principal parte da descrição do modelo. Ela contém +todas as declarações de todos objetos do modelo, sendo comum a todos problemas +baseados naquele modelo. + +A {\it seção de dados} é uma parte opcional da descrição do modelo que contém +dados específicos para um problema particular. + +Em MathProg seções de modelo e de dados podem ser localizadas tanto em um arquivo +de texto ou em dois arquivos de texto separados. + +1. Se ambas seções de modelo e de dados estão localizados em um arquivo, +o arquivo é composto como segue: + + + +\bigskip + +\noindent\hfil +\framebox{\begin{tabular}{l} +{\it sentença}{\tt;}\\ +{\it sentença}{\tt;}\\ +\hfil.\ \ .\ \ .\\ +{\it sentença}{\tt;}\\ +{\tt data;}\\ +{\it bloco de dados}{\tt;}\\ +{\it bloco de dados}{\tt;}\\ +\hfil.\ \ .\ \ .\\ +{\it bloco de dados}{\tt;}\\ +{\tt end;} +\end{tabular}} + + + +% {\it Model data} include elemental sets, which are ``values'' of model +% sets, and numeric and symbolic values of model parameters. +% +% In MathProg there are two different ways to saturate model sets and +% parameters with data. One way is simply providing necessary data using +% the assign attribute. However, in many cases it is more practical to +% separate the model itself and particular data needed for the model. For +% the latter reason in MathProg there is another way, when the model +% description is divided into two parts: model section and data section. +% +% A {\it model section} is a main part of the model description that +% contains declarations of all model objects and is common for all +% problems based on that model. +% +% A {\it data section} is an optional part of the model description that +% contains model data specific for a particular problem. +% +% In MathProg model and data sections can be placed either in one text +% file or in two separate text files. +% +% 1. If both model and data sections are placed in one file, the file is +% composed as follows: +% +% \bigskip +% +% \noindent\hfil +% \framebox{\begin{tabular}{l} +% {\it statement}{\tt;}\\ +% {\it statement}{\tt;}\\ +% \hfil.\ \ .\ \ .\\ +% {\it statement}{\tt;}\\ +% {\tt data;}\\ +% {\it data block}{\tt;}\\ +% {\it data block}{\tt;}\\ +% \hfil.\ \ .\ \ .\\ +% {\it data block}{\tt;}\\ +% {\tt end;} +% \end{tabular}} + +% 2. Se a seção de modelo e dados são posicionados em dois arquivos separados, os +% arquivos são compostos como segue: + +\newpage + +2. Se a seção de modelo e dados são posicionados em dois arquivos separados, os +arquivos são compostos como segue: + +\bigskip + +\noindent\hfil +\begin{tabular}{@{}c@{}} +\framebox{\begin{tabular}{l} +{\it sentença}{\tt;}\\ +{\it sentença}{\tt;}\\ +\hfil.\ \ .\ \ .\\ +{\it sentença}{\tt;}\\ +{\tt end;}\\ +\end{tabular}}\\ +\\\\Arquivo de modelo\\ +\end{tabular} +\hspace{32pt} +\begin{tabular}{@{}c@{}} +\framebox{\begin{tabular}{l} +{\tt data;}\\ +{\it bloco de dados}{\tt;}\\ +{\it bloco de dados}{\tt;}\\ +\hfil.\ \ .\ \ .\\ +{\it bloco de dados}{\tt;}\\ +{\tt end;}\\ +\end{tabular}}\\ +\\Arquivo de dados\\ +\end{tabular} + +\bigskip + +Nota: Se a seção de dados é posicionada em um arquivo separado, a palavra-chave +{\tt data} é opcional e pode ser omitida juntamente como o ponto e vírgula que a segue. + + +% \bigskip +% +% \noindent\hfil +% \begin{tabular}{@{}c@{}} +% \framebox{\begin{tabular}{l} +% {\it statement}{\tt;}\\ +% {\it statement}{\tt;}\\ +% \hfil.\ \ .\ \ .\\ +% {\it statement}{\tt;}\\ +% {\tt end;}\\ +% \end{tabular}}\\ +% \\\\Model file\\ +% \end{tabular} +% \hspace{32pt} +% \begin{tabular}{@{}c@{}} +% \framebox{\begin{tabular}{l} +% {\tt data;}\\ +% {\it data block}{\tt;}\\ +% {\it data block}{\tt;}\\ +% \hfil.\ \ .\ \ .\\ +% {\it data block}{\tt;}\\ +% {\tt end;}\\ +% \end{tabular}}\\ +% \\Data file\\ +% \end{tabular} +% +% \bigskip +% +% Note: If the data section is placed in a separate file, the keyword +% {\tt data} is optional and may be omitted along with the semicolon that +% follows it. + + +\section{Programando a seção de dados} + +A {\it seção de dados} é uma sequência de blocos de dados em vários formatos +e são discutidos nas seções seguintes. A ordem na qual os blocos de dados +seguem na seção de dados pode ser arbitrária, portanto, não precisa ser +necessariamente a mesma ordem que seguem os elementos correspondentes +da seção de modelo. + +As regras para programar a seção de dados são comumente as mesmas que as regras +de \linebreak programar a descrição do modelo (ver Seção \ref{coding}, página +\pageref{coding}), i.e., blocos de dados são compostos com unidades léxicas +básicas, como nomes simbólicos, literais numéricos e de cadeia, +palavras-chave, \linebreak delimitadores e comentários. No entanto, por conveniência +e para melhorar legibilidade, há um desvio da regra comum: se um literal +de cadeia consiste unicamente de caracteres alfanuméricos (incluindo +o caractere sublinhado), os sinais {\tt+} e {\tt-} e/ou o ponto decimal, +ele pode ser programado sem aspas limitadoras (simples ou duplas). + +Todo material numérico e simbólico provido na seção de dados é programado +na forma de números e símbolos, i.e., diferentemente da seção de modelo, +não são permitidas expressões na seção de dados. Apesar disso, os sinais +{\tt+} e {\tt-} podem preceder literais numéricos para permitir a programação +de quantidades numéricas com sinais. Neste caso não deve haver caractere de +espaço em branco entre o sinal e o literal numérico seguinte (se houver +pelo menos uma espaço em branco, o sinal e o literal numérico seguinte são +reconhecidos como duas unidades léxicas diferentes). + + + +% The {\it data section} is a sequence of data blocks in various formats, +% which are discussed in following sections. The order, in which data +% blocks follow in the data section, may be arbitrary, not necessarily +% the same, in which corresponding model objects follow in the model +% section. +% +% The rules of coding the data section are commonly the same as the rules +% of coding the model description (see Section \ref{coding}, page +% \pageref{coding}), i.e. data blocks are composed from basic lexical +% units such as symbolic names, numeric and string literals, keywords, +% delimiters, and comments. However, for the sake of convenience and for +% improving readability there is one deviation from the common rule: if +% a string literal consists of only alphanumeric characters (including +% the underscore character), the signs {\tt+} and {\tt-}, and/or the +% decimal point, it may be coded without bordering by (single or double) +% quotes. +% +% All numeric and symbolic material provided in the data section is coded +% in the form of numbers and symbols, i.e. unlike the model section +% no expressions are allowed in the data section. Nevertheless, the signs +% {\tt+} and {\tt-} can precede numeric literals to allow coding signed +% numeric quantities, in which case there should be no white-space +% characters between the sign and following numeric literal (if there is +% at least one white-space, the sign and following numeric literal are +% recognized as two different lexical units). + +\newpage + +\section{Bloco de dados set} + +\noindent +\framebox[468pt][l]{ +\parbox[c][44pt]{468pt}{ +\hspace{6pt} {\tt set} {\it nome} {\tt,} {\it registro} {\tt,} \dots +{\tt,} {\it registro} {\tt;} + +\medskip + +\hspace{6pt} {\tt set} {\it nome} {\tt[} {\it símbolo} {\tt,} \dots +{\tt,} {\it símbolo} {\tt]} {\tt,} {\it registro} {\tt,} \dots {\tt,} +{\it registro} {\tt;} +}} + +\medskip + +\noindent +{\it nome} é um nome simbólico do conjunto; + +\noindent +{\it símbolo}, \dots, {\it símbolo} são subíndices que especificam +um membro particular do conjunto \linebreak(se o conjunto é uma matriz, i.e., +um conjunto de conjuntos); + +\noindent +{\it registro}, \dots, {\it registro} são registros. + +\noindent +As vírgulas que precedem os registros podem ser omitidas. + +\para{Registros} + +\vspace*{-8pt} + +\begin{description} +\item[{\tt :=}]\hspace*{0pt}\\ +é um elemento de atribuição de registro não-significativo que pode ser usado +livremente para melhorar a legibilidade; +\item[{\tt(} {\it fatia} {\tt)}]\hspace*{0pt}\\ +especifica uma fatia; +\item[{\it dados-simples}]\hspace*{0pt}\\ +especifica os dados do conjunto em formato simples; +\item[{\tt:} {\it dados matriciais}]\hspace*{0pt}\\ +especifica os dados do conjunto em formato de matriz; +\item[{\tt(tr)} {\tt:} {\it dados matriciais}]\hspace*{0pt}\\ +especifica os dados do conjunto em formato de matriz transposta. +(Neste caso, os dois pontos que seguem a palavra-chave {\tt(tr)} podem ser omitidos). +\end{description} + +\vspace*{-8pt} + +\para{Exemplos} + +\begin{verbatim} +set mes := Jan Fev Mar Abr Mai Jun; +set mes "Jan", "Fev", "Mar", "Abr", "Mai", "Jun"; +set A[3,Mar] := (1,2) (2,3) (4,2) (3,1) (2,2) (4,4) (3,4); +set A[3,'Mar'] := 1 2 2 3 4 2 3 1 2 2 4 4 3 4; +set A[3,'Mar'] : 1 2 3 4 := + 1 - + - - + 2 - + + - + 3 + - - + + 4 - + - + ; +set B := (1,2,3) (1,3,2) (2,3,1) (2,1,3) (1,2,2) (1,1,1) (2,1,1); +set B := (*,*,*) 1 2 3, 1 3 2, 2 3 1, 2 1 3, 1 2 2, 1 1 1, 2 1 1; +set B := (1,*,2) 3 2 (2,*,1) 3 1 (1,2,3) (2,1,3) (1,1,1); +set B := (1,*,*) : 1 2 3 := + 1 + - - + 2 - + + + 3 - + - + (2,*,*) : 1 2 3 := + 1 + - + + 2 - - - + 3 + - - ; +\end{verbatim} + +\noindent(Nestes exemplos {\tt mes} é um conjunto simples de singletos, +{\tt A} é uma matriz 2-dimensional de duplas e {\tt B} é um conjunto +simples de triplas. Os blocos de dados para o mesmo conjunto são equivalentes +no sentido que especificam os mesmos dados em formatos distintos.) + +O {\it bloco de dados do conjunto} é usado para especificar um conjunto elementar +completo que é atribuído a um conjunto (se é um conjunto simples) ou a um de +seus membros (se o conjunto é uma matriz de conjuntos).\footnote{Há uma outra forma +de especificar dados para um conjunto simples com dados para os parâmetros. +Esta questão é discutida na próxima seção.} + +Blocos de dados podem ser especificados somente para conjuntos não-calculáveis, +i.e., para \linebreak conjuntos que possuem o atributo de atribuição ({\tt:=}) +na sentença set correspondente. + +Se o conjunto é um conjunto simples, somente seus nomes simbólicos devem ser +especificados no cabeçalho do bloco de dados. Caso contrário, se o conjunto +é uma matriz $n$-dimensional, seus nomes simbólicos devem ser fornecidos com +uma lista completa de subíndices separados por vírgulas e cercados em colchetes +para especificar um membro particular da matriz de conjuntos. O número de +subíndices deve ser igual ao da dimensão da matriz de conjuntos, onde +cada subíndice deve ser um número ou um símbolo. + +Um conjunto elementar definido no bloco de dados é programado como uma sequência +de \linebreak registros descritos abaixo.\footnote{{\it Registro} é simplesmente +um termo técnico. Não significa que os mesmos possuem qualquer formato +especial.} + + +% \noindent +% \framebox[468pt][l]{ +% \parbox[c][44pt]{468pt}{ +% \hspace{6pt} {\tt set} {\it name} {\tt,} {\it record} {\tt,} \dots +% {\tt,} {\it record} {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt set} {\it name} {\tt[} {\it symbol} {\tt,} \dots +% {\tt,} {\it symbol} {\tt]} {\tt,} {\it record} {\tt,} \dots {\tt,} +% {\it record} {\tt;} +% }} +% +% \medskip +% +% \noindent +% {\it name} is a symbolic name of the set; +% +% \noindent +% {\it symbol}, \dots, {\it symbol} are subscripts, which specify +% a particular member of the set (if the set is an array, i.e. a set of +% sets); +% +% \noindent +% {\it record}, \dots, {\it record} are data records. +% +% \noindent +% Commae preceding data records may be omitted. +% +% \para{Data records} +% +% \vspace*{-8pt} +% +% \begin{description} +% \item[{\tt :=}]\hspace*{0pt}\\ +% is a non-significant data record, which may be used freely to improve +% readability; +% \item[{\tt(} {\it slice} {\tt)}]\hspace*{0pt}\\ +% specifies a slice; +% \item[{\it simple-data}]\hspace*{0pt}\\ +% specifies set data in the simple format; +% \item[{\tt:} {\it matrix-data}]\hspace*{0pt}\\ +% specifies set data in the matrix format; +% \item[{\tt(tr)} {\tt:} {\it matrix-data}]\hspace*{0pt}\\ +% specifies set data in the transposed matrix format. (In this case the +% colon following the keyword {\tt(tr)} may be omitted.) +% \end{description} +% +% \vspace*{-8pt} +% +% \para{Examples} +% +% \begin{verbatim} +% set month := Jan Feb Mar Apr May Jun; +% set month "Jan", "Feb", "Mar", "Apr", "May", "Jun"; +% set A[3,Mar] := (1,2) (2,3) (4,2) (3,1) (2,2) (4,4) (3,4); +% set A[3,'Mar'] := 1 2 2 3 4 2 3 1 2 2 4 4 3 4; +% set A[3,'Mar'] : 1 2 3 4 := +% 1 - + - - +% 2 - + + - +% 3 + - - + +% 4 - + - + ; +% set B := (1,2,3) (1,3,2) (2,3,1) (2,1,3) (1,2,2) (1,1,1) (2,1,1); +% set B := (*,*,*) 1 2 3, 1 3 2, 2 3 1, 2 1 3, 1 2 2, 1 1 1, 2 1 1; +% set B := (1,*,2) 3 2 (2,*,1) 3 1 (1,2,3) (2,1,3) (1,1,1); +% set B := (1,*,*) : 1 2 3 := +% 1 + - - +% 2 - + + +% 3 - + - +% (2,*,*) : 1 2 3 := +% 1 + - + +% 2 - - - +% 3 + - - ; +% \end{verbatim} +% +% \noindent(In these examples {\tt month} is a simple set of singlets, +% {\tt A} is a 2-dimensional array of doublets, and {\tt B} is a simple +% set of triplets. Data blocks for the same set are equivalent in the +% sense that they specify the same data in different formats.) +% +% The {\it set data block} is used to specify a complete elemental set, +% which is assigned to a set (if it is a simple set) or one of its +% members (if the set is an array of sets).\footnote{There is another way +% to specify data for a simple set along with data for parameters. This +% feature is discussed in the next section.} +% +% Data blocks can be specified only for non-computable sets, i.e. for +% sets, which have no assign attribute ({\tt:=}) in the corresponding set +% statements. +% +% If the set is a simple set, only its symbolic name should be specified +% in the header of the data block. Otherwise, if the set is a +% $n$-dimensional array, its symbolic name should be provided with a +% complete list of subscripts separated by commae and enclosed in square +% brackets to specify a particular member of the set array. The number of +% subscripts should be the same as the dimension of the set array, where +% each subscript should be a number or symbol. +% +% An elemental set defined in the set data block is coded as a sequence +% of data records described below.\footnote{{\it Data record} is simply a +% technical term. It does not mean that data records have any special +% formatting.} + + +\subsection{Registro de atribuição de dados} + +O {\it registro de atribuição de dados} ({\tt:=}) é um elemento não-significante. +Ele pode ser usado para melhorar a legibilidade de blocos de dados. + +% The {\it assign data record} ({\tt:=}) is a non-signficant element. +% It may be used for improving readability of data blocks. + +\subsection{Registro em fatia de dados} + +O {\it registro em fatia de dados} é um registro de controle que especifica +uma {\it fatia} do conjunto elementar definido no bloco de dados. Ele possui +a seguinte forma sintática: +$$\mbox{{\tt(} $s_1$ {\tt,} $s_2$ {\tt,} \dots {\tt,} $s_n$ {\tt)}}$$ +onde $s_1$, $s_2$, \dots, $s_n$ são componentes da fatia. + +Cada componente da fatia pode ser um número, símbolo ou asterisco +({\tt*}). O número de \linebreak componentes na fatia deve ser o mesmo da +dimensão $n$-tuplas do conjunto elementar a ser definido. Por exemplo, +se o conjunto elementar contém 4-tuplas (quádruplas), a fatia deve ter +quatro \linebreak componentes. O número de asteriscos na fatia denomina a +{\it dimensão da fatia}. + +O efeito de usar fatias é o seguinte: se uma fatia $m$-dimensional +(i.e., uma fatia contendo $m$ asteriscos) é especificada no bloco de dados, +todos registros subsequentes devem especificar tuplas de dimensão~$m$. +Sempre que uma $m$-tupla é encontrada, cada asterisco da fatia é substituído +pelos componentes correspondentes da $m$-tupla, o que resulta na +$n$-tupla, que é incluída no conjunto \linebreak elementar a ser definido. +Por exemplo, se a fatia $(a,*,1,2,*)$ está vigente e a dupla +$(3,b)$ é encontrada no registro subsequente, a 5-tupla resultante a ser incluída +no conjunto elementar é $(a,3,1,2,b)$. + +Se a fatia não possui asteriscos, ela própria define uma $n$-tupla completa +que é incluída no conjunto elementar. + +Uma vez especificada uma fatia, a mesma está vigente até que apareça uma nova +fatia ou até que se encontre o fim do bloco de dados. Note que se uma fatia +não é especificada no bloco de dados, assume-se uma cujos componentes são +asteriscos em todas as posições. + + +% The {\it slice data record} is a control record, which specifies a +% {\it slice} of the elemental set defined in the data block. It has the +% following syntactic form: +% $$\mbox{{\tt(} $s_1$ {\tt,} $s_2$ {\tt,} \dots {\tt,} $s_n$ {\tt)}}$$ +% where $s_1$, $s_2$, \dots, $s_n$ are components of the slice. +% +% Each component of the slice can be a number or symbol or the asterisk +% ({\tt*}). The number of components in the slice should be the same as +% the dimension of $n$-tuples in the elemental set to be defined. For +% instance, if the elemental set contains 4-tuples (quadruplets), the +% slice should have four components. The number of asterisks in the slice +% is called the {\it slice dimension}. +% +% The effect of using slices is the following. If a $m$-dimensional slice +% (i.e. a slice having $m$ asterisks) is specified in the data block, all +% subsequent data records should specify tuples of the dimension~$m$. +% Whenever a $m$-tuple is encountered, each asterisk in the slice is +% replaced by corresponding components of the $m$-tuple that gives the +% resultant $n$-tuple, which is included in the elemental set to be +% defined. For example, if the slice $(a,*,1,2,*)$ is in effect, and +% 2-tuple $(3,b)$ is encountered in a subsequent data record, the +% resultant 5-tuple included in the elemental set is $(a,3,1,2,b)$. +% +% The slice having no asterisks itself defines a complete $n$-tuple, +% which is included in the elemental set. +% +% Being once specified the slice effects until either a new slice or the +% end of data block is encountered. Note that if no slice is specified in +% the data block, one, components of which are all asterisks, is assumed. + +\subsection{Registro simples} + +O {\it registro simples} define uma $n$-tupla em um formato simples +e possui a seguinte forma sintática: +$$\mbox{$t_1$ {\tt,} $t_2$ {\tt,} \dots {\tt,} $t_n$}$$ +onde $t_1$, $t_2$, \dots, $t_n$ são componentes da $n$-tupla. Cada +componente pode ser um número ou um símbolo. As vírgulas entre os componentes +são opcionais e podem ser omitidas. + +% The {\it simple data record} defines one $n$-tuple in a simple format +% and has the following syntactic form: +% $$\mbox{$t_1$ {\tt,} $t_2$ {\tt,} \dots {\tt,} $t_n$}$$ +% where $t_1$, $t_2$, \dots, $t_n$ are components of the $n$-tuple. Each +% component can be a number or symbol. Commae between components are +% optional and may be omitted. + +\subsection{Registro de matriz} + +O {\it registro de matriz} define diversas 2-tuplas (duplas) em +um formato matricial e possui a seguinte forma sintática: +$$\begin{array}{cccccc} +\mbox{{\tt:}}&c_1&c_2&\dots&c_n&\mbox{{\tt:=}}\\ +r_1&a_{11}&a_{12}&\dots&a_{1n}&\\ +r_2&a_{21}&a_{22}&\dots&a_{2n}&\\ +\multicolumn{5}{c}{.\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .}&\\ +r_m&a_{m1}&a_{m2}&\dots&a_{mn}&\\ +\end{array}$$ +onde $r_1$, $r_2$, \dots, $r_m$ são números e/ou símbolos +que correspondem a linhas da matriz; $c_1$, $c_2$, \dots, $c_n$ são +números e/ou símbolos que correspondem a colunas da matriz, $a_{11}$, +$a_{12}$, \dots, $a_{mn}$ são elementos da matriz, que podem ser tanto +{\tt+} como {\tt-}. (Neste registro, o delimitador {\tt:} que precede a +lista de colunas e o delimitador {\tt:=} que segue após a lista de colunas, +não podem ser omitidos.) + +Cada elemento $a_{ij}$ do bloco de dados matricial (onde $1\leq i\leq m$, +$1\leq j\leq n$) correspondem a 2-tuplas $(r_i,c_j)$. Se $a_{ij}$ é o +sinal mais ({\tt+}), a 2-tupla correspondente (ou uma $n$-tupla maior, se uma +fatia é usada) é incluída no conjunto elementar. Caso contrário, se $a_{ij}$ é o +sinal menos ({\tt-}), aquela 2-tupla não é incluída no conjunto elementar. + +Uma vez que o registro de matriz define 2-tuplas, tanto o conjunto elementar +quanto a fatia vigente devem ser 2-dimensional. + +\newpage + +\subsection{Registro de matriz transposta} + +O {\it registro de matriz transposta} possui a seguinte forma sintática: +$$\begin{array}{cccccc} +\mbox{{\tt(tr) :}}&c_1&c_2&\dots&c_n&\mbox{{\tt:=}}\\ +r_1&a_{11}&a_{12}&\dots&a_{1n}&\\ +r_2&a_{21}&a_{22}&\dots&a_{2n}&\\ +\multicolumn{5}{c}{.\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .}&\\ +r_m&a_{m1}&a_{m2}&\dots&a_{mn}&\\ +\end{array}$$ +(Neste caso, o delimitador {\tt:} que segue a palavra-chave {\tt(tr)} é +opcional e pode ser omitido.) + +Este registro é completamente análogo ao registro de matriz (ver +anteriormente) com a única exceção de que neste caso, cada elemento $a_{ij}$ da +matriz passa a corresponder a 2-tupla $(c_j,r_i)$ ao invés de $(r_i,c_j)$. + +Uma vez especificado, o indicador {\tt(tr)} tem alcance em todos registros +subsequentes até que se encontre outra fatia ou o fim do bloco de dados. + + +% The {\it transposed matrix data record} has the following syntactic +% form: +% $$\begin{array}{cccccc} +% \mbox{{\tt(tr) :}}&c_1&c_2&\dots&c_n&\mbox{{\tt:=}}\\ +% r_1&a_{11}&a_{12}&\dots&a_{1n}&\\ +% r_2&a_{21}&a_{22}&\dots&a_{2n}&\\ +% \multicolumn{5}{c}{.\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .}&\\ +% r_m&a_{m1}&a_{m2}&\dots&a_{mn}&\\ +% \end{array}$$ +% (In this case the delimiter {\tt:} following the keyword {\tt(tr)} is +% optional and may be omitted.) +% +% This data record is completely analogous to the matrix data record (see +% above) with only exception that in this case each element $a_{ij}$ of +% the matrix corresponds to 2-tuple $(c_j,r_i)$ rather than $(r_i,c_j)$. +% +% Being once specified the {\tt(tr)} indicator affects all subsequent +% data records until either a slice or the end of data block is +% encountered. + +\section{Bloco de dados de parâmetro} + +\noindent +\framebox[468pt][l]{ +\parbox[c][88pt]{468pt}{ +\hspace{6pt} {\tt param} {\it nome} {\tt,} {\it registro} {\tt,} \dots +{\tt,} {\it registro} {\tt;} + +\medskip + +\hspace{6pt} {\tt param} {\it nome} {\tt default} {\it valor} {\tt,} +{\it registro} {\tt,} \dots {\tt,} {\it registro} {\tt;} + +\medskip + +\hspace{6pt} {\tt param} {\tt:} {\it dados-tabulação} {\tt;} + +\medskip + +\hspace{6pt} {\tt param} {\tt default} {\it valor} {\tt:} +{\it dados-tabulação} {\tt;} +}} + +\medskip + +\noindent +{\it nome} é um nome simbólico do parâmetro; + +\noindent +{\it valor} é um valor opcional padrão do parâmetro; + +\noindent +{\it registro}, \dots, {\it registro} são registros; + +\noindent +{\it dados-tabulação} especifica os dados do parâmetro em formato tabulação. + +\noindent +As vírgulas que precedem os registros podem ser omitidas. + +\para{Registros} + +\vspace*{-8pt} + +\begin{description} +\item[{\tt :=}]\hspace*{0pt}\\ +é um elemento de atribuição de registro não-significativo que pode ser usado +livremente para melhorar a legibilidade; +\item[{\tt[} {\it fatia} {\tt]}]\hspace*{0pt}\\ +especifica uma fatia; +\item[{\it dados-planos}]\hspace*{0pt}\\ +especifica os dados do parâmetro em formato simples; +\item[{\tt:} {\it dados-tabulares}]\hspace*{0pt}\\ +especifica dados do parâmetro em formato tabular; +\item[{\tt(tr)} {\tt:} {\it dados-tabulares}]\hspace*{0pt}\\ +especifica dados do parâmetro no formato tabular transposto. +(Neste caso, os dois pontos que seguem a palavra-chave {\tt(tr)} podem ser omitidos). +\end{description} + +\vspace*{-8pt} + +\para{Exemplos} + +\begin{verbatim} +param T := 4; +param mes := 1 Jan 2 Fev 3 Mar 4 Abr 5 Mai; +param mes := [1] 'Jan', [2] 'Fev', [3] 'Mar', [4] 'Abr', [5] 'Mai'; +param estoque_inicial := ferro 7.32 niquel 35.8; +param estoque_inicial [*] ferro 7.32, niquel 35.8; +param custo [ferro] .025 [niquel] .03; +param valor := ferro -.1, niquel .02; +param : estoque_inicial custo valor := + ferro 7.32 .025 -.1 + niquel 35.8 .03 .02 ; +param : insumo : estoque_inicial custo valor := + ferro 7.32 .025 -.1 + niquel 35.8 .03 .02 ; +param demanda default 0 (tr) + : FRA DET LAN WIN STL FRE LAF := + chapa 300 . 100 75 . 225 250 + bobina 500 750 400 250 . 850 500 + placa 100 . . 50 200 . 250 ; +param custo_transporte := + [*,*,chapa]: FRA DET LAN WIN STL FRE LAF := + GARY 30 10 8 10 11 71 6 + CLEV 22 7 10 7 21 82 13 + PITT 19 11 12 10 25 83 15 + [*,*,bobina]: FRA DET LAN WIN STL FRE LAF := + GARY 39 14 11 14 16 82 8 + CLEV 27 9 12 9 26 95 17 + PITT 24 14 17 13 28 99 20 + [*,*,placa]: FRA DET LAN WIN STL FRE LAF := + GARY 41 15 12 16 17 86 8 + CLEV 29 9 13 9 28 99 18 + PITT 26 14 17 13 31 104 20 ; +\end{verbatim} + +O {\it bloco de dados do parâmetro} é usado para especificar dados +completos para um parâmetro (ou parâmetros, se os dados são especificados +no formato tabulação). + +Os blocos de dados podem ser especificados apenas para parâmetros não-calculáveis, i.e., +para parâmetros que não possuem o atributo de atribuição ({\tt:=}) nas +sentenças parameter correspondentes. + +Os dados definidos no bloco de dados do parâmetro são programados como uma sequência +de registros descritos em seguida. Adicionalmente, o bloco de dados pode vir com +o atributo opcional {\tt default}, que especifica um valor numérico ou simbólico +padrão do parâmetro (ou parâmetros). Este valor padrão é atribuído ao parâmetro ou +a seus membros quando não se definem valores apropriados no bloco de dados do +parâmetro. O atributo {\tt default} não pode ser usado se ele já tiver sido +especificado na sentença parameter correspondente. + + +% \noindent +% \framebox[468pt][l]{ +% \parbox[c][88pt]{468pt}{ +% \hspace{6pt} {\tt param} {\it name} {\tt,} {\it record} {\tt,} \dots +% {\tt,} {\it record} {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt param} {\it name} {\tt default} {\it value} {\tt,} +% {\it record} {\tt,} \dots {\tt,} {\it record} {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt param} {\tt:} {\it tabbing-data} {\tt;} +% +% \medskip +% +% \hspace{6pt} {\tt param} {\tt default} {\it value} {\tt:} +% {\it tabbing-data} {\tt;} +% }} +% +% \medskip +% +% \noindent +% {\it name} is a symbolic name of the parameter; +% +% \noindent +% {\it value} is an optional default value of the parameter; +% +% \noindent +% {\it record}, \dots, {\it record} are data records; +% +% \noindent +% {\it tabbing-data} specifies parameter data in the tabbing format. +% +% \noindent +% Commae preceding data records may be omitted. +% +% \para{Data records} +% +% \vspace*{-8pt} +% +% \begin{description} +% \item[{\tt :=}]\hspace*{0pt}\\ +% is a non-significant data record, which may be used freely to improve +% readability; +% \item[{\tt[} {\it slice} {\tt]}]\hspace*{0pt}\\ +% specifies a slice; +% \item[{\it plain-data}]\hspace*{0pt}\\ +% specifies parameter data in the plain format; +% \item[{\tt:} {\it tabular-data}]\hspace*{0pt}\\ +% specifies parameter data in the tabular format; +% \item[{\tt(tr)} {\tt:} {\it tabular-data}]\hspace*{0pt}\\ +% specifies set data in the transposed tabular format. (In this case the +% colon following the keyword {\tt(tr)} may be omitted.) +% \end{description} +% +% \vspace*{-8pt} +% +% \para{Examples} +% +% \begin{verbatim} +% param T := 4; +% param month := 1 Jan 2 Feb 3 Mar 4 Apr 5 May; +% param month := [1] 'Jan', [2] 'Feb', [3] 'Mar', [4] 'Apr', [5] 'May'; +% param init_stock := iron 7.32 nickel 35.8; +% param init_stock [*] iron 7.32, nickel 35.8; +% param cost [iron] .025 [nickel] .03; +% param value := iron -.1, nickel .02; +% param : init_stock cost value := +% iron 7.32 .025 -.1 +% nickel 35.8 .03 .02 ; +% param : raw : init stock cost value := +% iron 7.32 .025 -.1 +% nickel 35.8 .03 .02 ; +% param demand default 0 (tr) +% : FRA DET LAN WIN STL FRE LAF := +% bands 300 . 100 75 . 225 250 +% coils 500 750 400 250 . 850 500 +% plate 100 . . 50 200 . 250 ; +% param trans_cost := +% [*,*,bands]: FRA DET LAN WIN STL FRE LAF := +% GARY 30 10 8 10 11 71 6 +% CLEV 22 7 10 7 21 82 13 +% PITT 19 11 12 10 25 83 15 +% [*,*,coils]: FRA DET LAN WIN STL FRE LAF := +% GARY 39 14 11 14 16 82 8 +% CLEV 27 9 12 9 26 95 17 +% PITT 24 14 17 13 28 99 20 +% [*,*,plate]: FRA DET LAN WIN STL FRE LAF := +% GARY 41 15 12 16 17 86 8 +% CLEV 29 9 13 9 28 99 18 +% PITT 26 14 17 13 31 104 20 ; +% \end{verbatim} +% +% The {\it parameter data block} is used to specify complete data for a +% parameter (or parameters, if data are specified in the tabbing format). +% +% Data blocks can be specified only for non-computable parameters, i.e. +% for parameters, which have no assign attribute ({\tt:=}) in the +% corresponding parameter statements. +% +% Data defined in the parameter data block are coded as a sequence of +% data records described below. Additionally the data block can be +% provided with the optional {\tt default} attribute, which specifies a +% default numeric or symbolic value of the parameter (parameters). This +% default value is assigned to the parameter or its members when +% no appropriate value is defined in the parameter data block. The +% {\tt default} attribute cannot be used, if it is already specified in +% the corresponding parameter statement. + +\subsection{Registro de atribuição} + +O {\it registro de atribuição} ({\tt:=}) é um elemento não-significativo. +Ele pode ser usado para melhorar a legibilidade dos blocos de dados; + +% The {\it assign data record} ({\tt:=}) is a non-signficant element. +% It may be used for improving readability of data blocks. + +\subsection{Registro em fatia} + +O {\it registro em fatia} é um registro de controle que especifica uma +{\it fatia} da matriz do parâmetro. Ele tem a seguinte forma sintática: +$$\mbox{{\tt[} $s_1$ {\tt,} $s_2$ {\tt,} \dots {\tt,} $s_n$ {\tt]}}$$ +onde $s_1$, $s_2$, \dots, $s_n$ são componentes da fatia. + +Cada componente da fatia pode ser um número, símbolo ou asterisco +({\tt*}). O número de componentes na fatia deve ser o mesmo da +dimensão $n$-tuplas do parâmetro. Por exemplo, +se o parâmetro é uma matriz 4-dimensional, a fatia deve ter +quatro componentes. O número de \linebreak asteriscos na fatia denomina a +{\it dimensão da fatia}. + +O efeito de usar fatias é o seguinte: se uma fatia $m$-dimensional +(i.e., uma fatia contendo $m$ asteriscos) é especificada no bloco de dados, +todos registros subsequentes devem especificar os subíndices do membros do +parâmetro, como se o parâmetro fosse $m$-dimensional, não $n$-dimensional. + +Sempre que $m$ subíndices são encontrados, cada asterisco da fatia é substituído +pelos \linebreak componentes correspondentes que dão $n$ subíndices, que definem o +membro corrente do parâmetro. +Por exemplo, se a fatia $(a,*,1,2,*)$ está vigente e os subíndices 3 e +$b$ são encontradas no \linebreak registro subsequente, a lista completa de subíndices +usada para escolher o membro do parâmetro é $(a,3,1,2,b)$. + + +É permitido especificar uma fatia que não tenha asteriscos. Tal fatia, em si +própria, define uma lista completa de subíndice, em cujo caso o próximo +registro deve definir apenas um único valor do membro correspondentes do parâmetro. + +Uma vez especificada uma fatia, a mesma está vigente até que apareça uma nova +fatia ou até que se encontre o fim do bloco de dados. Note que se uma fatia +não é especificada no bloco de dados, assume-se uma cujos componentes são +asteriscos em todas as posições. + + +\subsection{Registro plano} + +O {\it registro plano} define uma lista de subíndice e um valor individual +no formato plano. Este registro possui a seguinte forma sintática: +$$\mbox{$t_1$ {\tt,} $t_2$ {\tt,} \dots {\tt,} $t_n$ {\tt,} $v$}$$ +onde $t_1$, $t_2$, \dots, $t_n$ são subíndices e $v$ é um valor. +Cada subíndice, assim como o valor, pode ser um número ou um símbolo. As +vírgulas que seguem os subíndices são opcionais e podem ser omitidas. + +No caso de um parâmetro ou fatia 0-dimensional, o registro plano não possui +subíndice e consiste de um valor individual apenas. + + +% The {\it plain data record} defines a subscript list and a single value +% in the plain format. This record has the following syntactic form: +% $$\mbox{$t_1$ {\tt,} $t_2$ {\tt,} \dots {\tt,} $t_n$ {\tt,} $v$}$$ +% where $t_1$, $t_2$, \dots, $t_n$ are subscripts, and $v$ is a value. +% Each subscript as well as the value can be a number or symbol. Commae +% following subscripts are optional and may be omitted. +% +% In case of 0-dimensional parameter or slice the plain data record has +% no subscripts and consists of a single value only. + +\subsection{Registro tabular} + +O {\it registro tabular} define diversos valores onde cada valor é provido +de dois subíndices. Este registro possui a seguinte forma sintática: +$$\begin{array}{cccccc} +\mbox{{\tt:}}&c_1&c_2&\dots&c_n&\mbox{{\tt:=}}\\ +r_1&a_{11}&a_{12}&\dots&a_{1n}&\\ +r_2&a_{21}&a_{22}&\dots&a_{2n}&\\ +\multicolumn{5}{c}{.\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .}&\\ +r_m&a_{m1}&a_{m2}&\dots&a_{mn}&\\ +\end{array}$$ +onde $r_1$, $r_2$, \dots, $r_m$ são números e/ou símbolos +que correspondem a linhas da tabela; enquanto que $c_1$, $c_2$, \dots, $c_n$ são +são números e/ou símbolos que correspondem a colunas da tabela, $a_{11}$, +$a_{12}$, \dots, $a_{mn}$ são elementos da tabela. Cada elemento pode ser +um número, símbolo ou o ponto decimal ({\tt.}) individual. (neste registro, +o delimitador {\tt:} que precede a lista de colunas e o delimitador +{\tt:=} que segue após a lista de colunas, não podem ser omitidos). + +Cada elemento $a_{ij}$ do bloco de dados tabulares ($1\leq i\leq m$, +$1\leq j\leq n$) define dois subíndices, onde o primeiro subíndice é +$r_i$ e o segundo é $c_j$. Estes subíndices são usados juntamente com +a fatia vigente para formar a lista completa de subíndices que identifica +um membro particular da matriz de parâmetros. Se $a_{ij}$ +é um número ou um símbolo, este valor é atribuído ao membro do parâmetro. +No entanto, se $a_{ij}$ é um ponto decimal individual, o membro é atribuído +ao valor padrão especificado ou no bloco de dados do parâmetro +ou na sentença parameter, ou ainda, se nenhum valor padrão é especificado, +o membro permanece indefinido. + +Uma vez que o registro tabular fornece dois subíndices para cada valor, +tanto o parâmetro quanto a fatia vigente em uso devem ser 2-dimensional. + + +% The {\it tabular data record} defines several values, where each value +% is provided with two subscripts. This record has the following +% syntactic form: +% $$\begin{array}{cccccc} +% \mbox{{\tt:}}&c_1&c_2&\dots&c_n&\mbox{{\tt:=}}\\ +% r_1&a_{11}&a_{12}&\dots&a_{1n}&\\ +% r_2&a_{21}&a_{22}&\dots&a_{2n}&\\ +% \multicolumn{5}{c}{.\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .}&\\ +% r_m&a_{m1}&a_{m2}&\dots&a_{mn}&\\ +% \end{array}$$ +% where $r_1$, $r_2$, \dots, $r_m$ are numbers and/or symbols +% corresponding to rows of the table; $c_1$, $c_2$, \dots, $c_n$ are +% numbers and/or symbols corresponding to columns of the table, $a_{11}$, +% $a_{12}$, \dots, $a_{mn}$ are table elements. Each element can be a +% number or symbol or the single decimal point ({\tt.}). (In this data +% record the delimiter {\tt:} preceding the column list and the delimiter +% {\tt:=} following the column list cannot be omitted.) +% +% Each element $a_{ij}$ of the tabular data block ($1\leq i\leq m$, +% $1\leq j\leq n$) defines two subscripts, where the first subscript is +% $r_i$, and the second one is $c_j$. These subscripts are used in +% conjunction with the current slice to form the complete subscript list +% that identifies a particular member of the parameter array. If $a_{ij}$ +% is a number or symbol, this value is assigned to the parameter member. +% However, if $a_{ij}$ is the single decimal point, the member is +% assigned a default value specified either in the parameter data block +% or in the parameter statement, or, if no default value is specified, +% the member remains undefined. +% +% Since the tabular data record provides two subscripts for each value, +% either the parameter or the slice currently used should be +% 2-dimensional. + +\subsection{Registro tabular transposto} + +O {\it registro tabular transposto} possui a seguinte forma sintática: +$$\begin{array}{cccccc} +\mbox{{\tt(tr) :}}&c_1&c_2&\dots&c_n&\mbox{{\tt:=}}\\ +r_1&a_{11}&a_{12}&\dots&a_{1n}&\\ +r_2&a_{21}&a_{22}&\dots&a_{2n}&\\ +\multicolumn{5}{c}{.\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .}&\\ +r_m&a_{m1}&a_{m2}&\dots&a_{mn}&\\ +\end{array}$$ +(Neste caso, o delimitador {\tt:} que segue a palavra-chave {\tt(tr)} é +opcional e pode ser omitida.) + +Este registro é completamente análogo ao registro tabular +(ver anteriormente) com a única exceção que o primeiro subíndice definido +pelo elemento $a_{ij}$ é $c_j$ enquanto que o segundo é $r_i$. + +Uma vez especificado, o indicador {\tt(tr)} afeta todos registros subsequentes +até que se encontre outra fatia ou o fim do bloco de dados. + + +% The {\it transposed tabular data record} has the following syntactic +% form: +% $$\begin{array}{cccccc} +% \mbox{{\tt(tr) :}}&c_1&c_2&\dots&c_n&\mbox{{\tt:=}}\\ +% r_1&a_{11}&a_{12}&\dots&a_{1n}&\\ +% r_2&a_{21}&a_{22}&\dots&a_{2n}&\\ +% \multicolumn{5}{c}{.\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .\ \ .}&\\ +% r_m&a_{m1}&a_{m2}&\dots&a_{mn}&\\ +% \end{array}$$ +% (In this case the delimiter {\tt:} following the keyword {\tt(tr)} is +% optional and may be omitted.) +% +% This data record is completely analogous to the tabular data record +% (see above) with only exception that the first subscript defined by +% element $a_{ij}$ is $c_j$ while the second one is $r_i$. +% +% Being once specified the {\tt(tr)} indicator affects all subsequent +% data records until either a slice or the end of data block is +% encountered. + +% \newpage + +\subsection{Formato de dados em tabulação} + +O bloco de dados do parâmetro no {\it formato tabulação} possui a seguinte +forma sintática: +$$ +\begin{array}{*{8}{l}} +\multicolumn{4}{l} +{{\tt param}\ {\tt default}\ valor\ {\tt :}\ s\ {\tt :}}& +p_1\ \ \verb|,|&p_2\ \ \verb|,|&\dots\ \verb|,|&p_r\ \ \verb|:=|\\ +r_{11}\ \verb|,|& r_{12}\ \verb|,|& \dots\ \verb|,|& r_{1n}\ \verb|,|& +a_{11}\ \verb|,|& a_{12}\ \verb|,|& \dots\ \verb|,|& a_{1r}\ \verb|,|\\ +r_{21}\ \verb|,|& r_{22}\ \verb|,|& \dots\ \verb|,|& r_{2n}\ \verb|,|& +a_{21}\ \verb|,|& a_{22}\ \verb|,|& \dots\ \verb|,|& a_{2r}\ \verb|,|\\ +\dots & \dots & \dots & \dots & \dots & \dots & \dots & \dots \\ +r_{m1}\ \verb|,|& r_{m2}\ \verb|,|& \dots\ \verb|,|& r_{mn}\ \verb|,|& +a_{m1}\ \verb|,|& a_{m2}\ \verb|,|& \dots\ \verb|,|& a_{mr}\ \verb|;|\\ +\end{array} +$$ + +1. A palavra-chave {\tt default} pode ser omitida juntamente +com o valor que a segue. + +2. O nome simbólico $s$ pode ser omitido juntamente com +os dois pontos que o segue. + +3. Todas as vírgulas são opcionais e podem ser omitidas. + +O bloco de dados no formato tabulação mostrado acima é exatamente +equivalente aos seguintes blocos de dados: + +\verb|set| $s$\ \verb|:=|\ $ +\verb|(|r_{11}\verb|,|r_{12}\verb|,|\dots\verb|,|r_{1n}\verb|) | +\verb|(|r_{21}\verb|,|r_{22}\verb|,|\dots\verb|,|r_{2n}\verb|) | +\dots +\verb| (|r_{m1}\verb|,|r_{m2}\verb|,|\dots\verb|,|r_{mn}\verb|);|$ + +\verb|param| $p_1$\ \verb|default|\ $valor$\ \verb|:=| + +$\verb| | +\verb|[|r_{11}\verb|,|r_{12}\verb|,|\dots\verb|,|r_{1n}\verb|] |a_{11} +\verb| [|r_{21}\verb|,|r_{22}\verb|,|\dots\verb|,|r_{2n}\verb|] |a_{21} +\verb| |\dots +\verb| [|r_{m1}\verb|,|r_{m2}\verb|,|\dots\verb|,|r_{mn}\verb|] |a_{m1} +\verb|;| +$ + +\verb|param| $p_2$\ \verb|default|\ $valor$\ \verb|:=| + +$\verb| | +\verb|[|r_{11}\verb|,|r_{12}\verb|,|\dots\verb|,|r_{1n}\verb|] |a_{12} +\verb| [|r_{21}\verb|,|r_{22}\verb|,|\dots\verb|,|r_{2n}\verb|] |a_{22} +\verb| |\dots +\verb| [|r_{m1}\verb|,|r_{m2}\verb|,|\dots\verb|,|r_{mn}\verb|] |a_{m2} +\verb|;| +$ + +\verb| |.\ \ \ .\ \ \ .\ \ \ .\ \ \ .\ \ \ .\ \ \ .\ \ \ .\ \ \ . + +\verb|param| $p_r$\ \verb|default|\ $valor$\ \verb|:=| + +$\verb| | +\verb|[|r_{11}\verb|,|r_{12}\verb|,|\dots\verb|,|r_{1n}\verb|] |a_{1r} +\verb| [|r_{21}\verb|,|r_{22}\verb|,|\dots\verb|,|r_{2n}\verb|] |a_{2r} +\verb| |\dots +\verb| [|r_{m1}\verb|,|r_{m2}\verb|,|\dots\verb|,|r_{mn}\verb|] |a_{mr} +\verb|;| +$ + + +% The parameter data block in the {\it tabbing format} has the following +% syntactic form: +% $$ +% \begin{array}{*{8}{l}} +% \multicolumn{4}{l} +% {{\tt param}\ {\tt default}\ value\ {\tt :}\ s\ {\tt :}}& +% p_1\ \ \verb|,|&p_2\ \ \verb|,|&\dots\ \verb|,|&p_r\ \ \verb|:=|\\ +% r_{11}\ \verb|,|& r_{12}\ \verb|,|& \dots\ \verb|,|& r_{1n}\ \verb|,|& +% a_{11}\ \verb|,|& a_{12}\ \verb|,|& \dots\ \verb|,|& a_{1r}\ \verb|,|\\ +% r_{21}\ \verb|,|& r_{22}\ \verb|,|& \dots\ \verb|,|& r_{2n}\ \verb|,|& +% a_{21}\ \verb|,|& a_{22}\ \verb|,|& \dots\ \verb|,|& a_{2r}\ \verb|,|\\ +% \dots & \dots & \dots & \dots & \dots & \dots & \dots & \dots \\ +% r_{m1}\ \verb|,|& r_{m2}\ \verb|,|& \dots\ \verb|,|& r_{mn}\ \verb|,|& +% a_{m1}\ \verb|,|& a_{m2}\ \verb|,|& \dots\ \verb|,|& a_{mr}\ \verb|;|\\ +% \end{array} +% $$ +% +% 1. The keyword {\tt default} may be omitted along with a value +% following it. +% +% 2. Symbolic name $s$ may be omitted along with the colon following it. +% +% 3. All commae are optional and may be omitted. +% +% The data block in the tabbing format shown above is exactly equivalent +% to the following data blocks: +% +% \verb|set| $s$\ \verb|:=|\ $ +% \verb|(|r_{11}\verb|,|r_{12}\verb|,|\dots\verb|,|r_{1n}\verb|) | +% \verb|(|r_{21}\verb|,|r_{22}\verb|,|\dots\verb|,|r_{2n}\verb|) | +% \dots +% \verb| (|r_{m1}\verb|,|r_{m2}\verb|,|\dots\verb|,|r_{mn}\verb|);|$ +% +% \verb|param| $p_1$\ \verb|default|\ $value$\ \verb|:=| +% +% $\verb| | +% \verb|[|r_{11}\verb|,|r_{12}\verb|,|\dots\verb|,|r_{1n}\verb|] |a_{11} +% \verb| [|r_{21}\verb|,|r_{22}\verb|,|\dots\verb|,|r_{2n}\verb|] |a_{21} +% \verb| |\dots +% \verb| [|r_{m1}\verb|,|r_{m2}\verb|,|\dots\verb|,|r_{mn}\verb|] |a_{m1} +% \verb|;| +% $ +% +% \verb|param| $p_2$\ \verb|default|\ $value$\ \verb|:=| +% +% $\verb| | +% \verb|[|r_{11}\verb|,|r_{12}\verb|,|\dots\verb|,|r_{1n}\verb|] |a_{12} +% \verb| [|r_{21}\verb|,|r_{22}\verb|,|\dots\verb|,|r_{2n}\verb|] |a_{22} +% \verb| |\dots +% \verb| [|r_{m1}\verb|,|r_{m2}\verb|,|\dots\verb|,|r_{mn}\verb|] |a_{m2} +% \verb|;| +% $ +% +% \verb| |.\ \ \ .\ \ \ .\ \ \ .\ \ \ .\ \ \ .\ \ \ .\ \ \ .\ \ \ . +% +% \verb|param| $p_r$\ \verb|default|\ $value$\ \verb|:=| +% +% $\verb| | +% \verb|[|r_{11}\verb|,|r_{12}\verb|,|\dots\verb|,|r_{1n}\verb|] |a_{1r} +% \verb| [|r_{21}\verb|,|r_{22}\verb|,|\dots\verb|,|r_{2n}\verb|] |a_{2r} +% \verb| |\dots +% \verb| [|r_{m1}\verb|,|r_{m2}\verb|,|\dots\verb|,|r_{mn}\verb|] |a_{mr} +% \verb|;| +% $ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\appendix + +\chapter{Usando sufixos} + +\vspace*{-12pt} + +Sufixos podem ser usados para recuperar valores adicionais +associados com as variáveis, restrições e objetivos do modelo. + +Um {\it sufixo} consiste de um ponto ({\tt.}) seguido por uma palavra-chave +não-reservada. Por exemplo, se {\tt x} é uma variável bi-dimensional, +{\tt x[i,j].lb} é um valor numérico igual ao limite inferior da variável +elementar {\tt x[i,j]}, que (cujo valor) pode ser usado em expressões +como um parâmetro numérico. + +Para as variáveis do modelo, os sufixos possuem o seguinte significado: + +\begin{tabular}{@{}ll@{}} +{\tt.lb}&limite inferior (lower bound)\\ +{\tt.ub}&limite superior (upper bound)\\ +{\tt.status}&status na solução:\\ +&0 --- indefinida\\ +&1 --- básica\\ +&2 --- não-básica no limite inferior\\ +&3 --- não-básica no limite superior\\ +&4 --- variável não-básica livre (ilimitada)\\ +&5 --- variável não-básica fixa\\ +{\tt.val}&valor primal na solução\\ +{\tt.dual}&valor dual (custo reduzido) na solução\\ +\end{tabular} + +Para as restrições e objetivos do modelo, os sufixos têm os seguintes significados: + +\begin{tabular}{@{}ll@{}} +{\tt.lb}&limite inferior (lower bound) da forma linear\\ +{\tt.ub}&limite superior (upper bound) da forma linear\\ +{\tt.status}&status na solução:\\ +&0 --- indefinida\\ +&1 --- não-limitante\\ +&2 --- limitante no limite inferior\\ +&3 --- limitante no limite superior\\ +&4 --- linha limitante livre (ilimitada)\\ +&5 --- restrição de igualdade limitante\\ +{\tt.val}&valor primal da forma linear na solução\\ +{\tt.dual}&valor dual (custo reduzido) da forma linear na solução\\ +\end{tabular} + +Note que os sufixos {\tt.status}, {\tt.val} e {\tt.dual} podem ser usados +apenas abaixo da sentença solve. + + +% Suffixes can be used to retrieve additional values associated with +% model variables, constraints, and objectives. +% +% A {\it suffix} consists of a period ({\tt.}) followed by a non-reserved +% keyword. For example, if {\tt x} is a two-dimensional variable, +% {\tt x[i,j].lb} is a numeric value equal to the lower bound of +% elemental variable {\tt x[i,j]}, which (value) can be used everywhere +% in expressions like a numeric parameter. +% +% For model variables suffixes have the following meaning: +% +% \begin{tabular}{@{}ll@{}} +% {\tt.lb}&lower bound\\ +% {\tt.ub}&upper bound\\ +% {\tt.status}&status in the solution:\\ +% &0 --- undefined\\ +% &1 --- basic\\ +% &2 --- non-basic on lower bound\\ +% &3 --- non-basic on upper bound\\ +% &4 --- non-basic free (unbounded) variable\\ +% &5 --- non-basic fixed variable\\ +% {\tt.val}&primal value in the solution\\ +% {\tt.dual}&dual value (reduced cost) in the solution\\ +% \end{tabular} +% +% For model constraints and objectives suffixes have the following +% meaning: +% +% \begin{tabular}{@{}ll@{}} +% {\tt.lb}&lower bound of the linear form\\ +% {\tt.ub}&upper bound of the linear form\\ +% {\tt.status}&status in the solution:\\ +% &0 --- undefined\\ +% &1 --- non-active\\ +% &2 --- active on lower bound\\ +% &3 --- active on upper bound\\ +% &4 --- active free (unbounded) row\\ +% &5 --- active equality constraint\\ +% {\tt.val}&primal value of the linear form in the solution\\ +% {\tt.dual}&dual value (reduced cost) of the linear form in the +% solution\\ +% \end{tabular} +% +% Note that suffixes {\tt.status}, {\tt.val}, and {\tt.dual} can be used +% only below the solve statement. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Funções de data e hora} + +\noindent\hfil +\begin{tabular}{c} +por Andrew Makhorin \verb||\\ +e Heinrich Schuchardt \verb||\\ +\end{tabular} + +\section{Obtendo o tempo de calendário corrente} +\label{gmtime} + +Para obter o tempo de calendário corrente em MathProg existe a função +{\tt gmtime}. Ela não possui argumentos e retorna o número de segundos +transcorridos desde 00:00:00 de 1{\textsuperscript{\b{o}}} +de Janeiro de 1970, pelo +Tempo Universal Coordenado (UTC). Por exemplo: + +\begin{verbatim} + param utc := gmtime(); +\end{verbatim} + +MathProg não possui uma função para converter o tempo UTC retornado pela função +{\tt gmtime} para os tempos de calendário {\it local}. Assim, para +determinar o tempo de calendário local corrente, é preciso que adicione ao +tempo UTC retornado a diferença de horas, com respeito a UTC, expressa em +segundos. Por exemplo, a hora em Berlim durante o inverno é uma hora à frente +do UTC, que corresponde a uma diferença horária de +1~hora~= +3600~segundos, +assim, o tempo de calendário corrente no inverno em Berlim pode ser determinado +como segue: + +\begin{verbatim} + param now := gmtime() + 3600; +\end{verbatim} + +\noindent De forma análoga, o horário de verão em Chicago (Zona Horária Central-CDT) +é cinco horas atrás da UTC, de modo que o horário corrente do calendário local +pode ser determinado como segue: + +\begin{verbatim} + param now := gmtime() - 5 * 3600; +\end{verbatim} + +Note que o valor retornado por {\tt gmtime} é volátil, i.e., ao ser +chamada diversas vezes, esta função pode retornar diferentes valores. + +% \noindent\hfil +% \begin{tabular}{c} +% by Andrew Makhorin \verb||\\ +% and Heinrich Schuchardt \verb||\\ +% \end{tabular} +% +% \section{Obtaining current calendar time} +% \label{gmtime} +% +% To obtain the current calendar time in MathProg there exists the +% function {\tt gmtime}. It has no arguments and returns the number of +% seconds elapsed since 00:00:00 on January 1, 1970, Coordinated +% Universal Time (UTC). For example: +% +% \begin{verbatim} +% param utc := gmtime(); +% \end{verbatim} +% +% MathProg has no function to convert UTC time returned by the function +% {\tt gmtime} to {\it local} calendar times. Thus, if you need to +% determine the current local calendar time, you have to add to the UTC +% time returned the time offset from UTC expressed in seconds. For +% example, the time in Berlin during the winter is one hour ahead of UTC +% that corresponds to the time offset +1~hour~= +3600~secs, so the +% current winter calendar time in Berlin may be determined as follows: +% +% \begin{verbatim} +% param now := gmtime() + 3600; +% \end{verbatim} +% +% \noindent Similarly, the summer time in Chicago (Central Daylight Time) +% is five hours behind UTC, so the corresponding current local calendar +% time may be determined as follows: +% +% \begin{verbatim} +% param now := gmtime() - 5 * 3600; +% \end{verbatim} +% +% Note that the value returned by {\tt gmtime} is volatile, i.e. being +% called several times this function may return different values. + +\section{Convertendo cadeia de caracteres ao tempo de calendário} +\label{str2time} + +A função {\tt str2time(}{\it s}{\tt,} {\it f}{\tt)} converte uma +cadeia de caractere (impressão da data e hora) \linebreak especificada pelo seu +primeiro argumento {\it s}, que deve ser uma expressão simbólica, +para o tempo de calendário apropriado para cálculos aritméticos. +A conversão é controlada pela cadeia de formato especificado {\it f} +(o segundo argumento), que também deve ser uma expressão simbólica. + + +% The function {\tt str2time(}{\it s}{\tt,} {\it f}{\tt)} converts a +% character string (timestamp) specified by its first argument {\it s}, +% which should be a symbolic expression, to the calendar time suitable +% for arithmetic calculations. The conversion is controlled by the +% specified format string {\it f} (the second argument), which also +% should be a symbolic expression. + +% \newpage + + +A conversão resultante retornada por {\tt str2time} possui o mesmo significado +dos valores retornados pela função {\tt gmtime} (ver Subseção +\ref{gmtime}, página \pageref{gmtime}). Note que {\tt str2time} +{\tt não corrige} o tempo de calendário retornado para zona horária local, +i.e., ao se aplicar a 00:00:00 de 1{\textsuperscript{\b{o}}} +de Janeiro de 1970, ela sempre retorna 0. + +% The result of conversion returned by {\tt str2time} has the same +% meaning as values returned by the function {\tt gmtime} (see Subsection +% \ref{gmtime}, page \pageref{gmtime}). Note that {\tt str2time} does +% {\tt not} correct the calendar time returned for the local timezone, +% i.e. being applied to 00:00:00 on January 1, 1970 it always returns 0. + +Por exemplo, as sentenças de modelo: + +\begin{verbatim} + param s, symbolic, := "07/14/98 13:47"; + param t := str2time(s, "%m/%d/%y %H:%M"); + display t; +\end{verbatim} + +\noindent produz a seguinte saída: + +\begin{verbatim} + t = 900424020 +\end{verbatim} + +\noindent onde o tempo de calendário impresso corresponde a 13:47:00 em +14 de Julho de 1998. + +A cadeia de formato passada à função {\tt str2time} consiste de +especificadores de conversão e caracteres ordinários. Cada especificador de +conversão inicia com um caractere de porcentagem ({\tt\%}) seguido de +uma letra. + +Os seguintes especificadores de conversão podem ser usados na cadeia de formato: + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%b}&O nome do mês abreviado (insensível a maiúsculas). Pelo menos as três +primeiras letras do mês devem aparecer na cadeia de entrada.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%d}&O dia do mês como número decimal (de 1 até 31). +Se permite o zero como primeiro dígito, embora não seja necessário.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%h}&O mesmo que {\tt\%b}.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%H}&A hora como um número decimal, usando um relógio de 24-horas (de 0 +a 23). Se permite o zero como primeiro dígito, embora não seja necessário.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%m}&O mês como um número decimal (de 1 a 12). +Se permite o zero como primeiro dígito, embora não seja necessário.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%M}&O minuto como um número decimal (de 0 a 59). +Se permite o zero como primeiro dígito, embora não seja necessário.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%S}&O segundo como um número decimal (de 0 to 60). +Se permite o zero como primeiro dígito, embora não seja necessário.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%y}&O ano sem o século, como um número decimal (de 0 to 99). +Se permite o zero como primeiro dígito, embora não seja necessário. +Valores de entrada de 0 a 68 são considerados dos anos 2000 a 2068 +enquanto que os valores 69 até 99 como dos anos 1969 to 1999.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%z}&A diferença horária do GMT no formato ISO 8601.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%\%}&Um caractere {\tt\%} literal.\\ +\end{tabular} + +Todos os outros caracteres (ordinários) na cadeia de formato devem ter um +caractere \linebreak correspondente com a cadeia de entrada a ser convertida. Exceções +são espaços na cadeia de entrada, a qual pode coincidir com zero ou mais +caracteres de espaço na cadeia de formato. + +% For example, the model statements: +% +% \begin{verbatim} +% param s, symbolic, := "07/14/98 13:47"; +% param t := str2time(s, "%m/%d/%y %H:%M"); +% display t; +% \end{verbatim} +% +% \noindent produce the following printout: +% +% \begin{verbatim} +% t = 900424020 +% \end{verbatim} +% +% \noindent where the calendar time printed corresponds to 13:47:00 on +% July 14, 1998. +% +% The format string passed to the function {\tt str2time} consists of +% conversion specifiers and ordinary characters. Each conversion +% specifier begins with a percent ({\tt\%}) character followed by a +% letter. +% +% The following conversion specifiers may be used in the format string: +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%b}&The abbreviated month name (case insensitive). At least three +% first letters of the month name should appear in the input string.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%d}&The day of the month as a decimal number (range 1 to 31). +% Leading zero is permitted, but not required.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%h}&The same as {\tt\%b}.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%H}&The hour as a decimal number, using a 24-hour clock (range 0 +% to 23). Leading zero is permitted, but not required.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%m}&The month as a decimal number (range 1 to 12). Leading zero is +% permitted, but not required.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%M}&The minute as a decimal number (range 0 to 59). Leading zero +% is permitted, but not required.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%S}&The second as a decimal number (range 0 to 60). Leading zero +% is permitted, but not required.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%y}&The year without a century as a decimal number (range 0 to 99). +% Leading zero is permitted, but not required. Input values in the range +% 0 to 68 are considered as the years 2000 to 2068 while the values 69 to +% 99 as the years 1969 to 1999.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%z}&The offset from GMT in ISO 8601 format.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%\%}&A literal {\tt\%} character.\\ +% \end{tabular} +% +% All other (ordinary) characters in the format string should have a +% matching character in the input string to be converted. Exceptions are +% spaces in the input string which can match zero or more space +% characters in the format string. + +% \newpage + +Se algum componente de data e/ou hora estão ausentes no formato e, +portanto, na cadeia de entrada, a função {\tt str2time} usa seus valores +padrão correspondendo a 00:00:00 de 1{\textsuperscript{\b{o}}} +de Janeiro de 1970, ou seja, o valor padrão para o ano é 1970, o valor +padrão para o mês é Janeiro, etc. + +A função {\tt str2time} é aplicável a todos horários calendário desde +00:00:00 de 1{\textsuperscript{\b{o}}} de Janeiro de 0001 até 23:59:59 +de 31 de Dezembro de 4000 do calendário Gregoriano. + +% If some date and/or time component(s) are missing in the format and, +% therefore, in the input string, the function {\tt str2time} uses their +% default values corresponding to 00:00:00 on January 1, 1970, that is, +% the default value of the year is 1970, the default value of the month +% is January, etc. +% +% The function {\tt str2time} is applicable to all calendar times in the +% range 00:00:00 on January 1, 0001 to 23:59:59 on December 31, 4000 of +% the Gregorian calendar. + + + +\section{Convertendo tempo de calendário a uma cadeia de caracteres} +\label{time2str} + +A função {\tt time2str(}{\it t}{\tt,} {\it f}{\tt)} converte o tempo +de calendário especificado pelo seu primeiro \linebreak argumento {\it t}, que +deve ser uma expressão numérica, para uma cadeia de caracteres +(valor \linebreak simbólico). A conversão é controlada pela cadeia de formato +{\it f} (o segundo argumento), que deve ser uma expressão numérica. + +O tempo de calendário passado para {\tt time2str} possui o mesmo +significado dos valores retornados pela função {\tt gmtime} (ver Subseção +\ref{gmtime}, página \pageref{gmtime}). Note que {\tt time2str} +{\it não corrige} o tempo de calendário especificado para zona horária local, +i.e., o tempo de calendário 0 sempre corresponde a 00:00:00 de +1{\textsuperscript{\b{o}}} de Janeiro de 1970. + +Por exemplo, as sentenças de modelo: + +\begin{verbatim} + param s, symbolic, := time2str(gmtime(), "%FT%TZ"); + display s; +\end{verbatim} + +\noindent pode produzir a seguinte impressão: + +\begin{verbatim} + s = '2008-12-04T00:23:45Z' +\end{verbatim} + +\noindent que é a impressão da data e hora no formato ISO. + +A cadeia de formato passada para a função {\tt time2str} consiste de +especificadores de conversão e caracteres ordinários. Cada especificador +de conversão começa com um caractere de porcentagem ({\tt\%}) seguido +de uma letra. + +Os seguintes especificadores de conversão podem ser usados na cadeia de formato: + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%a}&O nome do dia da semana abreviado(2 caracteres).\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%A}&O nome do dia da semana completo.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%b}&O nome do dia do mês abreviado (3 caracteres).\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%B}&O nome do mês completo.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%C}&O século do ano, ou seja, o maior inteiro não maior que o +ano dividido por~100.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%d}&O dia do mês como um número decimal (de 01 até 31).\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%D}&A data usando o formato \verb|%m/%d/%y|.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%e}&O dia do mês, como em \verb|%d|, mas preenchido com espaço +em branco ao invés de zero.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%F}&A data usando o formato \verb|%Y-%m-%d|.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%g}&O ano correspondente ao número de semana ISO, mas sem o século +(de 00 até~99). Este possui o mesmo formato e valor que \verb|%y|, +exceto que se o número de semana ISO (ver \verb|%V|) pertence +ao ano anterior ou seguinte, se usa aquele ano em seu lugar.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%G}&O ano correspondente ao número de semana ISO. +Este possui o mesmo formato e valor que \verb|%Y|, +exceto que se o número de semana ISO (ver \verb|%V|) pertence +ao ano anterior ou seguinte, se usa aquele ano em seu lugar.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%h}&O mesmo que \verb|%b|.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%H}&A hora como um número decimal usando um relógio 24 horas (de 00 até 23).\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%I}&A hora como um número decimal usando um relógio 12 horas (de 01 até 12).\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%j}&O dia do ano como um número decimal (de 001 até 366).\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%k}&A hora como um número decimal usando um relógio 24 horas, como +\verb|%H|, mas preenchido com espaço em branco ao invés de zero.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%l}&A hora como um número decimal usando um relógio 12 horas, como +\verb|%I|, mas preenchido com espaço em branco ao invés de zero. +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%m}&O mês como um número decimal (de 01 até 12).\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%M}&O minuto como um número decimal (de 00 até 59).\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%p}&Tanto {\tt AM} como {\tt PM}, de acordo com o valor da hora fornecido. +Meia-noite é tratada como {\tt AM} e meio-dia, como {\tt PM}.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%P}&Tanto {\tt am} como {\tt pm}, de acordo com o valor da hora fornecido. +Meia-noite é tratada como {\tt am} e meio-dia, como {\tt pm}.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%R}&A hora e minuto em números decimais usando o formato +\verb|%H:%M|.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%S}&O segundo como um número decimal (de 00 até 59).\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%T}&A hora do dia em números decimais usando o formato +\verb|%H:%M:%S|.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%u}&O dia da semana como número decimal (de 1 até 7) em que Segunda +é 1.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%U}&O número da semana do ano corrente como um número decimal (de +00 até 53) iniciando com o primeiro Domingo como o primeiro dia da +primeira semana. Os dias que precedem o primeiro Domingo do ano são +considerados parte da semana 00. +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%V}&O número da semana ISO como um número decimal (de 01 até 53). +Semanas ISO iniciam com Segunda e finalizam com Domingo. +A semana 01 de um ano é a primeira semana que possui a maioria de +seus dias naquele ano. Isto é equivalente à semana contendo 4 de +Janeiro. A semana 01 de um ano pode conter dias do ano anterior. +A semana anterior à semana 01 de um ano é a última semana +(52 ou 53) do ano anterior, mesmo se ela contém dias do novo ano. +Em outras palavras, se 1{\textsuperscript{\b{o}}} de Janeiro +é Segunda, Terça, Quarta ou Quinta, ele está na semana 01; +Se 1{\textsuperscript{\b{o}}} de Janeiro é Sexta, +Sábado ou Domingo, ele está na semana 52 ou 53 do ano anterior.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%w}&O dia da semana como um número decimal (de 0 até 6) em que Domingo +é 0.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%W}&O número da semana do ano corrente como um número decimal (de +00 até 53), iniciando com a primeira Segunda como o primeiro dia da primeira +semana. Dias que precedem a primeira Segunda do ano são considerados parte +da semana 00.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%y}&O ano sem o século como um número decimal (de 00 até +99), ou seja, o ano \verb|mod|~100.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%Y}&O ano como um número decimal, usando o calendário Gregoriano.\\ +\end{tabular} + +\begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +{\tt\%\%}&Um caractere \verb|%| literal.\\ +\end{tabular} + +Todos os outros caracteres (ordinários) na cadeia de formato são simplesmente copiados +à cadeia resultante. + +O primeiro argumento (tempo do calendário) passado para a função {\tt time2str} +deve estar entre $-62135596800$ até $+64092211199$, o que corresponde ao período +de 00:00:00 de 1{\textsuperscript{\b{o}}} de Janeiro de 0001 até 23:59:59 +de 31 de Dezembro de 4000 do calendário Gregoriano. + + +% The function {\tt time2str(}{\it t}{\tt,} {\it f}{\tt)} converts the +% calendar time specified by its first argument {\it t}, which should be +% a numeric expression, to a character string (symbolic value). The +% conversion is controlled by the specified format string {\it f} (the +% second argument), which should be a symbolic expression. +% +% The calendar time passed to {\tt time2str} has the same meaning as +% values returned by the function {\tt gmtime} (see Subsection +% \ref{gmtime}, page \pageref{gmtime}). Note that {\tt time2str} does +% {\it not} correct the specified calendar time for the local timezone, +% i.e. the calendar time 0 always corresponds to 00:00:00 on January 1, +% 1970. +% +% For example, the model statements: +% +% \begin{verbatim} +% param s, symbolic, := time2str(gmtime(), "%FT%TZ"); +% display s; +% \end{verbatim} +% +% \noindent may produce the following printout: +% +% \begin{verbatim} +% s = '2008-12-04T00:23:45Z' +% \end{verbatim} +% +% \noindent which is a timestamp in the ISO format. +% +% The format string passed to the function {\tt time2str} consists of +% conversion specifiers and ordinary characters. Each conversion +% specifier begins with a percent ({\tt\%}) character followed by a +% letter. +% +% The following conversion specifiers may be used in the format string: +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%a}&The abbreviated (2-character) weekday name.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%A}&The full weekday name.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%b}&The abbreviated (3-character) month name.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%B}&The full month name.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%C}&The century of the year, that is the greatest integer not +% greater than the year divided by~100.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%d}&The day of the month as a decimal number (range 01 to 31).\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%D}&The date using the format \verb|%m/%d/%y|.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%e}&The day of the month like with \verb|%d|, but padded with +% blank rather than zero.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%F}&The date using the format \verb|%Y-%m-%d|.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%g}&The year corresponding to the ISO week number, but without the +% century (range 00 to~99). This has the same format and value as +% \verb|%y|, except that if the ISO week number (see \verb|%V|) belongs +% to the previous or next year, that year is used instead.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%G}&The year corresponding to the ISO week number. This has the +% same format and value as \verb|%Y|, except that if the ISO week number +% (see \verb|%V|) belongs to the previous or next year, that year is used +% instead. +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%h}&The same as \verb|%b|.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%H}&The hour as a decimal number, using a 24-hour clock (range 00 +% to 23).\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%I}&The hour as a decimal number, using a 12-hour clock (range 01 +% to 12).\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%j}&The day of the year as a decimal number (range 001 to 366).\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%k}&The hour as a decimal number, using a 24-hour clock like +% \verb|%H|, but padded with blank rather than zero.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%l}&The hour as a decimal number, using a 12-hour clock like +% \verb|%I|, but padded with blank rather than zero. +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%m}&The month as a decimal number (range 01 to 12).\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%M}&The minute as a decimal number (range 00 to 59).\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%p}&Either {\tt AM} or {\tt PM}, according to the given time value. +% Midnight is treated as {\tt AM} and noon as {\tt PM}.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%P}&Either {\tt am} or {\tt pm}, according to the given time value. +% Midnight is treated as {\tt am} and noon as {\tt pm}.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%R}&The hour and minute in decimal numbers using the format +% \verb|%H:%M|.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%S}&The second as a decimal number (range 00 to 59).\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%T}&The time of day in decimal numbers using the format +% \verb|%H:%M:%S|.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%u}&The day of the week as a decimal number (range 1 to 7), Monday +% being 1.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%U}&The week number of the current year as a decimal number (range +% 00 to 53), starting with the first Sunday as the first day of the first +% week. Days preceding the first Sunday in the year are considered to be +% in week 00. +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%V}&The ISO week number as a decimal number (range 01 to 53). ISO +% weeks start with Monday and end with Sunday. Week 01 of a year is the +% first week which has the majority of its days in that year; this is +% equivalent to the week containing January 4. Week 01 of a year can +% contain days from the previous year. The week before week 01 of a year +% is the last week (52 or 53) of the previous year even if it contains +% days from the new year. In other word, if 1 January is Monday, Tuesday, +% Wednesday or Thursday, it is in week 01; if 1 January is Friday, +% Saturday or Sunday, it is in week 52 or 53 of the previous year.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%w}&The day of the week as a decimal number (range 0 to 6), Sunday +% being 0.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%W}&The week number of the current year as a decimal number (range +% 00 to 53), starting with the first Monday as the first day of the first +% week. Days preceding the first Monday in the year are considered to be +% in week 00.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%y}&The year without a century as a decimal number (range 00 to +% 99), that is the year modulo~100.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%Y}&The year as a decimal number, using the Gregorian calendar.\\ +% \end{tabular} +% +% \begin{tabular}{@{}p{20pt}p{421.5pt}@{}} +% {\tt\%\%}&A literal \verb|%| character.\\ +% \end{tabular} +% +% All other (ordinary) characters in the format string are simply copied +% to the resultant string. +% +% The first argument (calendar time) passed to the function {\tt time2str} +% should be in the range from $-62135596800$ to $+64092211199$ that +% corresponds to the period from 00:00:00 on January 1, 0001 to 23:59:59 +% on December 31, 4000 of the Gregorian calendar. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\chapter{Controladores de tabelas} +\label{drivers} + +\noindent\hfil +\begin{tabular}{c} +por Andrew Makhorin \verb||\\ +e Heinrich Schuchardt \verb||\\ +\end{tabular} + +\bigskip\bigskip + +O {\it controlador de tabelas} é um módulo do programa que permite transmitir +dados entre objetos de um modelo MathProg e tabela de dados. + +Atualmente, o pacote GLPK possui quatro controladores de tabelas: + +\vspace*{-8pt} + +\begin{itemize} +\item controlador interno de tabelas CSV; +\item controlador interno de tabelas xBASE; +\item controlador de tabelas ODBC; +\item controlador de tabelas MySQL. +\end{itemize} + + +% The {\it table driver} is a program module which provides transmitting +% data between MathProg model objects and data tables. +% +% Currently the GLPK package has four table drivers: +% +% \vspace*{-8pt} +% +% \begin{itemize} +% \item built-in CSV table driver; +% \item built-in xBASE table driver; +% \item ODBC table driver; +% \item MySQL table driver. +% \end{itemize} + +\vspace*{-8pt} + +\section{Controlador de tabelas CSV} + +O controlador de tabelas CSV assume que a tabela de dados está representada +na forma de \linebreak arquivo de texto plano, em formato de arquivo CSV +(valores serparados por vígula: \linebreak comma-separated values) como descrito +abaixo. + +Para escolher o controlador de tabelas CSV, seu nome na sentença table deve ser +especificado como \verb|"CSV"| e o único argumento deve especificar o nome do +arquivo de texto plano contendo a tabela. Por exemplo: + +\begin{verbatim} + table dados IN "CSV" "dados.csv": ... ; +\end{verbatim} + +O sufixo do nome do arquivo pode ser arbitrário, no entanto, +é recomendado usar o sufixo `\verb|.csv|'. + +Ao ler tabelas de entrada o controlador de tabelas CSV fornece um campo +implícito chamado \verb|RECNO|, que contém o número do registro corrente. +Este campo pode ser especificado na sentença de entrada table, como +se realmente houvesse um campo chamado \verb|RECNO| no arquivo CSV. Por exemplo: + +\begin{verbatim} + table lista IN "CSV" "lista.csv": num <- [RECNO], ... ; +\end{verbatim} + + +% The CSV table driver assumes that the data table is represented in the +% form of a plain text file in the CSV (comma-separated values) file +% format as described below. +% +% To choose the CSV table driver its name in the table statement should +% be specified as \verb|"CSV"|, and the only argument should specify the +% name of a plain text file containing the table. For example: +% +% \begin{verbatim} +% table data IN "CSV" "data.csv": ... ; +% \end{verbatim} +% +% The filename suffix may be arbitrary, however, it is recommended to use +% the suffix `\verb|.csv|'. +% +% On reading input tables the CSV table driver provides an implicit field +% named \verb|RECNO|, which contains the current record number. This +% field can be specified in the input table statement as if there were +% the actual field named \verb|RECNO| in the CSV file. For example: +% +% \begin{verbatim} +% table list IN "CSV" "list.csv": num <- [RECNO], ... ; +% \end{verbatim} + +\newpage + +\subsection*{Formato CSV\footnote{Este material é baseado no documento RFC +4180.}} + +O formato CSV (\textit{comma-separated values}) é um formato de arquivo de texto plano +definido como segue. + +1. Cada registro é localizado em uma linha separada, delimitada por uma quebra de linha. Por exemplo: + +\begin{verbatim} + aaa,bbb,ccc\n + xxx,yyy,zzz\n +\end{verbatim} + +\noindent +onde \verb|\n| significa o caractere de controle \verb|LF| ({\tt 0x0A}). + +2. O último registro no arquivo pode ou não ter a quebra de linha. Por exemplo: + +\begin{verbatim} + aaa,bbb,ccc\n + xxx,yyy,zzz +\end{verbatim} + +3. Deve haver uma linha de cabeçalho na primeira linha do arquivo no +mesmo formato das linhas de registros normais. Este cabeçalho deve +conter nomes correspondendo aos campos no arquivo. O número de nomes +de campos na linha de cabeçalho deve ser o mesmo do número de campos +dos registros do arquivo. Por exemplo: + +\begin{verbatim} + nome1,nome2,nome3\n + aaa,bbb,ccc\n + xxx,yyy,zzz\n +\end{verbatim} + +4. Dentro do cabeçalho e de cada registro, podem haver um ou mais campos +separados por vírgulas. Cada linha deve conter o mesmo número de campos +por todos arquivo. Espaços são considerados parte de um campo, portanto, +não são ignorados. O último campo do registro não deve ser seguido de +vírgula. Por exemplo: + +\begin{verbatim} + aaa,bbb,ccc\n +\end{verbatim} + +5. Campos podem ou não estar cercados em aspas duplas. Por exemplo: + +\begin{verbatim} + "aaa","bbb","ccc"\n + zzz,yyy,xxx\n +\end{verbatim} + +6. Se um campo é cercado de aspas duplas, cada aspa dupla que faça +parte do campo deve ser codificado duas vezes. Por exemplo: + +\begin{verbatim} + "aaa","b""bb","ccc"\n +\end{verbatim} + +\para{Exemplo} + +\begin{verbatim} +DE,PARA,DISTANCIA,CUSTO +Seattle,New-York,2.5,0.12 +Seattle,Chicago,1.7,0.08 +Seattle,Topeka,1.8,0.09 +San-Diego,New-York,2.5,0.15 +San-Diego,Chicago,1.8,0.10 +San-Diego,Topeka,1.4,0.07 +\end{verbatim} + + + +% The CSV (comma-separated values) format is a plain text file format +% defined as follows. +% +% 1. Each record is located on a separate line, delimited by a line +% break. For example: +% +% \begin{verbatim} +% aaa,bbb,ccc\n +% xxx,yyy,zzz\n +% \end{verbatim} +% +% \noindent +% where \verb|\n| means the control character \verb|LF| ({\tt 0x0A}). +% +% 2. The last record in the file may or may not have an ending line +% break. For example: +% +% \begin{verbatim} +% aaa,bbb,ccc\n +% xxx,yyy,zzz +% \end{verbatim} +% +% 3. There should be a header line appearing as the first line of the +% file in the same format as normal record lines. This header should +% contain names corresponding to the fields in the file. The number of +% field names in the header line should be the same as the number of +% fields in the records of the file. For example: +% +% \begin{verbatim} +% name1,name2,name3\n +% aaa,bbb,ccc\n +% xxx,yyy,zzz\n +% \end{verbatim} +% +% 4. Within the header and each record there may be one or more fields +% separated by commas. Each line should contain the same number of fields +% throughout the file. Spaces are considered as part of a field and +% therefore not ignored. The last field in the record should not be +% followed by a comma. For example: +% +% \begin{verbatim} +% aaa,bbb,ccc\n +% \end{verbatim} +% +% 5. Fields may or may not be enclosed in double quotes. For example: +% +% \begin{verbatim} +% "aaa","bbb","ccc"\n +% zzz,yyy,xxx\n +% \end{verbatim} +% +% 6. If a field is enclosed in double quotes, each double quote which is +% part of the field should be coded twice. For example: +% +% \begin{verbatim} +% "aaa","b""bb","ccc"\n +% \end{verbatim} +% +% \para{Example} +% +% \begin{verbatim} +% FROM,TO,DISTANCE,COST +% Seattle,New-York,2.5,0.12 +% Seattle,Chicago,1.7,0.08 +% Seattle,Topeka,1.8,0.09 +% San-Diego,New-York,2.5,0.15 +% San-Diego,Chicago,1.8,0.10 +% San-Diego,Topeka,1.4,0.07 +% \end{verbatim} + +\newpage + +\section{Controlador de tabelas xBASE} + +O controlador de tabelas xBASE assume que a tabela de dados é armazenada no +formato de arquivo .dbf. + +Para escolher o controlador de tabela xBASE, seu nome na sentença table deve ser +especificado como \verb|"xBASE"| e o primeiro argumento deve especificar o nome +de um arquivo .dbf contendo a tabela. Para a tabela de saída deve haver um +segundo argumento definindo o formato da tabela na forma +\verb|"FF...F"|, onde \verb|F| é tanto {\tt C({\it n})}, +que especifica um campo de caractere de tamanho $n$, ou +{\tt N({\it n}{\rm [},{\it p}{\rm ]})}, que especifica um campo numérico +de tamanho $n$ e precisão $p$ (por padrão $p$ é 0). + +Adiante está um simples exemplo que ilustra a criação e leitura de um arquivo .dbf: + +\begin{verbatim} +table tab1{i in 1..10} OUT "xBASE" "foo.dbf" + "N(5)N(10,4)C(1)C(10)": 2*i+1 ~ B, Uniform(-20,+20) ~ A, + "?" ~ FOO, "[" & i & "]" ~ C; +set S, dimen 4; +table tab2 IN "xBASE" "foo.dbf": S <- [B, C, RECNO, A]; +display S; +end; +\end{verbatim} + + +% The xBASE table driver assumes that the data table is stored in the +% .dbf file format. +% +% To choose the xBASE table driver its name in the table statement should +% be specified as \verb|"xBASE"|, and the first argument should specify +% the name of a .dbf file containing the table. For the output table there +% should be the second argument defining the table format in the form +% \verb|"FF...F"|, where \verb|F| is either {\tt C({\it n})}, +% which specifies a character field of length $n$, or +% {\tt N({\it n}{\rm [},{\it p}{\rm ]})}, which specifies a numeric field +% of length $n$ and precision $p$ (by default $p$ is 0). +% +% The following is a simple example which illustrates creating and +% reading a .dbf file: +% +% \begin{verbatim} +% table tab1{i in 1..10} OUT "xBASE" "foo.dbf" +% "N(5)N(10,4)C(1)C(10)": 2*i+1 ~ B, Uniform(-20,+20) ~ A, +% "?" ~ FOO, "[" & i & "]" ~ C; +% set S, dimen 4; +% table tab2 IN "xBASE" "foo.dbf": S <- [B, C, RECNO, A]; +% display S; +% end; +% \end{verbatim} + +\section{Controlador de tabelas ODBC} + +O controlador de tabelas ODBC permite conexões com bancos de dados SQL usando +uma \linebreak implementação da interface ODBC baseada na Call Level Interface +(CLI).\footnote{A norma software correspondente é definida na +ISO/IEC 9075-3:2003.} + +\para{Debian GNU/Linux.} +No Debian GNU/Linux o controlador de tabelas ODBC usa o pacote iODBC, +\footnote{Ver {\tt}.} que deve ser instalado antes +de montar o pacote GLPK. A instalação pode ser efetuada com o seguinte +comando: + +\begin{verbatim} + sudo apt-get install libiodbc2-dev +\end{verbatim} + +Note que, ao configurar o pacote GLPK, para habilitar o uso da biblioteca do iODBC +a opção `\verb|--enable-odbc|' deve ser passada para o script de configuração. + +Para seu uso em todo sistema, as bases de dados individuais devem ser inseridas em +\verb|/etc/odbc.ini| e \verb|/etc/odbcinst.ini|. As conexões das bases de dados +a serem usadas por um único usuário são especificadas por arquivos do diretório +home (\verb|.odbc.ini| e \verb|.odbcinst.ini|). + +\para{Microsoft Windows.} +No Microsoft Windows o controlador de tabelas ODBC usa a biblioteca Microsoft ODBC. +Para habilitar esta funcionalidade, o símbolo: + +\begin{verbatim} + #define ODBC_DLNAME "odbc32.dll" +\end{verbatim} + +\noindent +deve ser definido no arquivo de configuração do GLPK `\verb|config.h|'. + +Fontes de dados podem ser criados via Ferramentas Administrativas do +Painel de Controle. + +Para escolher do controlador de tabelas ODBC, seu nome na sentença table deve +ser especificado como \verb|'ODBC'| ou \verb|'iODBC'|. + +% \newpage + +A lista de argumentos é especificada como segue. + +O primeiro argumento é a cadeia de conexão passada para a biblioteca ODBC, +por exemplo: + +\verb|'DSN=glpk;UID=user;PWD=password'|, ou + +\verb|'DRIVER=MySQL;DATABASE=glpkdb;UID=user;PWD=password'|. + +Diferentes partes da cadeia são separadas por ponto e vírgula. Cada parte +consiste de um par {\it nome-do-campo} e {\it valor} separados pelo sinar +de igualdade. Os nomes de campo permitidos dependem da biblioteca ODBC. +Tipicamente os seguintes nomes-de-campo são permitidos: + +\verb|DATABASE | base de dados; + +\verb|DRIVER | controlador ODBC; + +\verb|DSN | nome de uma fonte de dados; + +\verb|FILEDSN | nome de um arquivo de fonte de dados; + +\verb|PWD | senha de usuário; + +\verb|SERVER | base de dados; + +\verb|UID | nome de usuário. + +O segundo argumento e todos os seguintes são considerados como +sentenças SQL. + +As sentenças SQL podem ser estendidas sobre múltiplos argumentos. Se o +último caractere de um argumento é um ponto e vírgula, este indica +o fim de uma sentença SQL. + +Os argumentos de uma sentença SQL são concatenados separados por espaço. +O eventual ponto e vírgula final será removido. + +Todas as sentenças SQL, exceto a última, serão executadas diretamente. + +Para tabela-IN, a última sentença SQL pode ser um comando SELECT que se inicia +com \verb|'SELECT '| em letras maiúsculas. Se a cadeia não se inicia com +\verb|'SELECT '|, se considera que é um nome de uma tabela e uma sentença +SELECT é automaticamente gerada. + + +Para tabela-OUT, a última sentença SQL pode conter um ou múltiplos pontos de +interrogação. Se contém um ponto de interrogação, é considerado um gabarito +para a rotina de escrita. Caso contrário, a cadeia é considerada um +nome de tabela e um gabarito INSERT é automaticamente gerado. + +A rotina de escrita usa um gabarito com o pontos de interrogação e +o substitui o primeiro ponto de interrogação pelo primeiro parâmetro +de saída, o segundo ponto de interrogação, pelo segundo parâmetro e +assim por diante. Em seguida, o comando SQL é emitido. + +O que segue é um exemplo da sentença table de saída: + +\begin{verbatim} +table ta { l in LOCAIS } OUT + 'ODBC' + 'DSN=glpkdb;UID=glpkuser;PWD=glpkpassword' + 'DROP TABLE IF EXISTS resultado;' + 'CREATE TABLE resultado ( ID INT, LOC VARCHAR(255), QUAN DOUBLE );' + 'INSERT INTO resultado 'VALUES ( 4, ?, ? )' : + l ~ LOC, quantidade[l] ~ QUAN; +\end{verbatim} + +% \newpage + +\noindent +Alternativamente pode se escrever como segue: + +\begin{verbatim} +table ta { l in LOCAIS } OUT + 'ODBC' + 'DSN=glpkdb;UID=glpkuser;PWD=glpkpassword' + 'DROP TABLE IF EXISTS resultado;' + 'CREATE TABLE resultado ( ID INT, LOC VARCHAR(255), QUAN DOUBLE );' + 'resultado' : + l ~ LOC, quantidade[l] ~ QUAN, 4 ~ ID; +\end{verbatim} + +O uso de gabaritos com `\verb|?|' não só permite INSERT, como também o +UPDATE, DELETE, etc. Por exemplo: + +\begin{verbatim} +table ta { l in LOCAIS } OUT + 'ODBC' + 'DSN=glpkdb;UID=glpkuser;PWD=glpkpassword' + 'UPDATE resultado SET DATA = ' & data & ' WHERE ID = 4;' + 'UPDATE resultado SET QUAN = ? WHERE LOC = ? AND ID = 4' : + quantidade[l], l; +\end{verbatim} + + + +% The ODBC table driver allows connecting to SQL databases using an +% implementation of the ODBC interface based on the Call Level Interface +% (CLI).\footnote{The corresponding software standard is defined in +% ISO/IEC 9075-3:2003.} +% +% \para{Debian GNU/Linux.} +% Under Debian GNU/Linux the ODBC table driver uses the iODBC +% package,\footnote{See {\tt}.} which should be +% installed before building the GLPK package. The installation can be +% effected with the following command: +% +% \begin{verbatim} +% sudo apt-get install libiodbc2-dev +% \end{verbatim} +% +% Note that on configuring the GLPK package to enable using the iODBC +% library the option `\verb|--enable-odbc|' should be passed to the +% configure script. +% +% The individual databases should be entered for systemwide usage in +% \verb|/etc/odbc.ini| and\linebreak \verb|/etc/odbcinst.ini|. Database +% connections to be used by a single user are specified by files in the +% home directory (\verb|.odbc.ini| and \verb|.odbcinst.ini|). +% +% \para{Microsoft Windows.} +% Under Microsoft Windows the ODBC table driver uses the Microsoft ODBC +% library. To enable this feature the symbol: +% +% \begin{verbatim} +% #define ODBC_DLNAME "odbc32.dll" +% \end{verbatim} +% +% \noindent +% should be defined in the GLPK configuration file `\verb|config.h|'. +% +% Data sources can be created via the Administrative Tools from the +% Control Panel. +% +% To choose the ODBC table driver its name in the table statement should +% be specified as \verb|'ODBC'| or \verb|'iODBC'|. +% +% \newpage +% +% The argument list is specified as follows. +% +% The first argument is the connection string passed to the ODBC library, +% for example: +% +% \verb|'DSN=glpk;UID=user;PWD=password'|, or +% +% \verb|'DRIVER=MySQL;DATABASE=glpkdb;UID=user;PWD=password'|. +% +% Different parts of the string are separated by semicolons. Each part +% consists of a pair {\it fieldname} and {\it value} separated by the +% equal sign. Allowable fieldnames depend on the ODBC library. Typically +% the following fieldnames are allowed: +% +% \verb|DATABASE | database; +% +% \verb|DRIVER | ODBC driver; +% +% \verb|DSN | name of a data source; +% +% \verb|FILEDSN | name of a file data source; +% +% \verb|PWD | user password; +% +% \verb|SERVER | database; +% +% \verb|UID | user name. +% +% The second argument and all following are considered to be SQL +% statements +% +% SQL statements may be spread over multiple arguments. If the last +% character of an argument is a semicolon this indicates the end of +% a SQL statement. +% +% The arguments of a SQL statement are concatenated separated by space. +% The eventual trailing semicolon will be removed. +% +% All but the last SQL statement will be executed directly. +% +% For IN-table the last SQL statement can be a SELECT command starting +% with the capitalized letters \verb|'SELECT '|. If the string does not +% start with \verb|'SELECT '| it is considered to be a table name and a +% SELECT statement is automatically generated. +% +% For OUT-table the last SQL statement can contain one or multiple +% question marks. If it contains a question mark it is considered a +% template for the write routine. Otherwise the string is considered a +% table name and an INSERT template is automatically generated. +% +% The writing routine uses the template with the question marks and +% replaces the first question mark by the first output parameter, the +% second question mark by the second output parameter and so forth. Then +% the SQL command is issued. +% +% The following is an example of the output table statement: +% +% \begin{verbatim} +% table ta { l in LOCATIONS } OUT +% 'ODBC' +% 'DSN=glpkdb;UID=glpkuser;PWD=glpkpassword' +% 'DROP TABLE IF EXISTS result;' +% 'CREATE TABLE result ( ID INT, LOC VARCHAR(255), QUAN DOUBLE );' +% 'INSERT INTO result 'VALUES ( 4, ?, ? )' : +% l ~ LOC, quantity[l] ~ QUAN; +% \end{verbatim} +% +% \newpage +% +% \noindent +% Alternatively it could be written as follows: +% +% \begin{verbatim} +% table ta { l in LOCATIONS } OUT +% 'ODBC' +% 'DSN=glpkdb;UID=glpkuser;PWD=glpkpassword' +% 'DROP TABLE IF EXISTS result;' +% 'CREATE TABLE result ( ID INT, LOC VARCHAR(255), QUAN DOUBLE );' +% 'result' : +% l ~ LOC, quantity[l] ~ QUAN, 4 ~ ID; +% \end{verbatim} +% +% Using templates with `\verb|?|' supports not only INSERT, but also +% UPDATE, DELETE, etc. For example: +% +% \begin{verbatim} +% table ta { l in LOCATIONS } OUT +% 'ODBC' +% 'DSN=glpkdb;UID=glpkuser;PWD=glpkpassword' +% 'UPDATE result SET DATE = ' & date & ' WHERE ID = 4;' +% 'UPDATE result SET QUAN = ? WHERE LOC = ? AND ID = 4' : +% quantity[l], l; +% \end{verbatim} + + +\section{Controlador de tabelas MySQL} + +O controlador de tabelas MySQL permite a conexão a base de dados MySQL. + +\para{Debian GNU/Linux.} +No Debian GNU/Linux o controlador de tabelas MySQL usa o pacote MySQL, +\footnote{Para fazer o download de arquivos de desenvolvimento, ver +{\tt}.} que deve ser instalado +antes da criação do pacote GLPK. A instalação pode ser efetuada com +o seguinte comando: + +\begin{verbatim} + sudo apt-get install libmysqlclient15-dev +\end{verbatim} + +Note que ao configurar o pacote GLPK para habilitar o uso da biblioteca MySQL +a opção `\verb|--enable-mysql|' deve ser passada ao script de +configuração. + +\para{Microsoft Windows.} +No Microsoft Windows o controlador de tabelas MySQL também usa +a biblioteca MySQL. Para habilitar esta funcionalidade o símbolo: + +\begin{verbatim} + #define MYSQL_DLNAME "libmysql.dll" +\end{verbatim} + +\noindent +deve ser definido no arquivo de configuração do GLPK `\verb|config.h|'. + +Para escolher o controlador de tabelas MySQL, seu nome na sentença table deve +ser especificada como \verb|'MySQL'|. + +A lista de argumentos é especificada como segue. + +O primeiro argumento especifica como conectar a base de dados no estilo DSN, +por exemplo: + +\verb|'Database=glpk;UID=glpk;PWD=gnu'|. + +Diferentes partes da cadeia são separadas por ponto e vírgula. Cada parte +consiste de um par {\it nome-do-campo} e {\it valor} separado pelo sinal +de igualdade. Os seguintes nomes de campo são permitidos: + +% \newpage + +\verb|Server | servidor rodando a base de dados (localhost por padrão); + +\verb|Database | nome da base de dados; + +\verb|UID | nome de usuário; + +\verb|PWD | senha de usuário; + +\verb|Port | porta usada pelo servidor (3306 por padrão). + +O segundo argumento e todos os seguintes são considerados sentenças SQL. + +Sentenças SQL podem se estender sobre múltiplos argumentos. Se o último +caractere de um argumento é um ponto e vírgula, isto indica o fim de uma +sentença SQL. + +Os argumentos de uma sentença SQL são concatenados e separados por espaço. +O eventual ponto e vírgula final será removido. + +Todas sentenças SQL, menos a última, serão executadas diretamente. + +Para tabela-IN, a última sentença SQL pode ser um comando SELECT iniciado +com letras maiúsculas \verb|'SELECT '|. Se a cadeia não inicia com +\verb|'SELECT '| é considerado um nome de tabela e a sentença +SELECT é automaticamente gerada. + +Para tabela-OUT, a última sentença SQL pode conter um ou múltiplos pontos de +interrogação. Se contém um ponto de interrogação, é considerado um gabarito +para a rotina de escrita. Caso contrário, a cadeia é considerada um +nome de tabela e um gabarito INSERT é automaticamente gerado. + +A rotina de escrita usa um gabarito com o pontos de interrogação e +o substitui o primeiro ponto de interrogação pelo primeiro parâmetro +de saída, o segundo ponto de interrogação, pelo segundo parâmetro e +assim por diante. Em seguida, o comando SQL é emitido. + +O que segue é um exemplo da sentença table de saída: + +\begin{verbatim} +table ta { l in LOCAIS } OUT + 'MySQL' + 'Database=glpkdb;UID=glpkuser;PWD=glpkpassword' + 'DROP TABLE IF EXISTS resultado;' + 'CREATE TABLE resultado ( ID INT, LOC VARCHAR(255), QUAN DOUBLE );' + 'INSERT INTO resultado VALUES ( 4, ?, ? )' : + l ~ LOC, quantidade[l] ~ QUAN; +\end{verbatim} + +\noindent +Alternativamente poderia ser escrito como segue: + +\begin{verbatim} +table ta { l in LOCAIS } OUT + 'MySQL' + 'Database=glpkdb;UID=glpkuser;PWD=glpkpassword' + 'DROP TABLE IF EXISTS resultado;' + 'CREATE TABLE resultado ( ID INT, LOC VARCHAR(255), QUAN DOUBLE );' + 'resultado' : + l ~ LOC, quantidade[l] ~ QUAN, 4 ~ ID; +\end{verbatim} + +% \newpage + +O uso de gabaritos com `\verb|?|' não só permite INSERT, como também o +UPDATE, DELETE, etc. Por exemplo: + +\begin{verbatim} +table ta { l in LOCAIS } OUT + 'MySQL' + 'Database=glpkdb;UID=glpkuser;PWD=glpkpassword' + 'UPDATE resultado SET DATE = ' & date & ' WHERE ID = 4;' + 'UPDATE resultado SET QUAN = ? WHERE LOC = ? AND ID = 4' : + quantidade[l], l; +\end{verbatim} + + +% The MySQL table driver allows connecting to MySQL databases. +% +% \para{Debian GNU/Linux.} +% Under Debian GNU/Linux the MySQL table driver uses the MySQL +% package,\footnote{For download development files see +% {\tt}.} which should be +% installed before building the GLPK package. The installation can be +% effected with the following command: +% +% \begin{verbatim} +% sudo apt-get install libmysqlclient15-dev +% \end{verbatim} +% +% Note that on configuring the GLPK package to enable using the MySQL +% library the option `\verb|--enable-mysql|' should be passed to the +% configure script. +% +% \para{Microsoft Windows.} +% Under Microsoft Windows the MySQL table driver also uses the MySQL +% library. To enable this feature the symbol: +% +% \begin{verbatim} +% #define MYSQL_DLNAME "libmysql.dll" +% \end{verbatim} +% +% \noindent +% should be defined in the GLPK configuration file `\verb|config.h|'. +% +% To choose the MySQL table driver its name in the table statement should +% be specified as \verb|'MySQL'|. +% +% The argument list is specified as follows. +% +% The first argument specifies how to connect the data base in the DSN +% style, for example: +% +% \verb|'Database=glpk;UID=glpk;PWD=gnu'|. +% +% Different parts of the string are separated by semicolons. Each part +% consists of a pair {\it fieldname} and {\it value} separated by the +% equal sign. The following fieldnames are allowed: +% +% \newpage +% +% \verb|Server | server running the database (defaulting to localhost); +% +% \verb|Database | name of the database; +% +% \verb|UID | user name; +% +% \verb|PWD | user password; +% +% \verb|Port | port used by the server (defaulting to 3306). +% +% The second argument and all following are considered to be SQL +% statements. +% +% SQL statements may be spread over multiple arguments. If the last +% character of an argument is a semicolon this indicates the end of +% a SQL statement. +% +% The arguments of a SQL statement are concatenated separated by space. +% The eventual trailing semicolon will be removed. +% +% All but the last SQL statement will be executed directly. +% +% For IN-table the last SQL statement can be a SELECT command starting +% with the capitalized letters \verb|'SELECT '|. If the string does not +% start with \verb|'SELECT '| it is considered to be a table name and a +% SELECT statement is automatically generated. +% +% For OUT-table the last SQL statement can contain one or multiple +% question marks. If it contains a question mark it is considered a +% template for the write routine. Otherwise the string is considered a +% table name and an INSERT template is automatically generated. +% +% The writing routine uses the template with the question marks and +% replaces the first question mark by the first output parameter, the +% second question mark by the second output parameter and so forth. Then +% the SQL command is issued. +% +% The following is an example of the output table statement: +% +% \begin{verbatim} +% table ta { l in LOCATIONS } OUT +% 'MySQL' +% 'Database=glpkdb;UID=glpkuser;PWD=glpkpassword' +% 'DROP TABLE IF EXISTS result;' +% 'CREATE TABLE result ( ID INT, LOC VARCHAR(255), QUAN DOUBLE );' +% 'INSERT INTO result VALUES ( 4, ?, ? )' : +% l ~ LOC, quantity[l] ~ QUAN; +% \end{verbatim} +% +% \noindent +% Alternatively it could be written as follows: +% +% \begin{verbatim} +% table ta { l in LOCATIONS } OUT +% 'MySQL' +% 'Database=glpkdb;UID=glpkuser;PWD=glpkpassword' +% 'DROP TABLE IF EXISTS result;' +% 'CREATE TABLE result ( ID INT, LOC VARCHAR(255), QUAN DOUBLE );' +% 'result' : +% l ~ LOC, quantity[l] ~ QUAN, 4 ~ ID; +% \end{verbatim} +% +% \newpage +% +% Using templates with `\verb|?|' supports not only INSERT, but also +% UPDATE, DELETE, etc. For example: +% +% \begin{verbatim} +% table ta { l in LOCATIONS } OUT +% 'MySQL' +% 'Database=glpkdb;UID=glpkuser;PWD=glpkpassword' +% 'UPDATE result SET DATE = ' & date & ' WHERE ID = 4;' +% 'UPDATE result SET QUAN = ? WHERE LOC = ? AND ID = 4' : +% quantity[l], l; +% \end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ##################### PAREI AQUI % ##################### + +\chapter{Resolvendo modelos com glpsol} + +O pacote GLPK \footnote{{\tt http://www.gnu.org/software/glpk/}} +inclui o programa {\tt glpsol}, um solver de PL/PIM autônomo. Este +programa pode ser chamado por uma linha de comando ou pelo shell para +resolver modelos escritos na \linebreak linguagem de modelagem GNU MathProg. + +Para comunicar ao solver que o arquivo de entrada contém uma descrição +do modelo, é necessário especificar a opção \verb|--model| na linha de +comando. Por exemplo: + +\begin{verbatim} + glpsol --model foo.mod +\end{verbatim} + +Às vezes é necessário usar a seção de dados posicionado em um arquivo +separado. Neste caso, deve-se usar o seguinte comando: + +\begin{verbatim} + glpsol --model foo.mod --data foo.dat +\end{verbatim} + +\noindent Note que ser o arquivo de modelo também contém a seção de dados, +aquela seção é ignorada. + +Também é permitido especificar mais de um arquivo contendo a seção de dados, +por exemplo: + +\begin{verbatim} + glpsol --model foo.mod --data foo1.dat --data foo2.dat +\end{verbatim} + +Se a descrição do modelo contém alguma sentença display e/ou printf, +o resultado é enviado para o terminal por padrão. Se há a necessidade +de redirecionar a saída para um arquivo, deve-se usar o seguinte comando: + +\begin{verbatim} + glpsol --model foo.mod --display foo.out +\end{verbatim} + +Se há a necessidade de ver o problema que está sendo gerado pelo tradutor +de modelo, deve-ser usar a opção \verb|--wlp| como segue: + +\begin{verbatim} + glpsol --model foo.mod --wlp foo.lp +\end{verbatim} + +\noindent Neste caso, os dados do problema são escritos no arquivo +\verb|foo.lp| no formato CPLEX LP viável para análise visual. + +Ás vezes, é necessário checar a descrição do modelo sem ter que resolver +a instância do problema gerado. Neste caso, deve-se especificar a opção +\verb|--check|, por exemplo: + +\begin{verbatim} + glpsol --check --model foo.mod --wlp foo.lp +\end{verbatim} + +\newpage + +Se há a necessidade de escrever uma solução numérica obtida pelo solver +para um arquivo, deve-se usar o seguinte comando: + +\begin{verbatim} + glpsol --model foo.mod --output foo.sol +\end{verbatim} + +\noindent neste caso, a solução é escrita no arquivo \verb|foo.sol| +em formato de texto plano, viável para análise visual. + +A lista completa de opções do \verb|glpsol| pode ser encontrada no manual +de referência do GLPK incluída na distribuição do GLPK. + + + +% The GLPK package\footnote{{\tt http://www.gnu.org/software/glpk/}} +% includes the program {\tt glpsol}, a stand-alone LP/MIP solver. This +% program can be launched from the command line or from the shell to +% solve models written in the GNU MathProg modeling language. +% +% To tell the solver that the input file contains a model description you +% need to specify the option \verb|--model| in the command line. +% For example: +% +% \begin{verbatim} +% glpsol --model foo.mod +% \end{verbatim} +% +% Sometimes it is necessary to use the data section placed in a separate +% file, in which case you may use the following command: +% +% \begin{verbatim} +% glpsol --model foo.mod --data foo.dat +% \end{verbatim} +% +% \noindent Note that if the model file also contains the data section, +% that section is ignored. +% +% It is also allowed to specify more than one file containing the data +% section, for example: +% +% \begin{verbatim} +% glpsol --model foo.mod --data foo1.dat --data foo2.dat +% \end{verbatim} +% +% If the model description contains some display and/or printf +% statements, by default the output is sent to the terminal. If you need +% to redirect the output to a file, you may use the following command: +% +% \begin{verbatim} +% glpsol --model foo.mod --display foo.out +% \end{verbatim} +% +% If you need to look at the problem, which has been generated by the +% model translator, you may use the option \verb|--wlp| as follows: +% +% \begin{verbatim} +% glpsol --model foo.mod --wlp foo.lp +% \end{verbatim} +% +% \noindent In this case the problem data is written to file +% \verb|foo.lp| in CPLEX LP format suitable for visual analysis. +% +% Sometimes it is needed merely to check the model description not +% solving the generated problem instance. In this case you may specify +% the option \verb|--check|, for example: +% +% \begin{verbatim} +% glpsol --check --model foo.mod --wlp foo.lp +% \end{verbatim} +% +% \newpage +% +% If you need to write a numeric solution obtained by the solver to +% a file, you may use the following command: +% +% \begin{verbatim} +% glpsol --model foo.mod --output foo.sol +% \end{verbatim} +% +% \noindent in which case the solution is written to file \verb|foo.sol| +% in a plain text format suitable for visual analysis. +% +% The complete list of the \verb|glpsol| options can be found in the +% GLPK reference manual included in the GLPK distribution. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Exemplo de descrição de modelo} + +\section{Descrição de modelo escrito em MathProg} + +Este é um exemplo completo de descrição de modelo escrito na linguagem +de modelagem GNU MathProg. + +\bigskip + +\begin{verbatim} +# UM PROBLEMA DE TRANSPORTE +# +# Este problema encontra a logística de custo mínimo que atende das demandas +# de mercado e as ofertas das fábricas. +# +# Referência: +# Dantzig G B, "Linear Programming and Extensions." +# Princeton University Press, Princeton, New Jersey, 1963, +# Chapter 3-3. + +set I; +/* fábricas de enlatados*/ + +set J; +/* mercados */ + +param a{i in I}; +/* capacidade da fábrica i, em caixas */ + +param b{j in J}; +/* demanda no mercado j, em caixas */ + +param d{i in I, j in J}; +/* distância, em milhares de milhas */ + +param f; +/* frete, em dólares por caixa a cada mil milhas */ + +param c{i in I, j in J} := f * d[i,j] / 1000; +/* custo de transporte, em milhares de dólares por caixa */ + +var x{i in I, j in J} >= 0; +/* quantidade enviada, em caixas */ + +minimize custo: sum{i in I, j in J} c[i,j] * x[i,j]; +/* custo total de transporte, em milhares de dólares */ + +s.t. suprimento{i in I}: sum{j in J} x[i,j] <= a[i]; +/* observa o limite de suprimento na fábrica i */ + +s.t. demanda{j in J}: sum{i in I} x[i,j] >= b[j]; +/* satisfaz a demanda do mercado j */ + +data; + +set I := Seattle San-Diego; + +set J := New-York Chicago Topeka; + +param a := Seattle 350 + San-Diego 600; + +param b := New-York 325 + Chicago 300 + Topeka 275; + +param d : New-York Chicago Topeka := + Seattle 2.5 1.7 1.8 + San-Diego 2.5 1.8 1.4 ; + +param f := 90; + +end; +\end{verbatim} + + +% Below here is a complete example of the model description written in +% the GNU MathProg modeling language. +% +% \bigskip +% +% \begin{verbatim} +% # A TRANSPORTATION PROBLEM +% # +% # This problem finds a least cost shipping schedule that meets +% # requirements at markets and supplies at factories. +% # +% # References: +% # Dantzig G B, "Linear Programming and Extensions." +% # Princeton University Press, Princeton, New Jersey, 1963, +% # Chapter 3-3. +% +% set I; +% /* canning plants */ +% +% set J; +% /* markets */ +% +% param a{i in I}; +% /* capacity of plant i in cases */ +% +% param b{j in J}; +% /* demand at market j in cases */ +% +% param d{i in I, j in J}; +% /* distance in thousands of miles */ +% +% param f; +% /* freight in dollars per case per thousand miles */ +% +% param c{i in I, j in J} := f * d[i,j] / 1000; +% /* transport cost in thousands of dollars per case */ +% +% var x{i in I, j in J} >= 0; +% /* shipment quantities in cases */ +% +% minimize cost: sum{i in I, j in J} c[i,j] * x[i,j]; +% /* total transportation costs in thousands of dollars */ +% +% s.t. supply{i in I}: sum{j in J} x[i,j] <= a[i]; +% /* observe supply limit at plant i */ +% +% s.t. demand{j in J}: sum{i in I} x[i,j] >= b[j]; +% /* satisfy demand at market j */ +% +% data; +% +% set I := Seattle San-Diego; +% +% set J := New-York Chicago Topeka; +% +% param a := Seattle 350 +% San-Diego 600; +% +% param b := New-York 325 +% Chicago 300 +% Topeka 275; +% +% param d : New-York Chicago Topeka := +% Seattle 2.5 1.7 1.8 +% San-Diego 2.5 1.8 1.4 ; +% +% param f := 90; +% +% end; +% \end{verbatim} + +\newpage + +\section{Instância gerada do problema de PL} + +Este é o resultado da tradução do modelo de exemplo produzido +pelo solver \verb|glpsol| e escrito no formato CPLEX LP +com a opção \verb|--wlp|. + +\medskip + +\begin{verbatim} +\* Problem: transporte *\ + +Minimize + custo: + 0.225 x(Seattle,New~York) + 0.153 x(Seattle,Chicago) + + 0.162 x(Seattle,Topeka) + 0.225 x(San~Diego,New~York) + + 0.162 x(San~Diego,Chicago) + 0.126 x(San~Diego,Topeka) + +Subject To + suprimento(Seattle): + x(Seattle,New~York) + x(Seattle,Chicago) + + x(Seattle,Topeka) <= 350 + suprimento(San~Diego): + x(San~Diego,New~York) + x(San~Diego,Chicago) + + x(San~Diego,Topeka) <= 600 + demanda(New~York): + x(Seattle,New~York) + x(San~Diego,New~York) >= 325 + demanda(Chicago): + x(Seattle,Chicago) + x(San~Diego,Chicago) >= 300 + demanda(Topeka): + x(Seattle,Topeka) + x(San~Diego,Topeka) >= 275 + +End +\end{verbatim} + +\section{solução ótima do problema de PL} + +Esta é a solução ótima da instância gerada do problema de PL +encontrada pelo solver \verb|glpsol| e escrita em formato de texto plano +com a opção\verb|--output|. + +\medskip + +\begin{footnotesize} +\begin{verbatim} +Problem: transporte +Rows: 6 +Columns: 6 +Non-zeros: 18 +Status: OPTIMAL +Objective: custo = 153.675 (MINimum) + + No. Row name St Activity Lower bound Upper bound Marginal +------ ------------ -- ------------- ------------- ------------- ------------- + 1 cust B 153.675 + 2 suprimento[Seattle] + NU 350 350 < eps + 3 suprimento[San-Diego] + B 550 600 + 4 demanda[New-York] + NL 325 325 0.225 + 5 demanda[Chicago] + NL 300 300 0.153 + 6 demanda[Topeka] + NL 275 275 0.126 + + No. Column name St Activity Lower bound Upper bound Marginal +------ ------------ -- ------------- ------------- ------------- ------------- + 1 x[Seattle,New-York] + B 50 0 + 2 x[Seattle,Chicago] + B 300 0 + 3 x[Seattle,Topeka] + NL 0 0 0.036 + 4 x[San-Diego,New-York] + B 275 0 + 5 x[San-Diego,Chicago] + NL 0 0 0.009 + 6 x[San-Diego,Topeka] + B 275 0 + +End of output +\end{verbatim} +\end{footnotesize} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newpage + +\section*{Agradecimentos} +\addcontentsline{toc}{chapter}{Agradecimentos} + +Os autores gostariam de agradecer as seguintes pessoas que gentilmente leram, +comentaram e corrigiram o rascunho deste documento: + +\noindent Juan Carlos Borras \verb|| + +\noindent Harley Mackenzie \verb|| + +\noindent Robbie Morrison \verb|| + +\end{document} diff --git a/resources/3rdparty/glpk-4.65/doc/graphs.pdf b/resources/3rdparty/glpk-4.65/doc/graphs.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b3c7fe0ee5181a6c56bcd04d1b207dde0406bf5c GIT binary patch literal 210602 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 kf4da6fAySW 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

    lSW;b5C8XlQLlxRqjL;X5cxfpQT` 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 Ag#Z8m literal 0 HcmV?d00001 diff --git a/resources/3rdparty/glpk-4.57/doc/graphs.tex b/resources/3rdparty/glpk-4.65/doc/graphs.tex similarity index 97% rename from resources/3rdparty/glpk-4.57/doc/graphs.tex rename to resources/3rdparty/glpk-4.65/doc/graphs.tex index cddb7518e..446a858c6 100644 --- a/resources/3rdparty/glpk-4.57/doc/graphs.tex +++ b/resources/3rdparty/glpk-4.65/doc/graphs.tex @@ -4,7 +4,7 @@ % This code is part of GLPK (GNU Linear Programming Kit). % % Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -% 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +% 2009, 2010, 2011, 2013, 2016 Andrew Makhorin, Department for Applied % Informatics, Moscow Aviation Institute, Moscow, Russia. All rights % reserved. E-mail: . % @@ -22,32 +22,41 @@ % along with GLPK. If not, see . %*********************************************************************** +% To make graphs.pdf from graphs.tex run the following two commands: +% latex graphs.tex +% dvipdfm -p letter graphs.dvi +% Note: You need TeX Live 2010 or later version. + \documentclass[11pt]{report} \usepackage{amssymb} \usepackage[dvipdfm,linktocpage,colorlinks,linkcolor=blue, urlcolor=blue]{hyperref} \usepackage{indentfirst} +\usepackage{niceframe} \usepackage[all]{xy} +% US Letter = 8.5 x 11 in \setlength{\textwidth}{6.5in} -\setlength{\textheight}{8.5in} +\setlength{\textheight}{9in} \setlength{\oddsidemargin}{0in} \setlength{\topmargin}{0in} \setlength{\headheight}{0in} \setlength{\headsep}{0in} -\setlength{\footskip}{0.5in} +%\setlength{\footskip}{0.5in} \setlength{\parindent}{16pt} \setlength{\parskip}{5pt} \setlength{\topsep}{0pt} \setlength{\partopsep}{0pt} -\setlength{\itemsep}{\parskip} -\setlength{\parsep}{0pt} -\setlength{\leftmargini}{\parindent} -\renewcommand{\labelitemi}{---} +%\setlength{\itemsep}{\parskip} +%\setlength{\parsep}{0pt} +%\setlength{\leftmargini}{\parindent} +%\renewcommand{\labelitemi}{---} +\newcommand{\Item}[1]{\parbox[t]{\parindent}{#1}} \def\para#1{\noindent{\bf#1}} \def\synopsis{\para{Synopsis}} \def\description{\para{Description}} +\def\note{\para{Note}} \def\returns{\para{Returns}} \renewcommand\contentsname{\sf\bfseries Contents} @@ -65,6 +74,8 @@ urlcolor=blue]{hyperref} \thispagestyle{empty} +\curlyframe{ + \begin{center} \vspace*{1.5in} @@ -82,15 +93,18 @@ urlcolor=blue]{hyperref} \vspace{0.5in} \begin{LARGE} -\sf for GLPK Version 4.49 +\sf for GLPK Version 4.59 \end{LARGE} \vspace{0.5in} \begin{Large} -\sf (DRAFT, April 2013) +\sf (DRAFT, March 2016) \end{Large} \end{center} +\vspace*{4.1in} +} + \newpage \vspace*{1in} @@ -103,9 +117,9 @@ GNU. \noindent Copyright \copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, -2008, 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied -Informatics, Moscow Aviation Institute, Moscow, Russia. All rights -reserved. +2008, 2009, 2010, 2011, 2013, 2016\linebreak +Andrew Makhorin, Department for Applied Informatics, Moscow Aviation +Institute, Moscow, Russia. All rights reserved. \noindent Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA @@ -130,9 +144,7 @@ into another language, under the above conditions for modified versions. \newpage -{\setlength{\parskip}{0pt} -\tableofcontents -} +{\setlength{\parskip}{0pt}\tableofcontents} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -152,17 +164,17 @@ vertex} of arc $a$, and $y\in V$ is called its {\it head vertex}. Representation of a graph in the program includes three structs defined by typedef in the header \verb|glpk.h|: -\vspace*{-8pt} +%\vspace*{-8pt} -\begin{itemize} -\item \verb|glp_graph|, which represents the graph in a whole, +%\begin{itemize} +\Item{---}\verb|glp_graph|, which represents the graph in a whole, -\item \verb|glp_vertex|, which represents a vertex of the graph, and +\Item{---}\verb|glp_vertex|, which represents a vertex of the graph, and -\item \verb|glp_arc|, which represents an arc of the graph. -\end{itemize} +\Item{---}\verb|glp_arc|, which represents an arc of the graph. +%\end{itemize} -\vspace*{-8pt} +%\vspace*{-8pt} All these three structs are ``semi-opaque'', i.e. the application program can directly access their fields through pointers, however, @@ -173,8 +185,11 @@ performed only with appropriate GLPK API routines. {\addtolength{\leftskip}{16pt}\noindent} {\par\addtolength{\leftskip}{-16pt}} -\para{\bf glp\_graph.} The struct \verb|glp_graph| has the following -fields available to the application program: +\subsection{Structure glp\_graph} + +%\para{\bf glp\_graph.} +The struct \verb|glp_graph| has the following fields available to the +application program. \noindent \verb|char *name;| @@ -225,8 +240,11 @@ $0\leq v\_size\leq 256$. (See also the field \verb|data| in the struct \verb|glp_arc|.) \end{comment} -\para{\bf glp\_vertex.} The struct \verb|glp_vertex| has the following -fields available to the application program: +\subsection{Structure glp\_vertex} + +%\para{\bf glp\_vertex.} +The struct \verb|glp_vertex| has the following fields available to the +application program. \noindent \verb|int i;| @@ -274,8 +292,11 @@ vertex has no incoming arcs, this field contains \verb|NULL|. vertex has no outgoing arcs, this field contains \verb|NULL|. \end{comment} -\para{\bf glp\_arc.} The struct \verb|glp_arc| has the following fields -available to the application program: +\subsection{Structure glp\_arc} + +%\para{\bf glp\_arc.} +The struct \verb|glp_arc| has the following fields available to the +application program. \noindent \verb|glp_vertex *tail;| @@ -283,13 +304,15 @@ available to the application program: \begin{comment}Pointer to a vertex, which is tail endpoint of the arc. \end{comment} +\newpage + \noindent \verb|glp_vertex *head;| \begin{comment}Pointer to a vertex, which is head endpoint of the arc. \end{comment} -\newpage +%\newpage \noindent \verb|void *data;| @@ -327,6 +350,8 @@ incoming arcs. \newpage +\setlength{\parskip}{4.6pt} + \section{Graph creating and modifying routines} \subsection{glp\_create\_graph --- create graph} @@ -398,6 +423,10 @@ Otherwise, if the block size is zero, the field \verb|data| is set to The routine \verb|glp_add_vertices| returns the ordinal number of the first new vertex added to the graph. +\setlength{\parskip}{5pt} + +\newpage + \subsection{glp\_set\_vertex\_name --- assign (change) vertex name} \synopsis @@ -456,7 +485,7 @@ vertices remaining in the graph. New ordinal numbers of the remaining vertices are assigned under the assumption that the original order of vertices is not changed. -\newpage +%\newpage \subsection{glp\_del\_arc --- delete arc from graph} @@ -565,7 +594,7 @@ exist, the routine does nothing. \section{Graph reading/writing routines} -\subsection{glp\_read\_graph --- read graph from plain text file} +\subsection{glp\_read\_graph --- read graph from text file} \synopsis @@ -575,20 +604,22 @@ exist, the routine does nothing. \description -The routine \verb|glp_read_graph| reads a graph from a plain text file, -whose name is specified by the parameter \verb|fname|. Note that before -reading data the current content of the graph object is completely -erased with the routine \verb|glp_erase_graph|. +The routine \verb|glp_read_graph| reads a graph from a text file, whose +name is specified by the parameter \verb|fname|. It is equivalent to -For the file format see description of the routine -\verb|glp_write_graph|. +\begin{verbatim} + glp_read_ccdata(G, -1, fname); +\end{verbatim} + +Note that before reading data the current content of the graph object +is completely erased with the routine \verb|glp_erase_graph|. \returns If the operation was successful, the routine returns zero. Otherwise it prints an error message and returns non-zero. -\subsection{glp\_write\_graph --- write graph to plain text file} +\subsection{glp\_write\_graph --- write graph to text file} \synopsis @@ -598,34 +629,18 @@ it prints an error message and returns non-zero. \description -The routine \verb|glp_write_graph| writes the graph to a plain text -file, whose name is specified by the parameter \verb|fname|. - -\returns - -If the operation was successful, the routine returns zero. Otherwise -it prints an error message and returns non-zero. - -\para{File format} - -The file created by the routine \verb|glp_write_graph| is a plain text -file, which contains the following information: +The routine \verb|glp_write_graph| writes the graph to a text file, +whose name is specified by the parameter \verb|fname|. +It is equivalent to \begin{verbatim} - nv na - i[1] j[1] - i[2] j[2] - . . . - i[na] j[na] + glp_write_ccdata(G, -1, fname); \end{verbatim} -\noindent -where: \verb|nv| is the number of vertices (nodes); \verb|na| is the -number of arcs; \verb|i[k]|, $k=1,\dots,na$, is the index of tail -vertex of arc $k$; \verb|j[k]|, $k=1,\dots,na$, is the index of head -vertex of arc $k$. +\returns -\newpage +If the operation was successful, the routine returns zero. Otherwise +it prints an error message and returns non-zero. \subsection{glp\_read\_ccdata --- read graph from text file in DIMACS clique/coloring\\format} @@ -646,6 +661,8 @@ directed graphs, because the routine allows reading self-loops and multiple edges/arcs keeping the order of vertices specified for each edge/arc of the graph.) +\newpage + The parameter {\tt G} specifies the graph object to be read in. Note that before reading data the current content of the graph object is completely erased with the routine {\tt glp\_erase\_graph}. @@ -666,7 +683,7 @@ it prints an error message and returns non-zero. \para{DIMACS clique/coloring format\footnote{This material is based on the paper ``Clique and Coloring Problems Graph Format'', which -is publically available at \url{http://dimacs.rutgers.edu/Challenges}.}} +is publicly available at \url{http://dimacs.rutgers.edu/Challenges}.}} The DIMACS input file is a plain ASCII text file. It contains {\it lines} of several types described below. A line is terminated with @@ -731,7 +748,9 @@ The lower-case character \verb|e| signifies that this is an edge descriptor line. For an edge (arc) $(i,j)$ the fields \verb|I| and \verb|J| specify its endpoints. -\para{Example.} The following example of an undirected graph: +\newpage + +\para{Example.} The following undirected graph \bigskip @@ -749,7 +768,7 @@ descriptor line. For an edge (arc) $(i,j)$ the fields \verb|I| and \bigskip \noindent -might be coded in DIMACS clique/coloring format as follows: +might be coded in DIMACS clique/coloring format as follows. \begin{footnotesize} \begin{verbatim} @@ -786,6 +805,8 @@ c eof \end{verbatim} \end{footnotesize} +\newpage + \subsection{glp\_write\_ccdata --- write graph to text file in DIMACS clique/coloring\\format} @@ -1025,6 +1046,8 @@ int main(void) \end{verbatim} \end{footnotesize} +\newpage + \noindent If the file `\verb|graph.txt|' contains the following graph: @@ -1255,7 +1278,7 @@ int main(void) \para{DIMACS minimum cost flow problem format\footnote{This material is based on the paper ``The First DIMACS International Algorithm Implementation Challenge: Problem Definitions and -Specifications'', which is publically available at +Specifications'', which is publicly available at \url{http://dimacs.rutgers.edu/Challenges}.}} \label{subsecmincost} @@ -1278,7 +1301,7 @@ character \verb|c|. c This is a comment line \end{verbatim} -\newpage +%\newpage \para{Problem line.} There is one problem line per data file. The problem line must appear before any node or arc descriptor lines. It @@ -1288,6 +1311,8 @@ has the following format: p min NODES ARCS \end{verbatim} +\newpage + \noindent The lower-case character \verb|p| signifies that this is a problem line. The three-character problem designator \verb|min| identifies the file as @@ -1366,6 +1391,8 @@ c eof \end{verbatim} \end{footnotesize} +\newpage + \subsection{glp\_write\_mincost --- write minimum cost flow problem data in DIMACS\\format} @@ -1416,7 +1443,7 @@ automatic compression on writing it.) If the operation was successful, the routine returns zero. Otherwise, it prints an error message and returns non-zero. -\newpage +%\newpage \subsection{glp\_mincost\_lp --- convert minimum cost flow problem to LP} @@ -1542,7 +1569,7 @@ End \end{verbatim} \end{footnotesize} -\newpage +%\newpage \subsection{glp\_mincost\_okalg --- solve minimum cost flow problem with out-of-kilter\\algorithm} @@ -1585,6 +1612,8 @@ bound to the arc flow (the arc capacity). This bound must be integer in the range [$l_{ij}$, \verb|INT_MAX|]. If \verb|a_cap| $<0$, it is assumed that $u_{ij}=1$ for all arcs. +\newpage + The parameter \verb|a_cost| specifies an offset of the field of type \verb|double| in the arc data block, which contains $c_{ij}$, the per-unit cost of the arc flow. This value must be integer in the range @@ -1611,7 +1640,7 @@ bound constraints (see (3) ibid.), using the following formula: $$\lambda_{ij}=c_{ij}-(\pi_i-\pi_j),$$ where $c_{ij}$ is the per-unit cost for arc $(i,j)$. -\newpage +%\newpage Note that all solution components (the objective value, arc flows, and node potentials) computed by the routine are always integer-valued. @@ -1661,6 +1690,8 @@ flow $x_{ts}$ through which is also costless ($c_{ts}=0$) and fixed to $F$ ($l_{ts}=u_{ts}=F$), where $\displaystyle F=\sum_{b_i>0}b_i$ is the total supply. +\newpage + \para{Example} The example program below reads the minimum cost problem instance in @@ -1797,7 +1828,10 @@ per-unit cost of the arc flow. This value must be integer in the range [$-$\verb|INT_MAX|/4, $+$\verb|INT_MAX|/4]. If \verb|a_cost| $<0$, it is assumed that $c_{ij}=0$ for all arcs. -The parameter \verb|crash| is option specifying initialization method: +\newpage + +The parameter \verb|crash| is an option that specifies initialization +method: 0 --- default initialization is used; @@ -1813,8 +1847,6 @@ The parameter \verb|sol| specifies a location, to which the routine stores the objective value (that is, the total cost) found. If \verb|sol| is NULL, the objective value is not stored. -\newpage - The parameter \verb|a_x| specifies an offset of the field of type \verb|double| in the arc data block, to which the routine stores $x_{ij}$, the arc flow found. If \verb|a_x| $<0$, the arc flow value is @@ -1940,6 +1972,8 @@ The parameter \verb|G| specifies the graph object, to which the generated problem data have to be stored. Note that on entry the graph object is erased with the routine \verb|glp_erase_graph|. +\newpage + The parameter \verb|v_rhs| specifies an offset of the field of type \verb|double| in the vertex data block, to which the routine stores the supply or demand value. If \verb|v_rhs| $<0$, the value is not stored. @@ -1948,8 +1982,6 @@ The parameter \verb|a_cap| specifies an offset of the field of type \verb|double| in the arc data block, to which the routine stores the arc capacity. If \verb|a_cap| $<0$, the capacity is not stored. -\newpage - The parameter \verb|a_cost| specifies an offset of the field of type \verb|double| in the arc data block, to which the routine stores the per-unit cost if the arc flow. If \verb|a_cost| $<0$, the cost is not @@ -2002,6 +2034,8 @@ connected, the routine generates a few remaining arcs to ensure connectedness. Thus, the actual number of arcs generated by the routine may be greater than the requested number of arcs. +\newpage + \subsection{glp\_netgen\_prob --- Klingman's standard network problem instance} @@ -2090,6 +2124,8 @@ $$ \end{array} $$ +\newpage + \subsection{glp\_gridgen --- grid-like network problem generator} \synopsis @@ -2104,14 +2140,12 @@ $$ The routine \verb|glp_gridgen| is a GLPK version of the grid-like network problem generator developed by Yusin Lee and Jim Orlin.\footnote{Y.~Lee and J.~Orlin. GRIDGEN generator., 1991. The -original code is publically available from +original code is publicly available from \url{ftp://dimacs.rutgers.edu/pub/netflow/generators/network/gridgen}.} -\newpage - The parameter \verb|G| specifies the graph object, to which the -generated problem data have to be stored. Note that on entry the graph -object is erased with the routine \verb|glp_erase_graph|. +generated problem data have to be stored. Note that on entry the graph +object is erased with the routine \verb|glp_erase_graph|. The parameter \verb|v_rhs| specifies an offset of the field of type \verb|double| in the vertex data block, to which the routine stores the @@ -2162,6 +2196,8 @@ If the instance was successfully generated, the routine \verb|glp_gridgen| returns zero; otherwise, if specified parameters are inconsistent, the routine returns a non-zero error code. +\newpage + \para{Comments\footnote{This material is based on comments to the original version of GRIDGEN.}} @@ -2290,6 +2326,8 @@ $$ $$0\leq x_{ij}\leq u_{ij}\ \ \ \hbox{for all}\ (i,j)\in A \eqno(9)$$ +\newpage + \subsection{glp\_read\_maxflow --- read maximum flow problem data in DIMACS\\format} @@ -2361,7 +2399,7 @@ int main(void) \para{DIMACS maximum flow problem format\footnote{This material is based on the paper ``The First DIMACS International Algorithm Implementation Challenge: Problem Definitions and Specifications'', -which is publically available at +which is publicly available at \url{http://dimacs.rutgers.edu/Challenges/}.}} \label{subsecmaxflow} @@ -2637,10 +2675,10 @@ specifies the maximum flow problem instance to be solved. The parameter $s$ specifies the ordinal number of the source node. -\newpage - The parameter $t$ specifies the ordinal number of the sink node. +\newpage + The parameter \verb|a_cap| specifies an offset of the field of type \verb|double| in the arc data block, which contains $u_{ij}$, the upper bound to the arc flow (the arc capacity). This bound must be integer in @@ -2768,23 +2806,23 @@ pp.~83-123.}$^{,}$\footnote{U.~Derigs and W.~Meier, ``Implementing Goldberg's max-flow algorithm: A computational investigation.'' Zeitschrift f\"ur Operations Research 33 (1989), pp.~383-403.}$^{,}$\footnote{The original code of RMFGEN implemented by -Tamas Badics is publically available from +Tamas Badics is publicly available from \url{ftp://dimacs.rutgers.edu/pub/netflow/generators/network/genrmf}.} The parameter \verb|G| specifies the graph object, to which the generated problem data have to be stored. Note that on entry the graph object is erased with the routine \verb|glp_erase_graph|. -\newpage - The pointers \verb|s| and \verb|t| specify locations, to which the routine stores the source and sink node numbers, respectively. If \verb|s| or \verb|t| is \verb|NULL|, corresponding node number is not stored. The parameter \verb|a_cap| specifies an offset of the field of type -\verb|double| in the arc data block, to which the routine stores the arc -capacity. If \verb|a_cap| $<0$, the capacity is not stored. +\verb|double| in the arc data block, to which the routine stores the +arc capacity. If \verb|a_cap| $<0$, the capacity is not stored. + +\newpage The array \verb|parm| contains description of the network to be generated: @@ -2936,6 +2974,10 @@ directed graph $\overline{G}=(V,A)$, where $V=R\cup S$ and $A=\{(i,j):(i,j)\in E\}$, i.e. every edge $(i,j)\in E$ in $G$ corresponds to arc $(i\rightarrow j)\in A$ in $\overline{G}$. +\newpage + +\setlength{\parskip}{4.4pt} + \subsection{glp\_read\_asnprob --- read assignment problem data in DIMACS format} @@ -3012,10 +3054,14 @@ int main(void) \end{verbatim} \end{footnotesize} +\setlength{\parskip}{5pt} + +\newpage + \para{DIMACS assignment problem format\footnote{This material is based on the paper ``The First DIMACS International Algorithm Implementation Challenge: Problem Definitions and Specifications'', which is -publically available at \url{http://dimacs.rutgers.edu/Challenges/}.}} +publicly available at \url{http://dimacs.rutgers.edu/Challenges/}.}} \label{subsecasnprob} The DIMACS input file is a plain ASCII text file. It contains @@ -3132,8 +3178,6 @@ c eof \end{verbatim} \end{footnotesize} -\newpage - \subsection{glp\_write\_asnprob --- write assignment problem data in DIMACS format} @@ -3168,6 +3212,8 @@ The parameter \verb|a_cost| specifies an offset of the field of type cost. If \verb|a_cost| $<0$, it is assumed that $c_{ij}=1$ for all edges. +\newpage + The character string \verb|fname| specifies a name of the text file to be written out. (If the file name ends with suffix `\verb|.gz|', the file is assumed to be compressed, in which case the routine performs @@ -3240,6 +3286,8 @@ or more outgoing arcs; The routine \verb|glp_asnprob_lp| builds LP problem, which corresponds to the specified assignment problem. +\newpage + The parameter \verb|P| is the resultant LP problem object to be built. Note that on entry its current content is erased with the routine \verb|glp_erase_prob|. @@ -3277,8 +3325,6 @@ The parameter \verb|a_cost| specifies an offset of the field of type cost. If \verb|a_cost| $<0$, it is assumed that $c_{ij}=1$ for all edges. -\newpage - \returns If the LP problem has been successfully built, the routine @@ -3317,6 +3363,8 @@ int main(void) \end{verbatim} \end{footnotesize} +\newpage + If `\verb|sample.asn|' is the example data file from the subsection describing \verb|glp_read_asnprob|, file `\verb|matching.lp|' may look like follows: @@ -3378,6 +3426,8 @@ End \end{verbatim} \end{footnotesize} +\newpage + \subsection{glp\_asnprob\_okalg --- solve assignment problem with out-of-kilter\\algorithm} @@ -3406,8 +3456,6 @@ The parameter \verb|form| defines which LP formulation should be used: \verb|GLP_ASN_MMP| --- maximum weighted matching (11)---(14). -\newpage - The parameter \verb|G| is the graph program object, which specifies the assignment problem instance. @@ -3456,6 +3504,8 @@ integer overflow.\\ \verb||.)\\ \end{retlist} +\newpage + \para{Comments} Since the out-of-kilter algorithm is designed to find a minimal cost @@ -3479,8 +3529,6 @@ arc $(k\rightarrow i)$, flow $x_{ki}$ through which is costless unity upper bound ($l_{ij}=0$, $u_{ij}=1$, in case of \verb|GLP_ASN_MMP|); -\newpage - 4) similarly, for each original node $j\in S$ the routine adds auxiliary demand arc $(j\rightarrow k)$, flow $x_{jk}$ through which is costless ($c_{jk}=0$) and either fixed at 1 ($l_{jk}=u_{jk}=1$, in case @@ -3597,6 +3645,8 @@ indicator: 1 --- the node is in set $S$. +\newpage + \noindent If \verb|v_set| $<0$, it is assumed that a node having no incoming arcs is in set $R$, and a node having no outgoing arcs is in set $S$. @@ -3612,8 +3662,6 @@ matching found. However, if the specified graph is incorrect (as detected by the routine \verb|glp_check_asnprob|), this routine returns a negative value. -\newpage - \para{Comments} The same solution may be obtained with the routine @@ -3668,6 +3716,8 @@ int main(void) If `\verb|sample.asn|' is the example data file from the subsection describing \verb|glp_read_asnprob|, the output may look like follows: +\newpage + \begin{footnotesize} \begin{verbatim} Reading assignment problem data from `sample.asn'... @@ -3757,12 +3807,6 @@ That representation, however, is much less convenient than the one, where jobs are represented as nodes of the network.} The project network for the example above is shown on Fig.~4. -May note that the project network must be acyclic; otherwise, it would -be impossible to satisfy to the precedence relation for any job that -belongs to a cycle. - -\newpage - \hspace*{.5in} \xymatrix {&&&C|3\ar[rd]&&I|5\ar[r]&K|4\ar[rd]&\\ @@ -3776,7 +3820,11 @@ A|3\ar[r]&B|4\ar[rru]\ar[rd]&&E|8\ar[r]&H|8\ar[ru]\ar[rd]&&&M|4\\ \noindent\hfil Fig.~4. An example of the project network. -\medskip +\newpage + +May note that the project network must be acyclic; otherwise, it would +be impossible to satisfy to the precedence relation for any job that +belongs to a cycle. The critical path problem can be naturally formulated as the following LP problem: @@ -3824,8 +3872,6 @@ The parameter \verb|v_es| specifies an offset of the field of type the {\it earliest start time} for corresponding job. If \verb|v_es| $<0$, this time is not stored. -\newpage - The parameter \verb|v_ls| specifies an offset of the field of type \verb|double| in the vertex data block, to which the routine stores the {\it latest start time} for corresponding job. If \verb|v_ls| @@ -3841,6 +3887,8 @@ zero, the corresponding job is critical. The routine \verb|glp_cpp| returns the minimal project duration, i.e. minimal time needed to perform all jobs in the project. +\newpage + \para{Example} The example program below solves the critical path problem shown on @@ -3943,6 +3991,10 @@ Job Time ES EF LS LF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\end{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \chapter{Graph Optimization API Routines} \section{Maximum clique problem} diff --git a/resources/3rdparty/glpk-4.57/doc/miplib2.txt b/resources/3rdparty/glpk-4.65/doc/miplib2.txt similarity index 100% rename from resources/3rdparty/glpk-4.57/doc/miplib2.txt rename to resources/3rdparty/glpk-4.65/doc/miplib2.txt diff --git a/resources/3rdparty/glpk-4.57/doc/miplib3.txt b/resources/3rdparty/glpk-4.65/doc/miplib3.txt similarity index 100% rename from resources/3rdparty/glpk-4.57/doc/miplib3.txt rename to resources/3rdparty/glpk-4.65/doc/miplib3.txt diff --git a/resources/3rdparty/glpk-4.57/doc/netlib.txt b/resources/3rdparty/glpk-4.65/doc/netlib.txt similarity index 100% rename from resources/3rdparty/glpk-4.57/doc/netlib.txt rename to resources/3rdparty/glpk-4.65/doc/netlib.txt diff --git a/resources/3rdparty/glpk-4.57/doc/notes/gomory.pdf b/resources/3rdparty/glpk-4.65/doc/notes/gomory.pdf similarity index 100% rename from resources/3rdparty/glpk-4.57/doc/notes/gomory.pdf rename to resources/3rdparty/glpk-4.65/doc/notes/gomory.pdf diff --git a/resources/3rdparty/glpk-4.57/doc/notes/keller.pdf b/resources/3rdparty/glpk-4.65/doc/notes/keller.pdf similarity index 100% rename from resources/3rdparty/glpk-4.57/doc/notes/keller.pdf rename to resources/3rdparty/glpk-4.65/doc/notes/keller.pdf diff --git a/resources/3rdparty/glpk-4.57/doc/notes/scf.pdf b/resources/3rdparty/glpk-4.65/doc/notes/scf.pdf similarity index 100% rename from resources/3rdparty/glpk-4.57/doc/notes/scf.pdf rename to resources/3rdparty/glpk-4.65/doc/notes/scf.pdf diff --git a/resources/3rdparty/glpk-4.65/doc/notes/simplex1.pdf b/resources/3rdparty/glpk-4.65/doc/notes/simplex1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..af8306dae9e974002558149468712ed7a292e5d2 GIT binary patch literal 385190 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

    2(cGeZ8}F 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

    %m9n=`vD7x_FH>b}#CWSZ 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

    sPN$8dq(sDqeDJ8*de)Q3)L#dD! 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⁢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 ix*`70Pv6DW#M#xu+1vt-?FTyx3lALSmk*94+ +#include +#include + +int main(void) +{ glp_prep *npp; + glp_prob *P, *Q; + int ret; + npp = glp_npp_alloc_wksp(); + P = glp_create_prob(); + ret = glp_read_mps(P, GLP_MPS_DECK, NULL, "murtagh.mps"); + if (ret != 0) + { printf("Error on reading problem data\n"); + goto skip; + } + glp_set_obj_dir(P, GLP_MAX); + glp_npp_load_prob(npp, P, GLP_SOL, GLP_ON); + ret = glp_npp_preprocess1(npp, 0); + switch (ret) + { case 0: + break; + case GLP_ENOPFS: + printf("LP has no primal feasible solution\n"); + goto skip; + case GLP_ENODFS: + printf("LP has no dual feasible solution\n"); + goto skip; + default: + xassert(ret != ret); + } + Q = glp_create_prob(); + glp_npp_build_prob(npp, Q); + ret = glp_simplex(Q, NULL); + if (ret == 0 && glp_get_status(Q) == GLP_OPT) + { glp_npp_postprocess(npp, Q); + glp_npp_obtain_sol(npp, P); + } + else + printf("Unable to recover non-optimal solution\n"); + glp_delete_prob(Q); +skip: glp_npp_free_wksp(npp); + glp_delete_prob(P); + return 0; +} + +/* eof */ +------------------------------------------------------------------------ +@.@.2 glp_npp_alloc_wksp - allocate the preprocessor workspace + +SYNOPSIS + +glp_prep *glp_npp_alloc_wksp(void); + +DESCRIPTION + +The routine glp_npp_alloc_wksp allocates the preprocessor workspace. +(Note that multiple instances of the workspace may be allocated, if +necessary.) + +RETURNS + +The routine returns a pointer to the workspace, which should be used in +all subsequent operations. +------------------------------------------------------------------------ +@.@.3 glp_npp_load_prob - load original problem instance + +SYNOPSIS + +void glp_npp_load_prob(glp_prep *prep, glp_prob *P, int sol, + int names); + +DESCRIPTION + +The routine glp_npp_load_prob loads the original problem instance from +the specified problem object P into the preprocessor workspace. (Note +that this operation can be performed only once.) + +The parameter sol specifies which solution is required: + +GLP_SOL - basic solution; + +GLP_IPT - interior-point solution; + +GLP_MIP - mixed integer solution. + +The parameter names is a flag. If it is GLP_ON, the symbolic names of +original rows and columns are also loaded into the workspace. Otherwise, +if the flag is GLP_OFF, the row and column names are not loaded. +------------------------------------------------------------------------ +@.@.4 glp_npp_preprocess1 - perform basic LP/MIP preprocessing + +SYNOPSIS + +int glp_npp_preprocess1(glp_prep *prep, int hard); + +DESCRIPTION + +The routine glp_npp_preprocess1 performs basic LP/MIP preprocessing +that currently includes: + +-- removing free rows; + +-- replacing double-sided constraint rows with almost identical bounds, + by equality constraint rows; + +-- removing fixed columns; + +-- replacing double-bounded columns with almost identical bounds by + fixed columns and removing those columns; + +-- removing empty rows; + +-- removing equality constraint row singletons and corresponding + columns; + +-- removing inequality constraint row singletons and corresponding + columns; + +-- performing general row analysis; + +-- removing redundant row bounds; + +-- removing forcing rows and corresponding columns; + +-- removing rows which become free due to redundant bounds; + +-- computing implied bounds for all columns and using them to + strengthen current column bounds (MIP only, optional, performed if + the flag hard is on); + +-- fixing and removing empty columns; + +-- removing column singletons, which are implied slack variables, and + corresponding rows; + +-- removing bounds of columns, which are implied free variables, and + replacing corresponding rows by equality constraints. + +If the flag hard is GLP_ON, the routine attempts to improve current +column bounds multiple times within the main processing loop, in which +case this feature may take a time. Otherwise, if the flag hard is +GLP_OFF, improving column bounds is performed only once at the end of +the main loop. (Note that this feature is used for MIP only.) + +RETURNS + +0 - the problem instance has been successfully preprocessed; + +GLP_ENOPFS - primal/integer infeasibility has been detected; + +GLP_ENODFS - dual infeasibility has been detected. +------------------------------------------------------------------------ +@.@.5 glp_npp_build_prob - build resultant problem instance + +SYNOPSIS + +void glp_npp_build_prob(glp_prep *prep, glp_prob *Q); + +DESCRIPTION + +The routine glp_npp_build_prob obtains all necessary information from +the preprocessor workspace to build the resultant (preprocessed) +problem instance, and stores it in the specified problem object Q. Note +that before building the current content of this problem object is +erased with the routine glp_erase_prob. +------------------------------------------------------------------------ +@.@.6 glp_npp_postprocess - postprocess solution to resultant problem + +SYNOPSIS + +void glp_npp_postprocess(glp_prep *prep, glp_prob *Q); + +DESCRIPTION + +The routine glp_npp_postprocess performs postprocessing of a solution +to the resultant (preprocessed) problem instance specified by the +problem object Q and recovers corrseponding solution to the original +problem instance. The recovered solution is stored in the preprocessor +workspace and can be obtained with the routine glp_npp_obtain_sol. + +It is assumed that the resultant problem instance Q has been solved +with an appropriate solver depending on the solution type previously +passed to the routine glp_npp_load_prob (the parameter sol). Note that +only optimal or integer feasible (for MIP) solution can be recovered, +so the calling program should use the routine glp_status to make sure +that this condition is met. +------------------------------------------------------------------------ +@.@.7 glp_npp_obtain_sol - obtain solution to original problem + +SYNOPSIS + +void glp_npp_obtain_sol(glp_prep *prep, glp_prob *P); + +DESCRIPTION + +The routine glp_npp_obtain_sol copies the solution to the original +problem instance previously recovered by the routine +glp_npp_postorocess from the preprocessor workspace to the problem +object P. The effect is the same as if the solution were computed by an +appropriate solver. +------------------------------------------------------------------------ +@.@.8 glp_npp_free_wksp - free the preprocessor workspace + +SYNOPSIS + +void glp_npp_free_wksp(glp_prep *prep); + +DESCRIPTION + +The routine glp_npp_free_wksp frees all the memory allocated to the +preprocessor workspace. + +===EOF=== diff --git a/resources/3rdparty/glpk-4.57/examples/INDEX b/resources/3rdparty/glpk-4.65/examples/INDEX similarity index 82% rename from resources/3rdparty/glpk-4.57/examples/INDEX rename to resources/3rdparty/glpk-4.65/examples/INDEX index 2eadbcd97..6b51bf2c8 100644 --- a/resources/3rdparty/glpk-4.57/examples/INDEX +++ b/resources/3rdparty/glpk-4.65/examples/INDEX @@ -17,11 +17,13 @@ food.mod Food manufacture model food2.mod Food manufacture model furnace.mps Electric-arc furnace steelmaking gap.mod Generalized assignment problem +graceful.mod Graceful Tree Labeling Problem graph.mod Graph visualization hashi.mod A solver for the Japanese number-puzzle Hashiwokakero huge.mod Arithmetic mean of a large number of integers icecream.mps Ice cream blending jssp.mod Job-shop scheduling problem +life_goe.mod Conway's Game of Life garden of eden checker magic.mod Magic square maxcut.mod Maximum cut problem maxflow.mod Maximum flow problem @@ -34,9 +36,13 @@ murtagh.mps Oil refinery model mvcp.mod Minimum vertex cover problem numbrix.mod Number placement puzzle pbn/*.* Paint-by-numbers puzzle +pentomino.mod A geometric placement puzzle plan.lp A simple LP problem (CPLEX LP format) plan.mod A simple LP problem (MathProg format) plan.mps A simple LP problem (MPS format) +planarity.mod Graph planarity testing +powpl25h.mod Power plant LP scheduler (25hrs for daylightsavings) +powplant.mod Power plant LP scheduler prod.mod A multiperiod production model qfit.mod Quadratic curve fitting solution queens.mod A classic combinatorial optimization problem @@ -48,11 +54,16 @@ spp.mod Shortest path problem stigler.mod Original Stigler's 1939 diet problem sudoku.mod Number placement puzzle tas.mod Tail assignment problem +tiling.mod Rectifiable polyomino tilings generator todd.mod A class of hard instances of 0-1 knapsack problems +toto.mod Covering code generator, especially for football pool + systems train.mod A model of railroad passenger car allocation transp.mod A transportation problem trick.mod A transportation design problem tsp.mod Traveling salesman problem +wolfra6d.lp Neumann CA grid emulator generator +wolfra6d.mod Neumann CA grid emulator generator xyacfs.mod Extended yet another curve fitting solution yacfs.mod Yet another curve fitting solution zebra.mod Who owns the zebra? diff --git a/resources/3rdparty/glpk-4.57/examples/Makefile.am b/resources/3rdparty/glpk-4.65/examples/Makefile.am similarity index 81% rename from resources/3rdparty/glpk-4.57/examples/Makefile.am rename to resources/3rdparty/glpk-4.65/examples/Makefile.am index 04b6a47cf..7fff13603 100644 --- a/resources/3rdparty/glpk-4.57/examples/Makefile.am +++ b/resources/3rdparty/glpk-4.65/examples/Makefile.am @@ -10,6 +10,6 @@ glpsol_SOURCES = glpsol.c check: glpsol$(EXEEXT) ./glpsol$(EXEEXT) --version - ./glpsol$(EXEEXT) --mps $(srcdir)/plan.mps + ./glpsol$(EXEEXT) --mps $(srcdir)/murtagh.mps --max ## eof ## diff --git a/resources/3rdparty/glpk-4.57/examples/Makefile.in b/resources/3rdparty/glpk-4.65/examples/Makefile.in similarity index 99% rename from resources/3rdparty/glpk-4.57/examples/Makefile.in rename to resources/3rdparty/glpk-4.65/examples/Makefile.in index 9a9c0dca2..efbf3d773 100644 --- a/resources/3rdparty/glpk-4.57/examples/Makefile.in +++ b/resources/3rdparty/glpk-4.65/examples/Makefile.in @@ -137,6 +137,7 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ +NOUNDEFINED = @NOUNDEFINED@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ @@ -551,7 +552,7 @@ uninstall-am: uninstall-binPROGRAMS check: glpsol$(EXEEXT) ./glpsol$(EXEEXT) --version - ./glpsol$(EXEEXT) --mps $(srcdir)/plan.mps + ./glpsol$(EXEEXT) --mps $(srcdir)/murtagh.mps --max # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/resources/3rdparty/glpk-4.57/examples/alloy.mps b/resources/3rdparty/glpk-4.65/examples/alloy.mps similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/alloy.mps rename to resources/3rdparty/glpk-4.65/examples/alloy.mps diff --git a/resources/3rdparty/glpk-4.57/examples/assign.mod b/resources/3rdparty/glpk-4.65/examples/assign.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/assign.mod rename to resources/3rdparty/glpk-4.65/examples/assign.mod diff --git a/resources/3rdparty/glpk-4.57/examples/bpp.mod b/resources/3rdparty/glpk-4.65/examples/bpp.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/bpp.mod rename to resources/3rdparty/glpk-4.65/examples/bpp.mod diff --git a/resources/3rdparty/glpk-4.57/examples/cal.mod b/resources/3rdparty/glpk-4.65/examples/cal.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/cal.mod rename to resources/3rdparty/glpk-4.65/examples/cal.mod diff --git a/resources/3rdparty/glpk-4.57/examples/cf12a.mod b/resources/3rdparty/glpk-4.65/examples/cf12a.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/cf12a.mod rename to resources/3rdparty/glpk-4.65/examples/cf12a.mod diff --git a/resources/3rdparty/glpk-4.57/examples/cf12b.mod b/resources/3rdparty/glpk-4.65/examples/cf12b.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/cf12b.mod rename to resources/3rdparty/glpk-4.65/examples/cf12b.mod diff --git a/resources/3rdparty/glpk-4.57/examples/cflsq.mod b/resources/3rdparty/glpk-4.65/examples/cflsq.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/cflsq.mod rename to resources/3rdparty/glpk-4.65/examples/cflsq.mod diff --git a/resources/3rdparty/glpk-4.57/examples/color.mod b/resources/3rdparty/glpk-4.65/examples/color.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/color.mod rename to resources/3rdparty/glpk-4.65/examples/color.mod diff --git a/resources/3rdparty/glpk-4.57/examples/cplex/README b/resources/3rdparty/glpk-4.65/examples/cplex/README similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/cplex/README rename to resources/3rdparty/glpk-4.65/examples/cplex/README diff --git a/resources/3rdparty/glpk-4.57/examples/cplex/concorde.txt b/resources/3rdparty/glpk-4.65/examples/cplex/concorde.txt similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/cplex/concorde.txt rename to resources/3rdparty/glpk-4.65/examples/cplex/concorde.txt diff --git a/resources/3rdparty/glpk-4.57/examples/cplex/cplex.c b/resources/3rdparty/glpk-4.65/examples/cplex/cplex.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/cplex/cplex.c rename to resources/3rdparty/glpk-4.65/examples/cplex/cplex.c diff --git a/resources/3rdparty/glpk-4.57/examples/cplex/cplex.h b/resources/3rdparty/glpk-4.65/examples/cplex/cplex.h similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/cplex/cplex.h rename to resources/3rdparty/glpk-4.65/examples/cplex/cplex.h diff --git a/resources/3rdparty/glpk-4.57/examples/cpp.mod b/resources/3rdparty/glpk-4.65/examples/cpp.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/cpp.mod rename to resources/3rdparty/glpk-4.65/examples/cpp.mod diff --git a/resources/3rdparty/glpk-4.57/examples/crypto.mod b/resources/3rdparty/glpk-4.65/examples/crypto.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/crypto.mod rename to resources/3rdparty/glpk-4.65/examples/crypto.mod diff --git a/resources/3rdparty/glpk-4.57/examples/csv/distances.csv b/resources/3rdparty/glpk-4.65/examples/csv/distances.csv similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/csv/distances.csv rename to resources/3rdparty/glpk-4.65/examples/csv/distances.csv diff --git a/resources/3rdparty/glpk-4.57/examples/csv/markets.csv b/resources/3rdparty/glpk-4.65/examples/csv/markets.csv similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/csv/markets.csv rename to resources/3rdparty/glpk-4.65/examples/csv/markets.csv diff --git a/resources/3rdparty/glpk-4.57/examples/csv/parameters.csv b/resources/3rdparty/glpk-4.65/examples/csv/parameters.csv similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/csv/parameters.csv rename to resources/3rdparty/glpk-4.65/examples/csv/parameters.csv diff --git a/resources/3rdparty/glpk-4.57/examples/csv/plants.csv b/resources/3rdparty/glpk-4.65/examples/csv/plants.csv similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/csv/plants.csv rename to resources/3rdparty/glpk-4.65/examples/csv/plants.csv diff --git a/resources/3rdparty/glpk-4.57/examples/csv/transp_csv.mod b/resources/3rdparty/glpk-4.65/examples/csv/transp_csv.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/csv/transp_csv.mod rename to resources/3rdparty/glpk-4.65/examples/csv/transp_csv.mod diff --git a/resources/3rdparty/glpk-4.57/examples/dbf/ForestMgt_Model_I_GIS_dbf.mod b/resources/3rdparty/glpk-4.65/examples/dbf/ForestMgt_Model_I_GIS_dbf.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/dbf/ForestMgt_Model_I_GIS_dbf.mod rename to resources/3rdparty/glpk-4.65/examples/dbf/ForestMgt_Model_I_GIS_dbf.mod diff --git a/resources/3rdparty/glpk-4.57/examples/dbf/Forest_Cost.dbf b/resources/3rdparty/glpk-4.65/examples/dbf/Forest_Cost.dbf similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/dbf/Forest_Cost.dbf rename to resources/3rdparty/glpk-4.65/examples/dbf/Forest_Cost.dbf diff --git a/resources/3rdparty/glpk-4.57/examples/dbf/NetRev_Table.dbf b/resources/3rdparty/glpk-4.65/examples/dbf/NetRev_Table.dbf similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/dbf/NetRev_Table.dbf rename to resources/3rdparty/glpk-4.65/examples/dbf/NetRev_Table.dbf diff --git a/resources/3rdparty/glpk-4.57/examples/dbf/README b/resources/3rdparty/glpk-4.65/examples/dbf/README similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/dbf/README rename to resources/3rdparty/glpk-4.65/examples/dbf/README diff --git a/resources/3rdparty/glpk-4.57/examples/dbf/TCost_Table.dbf b/resources/3rdparty/glpk-4.65/examples/dbf/TCost_Table.dbf similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/dbf/TCost_Table.dbf rename to resources/3rdparty/glpk-4.65/examples/dbf/TCost_Table.dbf diff --git a/resources/3rdparty/glpk-4.57/examples/dbf/Yield_Table_Vol.dbf b/resources/3rdparty/glpk-4.65/examples/dbf/Yield_Table_Vol.dbf similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/dbf/Yield_Table_Vol.dbf rename to resources/3rdparty/glpk-4.65/examples/dbf/Yield_Table_Vol.dbf diff --git a/resources/3rdparty/glpk-4.57/examples/dbf/cultural_pres.dbf b/resources/3rdparty/glpk-4.65/examples/dbf/cultural_pres.dbf similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/dbf/cultural_pres.dbf rename to resources/3rdparty/glpk-4.65/examples/dbf/cultural_pres.dbf diff --git a/resources/3rdparty/glpk-4.57/examples/dbf/mgt_year.dbf b/resources/3rdparty/glpk-4.65/examples/dbf/mgt_year.dbf similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/dbf/mgt_year.dbf rename to resources/3rdparty/glpk-4.65/examples/dbf/mgt_year.dbf diff --git a/resources/3rdparty/glpk-4.57/examples/dbf/stands.dbf b/resources/3rdparty/glpk-4.65/examples/dbf/stands.dbf similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/dbf/stands.dbf rename to resources/3rdparty/glpk-4.65/examples/dbf/stands.dbf diff --git a/resources/3rdparty/glpk-4.57/examples/dbf/standtype.dbf b/resources/3rdparty/glpk-4.65/examples/dbf/standtype.dbf similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/dbf/standtype.dbf rename to resources/3rdparty/glpk-4.65/examples/dbf/standtype.dbf diff --git a/resources/3rdparty/glpk-4.57/examples/dea.mod b/resources/3rdparty/glpk-4.65/examples/dea.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/dea.mod rename to resources/3rdparty/glpk-4.65/examples/dea.mod diff --git a/resources/3rdparty/glpk-4.57/examples/diet.mod b/resources/3rdparty/glpk-4.65/examples/diet.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/diet.mod rename to resources/3rdparty/glpk-4.65/examples/diet.mod diff --git a/resources/3rdparty/glpk-4.57/examples/dist.mod b/resources/3rdparty/glpk-4.65/examples/dist.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/dist.mod rename to resources/3rdparty/glpk-4.65/examples/dist.mod diff --git a/resources/3rdparty/glpk-4.57/examples/egypt.mod b/resources/3rdparty/glpk-4.65/examples/egypt.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/egypt.mod rename to resources/3rdparty/glpk-4.65/examples/egypt.mod diff --git a/resources/3rdparty/glpk-4.57/examples/fctp.mod b/resources/3rdparty/glpk-4.65/examples/fctp.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/fctp.mod rename to resources/3rdparty/glpk-4.65/examples/fctp.mod diff --git a/resources/3rdparty/glpk-4.57/examples/food.mod b/resources/3rdparty/glpk-4.65/examples/food.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/food.mod rename to resources/3rdparty/glpk-4.65/examples/food.mod diff --git a/resources/3rdparty/glpk-4.57/examples/food2.mod b/resources/3rdparty/glpk-4.65/examples/food2.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/food2.mod rename to resources/3rdparty/glpk-4.65/examples/food2.mod diff --git a/resources/3rdparty/glpk-4.57/examples/furnace.mps b/resources/3rdparty/glpk-4.65/examples/furnace.mps similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/furnace.mps rename to resources/3rdparty/glpk-4.65/examples/furnace.mps diff --git a/resources/3rdparty/glpk-4.57/examples/gap.mod b/resources/3rdparty/glpk-4.65/examples/gap.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/gap.mod rename to resources/3rdparty/glpk-4.65/examples/gap.mod diff --git a/resources/3rdparty/glpk-4.57/src/glpapi21.c b/resources/3rdparty/glpk-4.65/examples/glpsol.c similarity index 93% rename from resources/3rdparty/glpk-4.57/src/glpapi21.c rename to resources/3rdparty/glpk-4.65/examples/glpsol.c index 30866310a..7a0c42c88 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi21.c +++ b/resources/3rdparty/glpk-4.65/examples/glpsol.c @@ -1,10 +1,9 @@ -/* glpapi21.c (stand-alone LP/MIP solver) */ +/* glpsol.c (stand-alone GLPK LP/MIP solver) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,11 +21,23 @@ * along with GLPK. If not, see . ***********************************************************************/ -#include "draft.h" -#include "env.h" -#include "glpgmp.h" -#include "misc.h" -#include "prob.h" +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include + +#include + +#define xassert glp_assert +#define xerror glp_error +#define xprintf glp_printf struct csa { /* common storage area */ @@ -94,6 +105,10 @@ struct csa /* input data checking flag; no solution is performed */ const char *new_name; /* new name to be assigned to the problem */ +#if 1 /* 18/I-2018 */ + int hide; + /* clear all symbolic names in the problem object */ +#endif const char *out_mps; /* name of output problem file in fixed MPS format */ const char *out_freemps; @@ -142,6 +157,38 @@ struct csa #endif }; +static int str2int(const char *s, int *x) +{ /* convert string to integer */ + long t; + char *endptr; + t = strtol(s, &endptr, 10); + if (*endptr != '\0') + return 2; + if (!(INT_MIN <= t && t <= INT_MAX)) + return 1; + *x = t; +#if 0 + xprintf("str2int: x = %d\n", *x); +#endif + return 0; +} + +static int str2num(const char *s, double *x) +{ /* convert string to floating point */ + double t; + char *endptr; + t = strtod(s, &endptr); + if (*endptr != '\0') + return 2; + if (!(-DBL_MAX <= t && t <= +DBL_MAX)) + return 1; + *x = t; +#if 0 + xprintf("str2num: x = %g\n", *x); +#endif + return 0; +} + static void print_help(const char *my_name) { /* print help information */ xprintf("Usage: %s [options...] filename\n", my_name); @@ -214,6 +261,10 @@ static void print_help(const char *my_name) xprintf(" --check do not solve problem, check input d" "ata only\n"); xprintf(" --name probname change problem name to probname\n"); +#if 1 /* 18/I-2018 */ + xprintf(" --hide remove all symbolic names from prob" + "lem object\n"); +#endif xprintf(" --wmps filename write problem to filename in fixed " "MPS format\n"); xprintf(" --wfreemps filename\n"); @@ -282,6 +333,15 @@ static void print_help(const char *my_name) "fault)\n"); xprintf(" --norelax use standard \"textbook\" ratio tes" "t\n"); +#if 0 /* 23/VI-2017 */ +#if 1 /* 28/III-2016 */ + xprintf(" --flip use flip-flop ratio test (assumes -" + "-dual)\n"); +#endif +#else + /* now this option is implemented in both primal and dual */ + xprintf(" --flip use long-step ratio test\n"); +#endif xprintf(" --presol use presolver (default; assumes --s" "cale and --adv)\n"); xprintf(" --nopresol do not use presolver\n"); @@ -374,8 +434,7 @@ static void print_version(int briefly) { /* print version information */ xprintf("GLPSOL: GLPK LP/MIP Solver, v%s\n", glp_version()); if (briefly) goto done; - xprintf("\n"); - xprintf("Copyright (C) 2000-2015 Andrew Makhorin, Department for " + xprintf("Copyright (C) 2000-2017 Andrew Makhorin, Department for " "Applied\n"); xprintf("Informatics, Moscow Aviation Institute, Moscow, Russia. " "All rights\n"); @@ -390,7 +449,7 @@ static void print_version(int briefly) done: return; } -static int parse_cmdline(struct csa *csa, int argc, const char *argv[]) +static int parse_cmdline(struct csa *csa, int argc, char *argv[]) { /* parse command-line parameters */ int k; #define p(str) (strcmp(argv[k], str) == 0) @@ -560,6 +619,10 @@ static int parse_cmdline(struct csa *csa, int argc, const char *argv[]) } csa->new_name = argv[k]; } +#if 1 /* 18/I-2018 */ + else if (p("--hide")) + csa->hide = 1; +#endif else if (p("--wmps")) { k++; if (k == argc || argv[k][0] == '\0' || argv[k][0] == '-') @@ -729,6 +792,18 @@ static int parse_cmdline(struct csa *csa, int argc, const char *argv[]) csa->smcp.r_test = GLP_RT_HAR; else if (p("--norelax")) csa->smcp.r_test = GLP_RT_STD; +#if 1 /* 28/III-2016 */ + else if (p("--flip")) +#if 0 /* 23/VI-2017 */ + { csa->smcp.meth = GLP_DUAL; +#else + /* now this option is implemented in both primal and dual */ + { +#endif + csa->smcp.r_test = GLP_RT_FLIP; + csa->iocp.flip = GLP_ON; + } +#endif else if (p("--presol")) csa->smcp.presolve = GLP_ON; else if (p("--nopresol")) @@ -878,7 +953,11 @@ static int parse_cmdline(struct csa *csa, int argc, const char *argv[]) typedef struct { double rhs, pi; } v_data; typedef struct { double low, cap, cost, x; } a_data; -int glp_main(int argc, const char *argv[]) +#ifndef __WOE__ +int main(int argc, char *argv[]) +#else +int __cdecl main(int argc, char *argv[]) +#endif { /* stand-alone LP/MIP solver */ struct csa _csa, *csa = &_csa; int ret; @@ -911,6 +990,9 @@ int glp_main(int argc, const char *argv[]) csa->out_ranges = NULL; csa->check = 0; csa->new_name = NULL; +#if 1 /* 18/I-2018 */ + csa->hide = 0; +#endif csa->out_mps = NULL; csa->out_freemps = NULL; csa->out_cpxlp = NULL; @@ -1040,7 +1122,7 @@ err1: { xprintf("MPS file processing error\n"); #endif xprintf("Seed value %d will be used\n", csa->seed); } - _glp_mpl_init_rand(csa->tran, csa->seed); + glp_mpl_init_rand(csa->tran, csa->seed); /* read model section and optional data section */ if (glp_mpl_read_model(csa->tran, csa->in_file, csa->ndf > 0)) err2: { xprintf("MathProg model processing error\n"); @@ -1108,6 +1190,19 @@ err2: { xprintf("MathProg model processing error\n"); glp_set_obj_dir(csa->prob, csa->dir); /* sort elements of the constraint matrix */ glp_sort_matrix(csa->prob); +#if 1 /* 18/I-2018 */ + /*--------------------------------------------------------------*/ + /* remove all symbolic names from problem object, if required */ + if (csa->hide) + { int i, j; + glp_set_obj_name(csa->prob, NULL); + glp_delete_index(csa->prob); + for (i = glp_get_num_rows(csa->prob); i >= 1; i--) + glp_set_row_name(csa->prob, i, NULL); + for (j = glp_get_num_cols(csa->prob); j >= 1; j--) + glp_set_col_name(csa->prob, j, NULL); + } +#endif /*--------------------------------------------------------------*/ /* write problem data in fixed MPS format, if required */ if (csa->out_mps != NULL) @@ -1183,7 +1278,25 @@ err2: { xprintf("MathProg model processing error\n"); /*--------------------------------------------------------------*/ /* if only problem data check is required, skip computations */ if (csa->check) - { ret = EXIT_SUCCESS; + { +#if 1 /* 29/III-2016 */ + /* report problem characteristics */ + int j, cnt = 0; + xprintf("--- Problem Characteristics ---\n"); + xprintf("Number of rows = %8d\n", + glp_get_num_rows(csa->prob)); + xprintf("Number of columns = %8d\n", + glp_get_num_cols(csa->prob)); + xprintf("Number of non-zeros (matrix) = %8d\n", + glp_get_num_nz(csa->prob)); + for (j = glp_get_num_cols(csa->prob); j >= 1; j--) + { if (glp_get_obj_coef(csa->prob, j) != 0.0) + cnt++; + } + xprintf("Number of non-zeros (objrow) = %8d\n", + cnt); +#endif + ret = EXIT_SUCCESS; goto done; } /*--------------------------------------------------------------*/ @@ -1260,7 +1373,7 @@ err2: { xprintf("MathProg model processing error\n"); } /*--------------------------------------------------------------*/ /* solve the problem */ - start = xtime(); + start = glp_time(); if (csa->solution == SOL_BASIC) { if (!csa->exact) { glp_set_bfcp(csa->prob, &csa->bfcp); @@ -1300,6 +1413,12 @@ err2: { xprintf("MathProg model processing error\n"); #if 0 csa->iocp.msg_lev = GLP_MSG_DBG; csa->iocp.pp_tech = GLP_PP_NONE; +#endif +#ifdef GLP_CB_FUNC /* 05/IV-2016 */ + { extern void GLP_CB_FUNC(glp_tree *, void *); + csa->iocp.cb_func = GLP_CB_FUNC; + csa->iocp.cb_info = NULL; + } #endif glp_intopt(csa->prob, &csa->iocp); } @@ -1307,7 +1426,8 @@ err2: { xprintf("MathProg model processing error\n"); xassert(csa != csa); /*--------------------------------------------------------------*/ /* display statistics */ - xprintf("Time used: %.1f secs\n", xdifftime(xtime(), start)); + xprintf("Time used: %.1f secs\n", glp_difftime(glp_time(), + start)); #if 0 /* 16/II-2012 */ { glp_long tpeak; char buf[50]; @@ -1430,8 +1550,10 @@ done: /* delete the LP/MIP problem object */ /* delete the network problem object, if necessary */ if (csa->graph != NULL) glp_delete_graph(csa->graph); +#if 0 /* 23/XI-2015 */ xassert(gmp_pool_count() == 0); gmp_free_mem(); +#endif /* close log file, if necessary */ if (csa->log_file != NULL) glp_close_tee(); /* check that no memory blocks are still allocated */ diff --git a/resources/3rdparty/glpk-4.65/examples/graceful.mod b/resources/3rdparty/glpk-4.65/examples/graceful.mod new file mode 100644 index 000000000..404206537 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/graceful.mod @@ -0,0 +1,152 @@ +/* Graceful Tree Labeling Problem */ + +/* Author: Mike Appleby */ + +/* The Graceful Labeling Problem for a tree G = (V, E), where V is the + set of vertices and E is the set of edges, is to find a labeling of + the vertices with the integers between 1 and |V| inclusive, such + that no two vertices share a label, and such that each edge is + uniquely identified by the positive, or absolute difference between + the labels of its endpoints. + + In other words, if vl are the vertex labels and el are the edge + labels, then for every edge (u,v) in E, el[u,v]=abs(vl[u] - vl[v]). + + https://en.wikipedia.org/wiki/Graceful_labeling */ + +set V; +/* set of vertices */ + +set E within V cross V; +/* set of edges */ + +set N := 1..card(V); +/* vertex labels */ + +set M := 1..card(V)-1; +/* edge labels */ + +var vx{V, N}, binary; +/* binary encoding of vertex labels. + vx[v,n] == 1 means vertex v has label n. */ + +s.t. vxa{v in V}: sum{n in N} vx[v,n] = 1; +/* each vertex is assigned exactly one label. */ + +s.t. vxb{n in N}: sum{v in V} vx[v,n] = 1; +/* each label is assigned to exactly one vertex. */ + +var vl{V}, integer, >= 1, <= card(V); +/* integer encoding of vertex labels. + vl[v] == n means vertex v has label n. */ + +s.t. vla{v in V}: vl[v] = sum{n in N} n * vx[v,n]; +/* by constraint vxa, exactly one of vx[v,n] == 1 and the rest are + zero. So if vx[v,3] == 1, then vl[v] = 3. */ + +var ex{E, M}, binary; +/* binary encoding of edge labels. + ex[u,v,n] == 1 means edge (u,v) has label n. */ + +s.t. exa{(u,v) in E}: sum{m in M} ex[u,v,m] = 1; +/* each edge is assigned exactly one label. */ + +s.t. exb{m in M}: sum{(u,v) in E} ex[u,v,m] = 1; +/* each label is assigned to exactly one edge. */ + +var el{E}, integer, >= 1, <= card(E); +/* integer encoding of edge labels. + el[u,v] == n means edge (u,v) has label n. */ + +s.t. ela{(u,v) in E}: el[u,v] = sum{m in M} m * ex[u,v,m]; +/* similar to vla above, define integer encoding of edge labels in + terms of the corresponding binary variable. */ + +var gt{E}, binary; +/* gt[u,v] = 1 if vl[u] > vl[v] else 0. + gt helps encode the absolute value constraint, below. */ + +s.t. elb{(u,v) in E}: el[u,v] >= vl[u] - vl[v]; +s.t. elc{(u,v) in E}: el[u,v] <= vl[u] - vl[v] + 2*card(V)*(1-gt[u,v]); +s.t. eld{(u,v) in E}: el[u,v] >= vl[v] - vl[u]; +s.t. ele{(u,v) in E}: el[u,v] <= vl[v] - vl[u] + 2*card(V)*gt[u,v]; + +/* These four constraints together model the absolute value constraint + of the graceful labeling problem: el[u,v] == abs(vl[u] - vl[v]). + However, since the absolute value is a non-linear function, we + transform it into a series of linear constraints, as above. + + To see that these four constraints model the absolute value + condition, consider the following cases: + + if vl[u] > vl[v] and gt[u,v] == 0 then + - ele is unsatisfiable, since the constraint ele amounts to + + el[u,v] <= vl[v] - vl[u] + 0 (since gt[u,v] == 0) + <= -1 (since vl[u] > vl[v]) + + but el[u,v] is declared with lower bound >= 1; hence, the + constraints cannot be satisfied if vl[u] > vl[v] and + gt[u,v] == 0. + + if vl[u] > vl[v] and gt[u,v] == 1 then + - elb and elc together are equivalent to + + vl[u] - vl[v] <= el[u,v] <= vl[u] - vl[v], i.e. + el[u,v] = vl[u] - vl[v] + = abs(vl[u] - vl[v]) (since vl[u] > vl[v]) + + - eld and elc together are equivalent to + + vl[v] - vl[u] <= el[u,v] <= vl[v] - vl[u] + 2|V| + + the tightest possible bounds are + + -1 <= el[u,v] <= |V|+1 + + which is satisfied since both bounds are looser than the + constraints on el's variable declaration, namely + + var el{E}, integer, >= 1, <= card(E); + + where |E| = |V|-1 + + The cases for vl[v] > vl[u] are similar, but with roles reversed + for elb/elc and eld/ele. + + In other words, when vl[u] > vl[v], then gt[u,v] == 1, elb and elc + together model the absolute value constraint, and ele and eld are + satisfied due to bounds constraints on el. When vl[v] > vl[u], then + gt[u,v] == 0, ele and eld model the absolute value constraint, and + elb and elc are satisfied due to bounds constraints on el. + + Note that vl[u] != vl[v], by a combination of constraints vxa, vxb, + and vla. */ + +solve; + +check 0 = card(N symdiff setof{v in V} vl[v]); +/* every vertex label is assigned to one vertex */ + +check 0 = card(M symdiff setof{(u,v) in E} el[u,v]); +/* every edge label is assigned to one edge */ + +check {(u,v) in E} el[u,v] = abs(vl[u] - vl[v]); +/* every edge label for every edge (u,v) == abs(vl[u] - vl[v]) */ + +printf "vertices:\n"; +for{v in V} { printf "\t%s: %d\n", v, vl[v]; } + +printf "edges:\n"; +printf "\torig\tvlabel\telabel\tabs(u-v)\n"; +for{(u,v) in E} { + printf "\t(%s,%s)\t(%d,%d)\t%d\t%d\n", + u, v, vl[u], vl[v], el[u,v], abs(vl[u]-vl[v]); +} + +data; + +set V := a b c d e f g; +set E := a b, a d, a g, b c, b e, e f; + +end; diff --git a/resources/3rdparty/glpk-4.57/examples/graph.mod b/resources/3rdparty/glpk-4.65/examples/graph.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/graph.mod rename to resources/3rdparty/glpk-4.65/examples/graph.mod diff --git a/resources/3rdparty/glpk-4.57/examples/hashi.mod b/resources/3rdparty/glpk-4.65/examples/hashi.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/hashi.mod rename to resources/3rdparty/glpk-4.65/examples/hashi.mod diff --git a/resources/3rdparty/glpk-4.57/examples/huge.mod b/resources/3rdparty/glpk-4.65/examples/huge.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/huge.mod rename to resources/3rdparty/glpk-4.65/examples/huge.mod diff --git a/resources/3rdparty/glpk-4.57/examples/icecream.mps b/resources/3rdparty/glpk-4.65/examples/icecream.mps similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/icecream.mps rename to resources/3rdparty/glpk-4.65/examples/icecream.mps diff --git a/resources/3rdparty/glpk-4.57/examples/iptsamp.c b/resources/3rdparty/glpk-4.65/examples/iptsamp.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/iptsamp.c rename to resources/3rdparty/glpk-4.65/examples/iptsamp.c diff --git a/resources/3rdparty/glpk-4.57/examples/jssp.mod b/resources/3rdparty/glpk-4.65/examples/jssp.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/jssp.mod rename to resources/3rdparty/glpk-4.65/examples/jssp.mod diff --git a/resources/3rdparty/glpk-4.65/examples/life_goe.mod b/resources/3rdparty/glpk-4.65/examples/life_goe.mod new file mode 100644 index 000000000..57ca3c367 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/life_goe.mod @@ -0,0 +1,165 @@ +/* Conway's Game of Life garden of eden checker */ + +/* Written and converted to GNU MathProg by NASZVADI, Peter, 199x-2017 + */ + +/* + Conway's Game of Life (ref'd: CGoL) is a Cellular Automata described and + inspected by John H. Conway in the 1970s. CGoL is nothing but a 0-player + game on an infinite two-dimensional Euclydean grid. In the beginning of + the "game", some 1 values are put on some of the grid vertices, and all + others are set to 0. Grid vertices with values are called cells, and a + cell is called "alive", if its value is 1, and called "dead" otherwise, + these are the two "states". The game then turns to an infinite repetitive + process: all cells change together independently at the same time their + states depending only on their actual state and the actual number of + living cells in their so called Moore-neighbourhood: the 4 orthogonal and + 4 diagonal neighbouring cells. Conway also defined the transitions rule: + dead cell become alive if it has exactly 3 living adjacents, and an alive + cell survives only if it has 2 or 3 living neighbours. After executing a + transition for all cells, the two patterns are in a relationship: the + older is the father, the newer is the child. + + It is an interesting problem both in Mathematics and Phylosophy if + there is a fatherless pattern (in CGoL). Fairly trivial existence + proofs had been published since then, and immediately explicit + constructions are followed. + + This GMPL model searches for a father pattern of the pattern specified in + the c parameter matrix, and prints the found one if any both in human + readable format and in RLE format, which could be open with some Cellular + Automata simulators like Golly, for example. + + See more about Garden of Edens: + http://conwaylife.com/wiki/Garden_of_Eden + + Golly CA simulator: + http://golly.sourceforge.net/ + + Tip for running with the example pattern: + glpsol --math life_goe.mod --cuts --last + + WARNING: Rather CPU- and memory-intensive process to find out if a given + pattern is a GOE if it really is! +*/ + +param height, integer, > 0; +/* height of the successor pattern */ + +param width, integer, > 0; +/* width of the successor pattern */ + +set ROWS := 0..height + 1; +/* set of rows of the predecessor */ + +set COLUMNS := 0..width + 1; +/* set of columns of the predecessor */ + +set MOORE := {(0, 1), (0, -1), (1, 0), (-1, 0), (1, 1), (-1, 1), (1, -1), + (-1, -1)}; +/* Moore-neighbourhood relative coordinates */ + +param c{ROWS, COLUMNS}, >= 0; +/* Denotes the cellspace of 1st generation, where 0, 1 and 2 means dead, + alive or arbitrary cell values respectively. Usually the frame values + must be set to "2", and also "2" is allowed in the inner rectangle. */ + +set IJalive := setof{(i, j) in ROWS cross COLUMNS: c[i, j] = 1}(i, j); +/* set of alive cells in the child */ + +set IJdead := setof{(i, j) in ROWS cross COLUMNS: c[i, j] = 0}(i, j); +/* set of dead cells in the child */ + +set IJ := IJalive union IJdead; +/* set of cells in the child with enforced states */ + +var x{ROWS, COLUMNS}, binary; +/* father's states */ + +var dpos{ROWS, COLUMNS}, >= 0; +/* positive part of the distances from 6 */ + +var dneg{ROWS, COLUMNS}, >= 0; +/* negative part of the distances from 6 */ + +var dposup{ROWS, COLUMNS}, binary; +/* positive part's upper bound enforcement */ + +var dnegup{ROWS, COLUMNS}, binary; +/* negative part's upper bound enforcement */ + +s.t. maincons{(i, j) in IJ}: + x[i, j] + sum{(a, b) in MOORE} (2 * x[i + a, j + b]) = + 6 + dpos[i,j] - dneg[i,j]; +/* in the LHS, there is a function that maps from all possible 512 state + combinations of a father cell and its Moore-neighbourhood to [0..17]. + And for CGoL, if the child is alive, then it should be between 5 and 7. + Also implicit introduced "d" as distance from 6 in RHS, and immediately + decomposed "d" into positive and negative parts denoted dpos and dneg. */ + +s.t. posbound{(i,j) in IJ}: dpos[i,j] <= 11 * dposup[i,j]; +/* constraining positive part of distance */ + +s.t. negbound{(i,j) in IJ}: dneg[i,j] <= 6 * dnegup[i,j]; +/* constraining negative part of distance */ + +s.t. mutex{(i,j) in IJ}: dposup[i,j] + dnegup[i,j] = 1; +/* Ensuring that at most one is positive among the pos./neg. parts */ + +s.t. alive{(i,j) in IJalive}: dpos[i,j] + dneg[i,j] <= 1; +/* LHS of maincons must be 5, 6 or 7 either due to child cell is alive */ + +s.t. dead{(i,j) in IJdead}: dpos[i,j] + dneg[i,j] >= 2; +/* LHS of maincons must be at most 4 or at least 8 */ + +/* This is a feasibility problem, so no objective is needed */ + +solve; + +printf '\nFound a father pattern:\n\n'; +for{i in ROWS}{ + for{j in COLUMNS}{ + printf '%s%s', if j then ' ' else '', x[i, j].val; + } + printf '\n'; +} + +printf '\nThe father pattern in rle format:\n\n'; +for{i in ROWS}{ + for{j in COLUMNS}{ + printf '%s', if x[i, j].val then 'o' else 'b'; + } + printf '$'; +} +printf '!\n\n'; + +data; +/* + This example is a halved of a 10x10 garden of eden pattern from: + http://wwwhomes.uni-bielefeld.de/achim/orphan_7th.html + It has a 90 degree rotational symmetry, so if having enough resources, + just comment the line denoted with "8", and uncomment the following part! + And also do not forget to increase height parameter, respectively! +*/ + +param height := 7; + +param width := 10; + +param c : 0 1 2 3 4 5 6 7 8 9 10 11 := + 0 2 2 2 2 2 2 2 2 2 2 2 2 + 1 2 0 1 0 1 1 1 0 1 0 0 2 + 2 2 0 0 1 0 1 0 1 0 0 1 2 + 3 2 1 0 1 1 1 0 0 1 1 0 2 + 4 2 0 1 0 1 1 1 1 1 0 1 2 + 5 2 1 0 0 1 0 0 1 1 1 1 2 + 6 2 1 1 1 1 0 0 1 0 0 1 2 + 7 2 1 0 1 1 1 1 1 0 1 0 2 + 8 2 2 2 2 2 2 2 2 2 2 2 2; + +/* 8 2 0 1 1 0 0 1 1 1 0 1 2 + 9 2 1 0 0 1 0 1 0 1 0 0 2 + 10 2 0 0 1 0 1 1 1 0 1 0 2 + 11 2 2 2 2 2 2 2 2 2 2 2 2; */ + +end; diff --git a/resources/3rdparty/glpk-4.57/examples/magic.mod b/resources/3rdparty/glpk-4.65/examples/magic.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/magic.mod rename to resources/3rdparty/glpk-4.65/examples/magic.mod diff --git a/resources/3rdparty/glpk-4.57/examples/maxcut.mod b/resources/3rdparty/glpk-4.65/examples/maxcut.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/maxcut.mod rename to resources/3rdparty/glpk-4.65/examples/maxcut.mod diff --git a/resources/3rdparty/glpk-4.57/examples/maxflow.mod b/resources/3rdparty/glpk-4.65/examples/maxflow.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/maxflow.mod rename to resources/3rdparty/glpk-4.65/examples/maxflow.mod diff --git a/resources/3rdparty/glpk-4.57/examples/mfasp.mod b/resources/3rdparty/glpk-4.65/examples/mfasp.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/mfasp.mod rename to resources/3rdparty/glpk-4.65/examples/mfasp.mod diff --git a/resources/3rdparty/glpk-4.57/examples/mfvsp.mod b/resources/3rdparty/glpk-4.65/examples/mfvsp.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/mfvsp.mod rename to resources/3rdparty/glpk-4.65/examples/mfvsp.mod diff --git a/resources/3rdparty/glpk-4.57/examples/min01ks.mod b/resources/3rdparty/glpk-4.65/examples/min01ks.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/min01ks.mod rename to resources/3rdparty/glpk-4.65/examples/min01ks.mod diff --git a/resources/3rdparty/glpk-4.57/examples/misp.mod b/resources/3rdparty/glpk-4.65/examples/misp.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/misp.mod rename to resources/3rdparty/glpk-4.65/examples/misp.mod diff --git a/resources/3rdparty/glpk-4.57/examples/misp1.dat b/resources/3rdparty/glpk-4.65/examples/misp1.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/misp1.dat rename to resources/3rdparty/glpk-4.65/examples/misp1.dat diff --git a/resources/3rdparty/glpk-4.57/examples/misp2.dat b/resources/3rdparty/glpk-4.65/examples/misp2.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/misp2.dat rename to resources/3rdparty/glpk-4.65/examples/misp2.dat diff --git a/resources/3rdparty/glpk-4.57/examples/money.mod b/resources/3rdparty/glpk-4.65/examples/money.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/money.mod rename to resources/3rdparty/glpk-4.65/examples/money.mod diff --git a/resources/3rdparty/glpk-4.57/examples/mplsamp1.c b/resources/3rdparty/glpk-4.65/examples/mplsamp1.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/mplsamp1.c rename to resources/3rdparty/glpk-4.65/examples/mplsamp1.c diff --git a/resources/3rdparty/glpk-4.57/examples/mplsamp2.c b/resources/3rdparty/glpk-4.65/examples/mplsamp2.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/mplsamp2.c rename to resources/3rdparty/glpk-4.65/examples/mplsamp2.c diff --git a/resources/3rdparty/glpk-4.57/examples/murtagh.mps b/resources/3rdparty/glpk-4.65/examples/murtagh.mps similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/murtagh.mps rename to resources/3rdparty/glpk-4.65/examples/murtagh.mps diff --git a/resources/3rdparty/glpk-4.57/examples/mvcp.mod b/resources/3rdparty/glpk-4.65/examples/mvcp.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/mvcp.mod rename to resources/3rdparty/glpk-4.65/examples/mvcp.mod diff --git a/resources/3rdparty/glpk-4.57/examples/netgen.c b/resources/3rdparty/glpk-4.65/examples/netgen.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/netgen.c rename to resources/3rdparty/glpk-4.65/examples/netgen.c diff --git a/resources/3rdparty/glpk-4.65/examples/nppsamp.c b/resources/3rdparty/glpk-4.65/examples/nppsamp.c new file mode 100644 index 000000000..65f0e693e --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/nppsamp.c @@ -0,0 +1,48 @@ +/* nppsamp.c */ + +#include +#include +#include + +int main(void) +{ glp_prep *prep; + glp_prob *P, *Q; + int ret; + prep = glp_npp_alloc_wksp(); + P = glp_create_prob(); + ret = glp_read_mps(P, GLP_MPS_DECK, NULL, "murtagh.mps"); + if (ret != 0) + { printf("Error on reading problem data\n"); + goto skip; + } + glp_set_obj_dir(P, GLP_MAX); + glp_npp_load_prob(prep, P, GLP_SOL, GLP_ON); + ret = glp_npp_preprocess1(prep, 0); + switch (ret) + { case 0: + break; + case GLP_ENOPFS: + printf("LP has no primal feasible solution\n"); + goto skip; + case GLP_ENODFS: + printf("LP has no dual feasible solution\n"); + goto skip; + default: + glp_assert(ret != ret); + } + Q = glp_create_prob(); + glp_npp_build_prob(prep, Q); + ret = glp_simplex(Q, NULL); + if (ret == 0 && glp_get_status(Q) == GLP_OPT) + { glp_npp_postprocess(prep, Q); + glp_npp_obtain_sol(prep, P); + } + else + printf("Unable to recover non-optimal solution\n"); + glp_delete_prob(Q); +skip: glp_npp_free_wksp(prep); + glp_delete_prob(P); + return 0; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/examples/numbrix.mod b/resources/3rdparty/glpk-4.65/examples/numbrix.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/numbrix.mod rename to resources/3rdparty/glpk-4.65/examples/numbrix.mod diff --git a/resources/3rdparty/glpk-4.57/examples/oldapi/README b/resources/3rdparty/glpk-4.65/examples/oldapi/README similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/oldapi/README rename to resources/3rdparty/glpk-4.65/examples/oldapi/README diff --git a/resources/3rdparty/glpk-4.57/examples/oldapi/lpx.c b/resources/3rdparty/glpk-4.65/examples/oldapi/lpx.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/oldapi/lpx.c rename to resources/3rdparty/glpk-4.65/examples/oldapi/lpx.c diff --git a/resources/3rdparty/glpk-4.57/examples/oldapi/lpx.h b/resources/3rdparty/glpk-4.65/examples/oldapi/lpx.h similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/oldapi/lpx.h rename to resources/3rdparty/glpk-4.65/examples/oldapi/lpx.h diff --git a/resources/3rdparty/glpk-4.57/examples/oldapi/lpxsamp.c b/resources/3rdparty/glpk-4.65/examples/oldapi/lpxsamp.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/oldapi/lpxsamp.c rename to resources/3rdparty/glpk-4.65/examples/oldapi/lpxsamp.c diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/9dom.dat b/resources/3rdparty/glpk-4.65/examples/pbn/9dom.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/9dom.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/9dom.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/README b/resources/3rdparty/glpk-4.65/examples/pbn/README similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/README rename to resources/3rdparty/glpk-4.65/examples/pbn/README diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/bucks.dat b/resources/3rdparty/glpk-4.65/examples/pbn/bucks.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/bucks.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/bucks.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/cat.dat b/resources/3rdparty/glpk-4.65/examples/pbn/cat.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/cat.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/cat.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/dancer.dat b/resources/3rdparty/glpk-4.65/examples/pbn/dancer.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/dancer.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/dancer.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/disney.dat b/resources/3rdparty/glpk-4.65/examples/pbn/disney.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/disney.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/disney.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/dragon.dat b/resources/3rdparty/glpk-4.65/examples/pbn/dragon.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/dragon.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/dragon.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/edge.dat b/resources/3rdparty/glpk-4.65/examples/pbn/edge.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/edge.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/edge.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/forever.dat b/resources/3rdparty/glpk-4.65/examples/pbn/forever.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/forever.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/forever.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/knot.dat b/resources/3rdparty/glpk-4.65/examples/pbn/knot.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/knot.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/knot.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/light.dat b/resources/3rdparty/glpk-4.65/examples/pbn/light.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/light.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/light.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/mum.dat b/resources/3rdparty/glpk-4.65/examples/pbn/mum.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/mum.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/mum.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/pbn.mod b/resources/3rdparty/glpk-4.65/examples/pbn/pbn.mod similarity index 97% rename from resources/3rdparty/glpk-4.57/examples/pbn/pbn.mod rename to resources/3rdparty/glpk-4.65/examples/pbn/pbn.mod index f9616f104..c4a1b2cf3 100644 --- a/resources/3rdparty/glpk-4.57/examples/pbn/pbn.mod +++ b/resources/3rdparty/glpk-4.65/examples/pbn/pbn.mod @@ -52,16 +52,16 @@ param m, integer, >= 1; param n, integer, >= 1; /* the number of columns */ -param row{i in 1..m, 1..n div 2}, integer, >= 0, default 0; +param row{i in 1..m, 1..(n+1) div 2}, integer, >= 0, default 0; /* the cluster-size sequence for row i (raw data) */ -param col{j in 1..n, 1..m div 2}, integer, >= 0, default 0; +param col{j in 1..n, 1..(m+1) div 2}, integer, >= 0, default 0; /* the cluster-size sequence for column j (raw data) */ -param kr{i in 1..m} := sum{t in 1..n div 2: row[i,t] > 0} 1; +param kr{i in 1..m} := sum{t in 1..(n+1) div 2: row[i,t] > 0} 1; /* the number of clusters in row i */ -param kc{j in 1..n} := sum{t in 1..m div 2: col[j,t] > 0} 1; +param kc{j in 1..n} := sum{t in 1..(m+1) div 2: col[j,t] > 0} 1; /* the number of clusters in column j */ param sr{i in 1..m, t in 1..kr[i]} := row[i,t], integer, >= 1; diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/pbn.pdf b/resources/3rdparty/glpk-4.65/examples/pbn/pbn.pdf similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/pbn.pdf rename to resources/3rdparty/glpk-4.65/examples/pbn/pbn.pdf diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/pbn.tex b/resources/3rdparty/glpk-4.65/examples/pbn/pbn.tex similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/pbn.tex rename to resources/3rdparty/glpk-4.65/examples/pbn/pbn.tex diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/petro.dat b/resources/3rdparty/glpk-4.65/examples/pbn/petro.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/petro.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/petro.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/skid.dat b/resources/3rdparty/glpk-4.65/examples/pbn/skid.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/skid.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/skid.dat diff --git a/resources/3rdparty/glpk-4.57/examples/pbn/swing.dat b/resources/3rdparty/glpk-4.65/examples/pbn/swing.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/pbn/swing.dat rename to resources/3rdparty/glpk-4.65/examples/pbn/swing.dat diff --git a/resources/3rdparty/glpk-4.65/examples/pentomino.mod b/resources/3rdparty/glpk-4.65/examples/pentomino.mod new file mode 100644 index 000000000..56aca7e3b --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/pentomino.mod @@ -0,0 +1,460 @@ +/* PENTOMINO, a geometric placement puzzle */ + +/* Written in GNU MathProg by Andrew Makhorin */ + +/* A pentomino is a plane geometric figure by joining five equal + squares edge to edge. It is a polyomino with five cells. Pentominoes + were defined by Prof. Solomon W. Golomb in his book "Polyominoes: + Puzzles, Patterns, Problems, and Packings." + + There are twelve pentominoes, not counting rotations and reflections + as distinct: + + +---+ + | | + +---+ +---+ +---+ + | | | | | | + +---+---+ +---+ +---+ +---+ + | | | | | | | | | + +---+---+---+ +---+ +---+ +---+---+ + | | | | | | | | | | + +---+---+ +---+ +---+---+ +---+---+ + | | | | | | | | | + +---+ +---+ +---+---+ +---+ + F I L N + + +---+---+ +---+---+---+ +---+ + | | | | | | | | | + +---+---+ +---+---+---+ +---+ +---+ +---+ + | | | | | | | | | | | + +---+---+ +---+ +---+---+---+ +---+---+---+ + | | | | | | | | | | | | + +---+ +---+ +---+---+---+ +---+---+---+ + P T U V + + +---+ + | | + +---+ +---+ +---+---+ +---+---+ + | | | | | | | | | | + +---+---+ +---+---+---+ +---+---+ +---+---+ + | | | | | | | | | | | + +---+---+---+ +---+---+---+ +---+ +---+---+ + | | | | | | | | | | + +---+---+ +---+ +---+ +---+---+ + W X Y Z + + + A classic pentomino puzzle is to tile a given outline, i.e. cover + it without overlap and without gaps. Each of 12 pentominoes has an + area of 5 unit squares, so the outline must have area of 60 units. + Note that it is allowed to rotate and reflect the pentominoes. + + (From Wikipedia, the free encyclopedia.) */ + +set A; +check card(A) = 12; +/* basic set of pentominoes */ + +set B{a in A}; +/* B[a] is a set of distinct versions of pentomino a obtained by its + rotations and reflections */ + +set C := setof{a in A, b in B[a]} b; +check card(C) = 63; +/* set of distinct versions of all pentominoes */ + +set D{c in C}, within {0..4} cross {0..4}; +/* D[c] is a set of squares (i,j), relative to (0,0), that constitute + a distinct version of pentomino c */ + +param m, default 6; +/* number of rows in the outline */ + +param n, default 10; +/* number of columns in the outline */ + +set R, default {1..m} cross {1..n}; +/* set of squares (i,j), relative to (1,1), of the outline to be tiled + with the pentominoes */ + +check card(R) = 60; +/* the outline must have exactly 60 squares */ + +set S := setof{c in C, i in 1..m, j in 1..n: + forall{(ii,jj) in D[c]} ((i+ii,j+jj) in R)} (c,i,j); +/* set of all possible placements, where triplet (c,i,j) means that + the base square (0,0) of a distinct version of pentomino c is placed + at square (i,j) of the outline */ + +var x{(c,i,j) in S}, binary; +/* x[c,i,j] = 1 means that placement (c,i,j) is used in the tiling */ + +s.t. use{a in A}: sum{(c,i,j) in S: substr(c,1,1) = a} x[c,i,j] = 1; +/* every pentomino must be used exactly once */ + +s.t. cov{(i,j) in R}: + sum{(c,ii,jj) in S: (i-ii, j-jj) in D[c]} x[c,ii,jj] = 1; +/* every square of the outline must be covered exactly once */ + +/* this is a feasibility problem, so no objective is needed */ + +solve; + +for {i in 1..m} +{ for {j in 1..n} + { for {0..0: (i,j) in R} + { for {(c,ii,jj) in S: (i-ii,j-jj) in D[c] and x[c,ii,jj]} + printf " %s", substr(c,1,1); + } + for {0..0: (i,j) not in R} + printf " ."; + } + printf "\n"; +} + +data; + +/* These data correspond to a puzzle from the book "Pentominoes" by + Jon Millington */ + +param m := 8; + +param n := 15; + +set R : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 := + 1 - - - - - - - + - - - - - - - + 2 - - - - - - + + + - - - - - - + 3 - - - - - + + + + + - - - - - + 4 - - - - + + + - + + + - - - - + 5 - - - + + + + - + + + + - - - + 6 - - + + + + + - + + + + + - - + 7 - + + + + + + - + + + + + + - + 8 + + + + + + + + + + + + + + + ; + +/* DO NOT CHANGE ANY DATA BELOW! */ + +set A := F, I, L, N, P, T, U, V, W, X, Y, Z; + +set B[F] := F1, F2, F3, F4, F5, F6, F7, F8; +set B[I] := I1, I2; +set B[L] := L1, L2, L3, L4, L5, L6, L7, L8; +set B[N] := N1, N2, N3, N4, N5, N6, N7, N8; +set B[P] := P1, P2, P3, P4, P5, P6, P7, P8; +set B[T] := T1, T2, T3, T4; +set B[U] := U1, U2, U3, U4; +set B[V] := V1, V2, V3, V4; +set B[W] := W1, W2, W3, W4; +set B[X] := X; +set B[Y] := Y1, Y2, Y3, Y4, Y5, Y6, Y7, Y8; +set B[Z] := Z1, Z2, Z3, Z4; + +set D[F1] : 0 1 2 := + 0 - + + + 1 + + - + 2 - + - ; + +set D[F2] : 0 1 2 := + 0 - + - + 1 + + + + 2 - - + ; + +set D[F3] : 0 1 2 := + 0 - + - + 1 - + + + 2 + + - ; + +set D[F4] : 0 1 2 := + 0 + - - + 1 + + + + 2 - + - ; + +set D[F5] : 0 1 2 := + 0 + + - + 1 - + + + 2 - + - ; + +set D[F6] : 0 1 2 := + 0 - - + + 1 + + + + 2 - + - ; + +set D[F7] : 0 1 2 := + 0 - + - + 1 + + - + 2 - + + ; + +set D[F8] : 0 1 2 := + 0 - + - + 1 + + + + 2 + - - ; + +set D[I1] : 0 := + 0 + + 1 + + 2 + + 3 + + 4 + ; + +set D[I2] : 0 1 2 3 4 := + 0 + + + + + ; + +set D[L1] : 0 1 := + 0 + - + 1 + - + 2 + - + 3 + + ; + +set D[L2] : 0 1 2 3 := + 0 + + + + + 1 + - - - ; + +set D[L3] : 0 1 := + 0 + + + 1 - + + 2 - + + 3 - + ; + +set D[L4] : 0 1 2 3 := + 0 - - - + + 1 + + + + ; + +set D[L5] : 0 1 := + 0 - + + 1 - + + 2 - + + 3 + + ; + +set D[L6] : 0 1 2 3 := + 0 + - - - + 1 + + + + ; + +set D[L7] : 0 1 := + 0 + + + 1 + - + 2 + - + 3 + - ; + +set D[L8] : 0 1 2 3 := + 0 + + + + + 1 - - - + ; + +set D[N1] : 0 1 := + 0 + - + 1 + - + 2 + + + 3 - + ; + +set D[N2] : 0 1 2 3 := + 0 - + + + + 1 + + - - ; + +set D[N3] : 0 1 := + 0 + - + 1 + + + 2 - + + 3 - + ; + +set D[N4] : 0 1 2 3 := + 0 - - + + + 1 + + + - ; + +set D[N5] : 0 1 := + 0 - + + 1 - + + 2 + + + 3 + - ; + +set D[N6] : 0 1 2 3 := + 0 + + - - + 1 - + + + ; + +set D[N7] : 0 1 := + 0 - + + 1 + + + 2 + - + 3 + - ; + +set D[N8] : 0 1 2 3 := + 0 + + + - + 1 - - + + ; + +set D[P1] : 0 1 := + 0 + + + 1 + + + 2 + - ; + +set D[P2] : 0 1 2 := + 0 + + + + 1 - + + ; + +set D[P3] : 0 1 := + 0 - + + 1 + + + 2 + + ; + +set D[P4] : 0 1 2 := + 0 + + - + 1 + + + ; + +set D[P5] : 0 1 := + 0 + + + 1 + + + 2 - + ; + +set D[P6] : 0 1 2 := + 0 - + + + 1 + + + ; + +set D[P7] : 0 1 := + 0 + - + 1 + + + 2 + + ; + +set D[P8] : 0 1 2 := + 0 + + + + 1 + + - ; + +set D[T1] : 0 1 2 := + 0 + + + + 1 - + - + 2 - + - ; + +set D[T2] : 0 1 2 := + 0 - - + + 1 + + + + 2 - - + ; + +set D[T3] : 0 1 2 := + 0 - + - + 1 - + - + 2 + + + ; + +set D[T4] : 0 1 2 := + 0 + - - + 1 + + + + 2 + - - ; + +set D[U1] : 0 1 2 := + 0 + - + + 1 + + + ; + +set D[U2] : 0 1 := + 0 + + + 1 + - + 2 + + ; + +set D[U3] : 0 1 2 := + 0 + + + + 1 + - + ; + +set D[U4] : 0 1 := + 0 + + + 1 - + + 2 + + ; + +set D[V1] : 0 1 2 := + 0 - - + + 1 - - + + 2 + + + ; + +set D[V2] : 0 1 2 := + 0 + - - + 1 + - - + 2 + + + ; + +set D[V3] : 0 1 2 := + 0 + + + + 1 + - - + 2 + - - ; + +set D[V4] : 0 1 2 := + 0 + + + + 1 - - + + 2 - - + ; + +set D[W1] : 0 1 2 := + 0 - - + + 1 - + + + 2 + + - ; + +set D[W2] : 0 1 2 := + 0 + - - + 1 + + - + 2 - + + ; + +set D[W3] : 0 1 2 := + 0 - + + + 1 + + - + 2 + - - ; + +set D[W4] : 0 1 2 := + 0 + + - + 1 - + + + 2 - - + ; + +set D[X] : 0 1 2 := + 0 - + - + 1 + + + + 2 - + - ; + +set D[Y1] : 0 1 := + 0 + - + 1 + - + 2 + + + 3 + - ; + +set D[Y2] : 0 1 2 3 := + 0 + + + + + 1 - + - - ; + +set D[Y3] : 0 1 := + 0 - + + 1 + + + 2 - + + 3 - + ; + +set D[Y4] : 0 1 2 3 := + 0 - - + - + 1 + + + + ; + +set D[Y5] : 0 1 := + 0 - + + 1 - + + 2 + + + 3 - + ; + +set D[Y6] : 0 1 2 3 := + 0 - + - - + 1 + + + + ; + +set D[Y7] : 0 1 := + 0 + - + 1 + + + 2 + - + 3 + - ; + +set D[Y8] : 0 1 2 3 := + 0 + + + + + 1 - - + - ; + +set D[Z1] : 0 1 2 := + 0 - + + + 1 - + - + 2 + + - ; + +set D[Z2] : 0 1 2 := + 0 + - - + 1 + + + + 2 - - + ; + +set D[Z3] : 0 1 2 := + 0 + + - + 1 - + - + 2 - + + ; + +set D[Z4] : 0 1 2 := + 0 - - + + 1 + + + + 2 + - - ; + +end; diff --git a/resources/3rdparty/glpk-4.57/examples/plan.lp b/resources/3rdparty/glpk-4.65/examples/plan.lp similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/plan.lp rename to resources/3rdparty/glpk-4.65/examples/plan.lp diff --git a/resources/3rdparty/glpk-4.57/examples/plan.mod b/resources/3rdparty/glpk-4.65/examples/plan.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/plan.mod rename to resources/3rdparty/glpk-4.65/examples/plan.mod diff --git a/resources/3rdparty/glpk-4.57/examples/plan.mps b/resources/3rdparty/glpk-4.65/examples/plan.mps similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/plan.mps rename to resources/3rdparty/glpk-4.65/examples/plan.mps diff --git a/resources/3rdparty/glpk-4.65/examples/planarity.mod b/resources/3rdparty/glpk-4.65/examples/planarity.mod new file mode 100644 index 000000000..28d608e42 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/planarity.mod @@ -0,0 +1,109 @@ +/* PLANARITY, Graph Planarity Testing */ + +/* Written in GNU MathProg by Andrew Makhorin */ + +/* Given a graph G = (V, E), where V is a set of vertices and E is + a set of edges (unordered pairs of vertices), this model tests if + G is planar, and if it is, finds its faces for some embedding. + It is assumed that G is loopless and the degree of any its vertex + is at least 2. + + Though there exist linear-time algorithms to test graph planarity, + this MIP feasibility model may be used, for example, to find + an embedding subject to some additional constraints or an "optimal" + embedding. + + This model is based on Mac Lane's planarity characterization that + states that a finite undirected graph is planar iff the cycle space + of the graph (in GF(2)) has a cycle basis in which each edge of the + graph participates in at most two basis vectors. */ + +param nv; +/* number of vertices */ + +set V := 1..nv; +/* set of vertices */ + +set E, within V cross V; +/* set of edges */ + +check{(i,j) in E} i <> j; +/* graph must have no loops */ + +set A := E union setof{(i,j) in E} (j,i); +/* set of arcs, where every edge (i,j) gives two arcs i->j and j->i */ + +check{i in V} sum{(i,j) in A} 1 >= 2; +/* degree of any vertex must be at least 2 */ + +param nf := 2 - nv + card(E); +/* number of faces (including outer face) */ + +set F := 1..nf; +/* set of faces = set of vertices of dual graph */ + +/* Let every face be assigned a unique color. Below we say that arc + i->j has color f if on moving from vertex i to vertex j face f is + located on the left to that arc. (Note that every face is defined + by a cycle mentioned in Mac Lane's characterization. In this model + cycles are constructed explicitly from arcs.) */ + +var x{(i,j) in A, f in F}, binary; +/* x[i,j,f] = 1 means that arc i->j has color f */ + +s.t. r1{(i,j) in A}: sum{f in F} x[i,j,f] = 1; +/* every arc must have exactly one color */ + +s.t. r2{j in V, f in F}: sum{(i,j) in A} x[i,j,f] <= 1; +/* two or more arcs of the same color must not enter the same vertex */ + +s.t. r3{j in V, f in F}: + sum{(i,j) in A} x[i,j,f] = sum{(j,i) in A} x[j,i,f]; +/* if arc of color f enters some vertex, exactly one arc of the same + color must leave that vertex */ + +s.t. r4{(i,j) in E, f in F}: x[i,j,f] + x[j,i,f] <= 1; +/* arcs that correspond to the same edge must have different colors + (to avoid invalid faces i->j->i) */ + +s.t. r5{f in F}: sum{(i,j) in A} x[i,j,f] >= 1; +/* every color must be used at least once */ + +/* this is a feasibility problem, so no objective is needed */ + +solve; + +printf "number of vertices = %d\n", nv; +printf "number of edges = %d\n", card(A) / 2; +printf "number of faces = %d\n", nf; + +for {f in F} +{ printf "face %d:", f; + printf {(i,j) in A: x[i,j,f] = 1} " %d->%d", i, j; + printf "\n"; +} + +data; + +/* The data below correspond to the following (planar) graph: + + 1 - 2 - - 3 - - 4 + | | | + | | | + 5 - 6 | | + | \ | | + | \ | | + 7 - - - - 8 - - 9 - - - - 10- - -11 + | / | \ | | + | / | \ | | + | / | \ | | + | / | \ | | + 12 - - - -13 - - - - - - - 14- - -15 */ + +param nv := 15; + +set E := (1,2) (1,5) (2,3) (3,4) (3,8) (4,9) (5,6) (5,7) (6,8) + (7,8) (7,12) (8,9) (8,12) (8,13) (9,10) (9,14) (10,11) + (10,14) (11,15) (12,13) (13,14) (14,15) ; + +end; diff --git a/resources/3rdparty/glpk-4.65/examples/powpl25h.mod b/resources/3rdparty/glpk-4.65/examples/powpl25h.mod new file mode 100644 index 000000000..bdeefb9c3 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/powpl25h.mod @@ -0,0 +1,203 @@ +/* Power plant LP scheduler, example data with 25hrs for daylightsavings */ + +/* Implemented, inspected, written and converted to GNU MathProg + by NASZVADI, Peter, 199x-2017 */ + +/* + Fast electric power plant scheduler implementation based on new + results in author's Thesis. + + The base problem is: + * given some power plants + * a short time scale partitioned to equidistant intervals + * the task is to yielding the cheapest schedule for the plants + * the daily demand forecast is usually accurate and part of the input + + The power plants has technical limitations: + * upper and lower bounds of produced energy + * and also a gradient barrier in both directions + (can depend on time, but this GMPL implementation is simplified) + * Also units with same properties (technical and price) should be + scheduled together usually with near same performance values + * Assumed a simplified network topology, which is contractive, so + keeping Kirchhoff's laws is a necessary constraint too + * All solutions must be integer + + The LP relaxation is equivalent with the MIP problem due to the + model's matrix interesting property: it is Totally Unimodular + (proven in 2004 by author) and also a Network Matrix (2006, + presented at OTDK 2016, Szeged, Hungary) so: + * it is strictly polynomial if it is solved by most simplex algs + * all base solutions become integer if the RHS vector is integer + (it is in real life, so this is an acceptable assumption) + * The transposed matrix is NOT a Network Matrix in most cases! + + However, adding several other constraints easily turns the problem + to be NP-hard, which is also pinpointed and discussed in the Thesis. + + See more about electric power plants' scheduling in the + author's Thesis (in Hungarian): + http://www.cs.elte.hu/matdiploma/vuk.pdf + + It is possible to run with custom parameters, what is needed + to define is: + * TIME set (daylightsaving cases or other than hour intervals) + * PLANTS set (the 'Demand' is mandatory and usually negative) + * PRICE parameter (can be negative if energy is sold to a consumer) + * BOUND parameter (technical bounds) + * MAXGRAD parameter (technical bounds) + + Then generate a pretty-printed solution by typing: + glpsol --math powpl25h.mod +*/ + +set TIME, default { + '00:00', '01:00', '02:00', '03:00', '04:00', + '05:00', '06:00', '07:00', '08:00', '09:00', + '10:00', '11:00', '12:00', '13:00', '14:00', + '15:00', '16:00', '17:00', '18:00', '19:00', + '20:00', '21:00', '22:00', '23:00', '24:00' +}; +/* Time labels, assumed natural ordering. daylightsaving's bias + can be inserted p.ex. in Central Europe like: + ... '01:00', '02:00', '02:00b', '03:00', ... */ + +set TADJ := setof{(r, s) in TIME cross TIME: r < s}(r, s) diff + setof{(t, u, v) in TIME cross TIME cross TIME: t < u and u < v}(t, v); +/* Tricky adjacent time label generator because GMPL lacks order determination + of set elements (except intervals composed of equidistant numbers) */ + +set PLANTS, default {'Demand'}; +/* Demand is a promoted, mandatory one, usually filled + with negative MW values in data section */ + +set DIRECTION, default {'Up', 'Down'}; +/* All possible directions of gradients, do not touch */ + +param MAXINT, default 10000; +/* A "macro" for bounding absolute value of all used numbers + and used as default value */ + +param PRICE{PLANTS}, default MAXINT; +/* Should be specified in data section, self-explanatory. + can be negative if there are energy buyers */ + +param BOUND{(p, t, d) in PLANTS cross TIME cross DIRECTION}, + default if t = '00:00' then if d = 'Down' then BOUND[p, t, 'Up'] else 0 else + if p <> 'Demand' or d = 'Up' then sum{(u, v) in TADJ: v = t} BOUND[p, u, d] + else BOUND[p, t, 'Up']; +/* Obvious, technical bounds of each power plant unit (real or virtual like + 'Demand'). If some parts are not given in data section, calculated + from preceeding values. Also for time '00:00', its 'Down' values by + default are the same as denoted with 'Up' */ + +param MAXGRAD{(p, d) in PLANTS cross DIRECTION}, default MAXINT; +/* Usually nonnegative integer, might differ in distinct directions per unit + in the cited thesis, it is allowed to gradient bounds to depend on time, + but this is a simplified model */ + +var x{(t, p) in TIME cross PLANTS}, <= BOUND[p, t, 'Up'], >= BOUND[p, t, 'Down']; +/* The schedule, dimension is MW */ + +s.t. kirchhoff{t in TIME: t <> '00:00'}: sum{p in PLANTS} x[t, p] = 0; +/* Conservative property */ + +s.t. gradient{(p, t, u) in PLANTS cross TADJ}: + -MAXGRAD[p, 'Down'] <= x[t, p] - x[u, p] <= MAXGRAD[p, 'Up']; +/* Technical limitations, each unit usually cannot change performance + arbitrarily in a short time, so limited in both directions per time unit*/ + +minimize obj: sum{(t, p) in TIME cross PLANTS}(x[t, p] * PRICE[p]); +/* The objective is the cost of the schedule */ + +solve; + +/* Pretty print solution in table */ + +printf '+--------+'; +for{p in PLANTS}{ + printf '-% 6s-+', '------'; +} +printf '\n'; +printf '|%7s |', ' '; +for{p in PLANTS}{ + printf ' % 6s |', p; +} +printf '\n'; +printf '+--------+'; +for{p in PLANTS}{ + printf '-% 6s-+', '------'; +} +printf '\n'; +for{t in TIME}{ + printf '|%7s |', t; + for{p in PLANTS}{ + printf ' % 6s |', x[t, p].val; + } + printf '\n'; +} +printf '+--------+'; +for{p in PLANTS}{ + printf '-% 6s-+', '------'; +} +printf '\n'; + +data; + +set TIME := + '00:00', '01:00', '02:00', '02:00b', '03:00', '04:00', + '05:00', '06:00', '07:00', '08:00', '09:00', + '10:00', '11:00', '12:00', '13:00', '14:00', + '15:00', '16:00', '17:00', '18:00', '19:00', + '20:00', '21:00', '22:00', '23:00', '24:00'; + +/* + Generated random default values and names, the demand is the sum of + 2 sinewaves. + Also specified a treshold for nuclear plants from 15:00 till 19:00 + The sun is shining only morning and in the afternoon: 07:00-18:00, so + solar plant cannot produce electric energy after sunset. + + Only touch this section, or export it to a data file! +*/ + +set PLANTS 'Demand', 'Atom1', 'Atom2', 'Coal', 'Gas1', 'Gas2', 'Green', 'Oil', 'Solar', 'Dam'; + +param PRICE := + 'Demand' 0 + 'Atom1' 2 + 'Atom2' 2 + 'Coal' 15.6 + 'Gas1' 12 + 'Gas2' 11.5 + 'Green' 8.8 + 'Oil' 23.3 + 'Solar' 7.6 + 'Dam' 3; +/* price per MW */ + +param BOUND := + [*, *, 'Up'] (tr): 'Atom1' 'Atom2' 'Coal' 'Gas1' 'Gas2' 'Green' 'Oil' 'Solar' 'Dam' := + '00:00' 240 240 100 150 150 20 90 0 20 + '01:00' 240 240 155 192 208 35 230 0 20 + [*, *, 'Up'] (tr): 'Atom1' 'Atom2' := + '15:00' 200 200 + '19:00' 235 235 + [*, *, 'Up'] (tr): 'Solar' := + '07:00' 20 + '18:00' 0 + [*, *, 'Down'] (tr): 'Atom1' 'Atom2' 'Coal' 'Gas1' 'Gas2' 'Green' 'Oil' 'Solar' 'Dam' := + '01:00' 100 100 50 62 68 0 75 0 20 + [*, *, 'Up'] : '01:00' '02:00' '02:00b' '03:00' '04:00' '05:00' '06:00' '07:00' '08:00' := + 'Demand' -868 -851 -842 -837 -791 -887 -912 -1046 -1155 + [*, *, 'Up'] : '09:00' '10:00' '11:00' '12:00' '13:00' '14:00' '15:00' '16:00' := + 'Demand' -945 -873 -797 -990 -1241 -1134 -815 -782 + [*, *, 'Up'] : '17:00' '18:00' '19:00' '20:00' '21:00' '22:00' '23:00' '24:00' := + 'Demand' -772 -827 -931 -1105 -1215 -1249 -1183 -952; + +param MAXGRAD (tr) + : 'Atom1' 'Atom2' 'Coal' 'Gas1' 'Gas2' 'Green' 'Oil' 'Solar' 'Dam' := + 'Up' 30 30 35 89 95 5 56 2 4 + 'Down' 30 30 45 96 102 5 56 2 4; + +end; diff --git a/resources/3rdparty/glpk-4.65/examples/powplant.mod b/resources/3rdparty/glpk-4.65/examples/powplant.mod new file mode 100644 index 000000000..3b5d73e32 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/powplant.mod @@ -0,0 +1,200 @@ +/* Power plant LP scheduler */ + +/* Implemented, inspected, written and converted to GNU MathProg + by NASZVADI, Peter, 199x-2017 */ + +/* + Fast electric power plant scheduler implementation based on new + results in author's Thesis. + + The base problem is: + * given some power plants + * a short time scale partitioned to equidistant intervals + * the task is to yielding the cheapest schedule for the plants + * the daily demand forecast is usually accurate and part of the input + + The power plants has technical limitations: + * upper and lower bounds of produced energy + * and also a gradient barrier in both directions + (can depend on time, but this GMPL implementation is simplified) + * Also units with same properties (technical and price) should be + scheduled together usually with near same performance values + * Assumed a simplified network topology, which is contractive, so + keeping Kirchhoff's laws is a necessary constraint too + * All solutions must be integer + + The LP relaxation is equivalent with the MIP problem due to the + model's matrix interesting property: it is Totally Unimodular + (proven in 2004 by author) and also a Network Matrix (2006, + presented at OTDK 2016, Szeged, Hungary) so: + * it is strictly polynomial if it is solved by most simplex algs + * all base solutions become integer if the RHS vector is integer + (it is in real life, so this is an acceptable assumption) + * The transposed matrix is NOT a Network Matrix in most cases! + + However, adding several other constraints easily turns the problem + to be NP-hard, which is also pinpointed and discussed in the Thesis. + + See more about electric power plants' scheduling in the + author's Thesis (in Hungarian): + http://www.cs.elte.hu/matdiploma/vuk.pdf + + It is possible to run with custom parameters, what is needed + to define is: + * TIME set (daylightsaving cases or other than hour intervals) + * PLANTS set (the 'Demand' is mandatory and usually negative) + * PRICE parameter (can be negative if energy is sold to a consumer) + * BOUND parameter (technical bounds) + * MAXGRAD parameter (technical bounds) + + Then generate a pretty-printed solution by typing: + glpsol --math powplant.mod [--data NEW_DATA.dat] + + where "NEW_DATA.dat" should contain the above 5 structures filled + with custom data. Square brackets shoudn't be entered, and specifying + custom data file is optional. +*/ + +set TIME, default { + '00:00', '01:00', '02:00', '03:00', '04:00', + '05:00', '06:00', '07:00', '08:00', '09:00', + '10:00', '11:00', '12:00', '13:00', '14:00', + '15:00', '16:00', '17:00', '18:00', '19:00', + '20:00', '21:00', '22:00', '23:00', '24:00' +}; +/* Time labels, assumed natural ordering. daylightsaving's bias + can be inserted p.ex. in Central Europe like: + ... '01:00', '02:00', '02:00b', '03:00', ... */ + +set TADJ := setof{(r, s) in TIME cross TIME: r < s}(r, s) diff + setof{(t, u, v) in TIME cross TIME cross TIME: t < u and u < v}(t, v); +/* Tricky adjacent time label generator because GMPL lacks order determination + of set elements (except intervals composed of equidistant numbers) */ + +set PLANTS, default {'Demand'}; +/* Demand is a promoted, mandatory one, usually filled + with negative MW values in data section */ + +set DIRECTION, default {'Up', 'Down'}; +/* All possible directions of gradients, do not touch */ + +param MAXINT, default 10000; +/* A "macro" for bounding absolute value of all used numbers + and used as default value */ + +param PRICE{PLANTS}, default MAXINT; +/* Should be specified in data section, self-explanatory. + can be negative if there are energy buyers */ + +param BOUND{(p, t, d) in PLANTS cross TIME cross DIRECTION}, + default if t = '00:00' then if d = 'Down' then BOUND[p, t, 'Up'] else 0 else + if p <> 'Demand' or d = 'Up' then sum{(u, v) in TADJ: v = t} BOUND[p, u, d] + else BOUND[p, t, 'Up']; +/* Obvious, technical bounds of each power plant unit (real or virtual like + 'Demand'). If some parts are not given in data section, calculated + from preceeding values. Also for time '00:00', its 'Down' values by + default are the same as denoted with 'Up' */ + +param MAXGRAD{(p, d) in PLANTS cross DIRECTION}, default MAXINT; +/* Usually nonnegative integer, might differ in distinct directions per unit + in the cited thesis, it is allowed to gradient bounds to depend on time, + but this is a simplified model */ + +var x{(t, p) in TIME cross PLANTS}, <= BOUND[p, t, 'Up'], >= BOUND[p, t, 'Down']; +/* The schedule, dimension is MW */ + +s.t. kirchhoff{t in TIME: t <> '00:00'}: sum{p in PLANTS} x[t, p] = 0; +/* Conservative property */ + +s.t. gradient{(p, t, u) in PLANTS cross TADJ}: + -MAXGRAD[p, 'Down'] <= x[t, p] - x[u, p] <= MAXGRAD[p, 'Up']; +/* Technical limitations, each unit usually cannot change performance + arbitrarily in a short time, so limited in both directions per time unit*/ + +minimize obj: sum{(t, p) in TIME cross PLANTS}(x[t, p] * PRICE[p]); +/* The objective is the cost of the schedule */ + +solve; + +/* Pretty print solution in table */ + +printf '+--------+'; +for{p in PLANTS}{ + printf '-% 6s-+', '------'; +} +printf '\n'; +printf '|%7s |', ' '; +for{p in PLANTS}{ + printf ' % 6s |', p; +} +printf '\n'; +printf '+--------+'; +for{p in PLANTS}{ + printf '-% 6s-+', '------'; +} +printf '\n'; +for{t in TIME}{ + printf '|%7s |', t; + for{p in PLANTS}{ + printf ' % 6s |', x[t, p].val; + } + printf '\n'; +} +printf '+--------+'; +for{p in PLANTS}{ + printf '-% 6s-+', '------'; +} +printf '\n'; + +data; + +/* + Generated random default values and names, the demand is the sum of + 2 sinewaves. + Also specified a treshold for nuclear plants from 15:00 till 19:00 + The sun is shining only morning and in the afternoon: 07:00-18:00, so + solar plant cannot produce electric energy after sunset. + + Only touch this section, or export it to a data file! +*/ + +set PLANTS 'Demand', 'Atom1', 'Atom2', 'Coal', 'Gas1', 'Gas2', 'Green', 'Oil', 'Solar', 'Dam'; + +param PRICE := + 'Demand' 0 + 'Atom1' 2 + 'Atom2' 2 + 'Coal' 15.6 + 'Gas1' 12 + 'Gas2' 11.5 + 'Green' 8.8 + 'Oil' 23.3 + 'Solar' 7.6 + 'Dam' 3; +/* price per MW */ + +param BOUND := + [*, *, 'Up'] (tr): 'Atom1' 'Atom2' 'Coal' 'Gas1' 'Gas2' 'Green' 'Oil' 'Solar' 'Dam' := + '00:00' 240 240 100 150 150 20 90 0 20 + '01:00' 240 240 155 192 208 35 230 0 20 + [*, *, 'Up'] (tr): 'Atom1' 'Atom2' := + '15:00' 200 200 + '19:00' 235 235 + [*, *, 'Up'] (tr): 'Solar' := + '07:00' 20 + '18:00' 0 + [*, *, 'Down'] (tr): 'Atom1' 'Atom2' 'Coal' 'Gas1' 'Gas2' 'Green' 'Oil' 'Solar' 'Dam' := + '01:00' 100 100 50 62 68 0 75 0 20 + [*, *, 'Up'] : '01:00' '02:00' '03:00' '04:00' '05:00' '06:00' '07:00' '08:00' := + 'Demand' -868 -851 -837 -791 -887 -912 -1046 -1155 + [*, *, 'Up'] : '09:00' '10:00' '11:00' '12:00' '13:00' '14:00' '15:00' '16:00' := + 'Demand' -945 -873 -797 -990 -1241 -1134 -815 -782 + [*, *, 'Up'] : '17:00' '18:00' '19:00' '20:00' '21:00' '22:00' '23:00' '24:00' := + 'Demand' -772 -827 -931 -1105 -1215 -1249 -1183 -952; + +param MAXGRAD (tr) + : 'Atom1' 'Atom2' 'Coal' 'Gas1' 'Gas2' 'Green' 'Oil' 'Solar' 'Dam' := + 'Up' 30 30 35 89 95 5 56 2 4 + 'Down' 30 30 45 96 102 5 56 2 4; + +end; diff --git a/resources/3rdparty/glpk-4.57/examples/prod.mod b/resources/3rdparty/glpk-4.65/examples/prod.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/prod.mod rename to resources/3rdparty/glpk-4.65/examples/prod.mod diff --git a/resources/3rdparty/glpk-4.57/examples/qfit.mod b/resources/3rdparty/glpk-4.65/examples/qfit.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/qfit.mod rename to resources/3rdparty/glpk-4.65/examples/qfit.mod diff --git a/resources/3rdparty/glpk-4.57/examples/queens.mod b/resources/3rdparty/glpk-4.65/examples/queens.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/queens.mod rename to resources/3rdparty/glpk-4.65/examples/queens.mod diff --git a/resources/3rdparty/glpk-4.57/examples/samp1.mps b/resources/3rdparty/glpk-4.65/examples/samp1.mps similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/samp1.mps rename to resources/3rdparty/glpk-4.65/examples/samp1.mps diff --git a/resources/3rdparty/glpk-4.57/examples/samp2.mps b/resources/3rdparty/glpk-4.65/examples/samp2.mps similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/samp2.mps rename to resources/3rdparty/glpk-4.65/examples/samp2.mps diff --git a/resources/3rdparty/glpk-4.57/examples/sample.asn b/resources/3rdparty/glpk-4.65/examples/sample.asn similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sample.asn rename to resources/3rdparty/glpk-4.65/examples/sample.asn diff --git a/resources/3rdparty/glpk-4.57/examples/sample.c b/resources/3rdparty/glpk-4.65/examples/sample.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sample.c rename to resources/3rdparty/glpk-4.65/examples/sample.c diff --git a/resources/3rdparty/glpk-4.57/examples/sample.clq b/resources/3rdparty/glpk-4.65/examples/sample.clq similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sample.clq rename to resources/3rdparty/glpk-4.65/examples/sample.clq diff --git a/resources/3rdparty/glpk-4.57/examples/sample.cnf b/resources/3rdparty/glpk-4.65/examples/sample.cnf similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sample.cnf rename to resources/3rdparty/glpk-4.65/examples/sample.cnf diff --git a/resources/3rdparty/glpk-4.57/examples/sample.col b/resources/3rdparty/glpk-4.65/examples/sample.col similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sample.col rename to resources/3rdparty/glpk-4.65/examples/sample.col diff --git a/resources/3rdparty/glpk-4.57/examples/sample.max b/resources/3rdparty/glpk-4.65/examples/sample.max similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sample.max rename to resources/3rdparty/glpk-4.65/examples/sample.max diff --git a/resources/3rdparty/glpk-4.57/examples/sample.min b/resources/3rdparty/glpk-4.65/examples/sample.min similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sample.min rename to resources/3rdparty/glpk-4.65/examples/sample.min diff --git a/resources/3rdparty/glpk-4.57/examples/sat.mod b/resources/3rdparty/glpk-4.65/examples/sat.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sat.mod rename to resources/3rdparty/glpk-4.65/examples/sat.mod diff --git a/resources/3rdparty/glpk-4.57/examples/shiftcov.mod b/resources/3rdparty/glpk-4.65/examples/shiftcov.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/shiftcov.mod rename to resources/3rdparty/glpk-4.65/examples/shiftcov.mod diff --git a/resources/3rdparty/glpk-4.57/examples/shikaku.mod b/resources/3rdparty/glpk-4.65/examples/shikaku.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/shikaku.mod rename to resources/3rdparty/glpk-4.65/examples/shikaku.mod diff --git a/resources/3rdparty/glpk-4.57/examples/sorting.mod b/resources/3rdparty/glpk-4.65/examples/sorting.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sorting.mod rename to resources/3rdparty/glpk-4.65/examples/sorting.mod diff --git a/resources/3rdparty/glpk-4.57/examples/spp.mod b/resources/3rdparty/glpk-4.65/examples/spp.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/spp.mod rename to resources/3rdparty/glpk-4.65/examples/spp.mod diff --git a/resources/3rdparty/glpk-4.57/examples/spxsamp1.c b/resources/3rdparty/glpk-4.65/examples/spxsamp1.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/spxsamp1.c rename to resources/3rdparty/glpk-4.65/examples/spxsamp1.c diff --git a/resources/3rdparty/glpk-4.57/examples/spxsamp2.c b/resources/3rdparty/glpk-4.65/examples/spxsamp2.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/spxsamp2.c rename to resources/3rdparty/glpk-4.65/examples/spxsamp2.c diff --git a/resources/3rdparty/glpk-4.57/examples/sql/README b/resources/3rdparty/glpk-4.65/examples/sql/README similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sql/README rename to resources/3rdparty/glpk-4.65/examples/sql/README diff --git a/resources/3rdparty/glpk-4.57/examples/sql/mysql_setup.sh b/resources/3rdparty/glpk-4.65/examples/sql/mysql_setup.sh similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sql/mysql_setup.sh rename to resources/3rdparty/glpk-4.65/examples/sql/mysql_setup.sh diff --git a/resources/3rdparty/glpk-4.57/examples/sql/sudoku.sql b/resources/3rdparty/glpk-4.65/examples/sql/sudoku.sql similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sql/sudoku.sql rename to resources/3rdparty/glpk-4.65/examples/sql/sudoku.sql diff --git a/resources/3rdparty/glpk-4.57/examples/sql/sudoku_mysql.mod b/resources/3rdparty/glpk-4.65/examples/sql/sudoku_mysql.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sql/sudoku_mysql.mod rename to resources/3rdparty/glpk-4.65/examples/sql/sudoku_mysql.mod diff --git a/resources/3rdparty/glpk-4.57/examples/sql/sudoku_odbc.mod b/resources/3rdparty/glpk-4.65/examples/sql/sudoku_odbc.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sql/sudoku_odbc.mod rename to resources/3rdparty/glpk-4.65/examples/sql/sudoku_odbc.mod diff --git a/resources/3rdparty/glpk-4.57/examples/sql/transp.sql b/resources/3rdparty/glpk-4.65/examples/sql/transp.sql similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sql/transp.sql rename to resources/3rdparty/glpk-4.65/examples/sql/transp.sql diff --git a/resources/3rdparty/glpk-4.57/examples/sql/transp_mysql.mod b/resources/3rdparty/glpk-4.65/examples/sql/transp_mysql.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sql/transp_mysql.mod rename to resources/3rdparty/glpk-4.65/examples/sql/transp_mysql.mod diff --git a/resources/3rdparty/glpk-4.57/examples/sql/transp_odbc.mod b/resources/3rdparty/glpk-4.65/examples/sql/transp_odbc.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sql/transp_odbc.mod rename to resources/3rdparty/glpk-4.65/examples/sql/transp_odbc.mod diff --git a/resources/3rdparty/glpk-4.57/examples/stigler.mod b/resources/3rdparty/glpk-4.65/examples/stigler.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/stigler.mod rename to resources/3rdparty/glpk-4.65/examples/stigler.mod diff --git a/resources/3rdparty/glpk-4.57/examples/sudoku.dat b/resources/3rdparty/glpk-4.65/examples/sudoku.dat similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sudoku.dat rename to resources/3rdparty/glpk-4.65/examples/sudoku.dat diff --git a/resources/3rdparty/glpk-4.57/examples/sudoku.mod b/resources/3rdparty/glpk-4.65/examples/sudoku.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/sudoku.mod rename to resources/3rdparty/glpk-4.65/examples/sudoku.mod diff --git a/resources/3rdparty/glpk-4.57/examples/t1.cs b/resources/3rdparty/glpk-4.65/examples/t1.cs similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/t1.cs rename to resources/3rdparty/glpk-4.65/examples/t1.cs diff --git a/resources/3rdparty/glpk-4.57/examples/tas.mod b/resources/3rdparty/glpk-4.65/examples/tas.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tas.mod rename to resources/3rdparty/glpk-4.65/examples/tas.mod diff --git a/resources/3rdparty/glpk-4.65/examples/threads/Build_Multiseed.bat b/resources/3rdparty/glpk-4.65/examples/threads/Build_Multiseed.bat new file mode 100644 index 000000000..34dd95f60 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/threads/Build_Multiseed.bat @@ -0,0 +1,12 @@ +rem Build GLPK DLL with Microsoft Visual Studio Community 2015 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC" + +call %HOME%\vcvarsall.bat x64 +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC +set PATH=..\..\w64\ +%HOME%\bin\nmake.exe /f Makefile_VC check + +pause diff --git a/resources/3rdparty/glpk-4.65/examples/threads/Makefile b/resources/3rdparty/glpk-4.65/examples/threads/Makefile new file mode 100644 index 000000000..61063d360 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/threads/Makefile @@ -0,0 +1,5 @@ +all: + gcc multiseed.c -I. -lglpk -pthread -o multiseed + +check: + ./multiseed clustering.mod 20 diff --git a/resources/3rdparty/glpk-4.65/examples/threads/Makefile_VC b/resources/3rdparty/glpk-4.65/examples/threads/Makefile_VC new file mode 100644 index 000000000..5bb817941 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/threads/Makefile_VC @@ -0,0 +1,26 @@ +## Build multiseed example with Microsoft Visual Studio Express ## + +CFLAGS = \ +/I. \ +/I..\..\src \ +/I..\..\w64 \ +/DHAVE_CONFIG_H=1 \ +/D_CRT_SECURE_NO_WARNINGS=1 \ +/nologo \ +/W3 \ +/O2 \ +/Zi + +.c.obj: + cl.exe $(CFLAGS) /Fo$*.obj /c $*.c + +all: multiseed.exe + +multiseed.exe: multiseed.obj ..\..\w64\glpk_4_61.dll + cl.exe $(CFLAGS) /Fmultiseed.exe \ + multiseed.obj ..\..\w64\glpk_4_61.lib + +check: multiseed.exe + .\multiseed.exe clustering.mod 20 + +## eof ## diff --git a/resources/3rdparty/glpk-4.65/examples/threads/README b/resources/3rdparty/glpk-4.65/examples/threads/README new file mode 100644 index 000000000..cb547f0ed --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/threads/README @@ -0,0 +1,66 @@ +Thread local memory example +=========================== + +The GLPK library, when compiled with default options, uses a separate environment +for each thread that is executed. So each thread is isolated. The only exeption +is error handling. An error in any of the library functions will not only +terminate the active thread but the complete process. + +This can be circumvented by defining an error handling routine with +glp_error_hook(). This directory contains an example demonstrating running a +multithreaded application with error handling. + + +The example code +---------------- + +The program multiseed solves a MathProg model multiple times in separate parallel +threads. Each threads uses a different seed for the MathProg pseudo random number +generator. + +The MathProg model clustering.mod generates 50 randomly distributed "towns". Out +of the towns it selects 3 to be cluster centers and assign the other towns to the +clusters such that the sum of the population weighted euclidian distances between +towns and centers is minimized. + +The solution is written to a Scalable Vector File which can be viewed with a web +browser. + +For demonstration purposes at the end of every third thread the error handling +routine is triggered by calling glp_error(). This results in output like + + 18-00086 Model has been successfully processed + 18-00087 Voluntarily throwing an error in multiseed.c at line 147 + 18-00088 Error detected in file multiseed.c at line 146 + 18-00089 Error caught + +Terminal output is preceeded by numbers indicating the thread index and the +output line. You can pipe it through sort to get a better overiew, e.g. + + multiseed clustering.mod 20 | sort + + +Building and running the example code +------------------------------------- + +On Linux multiseed can be compiled with gcc by calling + + make + +The code can be executed with + + make check + +For compiling the example on 64bit Windows with Microsoft Visual Studio C++ run + + Build_Multiseed.bat + +You may have to adust the variable HOME in the batch file depending on the +installation path of Visual Studio. + +You can run multiseed with + + multiseed + +Where filename is the path to the model file and count is the number of parallel +threads. diff --git a/resources/3rdparty/glpk-4.65/examples/threads/clustering.mod b/resources/3rdparty/glpk-4.65/examples/threads/clustering.mod new file mode 100644 index 000000000..cd8cd372e --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/threads/clustering.mod @@ -0,0 +1,109 @@ +/* + * Author: Heinrich Schuchardt + * + * This model solves a clustering problem: + * + * Out of 50 towns select 3 to be cluster centers and assign the other + * towns to the clusters such that the sum of the population weighted + * euclidian distances between towns and centers is minimized. + * + * The solution is saved as a scalable vector graphic file with a + * pseudo-random file name. + */ + +# Output file +param fn, symbolic := "00000" & 100000 * Uniform01(); +param f, symbolic := "ct" & substr(fn, length(fn) - 4) & ".svg"; + +# Centers +param nc := 3; +set C := {1 .. nc}; + +# Towns +param nt := 50; +set T := {1 .. nt}; +param xt{T} := Uniform01(); +param yt{T} := Uniform01(); +param pt{T} := ceil(1000 * Uniform01()); + +# Image size +param scale := 1000; + +# Colors +# saturation [0, 255] +param sat := 192; +param hue{c in C} := 6 * (c - 1) / nc; +param red{c in C} := + if hue[c] <= 1 or hue[c] >= 5 then 255 + else (if hue[c] >=2 and hue[c] <= 4 then 255 - sat + else (if hue[c] <=2 then 255 - sat + sat * (2-hue[c]) + else 255 - sat + sat * (hue[c]-4) )); +param green{c in C} := + if hue[c] >= 1 and hue[c] <= 3 then 255 + else (if hue[c] >= 4 then 255 - sat + else (if hue[c] <=1 then 255 - sat + sat * hue[c] + else 255 - sat + sat * (4-hue[c]) )); +param blue{c in C} := + if hue[c] >= 3 and hue[c] <= 5 then 255 + else (if hue[c] <=2 then 255 - sat + else (if hue[c] <=3 then 255 - sat + sat * (hue[c]-2) + else 255 - sat + sat * (6-hue[c]) )); + +var x{T}; +var y{T,T}, binary; + +minimize obj : sum{c in T, t in T} y[c,t] * pt[t] + * sqrt((xt[c] - xt[t])^2 + (yt[c] - yt[t])^2); + +s.t. sumx : sum{c in T} x[c] = nc; +s.t. cxy{c in T, t in T} : y[c,t] <= x[c]; +s.t. sumy{t in T} : sum{c in T} y[c,t] = 1; + +solve; + +for {c in T : x[c] > .5} { + printf "Center %5.4f %5.4f\n", xt[c], yt[c]; + for {t in T : y[c,t] > .5} { + printf " Town %5.4f %5.4f (%5.0f)\n", xt[t], yt[t], pt[t]; + } +} + +# Output the solution as scalable vector graphic + +# header +printf "\n" > f; +printf "> f; +printf """http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"">\n" >> f; +printf "> f; +printf "xmlns=""http://www.w3.org/2000/svg"">\n" >> f; + +# background +printf "\n", + 1.2 * scale, 1.2 * scale>> f; + +# border +printf "\n", + .1 * scale, .1 * scale, scale, scale >> f; + +# circles for towns +for {t in T} + printf {s in T, c in C : y[s,t] > .5 + && c = floor( .5 + sum{u in T : u <= s} x[u])} + "\n", + (.1 + xt[t]) * scale, (.1 + yt[t]) * scale, .001 * sqrt(pt[t]) * scale, + red[c], green[c] , blue[c] >> f; + +# lines from towns to assigned centers +for {t in T, c in T : y[c,t] > .5} + printf "\n", + (.1 + xt[c]) * scale, (.1 + yt[c]) * scale, + (.1 + xt[t]) * scale, (.1 + yt[t]) * scale >> f; + +printf "\n" >> f; + +end; diff --git a/resources/3rdparty/glpk-4.65/examples/threads/multiseed.c b/resources/3rdparty/glpk-4.65/examples/threads/multiseed.c new file mode 100644 index 000000000..9f8727a34 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/threads/multiseed.c @@ -0,0 +1,259 @@ +/* multiseed.c (multithreading demo) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Author: Heinrich Schuchardt +* +* Copyright (C) 2017 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +/* + * This program demonstrates running the GLPK library with multiple threads. + * + * When called the program requires two arguments: + * + * filename - the name of the MathProg model to be solved + * threads - the count of parallel threads to be run. + * + * Each thread is run with a different seed for the random number generator + * provided by the GLPK library. + */ + +#include +#include +#include +#include +#include +#include + +#include "thread.h" + +#define BUFLEN 256 + +/* Task descriptor */ +struct task { + pthread_t tid; + char *filename; + int seed; + size_t pos; + char buf[BUFLEN + 1]; + int line; + jmp_buf jmp; +}; + +/* Mutex for console output */ +pthread_mutex_t mutex; + +/* Console output handler */ +int term_hook(void *info, const char *text) +{ + struct task *task = (struct task *) info; + size_t len = strlen(text); + + /* Lock mutex so this is the only task creating console output. */ + pthread_mutex_lock(&mutex); + + /* Append the new text to the buffer. */ + if (task->pos + len > BUFLEN) { + printf("%02d-%05d %s%s", task->seed, ++task->line, task->buf, text); + task->pos = 0; + task->buf[0] = 0; + } else { + strcpy(task->buf + task->pos, text); + task->pos += len; + } + + /* If a complete line is available, send it to the console. */ + if (strchr(task->buf, '\n')) { + printf("%02d-%05d %s", task->seed, ++task->line, task->buf); + task->pos = 0; + task->buf[0] = 0; + } + + /* Unlock the mutex. */ + pthread_mutex_unlock(&mutex); + + /* Disable default output. */ + return -1; +} + +/* Error handler */ +void error_hook(void *info) +{ + struct task *task = (struct task *) info; + + term_hook(task, "Error caught\n"); + glp_free_env(); + longjmp(task->jmp, 1); +} + +void worker(void *arg) +{ + struct task *task = (struct task *) arg; + int ret; + glp_prob *lp; + glp_tran *tran; + glp_iocp iocp; + + if (setjmp(task->jmp)) { + /* If an error is caught leave the function. */ + return; + } + + /* Set the error handler. */ + glp_error_hook(error_hook, task); + + /* Set the console output handler. */ + glp_term_hook(term_hook, arg); + + glp_printf("Seed %02d\n", task->seed); + + /* Create the problem object. */ + lp = glp_create_prob(); + if (!lp) { + glp_error("Out of memory\n"); + } + + /* Create the MathProg translator workspace. */ + tran = glp_mpl_alloc_wksp(); + if (!lp) { + glp_error("Out of memory\n"); + } + + /* Set the pseudo random number generator seed. */ + glp_mpl_init_rand(tran, task->seed); + + /* Read the model file. */ + ret = glp_mpl_read_model (tran, task->filename, GLP_OFF); + if (ret != 0) { + glp_error("Model %s is not valid\n", task->filename); + } + + /* Generate the model. */ + ret = glp_mpl_generate(tran, NULL); + if (ret != 0) { + glp_error("Cannot generate model %s\n", task->filename); + } + + /* Build the problem. */ + glp_mpl_build_prob(tran, lp); + + /* Solve the problem. */ + glp_init_iocp(&iocp); + iocp.presolve = GLP_ON; + ret = glp_intopt(lp, &iocp); + if (ret == 0) { + /* Execute the post solve part of the model. */ + glp_mpl_postsolve(tran, lp, GLP_MIP); + } + + /* Release the memory. */ + glp_mpl_free_wksp (tran); + glp_delete_prob(lp); + + if (0 == task->seed % 3) { + glp_error("Voluntarily throwing an error in %s at line %d\n", + __FILE__, __LINE__); + } + + glp_term_hook(NULL, NULL); + + glp_error_hook(NULL, NULL); + + glp_free_env(); +} + +#ifdef __WOE__ +DWORD run(void *arg) +{ +#else +void *run(void *arg) +{ +#endif + worker(arg); + pthread_exit(NULL); +} + +int main(int argc, char *argv[]) +{ + int i, n, rc; + struct task *tasks; + + /* Make sure thread local memory is used by the GLPK library. */ + if (!glp_config("TLS")) { + printf("The loaded GLPK library does not support thread local memory.\n" + "You need a version of the library configured with " + "--enable-reentrant=yes to run this program.\n"); + exit(EXIT_FAILURE); + } + + /* Check program arguments. */ + if (argc != 3) { + printf("Usage %s filename threads\n" + " filename - MathProg model file\n" + " threads - number of threads\n", + argv[0]); + exit(EXIT_FAILURE); + } + + /* Parse the arguments. */ + n = atoi(argv[2]); + if (n > 50) { + printf("Number of threads is to high (> 50).\n"); + exit(EXIT_FAILURE); + } + if (n <= 1) { + printf("Need positive number of threads\n"); + exit(EXIT_FAILURE); + } + + /* Allocate memory for the task descriptors. */ + tasks = calloc(n, sizeof(struct task)); + if (!tasks) { + printf("Out of memory"); + exit(EXIT_FAILURE); + } + + /* Create a mutex for console output. */ + pthread_mutex_init(&mutex, NULL); + + /* Create the threads. */ + for (i = 0; i < n; ++i) { + tasks[i].filename = argv[1]; + tasks[i].seed = i + 1; + tasks[i].pos = 0; + tasks[i].buf[0] = 0; + tasks[i].line = 0; + rc = pthread_create(&tasks[i].tid, NULL, run, &tasks[i]); + if (rc) { + printf("ERROR; return code from pthread_create() is %d\n", rc); + exit(EXIT_FAILURE); + } + } + + /* Wait for all threads to complete. */ + for (i = 0; i < n; ++i) { + pthread_join(tasks[i].tid, NULL); + } + + /* Destroy the mutex. */ + pthread_mutex_destroy(&mutex); + + return EXIT_SUCCESS; +} diff --git a/resources/3rdparty/glpk-4.65/examples/threads/thread.h b/resources/3rdparty/glpk-4.65/examples/threads/thread.h new file mode 100644 index 000000000..6ed779bcd --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/threads/thread.h @@ -0,0 +1,49 @@ +/* thread.h (pthread emulation for Windows) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2011-2017, Heinrich Schuchardt +* +* Permission to use, copy, modify, and/or distribute this software for +* any purpose with or without fee is hereby granted. +* +* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE +* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL +* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA +* OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +* PERFORMANCE OF THIS SOFTWARE. +***********************************************************************/ + +#ifndef THREAD_H + +#define THREAD_H 1 + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif // HAVE_CONFIG_H + +#ifdef __WOE__ +#include +typedef CRITICAL_SECTION pthread_mutex_t; +typedef HANDLE pthread_t; +// @todo The return type of routine C is "DWORD" for Windows and +// "void *" for Posix. +#define pthread_create(A,B,C,D) \ + (int)((*A = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&C,D,0,NULL))==NULL) +#define pthread_exit(A) ExitThread(0) +#define pthread_mutex_destroy(A) DeleteCriticalSection(A) +#define pthread_mutex_init(A,B) (InitializeCriticalSection(A),0) +#define pthread_mutex_lock(A) (EnterCriticalSection(A),0) +#define pthread_mutex_unlock(A) (LeaveCriticalSection(A),0) +#define pthread_self() GetCurrentThreadId() +#define pthread_join(A, B) \ + (WaitForSingleObject(A, INFINITE),CloseHandle(A),0) +#else +#include +#endif + +#endif // THREAD_H diff --git a/resources/3rdparty/glpk-4.65/examples/tiling.mod b/resources/3rdparty/glpk-4.65/examples/tiling.mod new file mode 100644 index 000000000..6e0cabd95 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/tiling.mod @@ -0,0 +1,118 @@ +/* Rectifiable polyomino tilings generator */ + +/* Written and converted to GNU MathProg by NASZVADI, Peter, 2007-2017 + */ + +/* + This model searches for a maximal packing of a given polyomino + composed of unit squares in a given rectangle. In a feasible packing, a + placed polyomino and its intersection of a unit square's inner part in + the rectangle must be the square or empty. If there exists a packing + that covers totally the rectangle, then the polyomino is called + "rectifiable" + + Summary: + Decides if an Im * Jm rectangle could be tiled with given pattern + and prints a (sub)optimal solution if found + + Generated magic numbers are implicit tables, check them: + + # for magic in 3248 688 1660 3260 + do printf "Magic % 5d:" "$magic" + for e in 0 1 2 3 4 5 6 7 + do printf "% 3d" "$((-1 + ((magic / (3**e)) % 3)))" + done + echo + done + Magic 3248: 1 1 -1 -1 0 0 0 0 + Magic 688: 0 0 0 0 1 1 -1 -1 + Magic 1660: 0 0 0 0 1 -1 1 -1 + Magic 3260: 1 -1 1 -1 0 0 0 0 + # +*/ + +param Im, default 3; +/* vertical edge length of the box */ + +param Jm, default 3; +/* horizontal edge length of the box */ + +set S, default {(0, 0), (1, 0), (2, 0), (0, 1), (1, 1), (2, 1), (0, 2)}; +/* P-heptomino is the default shape. More info on this heptomino: + http://www.cflmath.com/Polyomino/7omino4_rect.html */ + +set I := 1..Im; +/* rows of rectangle */ + +set J := 1..Jm; +/* columns of rectangle */ + +set IJ := I cross J; +/* the rectangle itself */ + +set E := 0..7; +/* helper set to allow iterating on all transformations of the S shape */ + +set Shifts := setof{(i, j, e) in IJ cross E: + setof{(x, y) in S} + ((x * (-1 + floor(3248 / 3^e) mod 3)) + + (y * (-1 + floor(688 / 3^e) mod 3)) + i, + (x * (-1 + floor(1660 / 3^e) mod 3)) + + (y * (-1 + floor(3260 / 3^e) mod 3)) + j) within IJ}(i, j, e); +/* all shifted, flipped, rotated, mirrored mappings of polyomino that + contained by the rectangle */ + +var cell{IJ}, binary; +/* booleans denoting if a cell is covered in the rectangle */ + +var tile{Shifts}, binary; +/* booleans denoting usage of a shift */ + +var objvalue; + +s.t. covers{(i, j) in IJ}: sum{(k, l, e, a, b) in Shifts cross S: + i = k + a * (-1 + floor(3248 / 3^e) mod 3) + + b * (-1 + floor(688 / 3^e) mod 3) + and + j = l + a * (-1 + floor(1660 / 3^e) mod 3) + + b * (-1 + floor(3260 / 3^e) mod 3) + }tile[k, l, e] = cell[i, j]; + +s.t. objeval: sum{(i, j) in IJ}cell[i, j] - objvalue = 0; + +maximize obj: objvalue; + +solve; + +printf '\nCovered cells/all cells = %d/%d\n\n', objvalue.val, Im * Jm; +printf '\nA tiling:\n\n'; +for{i in I}{ + for{j in J}{ + printf '%s', if cell[i, j].val then '' else ' *** '; + for{(k, l, e, a, b) in Shifts cross S: + cell[i, j].val + and i = k + a * (-1 + floor(3248 / 3^e) mod 3) + + b * (-1 + floor(688 / 3^e) mod 3) + and j = l + a * (-1 + floor(1660 / 3^e) mod 3) + + b * (-1 + floor(3260 / 3^e) mod 3) + and tile[k, l, e].val + }{ + printf '% 5d', (k * Jm + l) * 8 + e; + } + } + printf '\n'; +} +printf '\n'; + +data; + +param Im := 14; +/* here can be set rectangle's one side */ + +param Jm := 14; +/* here can be set rectangle's other side */ + +set S := (0,0),(1,0),(2,0),(0,1),(1,1),(2,1),(0,2); +/* here you can specify arbitrary polyomino */ + +end; diff --git a/resources/3rdparty/glpk-4.57/examples/todd.mod b/resources/3rdparty/glpk-4.65/examples/todd.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/todd.mod rename to resources/3rdparty/glpk-4.65/examples/todd.mod diff --git a/resources/3rdparty/glpk-4.65/examples/toto.mod b/resources/3rdparty/glpk-4.65/examples/toto.mod new file mode 100644 index 000000000..6b4318edc --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/toto.mod @@ -0,0 +1,135 @@ +/* Covering code generator, especially for football pool systems */ + +/* Written and converted to GNU MathProg by NASZVADI, Peter, 199x-2017 + */ + +/* + Looks up for minimal covering codes in the specified Hamming-space. + Without specifying model data, by default it looks up for covering + for a mixed covering code in Hamming-space {X, 1, 2, 3}*{X, 1}^4 + with one layer. + + Hamming space is a set of finite words with all the same length over + a finite alphabet: the space could be decomposed to Cartesian + products of subsets of the alphabet, e.g. the first letter of an + element can be chosen from a 2-element set, the next from 6 letters, + and so on. + + There is a natural metric function in these spaces: the + Hamming-distance (hence the name, from now referred as: distance). + The distance of two (equal-length) words is the number of different + letter pairs in the corresponding positions. + + Covering Hamming-spaces with minimal number of spheres with given + radius - usually difficult problem excluding special cases. + + Relationship with sports: + Football pool system in Hungarian: "Toto'kulcs", so Toto, totogol and + other football pool systems are usually need mixed ternary/binary + code coverings in order to minimize loss of the gambler. + + See more at: + https://en.wikipedia.org/wiki/Covering_code + + A tricky workaround is used: + floor(), abs() and cosine() magic are used at 'coverings' constraints, + because GMPL lacks proper boolean<->integer evaluation/casting. +*/ + +param ArgNum1, >= 1, default 1; +param ArgNum2, >= 1, default 1; +param ArgNum3, >= 1, default 1; +param ArgNum4, >= 1, default 1; +param ArgNum5, >= 1, default 1; +param ArgNum6, >= 1, default 1; +param ArgNum7, >= 1, default 1; +param ArgNum8, >= 1, default 1; +param ArgNum9, >= 1, default 1; +param ArgNum10, >= 1, default 1; +param ArgNum11, >= 1, default 1; +param ArgNum12, >= 1, default 1; +param ArgNum13, >= 1, default 1; +/* at most 13 matches' outcomes */ + +param Radius, >= 1, default 1; +/* covering radius */ + +param Layer, >= 1, default 1; +/* each point of space must be covered at least Layer times */ + +set X := 0..ArgNum1 - 1 cross 0..ArgNum2 - 1 cross 0..ArgNum3 - 1 cross + 0..ArgNum4 - 1 cross 0..ArgNum5 - 1 cross 0..ArgNum6 - 1 cross + 0..ArgNum7 - 1 cross 0..ArgNum8 - 1 cross 0..ArgNum9 - 1 cross + 0..ArgNum10 - 1 cross 0..ArgNum11 - 1 cross 0..ArgNum12 - 1 cross + 0..ArgNum13 - 1; +/* the Hamming-space generated by the Cartesian-products of sets + with elements ArgNum[n] */ + +var x{X}, integer, >=0; +/* denotes each point's amount of containing covering sets */ + +var objvalue; + +s.t. coverings{(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13) in X}: + sum{(j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13) in X: + floor(abs(cos(i1 - j1))) + floor(abs(cos(i2 - j2))) + + floor(abs(cos(i3 - j3))) + floor(abs(cos(i4 - j4))) + + floor(abs(cos(i5 - j5))) + floor(abs(cos(i6 - j6))) + + floor(abs(cos(i7 - j7))) + floor(abs(cos(i8 - j8))) + + floor(abs(cos(i9 - j9))) + floor(abs(cos(i10 - j10))) + + floor(abs(cos(i11 - j11))) + floor(abs(cos(i12 - j12))) + + floor(abs(cos(i13 - j13))) >= 13 - Radius + } x[j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13] >= Layer; +/* covering constraints, select at least 'Layer' amount of spheres that cover + (i1,i2,...) and has radius 'Radius' */ + +s.t. oneisset: x[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] >= 1; +/* this does not violate symmetry nor excludes important solutions but + boosts the solving process */ + +s.t. objc: sum{(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13) in X} + x[i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13] = objvalue; +/* the total number of pools (covering sets) */ + +minimize obj: objvalue; +/* Also 'objc' could be used directly instead of 'obj', but for + experiments, it is useful to set up additional constraints for + introduced objvalue variable */ + +solve; + +printf 'Solution: %s\nRadius: %s\nLayer: %s\n', + objvalue.val, Radius, Layer; +/* report important scalars */ + +printf 'Selected bets:\n'; +for{(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13) in X: + x[i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13]}{ + printf ' Times %s:', + x[i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13].val; + printf '%s', if ArgNum1 == 1 then '' else ' ' & if i1 then i1 else 'X'; + printf '%s', if ArgNum2 == 1 then '' else '-' & if i2 then i2 else 'X'; + printf '%s', if ArgNum3 == 1 then '' else '-' & if i3 then i3 else 'X'; + printf '%s', if ArgNum4 == 1 then '' else '-' & if i4 then i4 else 'X'; + printf '%s', if ArgNum5 == 1 then '' else '-' & if i5 then i5 else 'X'; + printf '%s', if ArgNum6 == 1 then '' else '-' & if i6 then i6 else 'X'; + printf '%s', if ArgNum7 == 1 then '' else '-' & if i7 then i7 else 'X'; + printf '%s', if ArgNum8 == 1 then '' else '-' & if i8 then i8 else 'X'; + printf '%s', if ArgNum9 == 1 then '' else '-' & if i9 then i9 else 'X'; + printf '%s', if ArgNum10 == 1 then '' else '-' & if i10 then i10 else 'X'; + printf '%s', if ArgNum11 == 1 then '' else '-' & if i11 then i11 else 'X'; + printf '%s', if ArgNum12 == 1 then '' else '-' & if i12 then i12 else 'X'; + printf '%s', if ArgNum13 == 1 then '' else '-' & if i13 then i13 else 'X'; + printf '\n'; +} +/* pretty-print a generated football pool system (covering code) */ + +data; + +param ArgNum1 := 4; +param ArgNum2 := 2; +param ArgNum3 := 2; +param ArgNum4 := 2; +param ArgNum5 := 2; + +end; diff --git a/resources/3rdparty/glpk-4.57/examples/train.mod b/resources/3rdparty/glpk-4.65/examples/train.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/train.mod rename to resources/3rdparty/glpk-4.65/examples/train.mod diff --git a/resources/3rdparty/glpk-4.57/examples/transp.mod b/resources/3rdparty/glpk-4.65/examples/transp.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/transp.mod rename to resources/3rdparty/glpk-4.65/examples/transp.mod diff --git a/resources/3rdparty/glpk-4.57/examples/trick.mod b/resources/3rdparty/glpk-4.65/examples/trick.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/trick.mod rename to resources/3rdparty/glpk-4.65/examples/trick.mod diff --git a/resources/3rdparty/glpk-4.57/examples/tsp.mod b/resources/3rdparty/glpk-4.65/examples/tsp.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp.mod rename to resources/3rdparty/glpk-4.65/examples/tsp.mod diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/README b/resources/3rdparty/glpk-4.65/examples/tsp/README similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/README rename to resources/3rdparty/glpk-4.65/examples/tsp/README diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/bench.txt b/resources/3rdparty/glpk-4.65/examples/tsp/bench.txt similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/bench.txt rename to resources/3rdparty/glpk-4.65/examples/tsp/bench.txt diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/build.sh b/resources/3rdparty/glpk-4.65/examples/tsp/build.sh similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/build.sh rename to resources/3rdparty/glpk-4.65/examples/tsp/build.sh diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/dantzig42.tsp b/resources/3rdparty/glpk-4.65/examples/tsp/dantzig42.tsp similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/dantzig42.tsp rename to resources/3rdparty/glpk-4.65/examples/tsp/dantzig42.tsp diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/gr120.tsp b/resources/3rdparty/glpk-4.65/examples/tsp/gr120.tsp similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/gr120.tsp rename to resources/3rdparty/glpk-4.65/examples/tsp/gr120.tsp diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/main.c b/resources/3rdparty/glpk-4.65/examples/tsp/main.c similarity index 99% rename from resources/3rdparty/glpk-4.57/examples/tsp/main.c rename to resources/3rdparty/glpk-4.65/examples/tsp/main.c index 822af324a..06857421f 100644 --- a/resources/3rdparty/glpk-4.57/examples/tsp/main.c +++ b/resources/3rdparty/glpk-4.65/examples/tsp/main.c @@ -268,7 +268,7 @@ void build_tour(void) * tour_length - calculate tour length * * This routine calculates the length of the specified tour, which is -* a sum of corresponding edge length. */ +* the sum of corresponding edge lengths. */ int tour_length(const int tour[/*1+n*/]) { int i, j, sum; diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/maxflow.c b/resources/3rdparty/glpk-4.65/examples/tsp/maxflow.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/maxflow.c rename to resources/3rdparty/glpk-4.65/examples/tsp/maxflow.c diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/maxflow.h b/resources/3rdparty/glpk-4.65/examples/tsp/maxflow.h similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/maxflow.h rename to resources/3rdparty/glpk-4.65/examples/tsp/maxflow.h diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/mincut.c b/resources/3rdparty/glpk-4.65/examples/tsp/mincut.c similarity index 99% rename from resources/3rdparty/glpk-4.57/examples/tsp/mincut.c rename to resources/3rdparty/glpk-4.65/examples/tsp/mincut.c index 46905aa0e..225fb7f44 100644 --- a/resources/3rdparty/glpk-4.57/examples/tsp/mincut.c +++ b/resources/3rdparty/glpk-4.65/examples/tsp/mincut.c @@ -21,7 +21,7 @@ * * DESCRIPTION * -* This routine find min cut in a given undirected network. +* This routine finds min cut in a given undirected network. * * The undirected capacitated network is specified by the parameters * nn, ne, beg, end, and cap. The parameter nn specifies the number of @@ -207,7 +207,7 @@ int min_st_cut(int nn, int ne, const int beg[/*1+ne*/], * * The basic idea of Stoer&Wagner algorithm is the following. Let G be * a capacitated network, and G(s,t) be a network, in which the nodes s -* and t are merged into one new node, loops are deleted, but multuple +* and t are merged into one new node, loops are deleted, but multiple * edges are retained. It is obvious that a minimum cut in G is the * minimum of two quantities: the minimum cut in G(s,t) and a minimum * cut that separates s and t. This allows to find a minimum cut in the diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/mincut.h b/resources/3rdparty/glpk-4.65/examples/tsp/mincut.h similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/mincut.h rename to resources/3rdparty/glpk-4.65/examples/tsp/mincut.h diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/misc.c b/resources/3rdparty/glpk-4.65/examples/tsp/misc.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/misc.c rename to resources/3rdparty/glpk-4.65/examples/tsp/misc.c diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/misc.h b/resources/3rdparty/glpk-4.65/examples/tsp/misc.h similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/misc.h rename to resources/3rdparty/glpk-4.65/examples/tsp/misc.h diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/moscow.tsp b/resources/3rdparty/glpk-4.65/examples/tsp/moscow.tsp similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/moscow.tsp rename to resources/3rdparty/glpk-4.65/examples/tsp/moscow.tsp diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/sample.tsp b/resources/3rdparty/glpk-4.65/examples/tsp/sample.tsp similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/sample.tsp rename to resources/3rdparty/glpk-4.65/examples/tsp/sample.tsp diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/tsplib.c b/resources/3rdparty/glpk-4.65/examples/tsp/tsplib.c similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/tsplib.c rename to resources/3rdparty/glpk-4.65/examples/tsp/tsplib.c diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/tsplib.h b/resources/3rdparty/glpk-4.65/examples/tsp/tsplib.h similarity index 98% rename from resources/3rdparty/glpk-4.57/examples/tsp/tsplib.h rename to resources/3rdparty/glpk-4.65/examples/tsp/tsplib.h index efadaef88..19936ad76 100644 --- a/resources/3rdparty/glpk-4.57/examples/tsp/tsplib.h +++ b/resources/3rdparty/glpk-4.65/examples/tsp/tsplib.h @@ -40,7 +40,7 @@ struct TSP #define TSP_UNDEF 0 /* undefined */ #define TSP_FUNCTION 1 /* given by a function */ #define TSP_FULL_MATRIX 2 /* given by a full matrix */ -#define TSP_UPPER_ROW 3 /* upper triangulat matrix (row-wise +#define TSP_UPPER_ROW 3 /* upper triangular matrix (row-wise * without diagonal entries) */ #define TSP_LOWER_DIAG_ROW 4 /* lower triangular matrix (row-wise * including diagonal entries) */ diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/ulysses16.tsp b/resources/3rdparty/glpk-4.65/examples/tsp/ulysses16.tsp similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/ulysses16.tsp rename to resources/3rdparty/glpk-4.65/examples/tsp/ulysses16.tsp diff --git a/resources/3rdparty/glpk-4.57/examples/tsp/ulysses22.tsp b/resources/3rdparty/glpk-4.65/examples/tsp/ulysses22.tsp similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/tsp/ulysses22.tsp rename to resources/3rdparty/glpk-4.65/examples/tsp/ulysses22.tsp diff --git a/resources/3rdparty/glpk-4.65/examples/wolfra6d.lp b/resources/3rdparty/glpk-4.65/examples/wolfra6d.lp new file mode 100644 index 000000000..a3437d83f --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/wolfra6d.lp @@ -0,0 +1,596 @@ +\* Any Wolfram elementary CA in 6D eucl. Neumann CA grid emulator generator *\ + +\* Written and converted to *LP format by NASZVADI, Peter, 2016,2017 *\ +\* *\ + +\* Standalone version; GMPL version is in wolfra6d.mod *\ + +\* This model looks up for a subset of vertices in 6D euclyd. grid, *\ +\* which has the following properties: *\ +\* 1. each vertex' coordinate pairs' difference is at most 1 *\ +\* 2. contains the vertices in the main diagonal of the 6d space *\ +\* 3. connecting with directed graph edges from all selected vertices *\ +\* to all selected ones with greater coordinate sums with *\ +\* Hamming-distance 1, the following in-out edge numbers are *\ +\* allowed: (3,6), (1,2), (2,3), (1,2), (4,1), (3,1); according to *\ +\* the mod 6 sum of the coordinate values *\ +\* 4. Only vertices of the unit cube's with {0,1} coordinates are *\ +\* calculated, but the other cells could be obtained via shifting. *\ +\* Assume that the grid is a 6dim. cellular automaton grid with Neumann- *\ +\* -neighbourhood, now construct an outer-totalistic rule that emulates *\ +\* W110 cellular automaton on the selected vertices: *\ +\* Suppose that the 1D W110 cellspace cells are denoted with signed *\ +\* integers. Every 1D cell is assigned to (at most "6 over 2") selected *\ +\* vertices where each coordinate sums are the same with the integer *\ +\* assigned to the origin cell in the domain, they must have the same *\ +\* value. Rule-110 means that cell's value is being changed only when its *\ +\* neighbours are: (1,1,1), (1,0,1), (0,0,1), other cells remain unchanged. *\ +\* Let's denote the default cellstate with "2" in the 6D automaton, and *\ +\* the remaining 2 states with "0" and "1" respectively, which correspond *\ +\* with the states in W110. The selected vertices must be 0 or 1 of course, *\ +\* and the others are "2". *\ +\* Now, the transition rule for emulating W110 is the following: *\ +\* (x),{1,1,1,1,1,1,1,1,1,2,2,2}->(1-x), x!=2, *\ +\* (x),{1,1,1,2,2,2,2,2,2,2,2,2}->(1-x), x!=2, *\ +\* (x),{1,1,1,1,2,2,2,2,2,2,2,2}->(1-x), x!=2, *\ +\* (x),{1,1,1,1,1,2,2,2,2,2,2,2}->(1-x), x!=2, *\ +\* (1),{0,0,0,1,1,1,1,1,1,2,2,2}->(0), *\ +\* (1),{0,1,1,2,2,2,2,2,2,2,2,2}->(0), *\ +\* (1),{0,0,1,1,1,2,2,2,2,2,2,2}->(0), *\ +\* (1),{0,0,0,0,1,2,2,2,2,2,2,2}->(0), *\ +\* (1),{0,0,0,1,2,2,2,2,2,2,2,2}->(0); *\ +\* notation: (old state),{old neighbours - all permutations}->(new state) *\ +\* Other states won't change between two generations. And is known that W110 *\ +\* is Turing-complete. So there is a universal CA rule in 6+D eucl. gridS *\ +\* Result is in x****** binary variables (total 44 among the 64) *\ + +Minimize + obj: x000000 +x000001 +x000010 +x000011 +x000100 +x000101 +x000110 +x000111 + +x001000 +x001001 +x001010 +x001011 +x001100 +x001101 +x001110 +x001111 + +x010000 +x010001 +x010010 +x010011 +x010100 +x010101 +x010110 +x010111 + +x011000 +x011001 +x011010 +x011011 +x011100 +x011101 +x011110 +x011111 + +x100000 +x100001 +x100010 +x100011 +x100100 +x100101 +x100110 +x100111 + +x101000 +x101001 +x101010 +x101011 +x101100 +x101101 +x101110 +x101111 + +x110000 +x110001 +x110010 +x110011 +x110100 +x110101 +x110110 +x110111 + +x111000 +x111001 +x111010 +x111011 +x111100 +x111101 +x111110 +x111111 +Subject To + x000000 = 1 + x111111 = 1 + x111110 -x111101 >= 0 + x111101 -x111011 >= 0 + x111011 -x110111 >= 0 + x110111 -x101111 >= 0 + x101111 -x011111 >= 0 + dn000000 -dn111111 = 0 + up000000 -up111111 = 0 + cup000000: + x000001 +x000010 +x000100 +x001000 +x010000 +x100000 -up000000 = 0 + cup000001: + x000011 +x000101 +x001001 +x010001 +x100001 -up000001 = 0 + cup000010: + x000011 +x000110 +x001010 +x010010 +x100010 -up000010 = 0 + cup000011: + x000111 +x001011 +x010011 +x100011 -up000011 = 0 + cup000100: + x000101 +x000110 +x001100 +x010100 +x100100 -up000100 = 0 + cup000101: + x000111 +x001101 +x010101 +x100101 -up000101 = 0 + cup000110: + x000111 +x001110 +x010110 +x100110 -up000110 = 0 + cup000111: + x001111 +x010111 +x100111 -up000111 = 0 + cup001000: + x001001 +x001010 +x001100 +x011000 +x101000 -up001000 = 0 + cup001001: + x001011 +x001101 +x011001 +x101001 -up001001 = 0 + cup001010: + x001011 +x001110 +x011010 +x101010 -up001010 = 0 + cup001011: + x001111 +x011011 +x101011 -up001011 = 0 + cup001100: + x001101 +x001110 +x011100 +x101100 -up001100 = 0 + cup001101: + x001111 +x011101 +x101101 -up001101 = 0 + cup001110: + x001111 +x011110 +x101110 -up001110 = 0 + cup001111: + x011111 +x101111 -up001111 = 0 + cup010000: + x010001 +x010010 +x010100 +x011000 +x110000 -up010000 = 0 + cup010001: + x010011 +x010101 +x011001 +x110001 -up010001 = 0 + cup010010: + x010011 +x010110 +x011010 +x110010 -up010010 = 0 + cup010011: + x010111 +x011011 +x110011 -up010011 = 0 + cup010100: + x010101 +x010110 +x011100 +x110100 -up010100 = 0 + cup010101: + x010111 +x011101 +x110101 -up010101 = 0 + cup010110: + x010111 +x011110 +x110110 -up010110 = 0 + cup010111: + x011111 +x110111 -up010111 = 0 + cup011000: + x011001 +x011010 +x011100 +x111000 -up011000 = 0 + cup011001: + x011011 +x011101 +x111001 -up011001 = 0 + cup011010: + x011011 +x011110 +x111010 -up011010 = 0 + cup011011: + x011111 +x111011 -up011011 = 0 + cup011100: + x011101 +x011110 +x111100 -up011100 = 0 + cup011101: + x011111 +x111101 -up011101 = 0 + cup011110: + x011111 +x111110 -up011110 = 0 + cup011111: + x111111 -up011111 = 0 + cup100000: + x100001 +x100010 +x100100 +x101000 +x110000 -up100000 = 0 + cup100001: + x100011 +x100101 +x101001 +x110001 -up100001 = 0 + cup100010: + x100011 +x100110 +x101010 +x110010 -up100010 = 0 + cup100011: + x100111 +x101011 +x110011 -up100011 = 0 + cup100100: + x100101 +x100110 +x101100 +x110100 -up100100 = 0 + cup100101: + x100111 +x101101 +x110101 -up100101 = 0 + cup100110: + x100111 +x101110 +x110110 -up100110 = 0 + cup100111: + x101111 +x110111 -up100111 = 0 + cup101000: + x101001 +x101010 +x101100 +x111000 -up101000 = 0 + cup101001: + x101011 +x101101 +x111001 -up101001 = 0 + cup101010: + x101011 +x101110 +x111010 -up101010 = 0 + cup101011: + x101111 +x111011 -up101011 = 0 + cup101100: + x101101 +x101110 +x111100 -up101100 = 0 + cup101101: + x101111 +x111101 -up101101 = 0 + cup101110: + x101111 +x111110 -up101110 = 0 + cup101111: + x111111 -up101111 = 0 + cup110000: + x110001 +x110010 +x110100 +x111000 -up110000 = 0 + cup110001: + x110011 +x110101 +x111001 -up110001 = 0 + cup110010: + x110011 +x110110 +x111010 -up110010 = 0 + cup110011: + x110111 +x111011 -up110011 = 0 + cup110100: + x110101 +x110110 +x111100 -up110100 = 0 + cup110101: + x110111 +x111101 -up110101 = 0 + cup110110: + x110111 +x111110 -up110110 = 0 + cup110111: + x111111 -up110111 = 0 + cup111000: + x111001 +x111010 +x111100 -up111000 = 0 + cup111001: + x111011 +x111101 -up111001 = 0 + cup111010: + x111011 +x111110 -up111010 = 0 + cup111011: + x111111 -up111011 = 0 + cup111100: + x111101 +x111110 -up111100 = 0 + cup111101: + x111111 -up111101 = 0 + cup111110: + x111111 -up111110 = 0 + cdn000001: + x000000 -dn000001 = 0 + cdn000010: + x000000 -dn000010 = 0 + cdn000011: + x000001 +x000010 -dn000011 = 0 + cdn000100: + x000000 -dn000100 = 0 + cdn000101: + x000001 +x000100 -dn000101 = 0 + cdn000110: + x000010 +x000100 -dn000110 = 0 + cdn000111: + x000011 +x000101 +x000110 -dn000111 = 0 + cdn001000: + x000000 -dn001000 = 0 + cdn001001: + x000001 +x001000 -dn001001 = 0 + cdn001010: + x000010 +x001000 -dn001010 = 0 + cdn001011: + x000011 +x001001 +x001010 -dn001011 = 0 + cdn001100: + x000100 +x001000 -dn001100 = 0 + cdn001101: + x000101 +x001001 +x001100 -dn001101 = 0 + cdn001110: + x000110 +x001010 +x001100 -dn001110 = 0 + cdn001111: + x000111 +x001011 +x001101 +x001110 -dn001111 = 0 + cdn010000: + x000000 -dn010000 = 0 + cdn010001: + x000001 +x010000 -dn010001 = 0 + cdn010010: + x000010 +x010000 -dn010010 = 0 + cdn010011: + x000011 +x010001 +x010010 -dn010011 = 0 + cdn010100: + x000100 +x010000 -dn010100 = 0 + cdn010101: + x000101 +x010001 +x010100 -dn010101 = 0 + cdn010110: + x000110 +x010010 +x010100 -dn010110 = 0 + cdn010111: + x000111 +x010011 +x010101 +x010110 -dn010111 = 0 + cdn011000: + x001000 +x010000 -dn011000 = 0 + cdn011001: + x001001 +x010001 +x011000 -dn011001 = 0 + cdn011010: + x001010 +x010010 +x011000 -dn011010 = 0 + cdn011011: + x001011 +x010011 +x011001 +x011010 -dn011011 = 0 + cdn011100: + x001100 +x010100 +x011000 -dn011100 = 0 + cdn011101: + x001101 +x010101 +x011001 +x011100 -dn011101 = 0 + cdn011110: + x001110 +x010110 +x011010 +x011100 -dn011110 = 0 + cdn011111: + x001111 +x010111 +x011011 +x011101 +x011110 -dn011111 = 0 + cdn100000: + x000000 -dn100000 = 0 + cdn100001: + x000001 +x100000 -dn100001 = 0 + cdn100010: + x000010 +x100000 -dn100010 = 0 + cdn100011: + x000011 +x100001 +x100010 -dn100011 = 0 + cdn100100: + x000100 +x100000 -dn100100 = 0 + cdn100101: + x000101 +x100001 +x100100 -dn100101 = 0 + cdn100110: + x000110 +x100010 +x100100 -dn100110 = 0 + cdn100111: + x000111 +x100011 +x100101 +x100110 -dn100111 = 0 + cdn101000: + x001000 +x100000 -dn101000 = 0 + cdn101001: + x001001 +x100001 +x101000 -dn101001 = 0 + cdn101010: + x001010 +x100010 +x101000 -dn101010 = 0 + cdn101011: + x001011 +x100011 +x101001 +x101010 -dn101011 = 0 + cdn101100: + x001100 +x100100 +x101000 -dn101100 = 0 + cdn101101: + x001101 +x100101 +x101001 +x101100 -dn101101 = 0 + cdn101110: + x001110 +x100110 +x101010 +x101100 -dn101110 = 0 + cdn101111: + x001111 +x100111 +x101011 +x101101 +x101110 -dn101111 = 0 + cdn110000: + x010000 +x100000 -dn110000 = 0 + cdn110001: + x010001 +x100001 +x110000 -dn110001 = 0 + cdn110010: + x010010 +x100010 +x110000 -dn110010 = 0 + cdn110011: + x010011 +x100011 +x110001 +x110010 -dn110011 = 0 + cdn110100: + x010100 +x100100 +x110000 -dn110100 = 0 + cdn110101: + x010101 +x100101 +x110001 +x110100 -dn110101 = 0 + cdn110110: + x010110 +x100110 +x110010 +x110100 -dn110110 = 0 + cdn110111: + x010111 +x100111 +x110011 +x110101 +x110110 -dn110111 = 0 + cdn111000: + x011000 +x101000 +x110000 -dn111000 = 0 + cdn111001: + x011001 +x101001 +x110001 +x111000 -dn111001 = 0 + cdn111010: + x011010 +x101010 +x110010 +x111000 -dn111010 = 0 + cdn111011: + x011011 +x101011 +x110011 +x111001 +x111010 -dn111011 = 0 + cdn111100: + x011100 +x101100 +x110100 +x111000 -dn111100 = 0 + cdn111101: + x011101 +x101101 +x110101 +x111001 +x111100 -dn111101 = 0 + cdn111110: + x011110 +x101110 +x110110 +x111010 +x111100 -dn111110 = 0 + cdn111111: + x011111 +x101111 +x110111 +x111011 +x111101 +x111110 -dn111111 = 0 + up000000 -6 x000000 >= 0 + up000000 +64 x000000 <= 70 + up000001 -2 x000001 >= 0 + up000001 +64 x000001 <= 66 + up000010 -2 x000010 >= 0 + up000010 +64 x000010 <= 66 + up000011 -3 x000011 >= 0 + up000011 +64 x000011 <= 67 + up000100 -2 x000100 >= 0 + up000100 +64 x000100 <= 66 + up000101 -3 x000101 >= 0 + up000101 +64 x000101 <= 67 + up000110 -3 x000110 >= 0 + up000110 +64 x000110 <= 67 + up000111 -2 x000111 >= 0 + up000111 +64 x000111 <= 66 + up001000 -2 x001000 >= 0 + up001000 +64 x001000 <= 66 + up001001 -3 x001001 >= 0 + up001001 +64 x001001 <= 67 + up001010 -3 x001010 >= 0 + up001010 +64 x001010 <= 67 + up001011 -2 x001011 >= 0 + up001011 +64 x001011 <= 66 + up001100 -3 x001100 >= 0 + up001100 +64 x001100 <= 67 + up001101 -2 x001101 >= 0 + up001101 +64 x001101 <= 66 + up001110 -2 x001110 >= 0 + up001110 +64 x001110 <= 66 + up001111 -1 x001111 >= 0 + up001111 +64 x001111 <= 65 + up010000 -2 x010000 >= 0 + up010000 +64 x010000 <= 66 + up010001 -3 x010001 >= 0 + up010001 +64 x010001 <= 67 + up010010 -3 x010010 >= 0 + up010010 +64 x010010 <= 67 + up010011 -2 x010011 >= 0 + up010011 +64 x010011 <= 66 + up010100 -3 x010100 >= 0 + up010100 +64 x010100 <= 67 + up010101 -2 x010101 >= 0 + up010101 +64 x010101 <= 66 + up010110 -2 x010110 >= 0 + up010110 +64 x010110 <= 66 + up010111 -1 x010111 >= 0 + up010111 +64 x010111 <= 65 + up011000 -3 x011000 >= 0 + up011000 +64 x011000 <= 67 + up011001 -2 x011001 >= 0 + up011001 +64 x011001 <= 66 + up011010 -2 x011010 >= 0 + up011010 +64 x011010 <= 66 + up011011 -1 x011011 >= 0 + up011011 +64 x011011 <= 65 + up011100 -2 x011100 >= 0 + up011100 +64 x011100 <= 66 + up011101 -1 x011101 >= 0 + up011101 +64 x011101 <= 65 + up011110 -1 x011110 >= 0 + up011110 +64 x011110 <= 65 + up011111 -1 x011111 >= 0 + up011111 +64 x011111 <= 65 + up100000 -2 x100000 >= 0 + up100000 +64 x100000 <= 66 + up100001 -3 x100001 >= 0 + up100001 +64 x100001 <= 67 + up100010 -3 x100010 >= 0 + up100010 +64 x100010 <= 67 + up100011 -2 x100011 >= 0 + up100011 +64 x100011 <= 66 + up100100 -3 x100100 >= 0 + up100100 +64 x100100 <= 67 + up100101 -2 x100101 >= 0 + up100101 +64 x100101 <= 66 + up100110 -2 x100110 >= 0 + up100110 +64 x100110 <= 66 + up100111 -1 x100111 >= 0 + up100111 +64 x100111 <= 65 + up101000 -3 x101000 >= 0 + up101000 +64 x101000 <= 67 + up101001 -2 x101001 >= 0 + up101001 +64 x101001 <= 66 + up101010 -2 x101010 >= 0 + up101010 +64 x101010 <= 66 + up101011 -1 x101011 >= 0 + up101011 +64 x101011 <= 65 + up101100 -2 x101100 >= 0 + up101100 +64 x101100 <= 66 + up101101 -1 x101101 >= 0 + up101101 +64 x101101 <= 65 + up101110 -1 x101110 >= 0 + up101110 +64 x101110 <= 65 + up101111 -1 x101111 >= 0 + up101111 +64 x101111 <= 65 + up110000 -3 x110000 >= 0 + up110000 +64 x110000 <= 67 + up110001 -2 x110001 >= 0 + up110001 +64 x110001 <= 66 + up110010 -2 x110010 >= 0 + up110010 +64 x110010 <= 66 + up110011 -1 x110011 >= 0 + up110011 +64 x110011 <= 65 + up110100 -2 x110100 >= 0 + up110100 +64 x110100 <= 66 + up110101 -1 x110101 >= 0 + up110101 +64 x110101 <= 65 + up110110 -1 x110110 >= 0 + up110110 +64 x110110 <= 65 + up110111 -1 x110111 >= 0 + up110111 +64 x110111 <= 65 + up111000 -2 x111000 >= 0 + up111000 +64 x111000 <= 66 + up111001 -1 x111001 >= 0 + up111001 +64 x111001 <= 65 + up111010 -1 x111010 >= 0 + up111010 +64 x111010 <= 65 + up111011 -1 x111011 >= 0 + up111011 +64 x111011 <= 65 + up111100 -1 x111100 >= 0 + up111100 +64 x111100 <= 65 + up111101 -1 x111101 >= 0 + up111101 +64 x111101 <= 65 + up111110 -1 x111110 >= 0 + up111110 +64 x111110 <= 65 + dn000001 -1 x000001 >= 0 + dn000001 +64 x000001 <= 65 + dn000010 -1 x000010 >= 0 + dn000010 +64 x000010 <= 65 + dn000011 -2 x000011 >= 0 + dn000011 +64 x000011 <= 66 + dn000100 -1 x000100 >= 0 + dn000100 +64 x000100 <= 65 + dn000101 -2 x000101 >= 0 + dn000101 +64 x000101 <= 66 + dn000110 -2 x000110 >= 0 + dn000110 +64 x000110 <= 66 + dn000111 -1 x000111 >= 0 + dn000111 +64 x000111 <= 65 + dn001000 -1 x001000 >= 0 + dn001000 +64 x001000 <= 65 + dn001001 -2 x001001 >= 0 + dn001001 +64 x001001 <= 66 + dn001010 -2 x001010 >= 0 + dn001010 +64 x001010 <= 66 + dn001011 -1 x001011 >= 0 + dn001011 +64 x001011 <= 65 + dn001100 -2 x001100 >= 0 + dn001100 +64 x001100 <= 66 + dn001101 -1 x001101 >= 0 + dn001101 +64 x001101 <= 65 + dn001110 -1 x001110 >= 0 + dn001110 +64 x001110 <= 65 + dn001111 -4 x001111 >= 0 + dn001111 +64 x001111 <= 68 + dn010000 -1 x010000 >= 0 + dn010000 +64 x010000 <= 65 + dn010001 -2 x010001 >= 0 + dn010001 +64 x010001 <= 66 + dn010010 -2 x010010 >= 0 + dn010010 +64 x010010 <= 66 + dn010011 -1 x010011 >= 0 + dn010011 +64 x010011 <= 65 + dn010100 -2 x010100 >= 0 + dn010100 +64 x010100 <= 66 + dn010101 -1 x010101 >= 0 + dn010101 +64 x010101 <= 65 + dn010110 -1 x010110 >= 0 + dn010110 +64 x010110 <= 65 + dn010111 -4 x010111 >= 0 + dn010111 +64 x010111 <= 68 + dn011000 -2 x011000 >= 0 + dn011000 +64 x011000 <= 66 + dn011001 -1 x011001 >= 0 + dn011001 +64 x011001 <= 65 + dn011010 -1 x011010 >= 0 + dn011010 +64 x011010 <= 65 + dn011011 -4 x011011 >= 0 + dn011011 +64 x011011 <= 68 + dn011100 -1 x011100 >= 0 + dn011100 +64 x011100 <= 65 + dn011101 -4 x011101 >= 0 + dn011101 +64 x011101 <= 68 + dn011110 -4 x011110 >= 0 + dn011110 +64 x011110 <= 68 + dn011111 -3 x011111 >= 0 + dn011111 +64 x011111 <= 67 + dn100000 -1 x100000 >= 0 + dn100000 +64 x100000 <= 65 + dn100001 -2 x100001 >= 0 + dn100001 +64 x100001 <= 66 + dn100010 -2 x100010 >= 0 + dn100010 +64 x100010 <= 66 + dn100011 -1 x100011 >= 0 + dn100011 +64 x100011 <= 65 + dn100100 -2 x100100 >= 0 + dn100100 +64 x100100 <= 66 + dn100101 -1 x100101 >= 0 + dn100101 +64 x100101 <= 65 + dn100110 -1 x100110 >= 0 + dn100110 +64 x100110 <= 65 + dn100111 -4 x100111 >= 0 + dn100111 +64 x100111 <= 68 + dn101000 -2 x101000 >= 0 + dn101000 +64 x101000 <= 66 + dn101001 -1 x101001 >= 0 + dn101001 +64 x101001 <= 65 + dn101010 -1 x101010 >= 0 + dn101010 +64 x101010 <= 65 + dn101011 -4 x101011 >= 0 + dn101011 +64 x101011 <= 68 + dn101100 -1 x101100 >= 0 + dn101100 +64 x101100 <= 65 + dn101101 -4 x101101 >= 0 + dn101101 +64 x101101 <= 68 + dn101110 -4 x101110 >= 0 + dn101110 +64 x101110 <= 68 + dn101111 -3 x101111 >= 0 + dn101111 +64 x101111 <= 67 + dn110000 -2 x110000 >= 0 + dn110000 +64 x110000 <= 66 + dn110001 -1 x110001 >= 0 + dn110001 +64 x110001 <= 65 + dn110010 -1 x110010 >= 0 + dn110010 +64 x110010 <= 65 + dn110011 -4 x110011 >= 0 + dn110011 +64 x110011 <= 68 + dn110100 -1 x110100 >= 0 + dn110100 +64 x110100 <= 65 + dn110101 -4 x110101 >= 0 + dn110101 +64 x110101 <= 68 + dn110110 -4 x110110 >= 0 + dn110110 +64 x110110 <= 68 + dn110111 -3 x110111 >= 0 + dn110111 +64 x110111 <= 67 + dn111000 -1 x111000 >= 0 + dn111000 +64 x111000 <= 65 + dn111001 -4 x111001 >= 0 + dn111001 +64 x111001 <= 68 + dn111010 -4 x111010 >= 0 + dn111010 +64 x111010 <= 68 + dn111011 -3 x111011 >= 0 + dn111011 +64 x111011 <= 67 + dn111100 -4 x111100 >= 0 + dn111100 +64 x111100 <= 68 + dn111101 -3 x111101 >= 0 + dn111101 +64 x111101 <= 67 + dn111110 -3 x111110 >= 0 + dn111110 +64 x111110 <= 67 + dn111111 -3 x111111 >= 0 + dn111111 +64 x111111 <= 67 +binary + x000000 x000001 x000010 x000011 x000100 x000101 x000110 x000111 + x001000 x001001 x001010 x001011 x001100 x001101 x001110 x001111 + x010000 x010001 x010010 x010011 x010100 x010101 x010110 x010111 + x011000 x011001 x011010 x011011 x011100 x011101 x011110 x011111 + x100000 x100001 x100010 x100011 x100100 x100101 x100110 x100111 + x101000 x101001 x101010 x101011 x101100 x101101 x101110 x101111 + x110000 x110001 x110010 x110011 x110100 x110101 x110110 x110111 + x111000 x111001 x111010 x111011 x111100 x111101 x111110 x111111 +integer + dn000000 up000000 dn000001 up000001 dn000010 up000010 dn000011 up000011 + dn000100 up000100 dn000101 up000101 dn000110 up000110 dn000111 up000111 + dn001000 up001000 dn001001 up001001 dn001010 up001010 dn001011 up001011 + dn001100 up001100 dn001101 up001101 dn001110 up001110 dn001111 up001111 + dn010000 up010000 dn010001 up010001 dn010010 up010010 dn010011 up010011 + dn010100 up010100 dn010101 up010101 dn010110 up010110 dn010111 up010111 + dn011000 up011000 dn011001 up011001 dn011010 up011010 dn011011 up011011 + dn011100 up011100 dn011101 up011101 dn011110 up011110 dn011111 up011111 + dn100000 up100000 dn100001 up100001 dn100010 up100010 dn100011 up100011 + dn100100 up100100 dn100101 up100101 dn100110 up100110 dn100111 up100111 + dn101000 up101000 dn101001 up101001 dn101010 up101010 dn101011 up101011 + dn101100 up101100 dn101101 up101101 dn101110 up101110 dn101111 up101111 + dn110000 up110000 dn110001 up110001 dn110010 up110010 dn110011 up110011 + dn110100 up110100 dn110101 up110101 dn110110 up110110 dn110111 up110111 + dn111000 up111000 dn111001 up111001 dn111010 up111010 dn111011 up111011 + dn111100 up111100 dn111101 up111101 dn111110 up111110 dn111111 up111111 +End diff --git a/resources/3rdparty/glpk-4.65/examples/wolfra6d.mod b/resources/3rdparty/glpk-4.65/examples/wolfra6d.mod new file mode 100644 index 000000000..c478487b5 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/examples/wolfra6d.mod @@ -0,0 +1,94 @@ +/* Any Wolfram elementary CA in 6D eucl. Neumann CA grid emulator generator */ + +/* Implemented, inspected, written and converted to GNU MathProg + by NASZVADI, Peter, 2016-2017 */ + +/* see background info and more details in wolfra6d.lp */ + +/* each axis has this two endpoints */ +set V := 0..1; + +/* this model processes a hypercube in 6d, so 6+1 parallel planes intersect */ +set H := 0..6; + +/* denoting all vertices in the 6d unit hypercube */ +set Cells := V cross V cross V cross V cross V cross V; + + +/* input parameters, bup/bdn = number of upper/lower neighbour 6d cells of a (cyclic) segment */ +param bup{i in H}, default 1; +param bdn{i in H}, default 2; + +/* boolean meaning if a vertex is chosen */ +var x{Cells}, binary; + +/* temporary calculations to enforce bup/bdn */ +var up{Cells}, >=0; +var dn{Cells}, >=0; + +/* the total weight of selected cells near the main diagonal */ +var obj; + +/* up/dn vars denote the number of selected upper/lower neighbours */ +s.t. cup{(v1,v2,v3,v4,v5,v6) in Cells: v1+v2+v3+v4+v5+v6<6}: + sum{(w1,w2,w3,w4,w5,w6) in Cells: max(v1-w1,v2-w2,v3-w3,v4-w4,v5-w5,v6-w6)<=0} + if (w1+w2+w3+w4+w5+w6) = (1+v1+v2+v3+v4+v5+v6) then x[w1,w2,w3,w4,w5,w6] else 0 = + up[v1,v2,v3,v4,v5,v6]; + +s.t. cdn{(v1,v2,v3,v4,v5,v6) in Cells: v1+v2+v3+v4+v5+v6>0}: + sum{(w1,w2,w3,w4,w5,w6) in Cells: min(v1-w1,v2-w2,v3-w3,v4-w4,v5-w5,v6-w6)>=0} + if (w1+w2+w3+w4+w5+w6) = (-1+v1+v2+v3+v4+v5+v6) then x[w1,w2,w3,w4,w5,w6] else 0 = + dn[v1,v2,v3,v4,v5,v6]; + +/* 4 helper constraints, hences the leading "c" */ +s.t. cbup1{(v1,v2,v3,v4,v5,v6) in Cells: v1+v2+v3+v4+v5+v6<6}: + up[v1,v2,v3,v4,v5,v6] >= bup[v1+v2+v3+v4+v5+v6] * x[v1,v2,v3,v4,v5,v6]; + +s.t. cbup2{(v1,v2,v3,v4,v5,v6) in Cells: v1+v2+v3+v4+v5+v6<6}: + up[v1,v2,v3,v4,v5,v6] + (2**6) * x[v1,v2,v3,v4,v5,v6] <= (2**6) + bup[v1+v2+v3+v4+v5+v6]; + +s.t. cbdn1{(v1,v2,v3,v4,v5,v6) in Cells: v1+v2+v3+v4+v5+v6>0}: + dn[v1,v2,v3,v4,v5,v6] >= bdn[v1+v2+v3+v4+v5+v6] * x[v1,v2,v3,v4,v5,v6]; + +s.t. cbdn2{(v1,v2,v3,v4,v5,v6) in Cells: v1+v2+v3+v4+v5+v6>0}: + dn[v1,v2,v3,v4,v5,v6] + (2**6) * x[v1,v2,v3,v4,v5,v6] <= (2**6) + bdn[v1+v2+v3+v4+v5+v6]; + +/* these two promoted points should be selected */ +s.t. initdiag: x[0,0,0,0,0,0] + x[1,1,1,1,1,1] = 2; + +/* obvious */ +s.t. sumx: sum{(v1,v2,v3,v4,v5,v6) in Cells} x[v1,v2,v3,v4,v5,v6] = obj; + +minimize cobj: obj; + +solve; + +/* pretty-printing hopefully nontrivial solution */ +printf "\nChosen vertex subset:\n"; +for{i in H}: { + printf "Weight=%s\n", i; + printf{(v1,v2,v3,v4,v5,v6) in Cells: v1+v2+v3+v4+v5+v6 = i+(8-8*x[v1,v2,v3,v4,v5,v6])} + " %s%s%s%s%s%s\n",v1,v2,v3,v4,v5,v6; +} +printf "\nTotal number of selected cells in the hypercube: %g\n\n", obj; + +data; + +/* these parameters were chosen in the first run that yielded a solution */ +param bup := 0 6 + 1 2 + 2 3 + 3 2 + 4 1 + 5 1 + 6 6; + +param bdn := 0 3 + 1 1 + 2 2 + 3 1 + 4 4 + 5 3 + 6 3; + +end; diff --git a/resources/3rdparty/glpk-4.57/examples/xyacfs.mod b/resources/3rdparty/glpk-4.65/examples/xyacfs.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/xyacfs.mod rename to resources/3rdparty/glpk-4.65/examples/xyacfs.mod diff --git a/resources/3rdparty/glpk-4.57/examples/yacfs.mod b/resources/3rdparty/glpk-4.65/examples/yacfs.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/yacfs.mod rename to resources/3rdparty/glpk-4.65/examples/yacfs.mod diff --git a/resources/3rdparty/glpk-4.57/examples/zebra.mod b/resources/3rdparty/glpk-4.65/examples/zebra.mod similarity index 100% rename from resources/3rdparty/glpk-4.57/examples/zebra.mod rename to resources/3rdparty/glpk-4.65/examples/zebra.mod diff --git a/resources/3rdparty/glpk-4.57/install-sh b/resources/3rdparty/glpk-4.65/install-sh similarity index 100% rename from resources/3rdparty/glpk-4.57/install-sh rename to resources/3rdparty/glpk-4.65/install-sh diff --git a/resources/3rdparty/glpk-4.57/ltmain.sh b/resources/3rdparty/glpk-4.65/ltmain.sh similarity index 100% rename from resources/3rdparty/glpk-4.57/ltmain.sh rename to resources/3rdparty/glpk-4.65/ltmain.sh diff --git a/resources/3rdparty/glpk-4.57/m4/libtool.m4 b/resources/3rdparty/glpk-4.65/m4/libtool.m4 similarity index 100% rename from resources/3rdparty/glpk-4.57/m4/libtool.m4 rename to resources/3rdparty/glpk-4.65/m4/libtool.m4 diff --git a/resources/3rdparty/glpk-4.57/m4/ltoptions.m4 b/resources/3rdparty/glpk-4.65/m4/ltoptions.m4 similarity index 100% rename from resources/3rdparty/glpk-4.57/m4/ltoptions.m4 rename to resources/3rdparty/glpk-4.65/m4/ltoptions.m4 diff --git a/resources/3rdparty/glpk-4.57/m4/ltsugar.m4 b/resources/3rdparty/glpk-4.65/m4/ltsugar.m4 similarity index 100% rename from resources/3rdparty/glpk-4.57/m4/ltsugar.m4 rename to resources/3rdparty/glpk-4.65/m4/ltsugar.m4 diff --git a/resources/3rdparty/glpk-4.57/m4/ltversion.m4 b/resources/3rdparty/glpk-4.65/m4/ltversion.m4 similarity index 100% rename from resources/3rdparty/glpk-4.57/m4/ltversion.m4 rename to resources/3rdparty/glpk-4.65/m4/ltversion.m4 diff --git a/resources/3rdparty/glpk-4.57/m4/lt~obsolete.m4 b/resources/3rdparty/glpk-4.65/m4/lt~obsolete.m4 similarity index 100% rename from resources/3rdparty/glpk-4.57/m4/lt~obsolete.m4 rename to resources/3rdparty/glpk-4.65/m4/lt~obsolete.m4 diff --git a/resources/3rdparty/glpk-4.57/missing b/resources/3rdparty/glpk-4.65/missing similarity index 100% rename from resources/3rdparty/glpk-4.57/missing rename to resources/3rdparty/glpk-4.65/missing diff --git a/resources/3rdparty/glpk-4.65/src/Makefile.am b/resources/3rdparty/glpk-4.65/src/Makefile.am new file mode 100644 index 000000000..eb5dc1bea --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/Makefile.am @@ -0,0 +1,222 @@ +## Process this file with automake to produce Makefile.in ## + +include_HEADERS = glpk.h + +lib_LTLIBRARIES = libglpk.la + +libglpk_la_CPPFLAGS = \ +-I$(srcdir) \ +-I$(srcdir)/amd \ +-I$(srcdir)/api \ +-I$(srcdir)/bflib \ +-I$(srcdir)/colamd \ +-I$(srcdir)/draft \ +-I$(srcdir)/env \ +-I$(srcdir)/intopt \ +-I$(srcdir)/minisat \ +-I$(srcdir)/misc \ +-I$(srcdir)/mpl \ +-I$(srcdir)/npp \ +-I$(srcdir)/proxy \ +-I$(srcdir)/simplex \ +-I$(srcdir)/zlib + +libglpk_la_LDFLAGS = \ +-version-info 43:0:3 \ +-export-symbols-regex '^glp_*' \ +${NOUNDEFINED} + +libglpk_la_SOURCES = \ +amd/amd_1.c \ +amd/amd_2.c \ +amd/amd_aat.c \ +amd/amd_control.c \ +amd/amd_defaults.c \ +amd/amd_dump.c \ +amd/amd_info.c \ +amd/amd_order.c \ +amd/amd_post_tree.c \ +amd/amd_postorder.c \ +amd/amd_preprocess.c \ +amd/amd_valid.c \ +api/advbas.c \ +api/asnhall.c \ +api/asnlp.c \ +api/asnokalg.c \ +api/ckasn.c \ +api/ckcnf.c \ +api/cplex.c \ +api/cpp.c \ +api/cpxbas.c \ +api/graph.c \ +api/gridgen.c \ +api/intfeas1.c \ +api/maxffalg.c \ +api/maxflp.c \ +api/mcflp.c \ +api/mcfokalg.c \ +api/mcfrelax.c \ +api/minisat1.c \ +api/mpl.c \ +api/mps.c \ +api/netgen.c \ +api/npp.c \ +api/pript.c \ +api/prmip.c \ +api/prob1.c \ +api/prob2.c \ +api/prob3.c \ +api/prob4.c \ +api/prob5.c \ +api/prrngs.c \ +api/prsol.c \ +api/rdasn.c \ +api/rdcc.c \ +api/rdcnf.c \ +api/rdipt.c \ +api/rdmaxf.c \ +api/rdmcf.c \ +api/rdmip.c \ +api/rdprob.c \ +api/rdsol.c \ +api/rmfgen.c \ +api/strong.c \ +api/topsort.c \ +api/weak.c \ +api/wcliqex.c \ +api/wrasn.c \ +api/wrcc.c \ +api/wrcnf.c \ +api/wript.c \ +api/wrmaxf.c \ +api/wrmcf.c \ +api/wrmip.c \ +api/wrprob.c \ +api/wrsol.c \ +bflib/btf.c \ +bflib/btfint.c \ +bflib/fhv.c \ +bflib/fhvint.c \ +bflib/ifu.c \ +bflib/luf.c \ +bflib/lufint.c \ +bflib/scf.c \ +bflib/scfint.c \ +bflib/sgf.c \ +bflib/sva.c \ +colamd/colamd.c \ +draft/bfd.c \ +draft/bfx.c \ +draft/glpapi06.c \ +draft/glpapi07.c \ +draft/glpapi08.c \ +draft/glpapi09.c \ +draft/glpapi10.c \ +draft/glpapi12.c \ +draft/glpapi13.c \ +draft/glphbm.c \ +draft/glpios01.c \ +draft/glpios02.c \ +draft/glpios03.c \ +draft/glpios07.c \ +draft/glpios09.c \ +draft/glpios11.c \ +draft/glpios12.c \ +draft/glpipm.c \ +draft/glpmat.c \ +draft/glprgr.c \ +draft/glpscl.c \ +draft/glpspm.c \ +draft/glpssx01.c \ +draft/glpssx02.c \ +draft/lux.c \ +env/alloc.c \ +env/dlsup.c \ +env/env.c \ +env/error.c \ +env/stdc.c \ +env/stdout.c \ +env/stream.c \ +env/time.c \ +env/tls.c \ +intopt/cfg.c \ +intopt/cfg1.c \ +intopt/cfg2.c \ +intopt/clqcut.c \ +intopt/covgen.c \ +intopt/fpump.c \ +intopt/gmicut.c \ +intopt/gmigen.c \ +intopt/mirgen.c \ +intopt/spv.c \ +minisat/minisat.c \ +misc/avl.c \ +misc/bignum.c \ +misc/dimacs.c \ +misc/dmp.c \ +misc/ffalg.c \ +misc/fp2rat.c \ +misc/fvs.c \ +misc/gcd.c \ +misc/jd.c \ +misc/keller.c \ +misc/ks.c \ +misc/mc13d.c \ +misc/mc21a.c \ +misc/mt1.c \ +misc/mygmp.c \ +misc/okalg.c \ +misc/qmd.c \ +misc/relax4.c \ +misc/rng.c \ +misc/rng1.c \ +misc/round2n.c \ +misc/str2int.c \ +misc/str2num.c \ +misc/strspx.c \ +misc/strtrim.c \ +misc/triang.c \ +misc/wclique.c \ +misc/wclique1.c \ +mpl/mpl1.c \ +mpl/mpl2.c \ +mpl/mpl3.c \ +mpl/mpl4.c \ +mpl/mpl5.c \ +mpl/mpl6.c \ +mpl/mplsql.c \ +npp/npp1.c \ +npp/npp2.c \ +npp/npp3.c \ +npp/npp4.c \ +npp/npp5.c \ +npp/npp6.c \ +proxy/proxy.c \ +proxy/proxy1.c \ +simplex/spxat.c \ +simplex/spxchuzc.c \ +simplex/spxchuzr.c \ +simplex/spxlp.c \ +simplex/spxnt.c \ +simplex/spxprim.c \ +simplex/spxprob.c \ +simplex/spychuzc.c \ +simplex/spychuzr.c \ +simplex/spydual.c \ +zlib/adler32.c \ +zlib/compress.c \ +zlib/crc32.c \ +zlib/deflate.c \ +zlib/gzclose.c \ +zlib/gzlib.c \ +zlib/gzread.c \ +zlib/gzwrite.c \ +zlib/inffast.c \ +zlib/inflate.c \ +zlib/inftrees.c \ +zlib/trees.c \ +zlib/uncompr.c \ +zlib/zio.c \ +zlib/zutil.c + +## eof ## diff --git a/resources/3rdparty/glpk-4.57/src/Makefile.in b/resources/3rdparty/glpk-4.65/src/Makefile.in similarity index 65% rename from resources/3rdparty/glpk-4.57/src/Makefile.in rename to resources/3rdparty/glpk-4.65/src/Makefile.in index cf9f95ae2..a06a2dcec 100644 --- a/resources/3rdparty/glpk-4.57/src/Makefile.in +++ b/resources/3rdparty/glpk-4.65/src/Makefile.in @@ -95,73 +95,80 @@ am__uninstall_files_from_dir = { \ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libglpk_la_LIBADD = -am_libglpk_la_OBJECTS = libglpk_la-avl.lo libglpk_la-bfd.lo \ - libglpk_la-bfx.lo libglpk_la-glpapi01.lo \ - libglpk_la-glpapi02.lo libglpk_la-glpapi03.lo \ - libglpk_la-glpapi04.lo libglpk_la-glpapi05.lo \ - libglpk_la-glpapi06.lo libglpk_la-glpapi07.lo \ - libglpk_la-glpapi08.lo libglpk_la-glpapi09.lo \ - libglpk_la-glpapi10.lo libglpk_la-glpapi11.lo \ - libglpk_la-glpapi12.lo libglpk_la-glpapi13.lo \ - libglpk_la-glpapi14.lo libglpk_la-glpapi15.lo \ - libglpk_la-glpapi16.lo libglpk_la-glpapi17.lo \ - libglpk_la-glpapi18.lo libglpk_la-glpapi19.lo \ - libglpk_la-glpapi20.lo libglpk_la-glpapi21.lo \ - libglpk_la-glpcpx.lo libglpk_la-glpdmx.lo libglpk_la-glpgmp.lo \ - libglpk_la-glphbm.lo libglpk_la-glpini01.lo \ - libglpk_la-glpini02.lo libglpk_la-glpios01.lo \ - libglpk_la-glpios02.lo libglpk_la-glpios03.lo \ - libglpk_la-glpios04.lo libglpk_la-glpios05.lo \ - libglpk_la-glpios06.lo libglpk_la-glpios07.lo \ - libglpk_la-glpios08.lo libglpk_la-glpios09.lo \ - libglpk_la-glpios10.lo libglpk_la-glpios11.lo \ - libglpk_la-glpios12.lo libglpk_la-glpipm.lo \ - libglpk_la-glpmat.lo libglpk_la-glpmpl01.lo \ - libglpk_la-glpmpl02.lo libglpk_la-glpmpl03.lo \ - libglpk_la-glpmpl04.lo libglpk_la-glpmpl05.lo \ - libglpk_la-glpmpl06.lo libglpk_la-glpmps.lo \ - libglpk_la-glpnet03.lo libglpk_la-glpnet04.lo \ - libglpk_la-glpnet05.lo libglpk_la-glpnpp01.lo \ - libglpk_la-glpnpp02.lo libglpk_la-glpnpp03.lo \ - libglpk_la-glpnpp04.lo libglpk_la-glpnpp05.lo \ - libglpk_la-glpnpp06.lo libglpk_la-glprgr.lo \ - libglpk_la-glpscl.lo libglpk_la-glpsdf.lo libglpk_la-glpspm.lo \ - libglpk_la-glpsql.lo libglpk_la-glpssx01.lo \ - libglpk_la-glpssx02.lo libglpk_la-lux.lo libglpk_la-amd_1.lo \ - libglpk_la-amd_2.lo libglpk_la-amd_aat.lo \ - libglpk_la-amd_control.lo libglpk_la-amd_defaults.lo \ - libglpk_la-amd_dump.lo libglpk_la-amd_info.lo \ - libglpk_la-amd_order.lo libglpk_la-amd_post_tree.lo \ - libglpk_la-amd_postorder.lo libglpk_la-amd_preprocess.lo \ - libglpk_la-amd_valid.lo libglpk_la-btf.lo libglpk_la-btfint.lo \ +am_libglpk_la_OBJECTS = libglpk_la-amd_1.lo libglpk_la-amd_2.lo \ + libglpk_la-amd_aat.lo libglpk_la-amd_control.lo \ + libglpk_la-amd_defaults.lo libglpk_la-amd_dump.lo \ + libglpk_la-amd_info.lo libglpk_la-amd_order.lo \ + libglpk_la-amd_post_tree.lo libglpk_la-amd_postorder.lo \ + libglpk_la-amd_preprocess.lo libglpk_la-amd_valid.lo \ + libglpk_la-advbas.lo libglpk_la-asnhall.lo libglpk_la-asnlp.lo \ + libglpk_la-asnokalg.lo libglpk_la-ckasn.lo libglpk_la-ckcnf.lo \ + libglpk_la-cplex.lo libglpk_la-cpp.lo libglpk_la-cpxbas.lo \ + libglpk_la-graph.lo libglpk_la-gridgen.lo \ + libglpk_la-intfeas1.lo libglpk_la-maxffalg.lo \ + libglpk_la-maxflp.lo libglpk_la-mcflp.lo \ + libglpk_la-mcfokalg.lo libglpk_la-mcfrelax.lo \ + libglpk_la-minisat1.lo libglpk_la-mpl.lo libglpk_la-mps.lo \ + libglpk_la-netgen.lo libglpk_la-npp.lo libglpk_la-pript.lo \ + libglpk_la-prmip.lo libglpk_la-prob1.lo libglpk_la-prob2.lo \ + libglpk_la-prob3.lo libglpk_la-prob4.lo libglpk_la-prob5.lo \ + libglpk_la-prrngs.lo libglpk_la-prsol.lo libglpk_la-rdasn.lo \ + libglpk_la-rdcc.lo libglpk_la-rdcnf.lo libglpk_la-rdipt.lo \ + libglpk_la-rdmaxf.lo libglpk_la-rdmcf.lo libglpk_la-rdmip.lo \ + libglpk_la-rdprob.lo libglpk_la-rdsol.lo libglpk_la-rmfgen.lo \ + libglpk_la-strong.lo libglpk_la-topsort.lo libglpk_la-weak.lo \ + libglpk_la-wcliqex.lo libglpk_la-wrasn.lo libglpk_la-wrcc.lo \ + libglpk_la-wrcnf.lo libglpk_la-wript.lo libglpk_la-wrmaxf.lo \ + libglpk_la-wrmcf.lo libglpk_la-wrmip.lo libglpk_la-wrprob.lo \ + libglpk_la-wrsol.lo libglpk_la-btf.lo libglpk_la-btfint.lo \ libglpk_la-fhv.lo libglpk_la-fhvint.lo libglpk_la-ifu.lo \ libglpk_la-luf.lo libglpk_la-lufint.lo libglpk_la-scf.lo \ libglpk_la-scfint.lo libglpk_la-sgf.lo libglpk_la-sva.lo \ - libglpk_la-cfg.lo libglpk_la-cfg1.lo libglpk_la-colamd.lo \ - libglpk_la-alloc.lo libglpk_la-dlsup.lo libglpk_la-env.lo \ - libglpk_la-error.lo libglpk_la-stdout.lo libglpk_la-stream.lo \ - libglpk_la-time.lo libglpk_la-tls.lo libglpk_la-minisat.lo \ - libglpk_la-bignum.lo libglpk_la-dmp.lo libglpk_la-ffalg.lo \ - libglpk_la-fp2rat.lo libglpk_la-gcd.lo libglpk_la-jd.lo \ - libglpk_la-keller.lo libglpk_la-mc13d.lo libglpk_la-mc21a.lo \ - libglpk_la-okalg.lo libglpk_la-qmd.lo libglpk_la-relax4.lo \ - libglpk_la-rng.lo libglpk_la-rng1.lo libglpk_la-round2n.lo \ - libglpk_la-str2int.lo libglpk_la-str2num.lo \ - libglpk_la-strspx.lo libglpk_la-strtrim.lo \ - libglpk_la-triang.lo libglpk_la-wclique.lo \ - libglpk_la-wclique1.lo libglpk_la-proxy.lo \ - libglpk_la-proxy1.lo libglpk_la-spxat.lo \ - libglpk_la-spxchuzc.lo libglpk_la-spxchuzr.lo \ - libglpk_la-spxlp.lo libglpk_la-spxnt.lo libglpk_la-spxprim.lo \ - libglpk_la-spxprob.lo libglpk_la-spychuzc.lo \ - libglpk_la-spychuzr.lo libglpk_la-spydual.lo \ - libglpk_la-adler32.lo libglpk_la-compress.lo \ - libglpk_la-crc32.lo libglpk_la-deflate.lo \ - libglpk_la-gzclose.lo libglpk_la-gzlib.lo libglpk_la-gzread.lo \ - libglpk_la-gzwrite.lo libglpk_la-inffast.lo \ - libglpk_la-inflate.lo libglpk_la-inftrees.lo \ - libglpk_la-trees.lo libglpk_la-uncompr.lo libglpk_la-zio.lo \ - libglpk_la-zutil.lo + libglpk_la-colamd.lo libglpk_la-bfd.lo libglpk_la-bfx.lo \ + libglpk_la-glpapi06.lo libglpk_la-glpapi07.lo \ + libglpk_la-glpapi08.lo libglpk_la-glpapi09.lo \ + libglpk_la-glpapi10.lo libglpk_la-glpapi12.lo \ + libglpk_la-glpapi13.lo libglpk_la-glphbm.lo \ + libglpk_la-glpios01.lo libglpk_la-glpios02.lo \ + libglpk_la-glpios03.lo libglpk_la-glpios07.lo \ + libglpk_la-glpios09.lo libglpk_la-glpios11.lo \ + libglpk_la-glpios12.lo libglpk_la-glpipm.lo \ + libglpk_la-glpmat.lo libglpk_la-glprgr.lo libglpk_la-glpscl.lo \ + libglpk_la-glpspm.lo libglpk_la-glpssx01.lo \ + libglpk_la-glpssx02.lo libglpk_la-lux.lo libglpk_la-alloc.lo \ + libglpk_la-dlsup.lo libglpk_la-env.lo libglpk_la-error.lo \ + libglpk_la-stdc.lo libglpk_la-stdout.lo libglpk_la-stream.lo \ + libglpk_la-time.lo libglpk_la-tls.lo libglpk_la-cfg.lo \ + libglpk_la-cfg1.lo libglpk_la-cfg2.lo libglpk_la-clqcut.lo \ + libglpk_la-covgen.lo libglpk_la-fpump.lo libglpk_la-gmicut.lo \ + libglpk_la-gmigen.lo libglpk_la-mirgen.lo libglpk_la-spv.lo \ + libglpk_la-minisat.lo libglpk_la-avl.lo libglpk_la-bignum.lo \ + libglpk_la-dimacs.lo libglpk_la-dmp.lo libglpk_la-ffalg.lo \ + libglpk_la-fp2rat.lo libglpk_la-fvs.lo libglpk_la-gcd.lo \ + libglpk_la-jd.lo libglpk_la-keller.lo libglpk_la-ks.lo \ + libglpk_la-mc13d.lo libglpk_la-mc21a.lo libglpk_la-mt1.lo \ + libglpk_la-mygmp.lo libglpk_la-okalg.lo libglpk_la-qmd.lo \ + libglpk_la-relax4.lo libglpk_la-rng.lo libglpk_la-rng1.lo \ + libglpk_la-round2n.lo libglpk_la-str2int.lo \ + libglpk_la-str2num.lo libglpk_la-strspx.lo \ + libglpk_la-strtrim.lo libglpk_la-triang.lo \ + libglpk_la-wclique.lo libglpk_la-wclique1.lo \ + libglpk_la-mpl1.lo libglpk_la-mpl2.lo libglpk_la-mpl3.lo \ + libglpk_la-mpl4.lo libglpk_la-mpl5.lo libglpk_la-mpl6.lo \ + libglpk_la-mplsql.lo libglpk_la-npp1.lo libglpk_la-npp2.lo \ + libglpk_la-npp3.lo libglpk_la-npp4.lo libglpk_la-npp5.lo \ + libglpk_la-npp6.lo libglpk_la-proxy.lo libglpk_la-proxy1.lo \ + libglpk_la-spxat.lo libglpk_la-spxchuzc.lo \ + libglpk_la-spxchuzr.lo libglpk_la-spxlp.lo libglpk_la-spxnt.lo \ + libglpk_la-spxprim.lo libglpk_la-spxprob.lo \ + libglpk_la-spychuzc.lo libglpk_la-spychuzr.lo \ + libglpk_la-spydual.lo libglpk_la-adler32.lo \ + libglpk_la-compress.lo libglpk_la-crc32.lo \ + libglpk_la-deflate.lo libglpk_la-gzclose.lo \ + libglpk_la-gzlib.lo libglpk_la-gzread.lo libglpk_la-gzwrite.lo \ + libglpk_la-inffast.lo libglpk_la-inflate.lo \ + libglpk_la-inftrees.lo libglpk_la-trees.lo \ + libglpk_la-uncompr.lo libglpk_la-zio.lo libglpk_la-zutil.lo libglpk_la_OBJECTS = $(am_libglpk_la_OBJECTS) libglpk_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -233,6 +240,7 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ +NOUNDEFINED = @NOUNDEFINED@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ @@ -308,89 +316,26 @@ lib_LTLIBRARIES = libglpk.la libglpk_la_CPPFLAGS = \ -I$(srcdir) \ -I$(srcdir)/amd \ +-I$(srcdir)/api \ -I$(srcdir)/bflib \ --I$(srcdir)/cglib \ -I$(srcdir)/colamd \ +-I$(srcdir)/draft \ -I$(srcdir)/env \ +-I$(srcdir)/intopt \ -I$(srcdir)/minisat \ -I$(srcdir)/misc \ +-I$(srcdir)/mpl \ +-I$(srcdir)/npp \ -I$(srcdir)/proxy \ -I$(srcdir)/simplex \ -I$(srcdir)/zlib libglpk_la_LDFLAGS = \ --version-info 38:0:2 \ --export-symbols-regex '^glp_*' +-version-info 43:0:3 \ +-export-symbols-regex '^glp_*' \ +${NOUNDEFINED} libglpk_la_SOURCES = \ -avl.c \ -bfd.c \ -bfx.c \ -glpapi01.c \ -glpapi02.c \ -glpapi03.c \ -glpapi04.c \ -glpapi05.c \ -glpapi06.c \ -glpapi07.c \ -glpapi08.c \ -glpapi09.c \ -glpapi10.c \ -glpapi11.c \ -glpapi12.c \ -glpapi13.c \ -glpapi14.c \ -glpapi15.c \ -glpapi16.c \ -glpapi17.c \ -glpapi18.c \ -glpapi19.c \ -glpapi20.c \ -glpapi21.c \ -glpcpx.c \ -glpdmx.c \ -glpgmp.c \ -glphbm.c \ -glpini01.c \ -glpini02.c \ -glpios01.c \ -glpios02.c \ -glpios03.c \ -glpios04.c \ -glpios05.c \ -glpios06.c \ -glpios07.c \ -glpios08.c \ -glpios09.c \ -glpios10.c \ -glpios11.c \ -glpios12.c \ -glpipm.c \ -glpmat.c \ -glpmpl01.c \ -glpmpl02.c \ -glpmpl03.c \ -glpmpl04.c \ -glpmpl05.c \ -glpmpl06.c \ -glpmps.c \ -glpnet03.c \ -glpnet04.c \ -glpnet05.c \ -glpnpp01.c \ -glpnpp02.c \ -glpnpp03.c \ -glpnpp04.c \ -glpnpp05.c \ -glpnpp06.c \ -glprgr.c \ -glpscl.c \ -glpsdf.c \ -glpspm.c \ -glpsql.c \ -glpssx01.c \ -glpssx02.c \ -lux.c \ amd/amd_1.c \ amd/amd_2.c \ amd/amd_aat.c \ @@ -403,6 +348,60 @@ amd/amd_post_tree.c \ amd/amd_postorder.c \ amd/amd_preprocess.c \ amd/amd_valid.c \ +api/advbas.c \ +api/asnhall.c \ +api/asnlp.c \ +api/asnokalg.c \ +api/ckasn.c \ +api/ckcnf.c \ +api/cplex.c \ +api/cpp.c \ +api/cpxbas.c \ +api/graph.c \ +api/gridgen.c \ +api/intfeas1.c \ +api/maxffalg.c \ +api/maxflp.c \ +api/mcflp.c \ +api/mcfokalg.c \ +api/mcfrelax.c \ +api/minisat1.c \ +api/mpl.c \ +api/mps.c \ +api/netgen.c \ +api/npp.c \ +api/pript.c \ +api/prmip.c \ +api/prob1.c \ +api/prob2.c \ +api/prob3.c \ +api/prob4.c \ +api/prob5.c \ +api/prrngs.c \ +api/prsol.c \ +api/rdasn.c \ +api/rdcc.c \ +api/rdcnf.c \ +api/rdipt.c \ +api/rdmaxf.c \ +api/rdmcf.c \ +api/rdmip.c \ +api/rdprob.c \ +api/rdsol.c \ +api/rmfgen.c \ +api/strong.c \ +api/topsort.c \ +api/weak.c \ +api/wcliqex.c \ +api/wrasn.c \ +api/wrcc.c \ +api/wrcnf.c \ +api/wript.c \ +api/wrmaxf.c \ +api/wrmcf.c \ +api/wrmip.c \ +api/wrprob.c \ +api/wrsol.c \ bflib/btf.c \ bflib/btfint.c \ bflib/fhv.c \ @@ -414,27 +413,67 @@ bflib/scf.c \ bflib/scfint.c \ bflib/sgf.c \ bflib/sva.c \ -cglib/cfg.c \ -cglib/cfg1.c \ colamd/colamd.c \ +draft/bfd.c \ +draft/bfx.c \ +draft/glpapi06.c \ +draft/glpapi07.c \ +draft/glpapi08.c \ +draft/glpapi09.c \ +draft/glpapi10.c \ +draft/glpapi12.c \ +draft/glpapi13.c \ +draft/glphbm.c \ +draft/glpios01.c \ +draft/glpios02.c \ +draft/glpios03.c \ +draft/glpios07.c \ +draft/glpios09.c \ +draft/glpios11.c \ +draft/glpios12.c \ +draft/glpipm.c \ +draft/glpmat.c \ +draft/glprgr.c \ +draft/glpscl.c \ +draft/glpspm.c \ +draft/glpssx01.c \ +draft/glpssx02.c \ +draft/lux.c \ env/alloc.c \ env/dlsup.c \ env/env.c \ env/error.c \ +env/stdc.c \ env/stdout.c \ env/stream.c \ env/time.c \ env/tls.c \ +intopt/cfg.c \ +intopt/cfg1.c \ +intopt/cfg2.c \ +intopt/clqcut.c \ +intopt/covgen.c \ +intopt/fpump.c \ +intopt/gmicut.c \ +intopt/gmigen.c \ +intopt/mirgen.c \ +intopt/spv.c \ minisat/minisat.c \ +misc/avl.c \ misc/bignum.c \ +misc/dimacs.c \ misc/dmp.c \ misc/ffalg.c \ misc/fp2rat.c \ +misc/fvs.c \ misc/gcd.c \ misc/jd.c \ misc/keller.c \ +misc/ks.c \ misc/mc13d.c \ misc/mc21a.c \ +misc/mt1.c \ +misc/mygmp.c \ misc/okalg.c \ misc/qmd.c \ misc/relax4.c \ @@ -448,6 +487,19 @@ misc/strtrim.c \ misc/triang.c \ misc/wclique.c \ misc/wclique1.c \ +mpl/mpl1.c \ +mpl/mpl2.c \ +mpl/mpl3.c \ +mpl/mpl4.c \ +mpl/mpl5.c \ +mpl/mpl6.c \ +mpl/mplsql.c \ +npp/npp1.c \ +npp/npp2.c \ +npp/npp3.c \ +npp/npp4.c \ +npp/npp5.c \ +npp/npp6.c \ proxy/proxy.c \ proxy/proxy1.c \ simplex/spxat.c \ @@ -554,6 +606,7 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-adler32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-advbas.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-alloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-amd_1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-amd_2.Plo@am__quote@ @@ -567,6 +620,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-amd_postorder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-amd_preprocess.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-amd_valid.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-asnhall.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-asnlp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-asnokalg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-avl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-bfd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-bfx.Plo@am__quote@ @@ -575,10 +631,19 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-btfint.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-cfg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-cfg1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-cfg2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-ckasn.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-ckcnf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-clqcut.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-colamd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-compress.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-covgen.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-cplex.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-cpp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-cpxbas.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-crc32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-deflate.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-dimacs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-dlsup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-dmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-env.Plo@am__quote@ @@ -587,71 +652,35 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-fhv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-fhvint.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-fp2rat.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-fpump.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-fvs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-gcd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi01.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi02.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi03.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi04.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi05.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi06.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi07.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi08.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi09.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi10.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi11.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi12.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi13.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi14.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi15.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi16.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi17.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi18.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi19.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi20.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpapi21.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpcpx.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpdmx.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpgmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glphbm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpini01.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpini02.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpios01.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpios02.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpios03.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpios04.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpios05.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpios06.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpios07.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpios08.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpios09.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpios10.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpios11.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpios12.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpipm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpmat.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpmpl01.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpmpl02.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpmpl03.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpmpl04.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpmpl05.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpmpl06.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpmps.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpnet03.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpnet04.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpnet05.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpnpp01.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpnpp02.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpnpp03.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpnpp04.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpnpp05.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpnpp06.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glprgr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpscl.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpsdf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpspm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpsql.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpssx01.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-glpssx02.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-gmicut.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-gmigen.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-graph.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-gridgen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-gzclose.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-gzlib.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-gzread.Plo@am__quote@ @@ -660,25 +689,73 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-inffast.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-inflate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-inftrees.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-intfeas1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-jd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-keller.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-ks.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-luf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-lufint.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-lux.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-maxffalg.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-maxflp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mc13d.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mc21a.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mcflp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mcfokalg.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mcfrelax.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-minisat.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-minisat1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mirgen.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mpl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mpl1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mpl2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mpl3.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mpl4.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mpl5.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mpl6.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mplsql.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mps.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mt1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-mygmp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-netgen.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-npp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-npp1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-npp2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-npp3.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-npp4.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-npp5.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-npp6.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-okalg.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-pript.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-prmip.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-prob1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-prob2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-prob3.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-prob4.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-prob5.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-proxy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-proxy1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-prrngs.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-prsol.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-qmd.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-rdasn.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-rdcc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-rdcnf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-rdipt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-rdmaxf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-rdmcf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-rdmip.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-rdprob.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-rdsol.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-relax4.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-rmfgen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-rng.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-rng1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-round2n.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-scf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-scfint.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-sgf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-spv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-spxat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-spxchuzc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-spxchuzr.Plo@am__quote@ @@ -689,20 +766,34 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-spychuzc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-spychuzr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-spydual.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-stdc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-stdout.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-str2int.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-str2num.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-stream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-strong.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-strspx.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-strtrim.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-sva.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-time.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-tls.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-topsort.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-trees.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-triang.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-uncompr.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-wcliqex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-wclique.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-wclique1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-weak.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-wrasn.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-wrcc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-wrcnf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-wript.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-wrmaxf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-wrmcf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-wrmip.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-wrprob.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-wrsol.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-zio.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libglpk_la-zutil.Plo@am__quote@ @@ -727,565 +818,467 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -libglpk_la-avl.lo: avl.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-avl.lo -MD -MP -MF $(DEPDIR)/libglpk_la-avl.Tpo -c -o libglpk_la-avl.lo `test -f 'avl.c' || echo '$(srcdir)/'`avl.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-avl.Tpo $(DEPDIR)/libglpk_la-avl.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='avl.c' object='libglpk_la-avl.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-avl.lo `test -f 'avl.c' || echo '$(srcdir)/'`avl.c - -libglpk_la-bfd.lo: bfd.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-bfd.lo -MD -MP -MF $(DEPDIR)/libglpk_la-bfd.Tpo -c -o libglpk_la-bfd.lo `test -f 'bfd.c' || echo '$(srcdir)/'`bfd.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-bfd.Tpo $(DEPDIR)/libglpk_la-bfd.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bfd.c' object='libglpk_la-bfd.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-bfd.lo `test -f 'bfd.c' || echo '$(srcdir)/'`bfd.c - -libglpk_la-bfx.lo: bfx.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-bfx.lo -MD -MP -MF $(DEPDIR)/libglpk_la-bfx.Tpo -c -o libglpk_la-bfx.lo `test -f 'bfx.c' || echo '$(srcdir)/'`bfx.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-bfx.Tpo $(DEPDIR)/libglpk_la-bfx.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bfx.c' object='libglpk_la-bfx.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-bfx.lo `test -f 'bfx.c' || echo '$(srcdir)/'`bfx.c - -libglpk_la-glpapi01.lo: glpapi01.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi01.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi01.Tpo -c -o libglpk_la-glpapi01.lo `test -f 'glpapi01.c' || echo '$(srcdir)/'`glpapi01.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi01.Tpo $(DEPDIR)/libglpk_la-glpapi01.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi01.c' object='libglpk_la-glpapi01.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi01.lo `test -f 'glpapi01.c' || echo '$(srcdir)/'`glpapi01.c - -libglpk_la-glpapi02.lo: glpapi02.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi02.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi02.Tpo -c -o libglpk_la-glpapi02.lo `test -f 'glpapi02.c' || echo '$(srcdir)/'`glpapi02.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi02.Tpo $(DEPDIR)/libglpk_la-glpapi02.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi02.c' object='libglpk_la-glpapi02.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi02.lo `test -f 'glpapi02.c' || echo '$(srcdir)/'`glpapi02.c - -libglpk_la-glpapi03.lo: glpapi03.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi03.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi03.Tpo -c -o libglpk_la-glpapi03.lo `test -f 'glpapi03.c' || echo '$(srcdir)/'`glpapi03.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi03.Tpo $(DEPDIR)/libglpk_la-glpapi03.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi03.c' object='libglpk_la-glpapi03.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi03.lo `test -f 'glpapi03.c' || echo '$(srcdir)/'`glpapi03.c - -libglpk_la-glpapi04.lo: glpapi04.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi04.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi04.Tpo -c -o libglpk_la-glpapi04.lo `test -f 'glpapi04.c' || echo '$(srcdir)/'`glpapi04.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi04.Tpo $(DEPDIR)/libglpk_la-glpapi04.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi04.c' object='libglpk_la-glpapi04.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi04.lo `test -f 'glpapi04.c' || echo '$(srcdir)/'`glpapi04.c - -libglpk_la-glpapi05.lo: glpapi05.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi05.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi05.Tpo -c -o libglpk_la-glpapi05.lo `test -f 'glpapi05.c' || echo '$(srcdir)/'`glpapi05.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi05.Tpo $(DEPDIR)/libglpk_la-glpapi05.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi05.c' object='libglpk_la-glpapi05.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi05.lo `test -f 'glpapi05.c' || echo '$(srcdir)/'`glpapi05.c - -libglpk_la-glpapi06.lo: glpapi06.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi06.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi06.Tpo -c -o libglpk_la-glpapi06.lo `test -f 'glpapi06.c' || echo '$(srcdir)/'`glpapi06.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi06.Tpo $(DEPDIR)/libglpk_la-glpapi06.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi06.c' object='libglpk_la-glpapi06.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi06.lo `test -f 'glpapi06.c' || echo '$(srcdir)/'`glpapi06.c - -libglpk_la-glpapi07.lo: glpapi07.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi07.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi07.Tpo -c -o libglpk_la-glpapi07.lo `test -f 'glpapi07.c' || echo '$(srcdir)/'`glpapi07.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi07.Tpo $(DEPDIR)/libglpk_la-glpapi07.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi07.c' object='libglpk_la-glpapi07.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi07.lo `test -f 'glpapi07.c' || echo '$(srcdir)/'`glpapi07.c - -libglpk_la-glpapi08.lo: glpapi08.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi08.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi08.Tpo -c -o libglpk_la-glpapi08.lo `test -f 'glpapi08.c' || echo '$(srcdir)/'`glpapi08.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi08.Tpo $(DEPDIR)/libglpk_la-glpapi08.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi08.c' object='libglpk_la-glpapi08.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi08.lo `test -f 'glpapi08.c' || echo '$(srcdir)/'`glpapi08.c - -libglpk_la-glpapi09.lo: glpapi09.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi09.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi09.Tpo -c -o libglpk_la-glpapi09.lo `test -f 'glpapi09.c' || echo '$(srcdir)/'`glpapi09.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi09.Tpo $(DEPDIR)/libglpk_la-glpapi09.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi09.c' object='libglpk_la-glpapi09.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi09.lo `test -f 'glpapi09.c' || echo '$(srcdir)/'`glpapi09.c - -libglpk_la-glpapi10.lo: glpapi10.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi10.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi10.Tpo -c -o libglpk_la-glpapi10.lo `test -f 'glpapi10.c' || echo '$(srcdir)/'`glpapi10.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi10.Tpo $(DEPDIR)/libglpk_la-glpapi10.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi10.c' object='libglpk_la-glpapi10.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi10.lo `test -f 'glpapi10.c' || echo '$(srcdir)/'`glpapi10.c - -libglpk_la-glpapi11.lo: glpapi11.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi11.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi11.Tpo -c -o libglpk_la-glpapi11.lo `test -f 'glpapi11.c' || echo '$(srcdir)/'`glpapi11.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi11.Tpo $(DEPDIR)/libglpk_la-glpapi11.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi11.c' object='libglpk_la-glpapi11.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi11.lo `test -f 'glpapi11.c' || echo '$(srcdir)/'`glpapi11.c - -libglpk_la-glpapi12.lo: glpapi12.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi12.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi12.Tpo -c -o libglpk_la-glpapi12.lo `test -f 'glpapi12.c' || echo '$(srcdir)/'`glpapi12.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi12.Tpo $(DEPDIR)/libglpk_la-glpapi12.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi12.c' object='libglpk_la-glpapi12.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-amd_1.lo: amd/amd_1.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_1.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_1.Tpo -c -o libglpk_la-amd_1.lo `test -f 'amd/amd_1.c' || echo '$(srcdir)/'`amd/amd_1.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_1.Tpo $(DEPDIR)/libglpk_la-amd_1.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_1.c' object='libglpk_la-amd_1.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi12.lo `test -f 'glpapi12.c' || echo '$(srcdir)/'`glpapi12.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_1.lo `test -f 'amd/amd_1.c' || echo '$(srcdir)/'`amd/amd_1.c -libglpk_la-glpapi13.lo: glpapi13.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi13.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi13.Tpo -c -o libglpk_la-glpapi13.lo `test -f 'glpapi13.c' || echo '$(srcdir)/'`glpapi13.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi13.Tpo $(DEPDIR)/libglpk_la-glpapi13.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi13.c' object='libglpk_la-glpapi13.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-amd_2.lo: amd/amd_2.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_2.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_2.Tpo -c -o libglpk_la-amd_2.lo `test -f 'amd/amd_2.c' || echo '$(srcdir)/'`amd/amd_2.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_2.Tpo $(DEPDIR)/libglpk_la-amd_2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_2.c' object='libglpk_la-amd_2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi13.lo `test -f 'glpapi13.c' || echo '$(srcdir)/'`glpapi13.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_2.lo `test -f 'amd/amd_2.c' || echo '$(srcdir)/'`amd/amd_2.c -libglpk_la-glpapi14.lo: glpapi14.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi14.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi14.Tpo -c -o libglpk_la-glpapi14.lo `test -f 'glpapi14.c' || echo '$(srcdir)/'`glpapi14.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi14.Tpo $(DEPDIR)/libglpk_la-glpapi14.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi14.c' object='libglpk_la-glpapi14.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-amd_aat.lo: amd/amd_aat.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_aat.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_aat.Tpo -c -o libglpk_la-amd_aat.lo `test -f 'amd/amd_aat.c' || echo '$(srcdir)/'`amd/amd_aat.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_aat.Tpo $(DEPDIR)/libglpk_la-amd_aat.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_aat.c' object='libglpk_la-amd_aat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi14.lo `test -f 'glpapi14.c' || echo '$(srcdir)/'`glpapi14.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_aat.lo `test -f 'amd/amd_aat.c' || echo '$(srcdir)/'`amd/amd_aat.c -libglpk_la-glpapi15.lo: glpapi15.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi15.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi15.Tpo -c -o libglpk_la-glpapi15.lo `test -f 'glpapi15.c' || echo '$(srcdir)/'`glpapi15.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi15.Tpo $(DEPDIR)/libglpk_la-glpapi15.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi15.c' object='libglpk_la-glpapi15.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-amd_control.lo: amd/amd_control.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_control.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_control.Tpo -c -o libglpk_la-amd_control.lo `test -f 'amd/amd_control.c' || echo '$(srcdir)/'`amd/amd_control.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_control.Tpo $(DEPDIR)/libglpk_la-amd_control.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_control.c' object='libglpk_la-amd_control.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi15.lo `test -f 'glpapi15.c' || echo '$(srcdir)/'`glpapi15.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_control.lo `test -f 'amd/amd_control.c' || echo '$(srcdir)/'`amd/amd_control.c -libglpk_la-glpapi16.lo: glpapi16.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi16.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi16.Tpo -c -o libglpk_la-glpapi16.lo `test -f 'glpapi16.c' || echo '$(srcdir)/'`glpapi16.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi16.Tpo $(DEPDIR)/libglpk_la-glpapi16.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi16.c' object='libglpk_la-glpapi16.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-amd_defaults.lo: amd/amd_defaults.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_defaults.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_defaults.Tpo -c -o libglpk_la-amd_defaults.lo `test -f 'amd/amd_defaults.c' || echo '$(srcdir)/'`amd/amd_defaults.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_defaults.Tpo $(DEPDIR)/libglpk_la-amd_defaults.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_defaults.c' object='libglpk_la-amd_defaults.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi16.lo `test -f 'glpapi16.c' || echo '$(srcdir)/'`glpapi16.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_defaults.lo `test -f 'amd/amd_defaults.c' || echo '$(srcdir)/'`amd/amd_defaults.c -libglpk_la-glpapi17.lo: glpapi17.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi17.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi17.Tpo -c -o libglpk_la-glpapi17.lo `test -f 'glpapi17.c' || echo '$(srcdir)/'`glpapi17.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi17.Tpo $(DEPDIR)/libglpk_la-glpapi17.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi17.c' object='libglpk_la-glpapi17.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-amd_dump.lo: amd/amd_dump.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_dump.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_dump.Tpo -c -o libglpk_la-amd_dump.lo `test -f 'amd/amd_dump.c' || echo '$(srcdir)/'`amd/amd_dump.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_dump.Tpo $(DEPDIR)/libglpk_la-amd_dump.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_dump.c' object='libglpk_la-amd_dump.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi17.lo `test -f 'glpapi17.c' || echo '$(srcdir)/'`glpapi17.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_dump.lo `test -f 'amd/amd_dump.c' || echo '$(srcdir)/'`amd/amd_dump.c -libglpk_la-glpapi18.lo: glpapi18.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi18.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi18.Tpo -c -o libglpk_la-glpapi18.lo `test -f 'glpapi18.c' || echo '$(srcdir)/'`glpapi18.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi18.Tpo $(DEPDIR)/libglpk_la-glpapi18.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi18.c' object='libglpk_la-glpapi18.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-amd_info.lo: amd/amd_info.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_info.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_info.Tpo -c -o libglpk_la-amd_info.lo `test -f 'amd/amd_info.c' || echo '$(srcdir)/'`amd/amd_info.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_info.Tpo $(DEPDIR)/libglpk_la-amd_info.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_info.c' object='libglpk_la-amd_info.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi18.lo `test -f 'glpapi18.c' || echo '$(srcdir)/'`glpapi18.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_info.lo `test -f 'amd/amd_info.c' || echo '$(srcdir)/'`amd/amd_info.c -libglpk_la-glpapi19.lo: glpapi19.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi19.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi19.Tpo -c -o libglpk_la-glpapi19.lo `test -f 'glpapi19.c' || echo '$(srcdir)/'`glpapi19.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi19.Tpo $(DEPDIR)/libglpk_la-glpapi19.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi19.c' object='libglpk_la-glpapi19.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-amd_order.lo: amd/amd_order.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_order.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_order.Tpo -c -o libglpk_la-amd_order.lo `test -f 'amd/amd_order.c' || echo '$(srcdir)/'`amd/amd_order.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_order.Tpo $(DEPDIR)/libglpk_la-amd_order.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_order.c' object='libglpk_la-amd_order.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi19.lo `test -f 'glpapi19.c' || echo '$(srcdir)/'`glpapi19.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_order.lo `test -f 'amd/amd_order.c' || echo '$(srcdir)/'`amd/amd_order.c -libglpk_la-glpapi20.lo: glpapi20.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi20.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi20.Tpo -c -o libglpk_la-glpapi20.lo `test -f 'glpapi20.c' || echo '$(srcdir)/'`glpapi20.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi20.Tpo $(DEPDIR)/libglpk_la-glpapi20.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi20.c' object='libglpk_la-glpapi20.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-amd_post_tree.lo: amd/amd_post_tree.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_post_tree.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_post_tree.Tpo -c -o libglpk_la-amd_post_tree.lo `test -f 'amd/amd_post_tree.c' || echo '$(srcdir)/'`amd/amd_post_tree.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_post_tree.Tpo $(DEPDIR)/libglpk_la-amd_post_tree.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_post_tree.c' object='libglpk_la-amd_post_tree.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi20.lo `test -f 'glpapi20.c' || echo '$(srcdir)/'`glpapi20.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_post_tree.lo `test -f 'amd/amd_post_tree.c' || echo '$(srcdir)/'`amd/amd_post_tree.c -libglpk_la-glpapi21.lo: glpapi21.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi21.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi21.Tpo -c -o libglpk_la-glpapi21.lo `test -f 'glpapi21.c' || echo '$(srcdir)/'`glpapi21.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi21.Tpo $(DEPDIR)/libglpk_la-glpapi21.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpapi21.c' object='libglpk_la-glpapi21.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-amd_postorder.lo: amd/amd_postorder.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_postorder.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_postorder.Tpo -c -o libglpk_la-amd_postorder.lo `test -f 'amd/amd_postorder.c' || echo '$(srcdir)/'`amd/amd_postorder.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_postorder.Tpo $(DEPDIR)/libglpk_la-amd_postorder.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_postorder.c' object='libglpk_la-amd_postorder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi21.lo `test -f 'glpapi21.c' || echo '$(srcdir)/'`glpapi21.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_postorder.lo `test -f 'amd/amd_postorder.c' || echo '$(srcdir)/'`amd/amd_postorder.c -libglpk_la-glpcpx.lo: glpcpx.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpcpx.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpcpx.Tpo -c -o libglpk_la-glpcpx.lo `test -f 'glpcpx.c' || echo '$(srcdir)/'`glpcpx.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpcpx.Tpo $(DEPDIR)/libglpk_la-glpcpx.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpcpx.c' object='libglpk_la-glpcpx.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-amd_preprocess.lo: amd/amd_preprocess.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_preprocess.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_preprocess.Tpo -c -o libglpk_la-amd_preprocess.lo `test -f 'amd/amd_preprocess.c' || echo '$(srcdir)/'`amd/amd_preprocess.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_preprocess.Tpo $(DEPDIR)/libglpk_la-amd_preprocess.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_preprocess.c' object='libglpk_la-amd_preprocess.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpcpx.lo `test -f 'glpcpx.c' || echo '$(srcdir)/'`glpcpx.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_preprocess.lo `test -f 'amd/amd_preprocess.c' || echo '$(srcdir)/'`amd/amd_preprocess.c -libglpk_la-glpdmx.lo: glpdmx.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpdmx.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpdmx.Tpo -c -o libglpk_la-glpdmx.lo `test -f 'glpdmx.c' || echo '$(srcdir)/'`glpdmx.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpdmx.Tpo $(DEPDIR)/libglpk_la-glpdmx.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpdmx.c' object='libglpk_la-glpdmx.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-amd_valid.lo: amd/amd_valid.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_valid.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_valid.Tpo -c -o libglpk_la-amd_valid.lo `test -f 'amd/amd_valid.c' || echo '$(srcdir)/'`amd/amd_valid.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_valid.Tpo $(DEPDIR)/libglpk_la-amd_valid.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_valid.c' object='libglpk_la-amd_valid.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpdmx.lo `test -f 'glpdmx.c' || echo '$(srcdir)/'`glpdmx.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_valid.lo `test -f 'amd/amd_valid.c' || echo '$(srcdir)/'`amd/amd_valid.c -libglpk_la-glpgmp.lo: glpgmp.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpgmp.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpgmp.Tpo -c -o libglpk_la-glpgmp.lo `test -f 'glpgmp.c' || echo '$(srcdir)/'`glpgmp.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpgmp.Tpo $(DEPDIR)/libglpk_la-glpgmp.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpgmp.c' object='libglpk_la-glpgmp.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-advbas.lo: api/advbas.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-advbas.lo -MD -MP -MF $(DEPDIR)/libglpk_la-advbas.Tpo -c -o libglpk_la-advbas.lo `test -f 'api/advbas.c' || echo '$(srcdir)/'`api/advbas.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-advbas.Tpo $(DEPDIR)/libglpk_la-advbas.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/advbas.c' object='libglpk_la-advbas.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpgmp.lo `test -f 'glpgmp.c' || echo '$(srcdir)/'`glpgmp.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-advbas.lo `test -f 'api/advbas.c' || echo '$(srcdir)/'`api/advbas.c -libglpk_la-glphbm.lo: glphbm.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glphbm.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glphbm.Tpo -c -o libglpk_la-glphbm.lo `test -f 'glphbm.c' || echo '$(srcdir)/'`glphbm.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glphbm.Tpo $(DEPDIR)/libglpk_la-glphbm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glphbm.c' object='libglpk_la-glphbm.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-asnhall.lo: api/asnhall.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-asnhall.lo -MD -MP -MF $(DEPDIR)/libglpk_la-asnhall.Tpo -c -o libglpk_la-asnhall.lo `test -f 'api/asnhall.c' || echo '$(srcdir)/'`api/asnhall.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-asnhall.Tpo $(DEPDIR)/libglpk_la-asnhall.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/asnhall.c' object='libglpk_la-asnhall.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glphbm.lo `test -f 'glphbm.c' || echo '$(srcdir)/'`glphbm.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-asnhall.lo `test -f 'api/asnhall.c' || echo '$(srcdir)/'`api/asnhall.c -libglpk_la-glpini01.lo: glpini01.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpini01.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpini01.Tpo -c -o libglpk_la-glpini01.lo `test -f 'glpini01.c' || echo '$(srcdir)/'`glpini01.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpini01.Tpo $(DEPDIR)/libglpk_la-glpini01.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpini01.c' object='libglpk_la-glpini01.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-asnlp.lo: api/asnlp.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-asnlp.lo -MD -MP -MF $(DEPDIR)/libglpk_la-asnlp.Tpo -c -o libglpk_la-asnlp.lo `test -f 'api/asnlp.c' || echo '$(srcdir)/'`api/asnlp.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-asnlp.Tpo $(DEPDIR)/libglpk_la-asnlp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/asnlp.c' object='libglpk_la-asnlp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpini01.lo `test -f 'glpini01.c' || echo '$(srcdir)/'`glpini01.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-asnlp.lo `test -f 'api/asnlp.c' || echo '$(srcdir)/'`api/asnlp.c -libglpk_la-glpini02.lo: glpini02.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpini02.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpini02.Tpo -c -o libglpk_la-glpini02.lo `test -f 'glpini02.c' || echo '$(srcdir)/'`glpini02.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpini02.Tpo $(DEPDIR)/libglpk_la-glpini02.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpini02.c' object='libglpk_la-glpini02.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-asnokalg.lo: api/asnokalg.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-asnokalg.lo -MD -MP -MF $(DEPDIR)/libglpk_la-asnokalg.Tpo -c -o libglpk_la-asnokalg.lo `test -f 'api/asnokalg.c' || echo '$(srcdir)/'`api/asnokalg.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-asnokalg.Tpo $(DEPDIR)/libglpk_la-asnokalg.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/asnokalg.c' object='libglpk_la-asnokalg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpini02.lo `test -f 'glpini02.c' || echo '$(srcdir)/'`glpini02.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-asnokalg.lo `test -f 'api/asnokalg.c' || echo '$(srcdir)/'`api/asnokalg.c -libglpk_la-glpios01.lo: glpios01.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios01.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios01.Tpo -c -o libglpk_la-glpios01.lo `test -f 'glpios01.c' || echo '$(srcdir)/'`glpios01.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios01.Tpo $(DEPDIR)/libglpk_la-glpios01.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpios01.c' object='libglpk_la-glpios01.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-ckasn.lo: api/ckasn.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-ckasn.lo -MD -MP -MF $(DEPDIR)/libglpk_la-ckasn.Tpo -c -o libglpk_la-ckasn.lo `test -f 'api/ckasn.c' || echo '$(srcdir)/'`api/ckasn.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-ckasn.Tpo $(DEPDIR)/libglpk_la-ckasn.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/ckasn.c' object='libglpk_la-ckasn.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios01.lo `test -f 'glpios01.c' || echo '$(srcdir)/'`glpios01.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-ckasn.lo `test -f 'api/ckasn.c' || echo '$(srcdir)/'`api/ckasn.c -libglpk_la-glpios02.lo: glpios02.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios02.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios02.Tpo -c -o libglpk_la-glpios02.lo `test -f 'glpios02.c' || echo '$(srcdir)/'`glpios02.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios02.Tpo $(DEPDIR)/libglpk_la-glpios02.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpios02.c' object='libglpk_la-glpios02.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-ckcnf.lo: api/ckcnf.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-ckcnf.lo -MD -MP -MF $(DEPDIR)/libglpk_la-ckcnf.Tpo -c -o libglpk_la-ckcnf.lo `test -f 'api/ckcnf.c' || echo '$(srcdir)/'`api/ckcnf.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-ckcnf.Tpo $(DEPDIR)/libglpk_la-ckcnf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/ckcnf.c' object='libglpk_la-ckcnf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios02.lo `test -f 'glpios02.c' || echo '$(srcdir)/'`glpios02.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-ckcnf.lo `test -f 'api/ckcnf.c' || echo '$(srcdir)/'`api/ckcnf.c -libglpk_la-glpios03.lo: glpios03.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios03.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios03.Tpo -c -o libglpk_la-glpios03.lo `test -f 'glpios03.c' || echo '$(srcdir)/'`glpios03.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios03.Tpo $(DEPDIR)/libglpk_la-glpios03.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpios03.c' object='libglpk_la-glpios03.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-cplex.lo: api/cplex.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-cplex.lo -MD -MP -MF $(DEPDIR)/libglpk_la-cplex.Tpo -c -o libglpk_la-cplex.lo `test -f 'api/cplex.c' || echo '$(srcdir)/'`api/cplex.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-cplex.Tpo $(DEPDIR)/libglpk_la-cplex.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/cplex.c' object='libglpk_la-cplex.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios03.lo `test -f 'glpios03.c' || echo '$(srcdir)/'`glpios03.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-cplex.lo `test -f 'api/cplex.c' || echo '$(srcdir)/'`api/cplex.c -libglpk_la-glpios04.lo: glpios04.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios04.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios04.Tpo -c -o libglpk_la-glpios04.lo `test -f 'glpios04.c' || echo '$(srcdir)/'`glpios04.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios04.Tpo $(DEPDIR)/libglpk_la-glpios04.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpios04.c' object='libglpk_la-glpios04.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-cpp.lo: api/cpp.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-cpp.lo -MD -MP -MF $(DEPDIR)/libglpk_la-cpp.Tpo -c -o libglpk_la-cpp.lo `test -f 'api/cpp.c' || echo '$(srcdir)/'`api/cpp.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-cpp.Tpo $(DEPDIR)/libglpk_la-cpp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/cpp.c' object='libglpk_la-cpp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios04.lo `test -f 'glpios04.c' || echo '$(srcdir)/'`glpios04.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-cpp.lo `test -f 'api/cpp.c' || echo '$(srcdir)/'`api/cpp.c -libglpk_la-glpios05.lo: glpios05.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios05.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios05.Tpo -c -o libglpk_la-glpios05.lo `test -f 'glpios05.c' || echo '$(srcdir)/'`glpios05.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios05.Tpo $(DEPDIR)/libglpk_la-glpios05.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpios05.c' object='libglpk_la-glpios05.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-cpxbas.lo: api/cpxbas.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-cpxbas.lo -MD -MP -MF $(DEPDIR)/libglpk_la-cpxbas.Tpo -c -o libglpk_la-cpxbas.lo `test -f 'api/cpxbas.c' || echo '$(srcdir)/'`api/cpxbas.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-cpxbas.Tpo $(DEPDIR)/libglpk_la-cpxbas.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/cpxbas.c' object='libglpk_la-cpxbas.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios05.lo `test -f 'glpios05.c' || echo '$(srcdir)/'`glpios05.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-cpxbas.lo `test -f 'api/cpxbas.c' || echo '$(srcdir)/'`api/cpxbas.c -libglpk_la-glpios06.lo: glpios06.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios06.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios06.Tpo -c -o libglpk_la-glpios06.lo `test -f 'glpios06.c' || echo '$(srcdir)/'`glpios06.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios06.Tpo $(DEPDIR)/libglpk_la-glpios06.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpios06.c' object='libglpk_la-glpios06.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-graph.lo: api/graph.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-graph.lo -MD -MP -MF $(DEPDIR)/libglpk_la-graph.Tpo -c -o libglpk_la-graph.lo `test -f 'api/graph.c' || echo '$(srcdir)/'`api/graph.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-graph.Tpo $(DEPDIR)/libglpk_la-graph.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/graph.c' object='libglpk_la-graph.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios06.lo `test -f 'glpios06.c' || echo '$(srcdir)/'`glpios06.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-graph.lo `test -f 'api/graph.c' || echo '$(srcdir)/'`api/graph.c -libglpk_la-glpios07.lo: glpios07.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios07.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios07.Tpo -c -o libglpk_la-glpios07.lo `test -f 'glpios07.c' || echo '$(srcdir)/'`glpios07.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios07.Tpo $(DEPDIR)/libglpk_la-glpios07.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpios07.c' object='libglpk_la-glpios07.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-gridgen.lo: api/gridgen.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-gridgen.lo -MD -MP -MF $(DEPDIR)/libglpk_la-gridgen.Tpo -c -o libglpk_la-gridgen.lo `test -f 'api/gridgen.c' || echo '$(srcdir)/'`api/gridgen.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-gridgen.Tpo $(DEPDIR)/libglpk_la-gridgen.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/gridgen.c' object='libglpk_la-gridgen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios07.lo `test -f 'glpios07.c' || echo '$(srcdir)/'`glpios07.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-gridgen.lo `test -f 'api/gridgen.c' || echo '$(srcdir)/'`api/gridgen.c -libglpk_la-glpios08.lo: glpios08.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios08.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios08.Tpo -c -o libglpk_la-glpios08.lo `test -f 'glpios08.c' || echo '$(srcdir)/'`glpios08.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios08.Tpo $(DEPDIR)/libglpk_la-glpios08.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpios08.c' object='libglpk_la-glpios08.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-intfeas1.lo: api/intfeas1.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-intfeas1.lo -MD -MP -MF $(DEPDIR)/libglpk_la-intfeas1.Tpo -c -o libglpk_la-intfeas1.lo `test -f 'api/intfeas1.c' || echo '$(srcdir)/'`api/intfeas1.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-intfeas1.Tpo $(DEPDIR)/libglpk_la-intfeas1.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/intfeas1.c' object='libglpk_la-intfeas1.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios08.lo `test -f 'glpios08.c' || echo '$(srcdir)/'`glpios08.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-intfeas1.lo `test -f 'api/intfeas1.c' || echo '$(srcdir)/'`api/intfeas1.c -libglpk_la-glpios09.lo: glpios09.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios09.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios09.Tpo -c -o libglpk_la-glpios09.lo `test -f 'glpios09.c' || echo '$(srcdir)/'`glpios09.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios09.Tpo $(DEPDIR)/libglpk_la-glpios09.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpios09.c' object='libglpk_la-glpios09.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-maxffalg.lo: api/maxffalg.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-maxffalg.lo -MD -MP -MF $(DEPDIR)/libglpk_la-maxffalg.Tpo -c -o libglpk_la-maxffalg.lo `test -f 'api/maxffalg.c' || echo '$(srcdir)/'`api/maxffalg.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-maxffalg.Tpo $(DEPDIR)/libglpk_la-maxffalg.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/maxffalg.c' object='libglpk_la-maxffalg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios09.lo `test -f 'glpios09.c' || echo '$(srcdir)/'`glpios09.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-maxffalg.lo `test -f 'api/maxffalg.c' || echo '$(srcdir)/'`api/maxffalg.c -libglpk_la-glpios10.lo: glpios10.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios10.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios10.Tpo -c -o libglpk_la-glpios10.lo `test -f 'glpios10.c' || echo '$(srcdir)/'`glpios10.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios10.Tpo $(DEPDIR)/libglpk_la-glpios10.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpios10.c' object='libglpk_la-glpios10.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-maxflp.lo: api/maxflp.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-maxflp.lo -MD -MP -MF $(DEPDIR)/libglpk_la-maxflp.Tpo -c -o libglpk_la-maxflp.lo `test -f 'api/maxflp.c' || echo '$(srcdir)/'`api/maxflp.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-maxflp.Tpo $(DEPDIR)/libglpk_la-maxflp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/maxflp.c' object='libglpk_la-maxflp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios10.lo `test -f 'glpios10.c' || echo '$(srcdir)/'`glpios10.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-maxflp.lo `test -f 'api/maxflp.c' || echo '$(srcdir)/'`api/maxflp.c -libglpk_la-glpios11.lo: glpios11.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios11.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios11.Tpo -c -o libglpk_la-glpios11.lo `test -f 'glpios11.c' || echo '$(srcdir)/'`glpios11.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios11.Tpo $(DEPDIR)/libglpk_la-glpios11.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpios11.c' object='libglpk_la-glpios11.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-mcflp.lo: api/mcflp.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mcflp.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mcflp.Tpo -c -o libglpk_la-mcflp.lo `test -f 'api/mcflp.c' || echo '$(srcdir)/'`api/mcflp.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mcflp.Tpo $(DEPDIR)/libglpk_la-mcflp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/mcflp.c' object='libglpk_la-mcflp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios11.lo `test -f 'glpios11.c' || echo '$(srcdir)/'`glpios11.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mcflp.lo `test -f 'api/mcflp.c' || echo '$(srcdir)/'`api/mcflp.c -libglpk_la-glpios12.lo: glpios12.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios12.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios12.Tpo -c -o libglpk_la-glpios12.lo `test -f 'glpios12.c' || echo '$(srcdir)/'`glpios12.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios12.Tpo $(DEPDIR)/libglpk_la-glpios12.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpios12.c' object='libglpk_la-glpios12.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-mcfokalg.lo: api/mcfokalg.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mcfokalg.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mcfokalg.Tpo -c -o libglpk_la-mcfokalg.lo `test -f 'api/mcfokalg.c' || echo '$(srcdir)/'`api/mcfokalg.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mcfokalg.Tpo $(DEPDIR)/libglpk_la-mcfokalg.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/mcfokalg.c' object='libglpk_la-mcfokalg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios12.lo `test -f 'glpios12.c' || echo '$(srcdir)/'`glpios12.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mcfokalg.lo `test -f 'api/mcfokalg.c' || echo '$(srcdir)/'`api/mcfokalg.c -libglpk_la-glpipm.lo: glpipm.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpipm.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpipm.Tpo -c -o libglpk_la-glpipm.lo `test -f 'glpipm.c' || echo '$(srcdir)/'`glpipm.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpipm.Tpo $(DEPDIR)/libglpk_la-glpipm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpipm.c' object='libglpk_la-glpipm.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-mcfrelax.lo: api/mcfrelax.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mcfrelax.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mcfrelax.Tpo -c -o libglpk_la-mcfrelax.lo `test -f 'api/mcfrelax.c' || echo '$(srcdir)/'`api/mcfrelax.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mcfrelax.Tpo $(DEPDIR)/libglpk_la-mcfrelax.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/mcfrelax.c' object='libglpk_la-mcfrelax.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpipm.lo `test -f 'glpipm.c' || echo '$(srcdir)/'`glpipm.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mcfrelax.lo `test -f 'api/mcfrelax.c' || echo '$(srcdir)/'`api/mcfrelax.c -libglpk_la-glpmat.lo: glpmat.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpmat.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpmat.Tpo -c -o libglpk_la-glpmat.lo `test -f 'glpmat.c' || echo '$(srcdir)/'`glpmat.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpmat.Tpo $(DEPDIR)/libglpk_la-glpmat.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpmat.c' object='libglpk_la-glpmat.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-minisat1.lo: api/minisat1.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-minisat1.lo -MD -MP -MF $(DEPDIR)/libglpk_la-minisat1.Tpo -c -o libglpk_la-minisat1.lo `test -f 'api/minisat1.c' || echo '$(srcdir)/'`api/minisat1.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-minisat1.Tpo $(DEPDIR)/libglpk_la-minisat1.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/minisat1.c' object='libglpk_la-minisat1.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpmat.lo `test -f 'glpmat.c' || echo '$(srcdir)/'`glpmat.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-minisat1.lo `test -f 'api/minisat1.c' || echo '$(srcdir)/'`api/minisat1.c -libglpk_la-glpmpl01.lo: glpmpl01.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpmpl01.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpmpl01.Tpo -c -o libglpk_la-glpmpl01.lo `test -f 'glpmpl01.c' || echo '$(srcdir)/'`glpmpl01.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpmpl01.Tpo $(DEPDIR)/libglpk_la-glpmpl01.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpmpl01.c' object='libglpk_la-glpmpl01.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-mpl.lo: api/mpl.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mpl.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mpl.Tpo -c -o libglpk_la-mpl.lo `test -f 'api/mpl.c' || echo '$(srcdir)/'`api/mpl.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mpl.Tpo $(DEPDIR)/libglpk_la-mpl.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/mpl.c' object='libglpk_la-mpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpmpl01.lo `test -f 'glpmpl01.c' || echo '$(srcdir)/'`glpmpl01.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mpl.lo `test -f 'api/mpl.c' || echo '$(srcdir)/'`api/mpl.c -libglpk_la-glpmpl02.lo: glpmpl02.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpmpl02.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpmpl02.Tpo -c -o libglpk_la-glpmpl02.lo `test -f 'glpmpl02.c' || echo '$(srcdir)/'`glpmpl02.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpmpl02.Tpo $(DEPDIR)/libglpk_la-glpmpl02.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpmpl02.c' object='libglpk_la-glpmpl02.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-mps.lo: api/mps.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mps.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mps.Tpo -c -o libglpk_la-mps.lo `test -f 'api/mps.c' || echo '$(srcdir)/'`api/mps.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mps.Tpo $(DEPDIR)/libglpk_la-mps.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/mps.c' object='libglpk_la-mps.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpmpl02.lo `test -f 'glpmpl02.c' || echo '$(srcdir)/'`glpmpl02.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mps.lo `test -f 'api/mps.c' || echo '$(srcdir)/'`api/mps.c -libglpk_la-glpmpl03.lo: glpmpl03.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpmpl03.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpmpl03.Tpo -c -o libglpk_la-glpmpl03.lo `test -f 'glpmpl03.c' || echo '$(srcdir)/'`glpmpl03.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpmpl03.Tpo $(DEPDIR)/libglpk_la-glpmpl03.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpmpl03.c' object='libglpk_la-glpmpl03.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-netgen.lo: api/netgen.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-netgen.lo -MD -MP -MF $(DEPDIR)/libglpk_la-netgen.Tpo -c -o libglpk_la-netgen.lo `test -f 'api/netgen.c' || echo '$(srcdir)/'`api/netgen.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-netgen.Tpo $(DEPDIR)/libglpk_la-netgen.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/netgen.c' object='libglpk_la-netgen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpmpl03.lo `test -f 'glpmpl03.c' || echo '$(srcdir)/'`glpmpl03.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-netgen.lo `test -f 'api/netgen.c' || echo '$(srcdir)/'`api/netgen.c -libglpk_la-glpmpl04.lo: glpmpl04.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpmpl04.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpmpl04.Tpo -c -o libglpk_la-glpmpl04.lo `test -f 'glpmpl04.c' || echo '$(srcdir)/'`glpmpl04.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpmpl04.Tpo $(DEPDIR)/libglpk_la-glpmpl04.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpmpl04.c' object='libglpk_la-glpmpl04.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-npp.lo: api/npp.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-npp.lo -MD -MP -MF $(DEPDIR)/libglpk_la-npp.Tpo -c -o libglpk_la-npp.lo `test -f 'api/npp.c' || echo '$(srcdir)/'`api/npp.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-npp.Tpo $(DEPDIR)/libglpk_la-npp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/npp.c' object='libglpk_la-npp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpmpl04.lo `test -f 'glpmpl04.c' || echo '$(srcdir)/'`glpmpl04.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-npp.lo `test -f 'api/npp.c' || echo '$(srcdir)/'`api/npp.c -libglpk_la-glpmpl05.lo: glpmpl05.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpmpl05.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpmpl05.Tpo -c -o libglpk_la-glpmpl05.lo `test -f 'glpmpl05.c' || echo '$(srcdir)/'`glpmpl05.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpmpl05.Tpo $(DEPDIR)/libglpk_la-glpmpl05.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpmpl05.c' object='libglpk_la-glpmpl05.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-pript.lo: api/pript.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-pript.lo -MD -MP -MF $(DEPDIR)/libglpk_la-pript.Tpo -c -o libglpk_la-pript.lo `test -f 'api/pript.c' || echo '$(srcdir)/'`api/pript.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-pript.Tpo $(DEPDIR)/libglpk_la-pript.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/pript.c' object='libglpk_la-pript.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpmpl05.lo `test -f 'glpmpl05.c' || echo '$(srcdir)/'`glpmpl05.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-pript.lo `test -f 'api/pript.c' || echo '$(srcdir)/'`api/pript.c -libglpk_la-glpmpl06.lo: glpmpl06.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpmpl06.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpmpl06.Tpo -c -o libglpk_la-glpmpl06.lo `test -f 'glpmpl06.c' || echo '$(srcdir)/'`glpmpl06.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpmpl06.Tpo $(DEPDIR)/libglpk_la-glpmpl06.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpmpl06.c' object='libglpk_la-glpmpl06.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-prmip.lo: api/prmip.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-prmip.lo -MD -MP -MF $(DEPDIR)/libglpk_la-prmip.Tpo -c -o libglpk_la-prmip.lo `test -f 'api/prmip.c' || echo '$(srcdir)/'`api/prmip.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-prmip.Tpo $(DEPDIR)/libglpk_la-prmip.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/prmip.c' object='libglpk_la-prmip.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpmpl06.lo `test -f 'glpmpl06.c' || echo '$(srcdir)/'`glpmpl06.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-prmip.lo `test -f 'api/prmip.c' || echo '$(srcdir)/'`api/prmip.c -libglpk_la-glpmps.lo: glpmps.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpmps.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpmps.Tpo -c -o libglpk_la-glpmps.lo `test -f 'glpmps.c' || echo '$(srcdir)/'`glpmps.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpmps.Tpo $(DEPDIR)/libglpk_la-glpmps.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpmps.c' object='libglpk_la-glpmps.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-prob1.lo: api/prob1.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-prob1.lo -MD -MP -MF $(DEPDIR)/libglpk_la-prob1.Tpo -c -o libglpk_la-prob1.lo `test -f 'api/prob1.c' || echo '$(srcdir)/'`api/prob1.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-prob1.Tpo $(DEPDIR)/libglpk_la-prob1.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/prob1.c' object='libglpk_la-prob1.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpmps.lo `test -f 'glpmps.c' || echo '$(srcdir)/'`glpmps.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-prob1.lo `test -f 'api/prob1.c' || echo '$(srcdir)/'`api/prob1.c -libglpk_la-glpnet03.lo: glpnet03.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpnet03.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpnet03.Tpo -c -o libglpk_la-glpnet03.lo `test -f 'glpnet03.c' || echo '$(srcdir)/'`glpnet03.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpnet03.Tpo $(DEPDIR)/libglpk_la-glpnet03.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpnet03.c' object='libglpk_la-glpnet03.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-prob2.lo: api/prob2.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-prob2.lo -MD -MP -MF $(DEPDIR)/libglpk_la-prob2.Tpo -c -o libglpk_la-prob2.lo `test -f 'api/prob2.c' || echo '$(srcdir)/'`api/prob2.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-prob2.Tpo $(DEPDIR)/libglpk_la-prob2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/prob2.c' object='libglpk_la-prob2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpnet03.lo `test -f 'glpnet03.c' || echo '$(srcdir)/'`glpnet03.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-prob2.lo `test -f 'api/prob2.c' || echo '$(srcdir)/'`api/prob2.c -libglpk_la-glpnet04.lo: glpnet04.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpnet04.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpnet04.Tpo -c -o libglpk_la-glpnet04.lo `test -f 'glpnet04.c' || echo '$(srcdir)/'`glpnet04.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpnet04.Tpo $(DEPDIR)/libglpk_la-glpnet04.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpnet04.c' object='libglpk_la-glpnet04.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-prob3.lo: api/prob3.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-prob3.lo -MD -MP -MF $(DEPDIR)/libglpk_la-prob3.Tpo -c -o libglpk_la-prob3.lo `test -f 'api/prob3.c' || echo '$(srcdir)/'`api/prob3.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-prob3.Tpo $(DEPDIR)/libglpk_la-prob3.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/prob3.c' object='libglpk_la-prob3.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpnet04.lo `test -f 'glpnet04.c' || echo '$(srcdir)/'`glpnet04.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-prob3.lo `test -f 'api/prob3.c' || echo '$(srcdir)/'`api/prob3.c -libglpk_la-glpnet05.lo: glpnet05.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpnet05.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpnet05.Tpo -c -o libglpk_la-glpnet05.lo `test -f 'glpnet05.c' || echo '$(srcdir)/'`glpnet05.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpnet05.Tpo $(DEPDIR)/libglpk_la-glpnet05.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpnet05.c' object='libglpk_la-glpnet05.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-prob4.lo: api/prob4.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-prob4.lo -MD -MP -MF $(DEPDIR)/libglpk_la-prob4.Tpo -c -o libglpk_la-prob4.lo `test -f 'api/prob4.c' || echo '$(srcdir)/'`api/prob4.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-prob4.Tpo $(DEPDIR)/libglpk_la-prob4.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/prob4.c' object='libglpk_la-prob4.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpnet05.lo `test -f 'glpnet05.c' || echo '$(srcdir)/'`glpnet05.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-prob4.lo `test -f 'api/prob4.c' || echo '$(srcdir)/'`api/prob4.c -libglpk_la-glpnpp01.lo: glpnpp01.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpnpp01.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpnpp01.Tpo -c -o libglpk_la-glpnpp01.lo `test -f 'glpnpp01.c' || echo '$(srcdir)/'`glpnpp01.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpnpp01.Tpo $(DEPDIR)/libglpk_la-glpnpp01.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpnpp01.c' object='libglpk_la-glpnpp01.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-prob5.lo: api/prob5.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-prob5.lo -MD -MP -MF $(DEPDIR)/libglpk_la-prob5.Tpo -c -o libglpk_la-prob5.lo `test -f 'api/prob5.c' || echo '$(srcdir)/'`api/prob5.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-prob5.Tpo $(DEPDIR)/libglpk_la-prob5.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/prob5.c' object='libglpk_la-prob5.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpnpp01.lo `test -f 'glpnpp01.c' || echo '$(srcdir)/'`glpnpp01.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-prob5.lo `test -f 'api/prob5.c' || echo '$(srcdir)/'`api/prob5.c -libglpk_la-glpnpp02.lo: glpnpp02.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpnpp02.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpnpp02.Tpo -c -o libglpk_la-glpnpp02.lo `test -f 'glpnpp02.c' || echo '$(srcdir)/'`glpnpp02.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpnpp02.Tpo $(DEPDIR)/libglpk_la-glpnpp02.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpnpp02.c' object='libglpk_la-glpnpp02.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-prrngs.lo: api/prrngs.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-prrngs.lo -MD -MP -MF $(DEPDIR)/libglpk_la-prrngs.Tpo -c -o libglpk_la-prrngs.lo `test -f 'api/prrngs.c' || echo '$(srcdir)/'`api/prrngs.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-prrngs.Tpo $(DEPDIR)/libglpk_la-prrngs.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/prrngs.c' object='libglpk_la-prrngs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpnpp02.lo `test -f 'glpnpp02.c' || echo '$(srcdir)/'`glpnpp02.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-prrngs.lo `test -f 'api/prrngs.c' || echo '$(srcdir)/'`api/prrngs.c -libglpk_la-glpnpp03.lo: glpnpp03.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpnpp03.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpnpp03.Tpo -c -o libglpk_la-glpnpp03.lo `test -f 'glpnpp03.c' || echo '$(srcdir)/'`glpnpp03.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpnpp03.Tpo $(DEPDIR)/libglpk_la-glpnpp03.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpnpp03.c' object='libglpk_la-glpnpp03.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-prsol.lo: api/prsol.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-prsol.lo -MD -MP -MF $(DEPDIR)/libglpk_la-prsol.Tpo -c -o libglpk_la-prsol.lo `test -f 'api/prsol.c' || echo '$(srcdir)/'`api/prsol.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-prsol.Tpo $(DEPDIR)/libglpk_la-prsol.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/prsol.c' object='libglpk_la-prsol.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpnpp03.lo `test -f 'glpnpp03.c' || echo '$(srcdir)/'`glpnpp03.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-prsol.lo `test -f 'api/prsol.c' || echo '$(srcdir)/'`api/prsol.c -libglpk_la-glpnpp04.lo: glpnpp04.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpnpp04.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpnpp04.Tpo -c -o libglpk_la-glpnpp04.lo `test -f 'glpnpp04.c' || echo '$(srcdir)/'`glpnpp04.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpnpp04.Tpo $(DEPDIR)/libglpk_la-glpnpp04.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpnpp04.c' object='libglpk_la-glpnpp04.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-rdasn.lo: api/rdasn.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-rdasn.lo -MD -MP -MF $(DEPDIR)/libglpk_la-rdasn.Tpo -c -o libglpk_la-rdasn.lo `test -f 'api/rdasn.c' || echo '$(srcdir)/'`api/rdasn.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-rdasn.Tpo $(DEPDIR)/libglpk_la-rdasn.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/rdasn.c' object='libglpk_la-rdasn.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpnpp04.lo `test -f 'glpnpp04.c' || echo '$(srcdir)/'`glpnpp04.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-rdasn.lo `test -f 'api/rdasn.c' || echo '$(srcdir)/'`api/rdasn.c -libglpk_la-glpnpp05.lo: glpnpp05.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpnpp05.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpnpp05.Tpo -c -o libglpk_la-glpnpp05.lo `test -f 'glpnpp05.c' || echo '$(srcdir)/'`glpnpp05.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpnpp05.Tpo $(DEPDIR)/libglpk_la-glpnpp05.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpnpp05.c' object='libglpk_la-glpnpp05.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-rdcc.lo: api/rdcc.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-rdcc.lo -MD -MP -MF $(DEPDIR)/libglpk_la-rdcc.Tpo -c -o libglpk_la-rdcc.lo `test -f 'api/rdcc.c' || echo '$(srcdir)/'`api/rdcc.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-rdcc.Tpo $(DEPDIR)/libglpk_la-rdcc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/rdcc.c' object='libglpk_la-rdcc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpnpp05.lo `test -f 'glpnpp05.c' || echo '$(srcdir)/'`glpnpp05.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-rdcc.lo `test -f 'api/rdcc.c' || echo '$(srcdir)/'`api/rdcc.c -libglpk_la-glpnpp06.lo: glpnpp06.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpnpp06.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpnpp06.Tpo -c -o libglpk_la-glpnpp06.lo `test -f 'glpnpp06.c' || echo '$(srcdir)/'`glpnpp06.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpnpp06.Tpo $(DEPDIR)/libglpk_la-glpnpp06.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpnpp06.c' object='libglpk_la-glpnpp06.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-rdcnf.lo: api/rdcnf.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-rdcnf.lo -MD -MP -MF $(DEPDIR)/libglpk_la-rdcnf.Tpo -c -o libglpk_la-rdcnf.lo `test -f 'api/rdcnf.c' || echo '$(srcdir)/'`api/rdcnf.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-rdcnf.Tpo $(DEPDIR)/libglpk_la-rdcnf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/rdcnf.c' object='libglpk_la-rdcnf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpnpp06.lo `test -f 'glpnpp06.c' || echo '$(srcdir)/'`glpnpp06.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-rdcnf.lo `test -f 'api/rdcnf.c' || echo '$(srcdir)/'`api/rdcnf.c -libglpk_la-glprgr.lo: glprgr.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glprgr.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glprgr.Tpo -c -o libglpk_la-glprgr.lo `test -f 'glprgr.c' || echo '$(srcdir)/'`glprgr.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glprgr.Tpo $(DEPDIR)/libglpk_la-glprgr.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glprgr.c' object='libglpk_la-glprgr.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-rdipt.lo: api/rdipt.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-rdipt.lo -MD -MP -MF $(DEPDIR)/libglpk_la-rdipt.Tpo -c -o libglpk_la-rdipt.lo `test -f 'api/rdipt.c' || echo '$(srcdir)/'`api/rdipt.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-rdipt.Tpo $(DEPDIR)/libglpk_la-rdipt.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/rdipt.c' object='libglpk_la-rdipt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glprgr.lo `test -f 'glprgr.c' || echo '$(srcdir)/'`glprgr.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-rdipt.lo `test -f 'api/rdipt.c' || echo '$(srcdir)/'`api/rdipt.c -libglpk_la-glpscl.lo: glpscl.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpscl.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpscl.Tpo -c -o libglpk_la-glpscl.lo `test -f 'glpscl.c' || echo '$(srcdir)/'`glpscl.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpscl.Tpo $(DEPDIR)/libglpk_la-glpscl.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpscl.c' object='libglpk_la-glpscl.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-rdmaxf.lo: api/rdmaxf.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-rdmaxf.lo -MD -MP -MF $(DEPDIR)/libglpk_la-rdmaxf.Tpo -c -o libglpk_la-rdmaxf.lo `test -f 'api/rdmaxf.c' || echo '$(srcdir)/'`api/rdmaxf.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-rdmaxf.Tpo $(DEPDIR)/libglpk_la-rdmaxf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/rdmaxf.c' object='libglpk_la-rdmaxf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpscl.lo `test -f 'glpscl.c' || echo '$(srcdir)/'`glpscl.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-rdmaxf.lo `test -f 'api/rdmaxf.c' || echo '$(srcdir)/'`api/rdmaxf.c -libglpk_la-glpsdf.lo: glpsdf.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpsdf.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpsdf.Tpo -c -o libglpk_la-glpsdf.lo `test -f 'glpsdf.c' || echo '$(srcdir)/'`glpsdf.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpsdf.Tpo $(DEPDIR)/libglpk_la-glpsdf.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpsdf.c' object='libglpk_la-glpsdf.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-rdmcf.lo: api/rdmcf.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-rdmcf.lo -MD -MP -MF $(DEPDIR)/libglpk_la-rdmcf.Tpo -c -o libglpk_la-rdmcf.lo `test -f 'api/rdmcf.c' || echo '$(srcdir)/'`api/rdmcf.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-rdmcf.Tpo $(DEPDIR)/libglpk_la-rdmcf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/rdmcf.c' object='libglpk_la-rdmcf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpsdf.lo `test -f 'glpsdf.c' || echo '$(srcdir)/'`glpsdf.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-rdmcf.lo `test -f 'api/rdmcf.c' || echo '$(srcdir)/'`api/rdmcf.c -libglpk_la-glpspm.lo: glpspm.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpspm.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpspm.Tpo -c -o libglpk_la-glpspm.lo `test -f 'glpspm.c' || echo '$(srcdir)/'`glpspm.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpspm.Tpo $(DEPDIR)/libglpk_la-glpspm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpspm.c' object='libglpk_la-glpspm.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-rdmip.lo: api/rdmip.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-rdmip.lo -MD -MP -MF $(DEPDIR)/libglpk_la-rdmip.Tpo -c -o libglpk_la-rdmip.lo `test -f 'api/rdmip.c' || echo '$(srcdir)/'`api/rdmip.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-rdmip.Tpo $(DEPDIR)/libglpk_la-rdmip.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/rdmip.c' object='libglpk_la-rdmip.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpspm.lo `test -f 'glpspm.c' || echo '$(srcdir)/'`glpspm.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-rdmip.lo `test -f 'api/rdmip.c' || echo '$(srcdir)/'`api/rdmip.c -libglpk_la-glpsql.lo: glpsql.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpsql.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpsql.Tpo -c -o libglpk_la-glpsql.lo `test -f 'glpsql.c' || echo '$(srcdir)/'`glpsql.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpsql.Tpo $(DEPDIR)/libglpk_la-glpsql.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpsql.c' object='libglpk_la-glpsql.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-rdprob.lo: api/rdprob.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-rdprob.lo -MD -MP -MF $(DEPDIR)/libglpk_la-rdprob.Tpo -c -o libglpk_la-rdprob.lo `test -f 'api/rdprob.c' || echo '$(srcdir)/'`api/rdprob.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-rdprob.Tpo $(DEPDIR)/libglpk_la-rdprob.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/rdprob.c' object='libglpk_la-rdprob.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpsql.lo `test -f 'glpsql.c' || echo '$(srcdir)/'`glpsql.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-rdprob.lo `test -f 'api/rdprob.c' || echo '$(srcdir)/'`api/rdprob.c -libglpk_la-glpssx01.lo: glpssx01.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpssx01.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpssx01.Tpo -c -o libglpk_la-glpssx01.lo `test -f 'glpssx01.c' || echo '$(srcdir)/'`glpssx01.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpssx01.Tpo $(DEPDIR)/libglpk_la-glpssx01.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpssx01.c' object='libglpk_la-glpssx01.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-rdsol.lo: api/rdsol.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-rdsol.lo -MD -MP -MF $(DEPDIR)/libglpk_la-rdsol.Tpo -c -o libglpk_la-rdsol.lo `test -f 'api/rdsol.c' || echo '$(srcdir)/'`api/rdsol.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-rdsol.Tpo $(DEPDIR)/libglpk_la-rdsol.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/rdsol.c' object='libglpk_la-rdsol.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpssx01.lo `test -f 'glpssx01.c' || echo '$(srcdir)/'`glpssx01.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-rdsol.lo `test -f 'api/rdsol.c' || echo '$(srcdir)/'`api/rdsol.c -libglpk_la-glpssx02.lo: glpssx02.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpssx02.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpssx02.Tpo -c -o libglpk_la-glpssx02.lo `test -f 'glpssx02.c' || echo '$(srcdir)/'`glpssx02.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpssx02.Tpo $(DEPDIR)/libglpk_la-glpssx02.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glpssx02.c' object='libglpk_la-glpssx02.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-rmfgen.lo: api/rmfgen.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-rmfgen.lo -MD -MP -MF $(DEPDIR)/libglpk_la-rmfgen.Tpo -c -o libglpk_la-rmfgen.lo `test -f 'api/rmfgen.c' || echo '$(srcdir)/'`api/rmfgen.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-rmfgen.Tpo $(DEPDIR)/libglpk_la-rmfgen.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/rmfgen.c' object='libglpk_la-rmfgen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpssx02.lo `test -f 'glpssx02.c' || echo '$(srcdir)/'`glpssx02.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-rmfgen.lo `test -f 'api/rmfgen.c' || echo '$(srcdir)/'`api/rmfgen.c -libglpk_la-lux.lo: lux.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-lux.lo -MD -MP -MF $(DEPDIR)/libglpk_la-lux.Tpo -c -o libglpk_la-lux.lo `test -f 'lux.c' || echo '$(srcdir)/'`lux.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-lux.Tpo $(DEPDIR)/libglpk_la-lux.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lux.c' object='libglpk_la-lux.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-strong.lo: api/strong.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-strong.lo -MD -MP -MF $(DEPDIR)/libglpk_la-strong.Tpo -c -o libglpk_la-strong.lo `test -f 'api/strong.c' || echo '$(srcdir)/'`api/strong.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-strong.Tpo $(DEPDIR)/libglpk_la-strong.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/strong.c' object='libglpk_la-strong.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-lux.lo `test -f 'lux.c' || echo '$(srcdir)/'`lux.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-strong.lo `test -f 'api/strong.c' || echo '$(srcdir)/'`api/strong.c -libglpk_la-amd_1.lo: amd/amd_1.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_1.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_1.Tpo -c -o libglpk_la-amd_1.lo `test -f 'amd/amd_1.c' || echo '$(srcdir)/'`amd/amd_1.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_1.Tpo $(DEPDIR)/libglpk_la-amd_1.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_1.c' object='libglpk_la-amd_1.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-topsort.lo: api/topsort.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-topsort.lo -MD -MP -MF $(DEPDIR)/libglpk_la-topsort.Tpo -c -o libglpk_la-topsort.lo `test -f 'api/topsort.c' || echo '$(srcdir)/'`api/topsort.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-topsort.Tpo $(DEPDIR)/libglpk_la-topsort.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/topsort.c' object='libglpk_la-topsort.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_1.lo `test -f 'amd/amd_1.c' || echo '$(srcdir)/'`amd/amd_1.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-topsort.lo `test -f 'api/topsort.c' || echo '$(srcdir)/'`api/topsort.c -libglpk_la-amd_2.lo: amd/amd_2.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_2.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_2.Tpo -c -o libglpk_la-amd_2.lo `test -f 'amd/amd_2.c' || echo '$(srcdir)/'`amd/amd_2.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_2.Tpo $(DEPDIR)/libglpk_la-amd_2.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_2.c' object='libglpk_la-amd_2.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-weak.lo: api/weak.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-weak.lo -MD -MP -MF $(DEPDIR)/libglpk_la-weak.Tpo -c -o libglpk_la-weak.lo `test -f 'api/weak.c' || echo '$(srcdir)/'`api/weak.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-weak.Tpo $(DEPDIR)/libglpk_la-weak.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/weak.c' object='libglpk_la-weak.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_2.lo `test -f 'amd/amd_2.c' || echo '$(srcdir)/'`amd/amd_2.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-weak.lo `test -f 'api/weak.c' || echo '$(srcdir)/'`api/weak.c -libglpk_la-amd_aat.lo: amd/amd_aat.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_aat.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_aat.Tpo -c -o libglpk_la-amd_aat.lo `test -f 'amd/amd_aat.c' || echo '$(srcdir)/'`amd/amd_aat.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_aat.Tpo $(DEPDIR)/libglpk_la-amd_aat.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_aat.c' object='libglpk_la-amd_aat.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-wcliqex.lo: api/wcliqex.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-wcliqex.lo -MD -MP -MF $(DEPDIR)/libglpk_la-wcliqex.Tpo -c -o libglpk_la-wcliqex.lo `test -f 'api/wcliqex.c' || echo '$(srcdir)/'`api/wcliqex.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-wcliqex.Tpo $(DEPDIR)/libglpk_la-wcliqex.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/wcliqex.c' object='libglpk_la-wcliqex.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_aat.lo `test -f 'amd/amd_aat.c' || echo '$(srcdir)/'`amd/amd_aat.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-wcliqex.lo `test -f 'api/wcliqex.c' || echo '$(srcdir)/'`api/wcliqex.c -libglpk_la-amd_control.lo: amd/amd_control.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_control.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_control.Tpo -c -o libglpk_la-amd_control.lo `test -f 'amd/amd_control.c' || echo '$(srcdir)/'`amd/amd_control.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_control.Tpo $(DEPDIR)/libglpk_la-amd_control.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_control.c' object='libglpk_la-amd_control.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-wrasn.lo: api/wrasn.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-wrasn.lo -MD -MP -MF $(DEPDIR)/libglpk_la-wrasn.Tpo -c -o libglpk_la-wrasn.lo `test -f 'api/wrasn.c' || echo '$(srcdir)/'`api/wrasn.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-wrasn.Tpo $(DEPDIR)/libglpk_la-wrasn.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/wrasn.c' object='libglpk_la-wrasn.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_control.lo `test -f 'amd/amd_control.c' || echo '$(srcdir)/'`amd/amd_control.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-wrasn.lo `test -f 'api/wrasn.c' || echo '$(srcdir)/'`api/wrasn.c -libglpk_la-amd_defaults.lo: amd/amd_defaults.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_defaults.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_defaults.Tpo -c -o libglpk_la-amd_defaults.lo `test -f 'amd/amd_defaults.c' || echo '$(srcdir)/'`amd/amd_defaults.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_defaults.Tpo $(DEPDIR)/libglpk_la-amd_defaults.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_defaults.c' object='libglpk_la-amd_defaults.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-wrcc.lo: api/wrcc.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-wrcc.lo -MD -MP -MF $(DEPDIR)/libglpk_la-wrcc.Tpo -c -o libglpk_la-wrcc.lo `test -f 'api/wrcc.c' || echo '$(srcdir)/'`api/wrcc.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-wrcc.Tpo $(DEPDIR)/libglpk_la-wrcc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/wrcc.c' object='libglpk_la-wrcc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_defaults.lo `test -f 'amd/amd_defaults.c' || echo '$(srcdir)/'`amd/amd_defaults.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-wrcc.lo `test -f 'api/wrcc.c' || echo '$(srcdir)/'`api/wrcc.c -libglpk_la-amd_dump.lo: amd/amd_dump.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_dump.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_dump.Tpo -c -o libglpk_la-amd_dump.lo `test -f 'amd/amd_dump.c' || echo '$(srcdir)/'`amd/amd_dump.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_dump.Tpo $(DEPDIR)/libglpk_la-amd_dump.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_dump.c' object='libglpk_la-amd_dump.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-wrcnf.lo: api/wrcnf.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-wrcnf.lo -MD -MP -MF $(DEPDIR)/libglpk_la-wrcnf.Tpo -c -o libglpk_la-wrcnf.lo `test -f 'api/wrcnf.c' || echo '$(srcdir)/'`api/wrcnf.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-wrcnf.Tpo $(DEPDIR)/libglpk_la-wrcnf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/wrcnf.c' object='libglpk_la-wrcnf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_dump.lo `test -f 'amd/amd_dump.c' || echo '$(srcdir)/'`amd/amd_dump.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-wrcnf.lo `test -f 'api/wrcnf.c' || echo '$(srcdir)/'`api/wrcnf.c -libglpk_la-amd_info.lo: amd/amd_info.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_info.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_info.Tpo -c -o libglpk_la-amd_info.lo `test -f 'amd/amd_info.c' || echo '$(srcdir)/'`amd/amd_info.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_info.Tpo $(DEPDIR)/libglpk_la-amd_info.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_info.c' object='libglpk_la-amd_info.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-wript.lo: api/wript.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-wript.lo -MD -MP -MF $(DEPDIR)/libglpk_la-wript.Tpo -c -o libglpk_la-wript.lo `test -f 'api/wript.c' || echo '$(srcdir)/'`api/wript.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-wript.Tpo $(DEPDIR)/libglpk_la-wript.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/wript.c' object='libglpk_la-wript.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_info.lo `test -f 'amd/amd_info.c' || echo '$(srcdir)/'`amd/amd_info.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-wript.lo `test -f 'api/wript.c' || echo '$(srcdir)/'`api/wript.c -libglpk_la-amd_order.lo: amd/amd_order.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_order.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_order.Tpo -c -o libglpk_la-amd_order.lo `test -f 'amd/amd_order.c' || echo '$(srcdir)/'`amd/amd_order.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_order.Tpo $(DEPDIR)/libglpk_la-amd_order.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_order.c' object='libglpk_la-amd_order.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-wrmaxf.lo: api/wrmaxf.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-wrmaxf.lo -MD -MP -MF $(DEPDIR)/libglpk_la-wrmaxf.Tpo -c -o libglpk_la-wrmaxf.lo `test -f 'api/wrmaxf.c' || echo '$(srcdir)/'`api/wrmaxf.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-wrmaxf.Tpo $(DEPDIR)/libglpk_la-wrmaxf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/wrmaxf.c' object='libglpk_la-wrmaxf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_order.lo `test -f 'amd/amd_order.c' || echo '$(srcdir)/'`amd/amd_order.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-wrmaxf.lo `test -f 'api/wrmaxf.c' || echo '$(srcdir)/'`api/wrmaxf.c -libglpk_la-amd_post_tree.lo: amd/amd_post_tree.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_post_tree.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_post_tree.Tpo -c -o libglpk_la-amd_post_tree.lo `test -f 'amd/amd_post_tree.c' || echo '$(srcdir)/'`amd/amd_post_tree.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_post_tree.Tpo $(DEPDIR)/libglpk_la-amd_post_tree.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_post_tree.c' object='libglpk_la-amd_post_tree.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-wrmcf.lo: api/wrmcf.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-wrmcf.lo -MD -MP -MF $(DEPDIR)/libglpk_la-wrmcf.Tpo -c -o libglpk_la-wrmcf.lo `test -f 'api/wrmcf.c' || echo '$(srcdir)/'`api/wrmcf.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-wrmcf.Tpo $(DEPDIR)/libglpk_la-wrmcf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/wrmcf.c' object='libglpk_la-wrmcf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_post_tree.lo `test -f 'amd/amd_post_tree.c' || echo '$(srcdir)/'`amd/amd_post_tree.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-wrmcf.lo `test -f 'api/wrmcf.c' || echo '$(srcdir)/'`api/wrmcf.c -libglpk_la-amd_postorder.lo: amd/amd_postorder.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_postorder.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_postorder.Tpo -c -o libglpk_la-amd_postorder.lo `test -f 'amd/amd_postorder.c' || echo '$(srcdir)/'`amd/amd_postorder.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_postorder.Tpo $(DEPDIR)/libglpk_la-amd_postorder.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_postorder.c' object='libglpk_la-amd_postorder.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-wrmip.lo: api/wrmip.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-wrmip.lo -MD -MP -MF $(DEPDIR)/libglpk_la-wrmip.Tpo -c -o libglpk_la-wrmip.lo `test -f 'api/wrmip.c' || echo '$(srcdir)/'`api/wrmip.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-wrmip.Tpo $(DEPDIR)/libglpk_la-wrmip.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/wrmip.c' object='libglpk_la-wrmip.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_postorder.lo `test -f 'amd/amd_postorder.c' || echo '$(srcdir)/'`amd/amd_postorder.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-wrmip.lo `test -f 'api/wrmip.c' || echo '$(srcdir)/'`api/wrmip.c -libglpk_la-amd_preprocess.lo: amd/amd_preprocess.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_preprocess.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_preprocess.Tpo -c -o libglpk_la-amd_preprocess.lo `test -f 'amd/amd_preprocess.c' || echo '$(srcdir)/'`amd/amd_preprocess.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_preprocess.Tpo $(DEPDIR)/libglpk_la-amd_preprocess.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_preprocess.c' object='libglpk_la-amd_preprocess.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-wrprob.lo: api/wrprob.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-wrprob.lo -MD -MP -MF $(DEPDIR)/libglpk_la-wrprob.Tpo -c -o libglpk_la-wrprob.lo `test -f 'api/wrprob.c' || echo '$(srcdir)/'`api/wrprob.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-wrprob.Tpo $(DEPDIR)/libglpk_la-wrprob.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/wrprob.c' object='libglpk_la-wrprob.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_preprocess.lo `test -f 'amd/amd_preprocess.c' || echo '$(srcdir)/'`amd/amd_preprocess.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-wrprob.lo `test -f 'api/wrprob.c' || echo '$(srcdir)/'`api/wrprob.c -libglpk_la-amd_valid.lo: amd/amd_valid.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-amd_valid.lo -MD -MP -MF $(DEPDIR)/libglpk_la-amd_valid.Tpo -c -o libglpk_la-amd_valid.lo `test -f 'amd/amd_valid.c' || echo '$(srcdir)/'`amd/amd_valid.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-amd_valid.Tpo $(DEPDIR)/libglpk_la-amd_valid.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='amd/amd_valid.c' object='libglpk_la-amd_valid.lo' libtool=yes @AMDEPBACKSLASH@ +libglpk_la-wrsol.lo: api/wrsol.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-wrsol.lo -MD -MP -MF $(DEPDIR)/libglpk_la-wrsol.Tpo -c -o libglpk_la-wrsol.lo `test -f 'api/wrsol.c' || echo '$(srcdir)/'`api/wrsol.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-wrsol.Tpo $(DEPDIR)/libglpk_la-wrsol.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='api/wrsol.c' object='libglpk_la-wrsol.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-amd_valid.lo `test -f 'amd/amd_valid.c' || echo '$(srcdir)/'`amd/amd_valid.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-wrsol.lo `test -f 'api/wrsol.c' || echo '$(srcdir)/'`api/wrsol.c libglpk_la-btf.lo: bflib/btf.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-btf.lo -MD -MP -MF $(DEPDIR)/libglpk_la-btf.Tpo -c -o libglpk_la-btf.lo `test -f 'bflib/btf.c' || echo '$(srcdir)/'`bflib/btf.c @@ -1364,20 +1357,6 @@ libglpk_la-sva.lo: bflib/sva.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-sva.lo `test -f 'bflib/sva.c' || echo '$(srcdir)/'`bflib/sva.c -libglpk_la-cfg.lo: cglib/cfg.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-cfg.lo -MD -MP -MF $(DEPDIR)/libglpk_la-cfg.Tpo -c -o libglpk_la-cfg.lo `test -f 'cglib/cfg.c' || echo '$(srcdir)/'`cglib/cfg.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-cfg.Tpo $(DEPDIR)/libglpk_la-cfg.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cglib/cfg.c' object='libglpk_la-cfg.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-cfg.lo `test -f 'cglib/cfg.c' || echo '$(srcdir)/'`cglib/cfg.c - -libglpk_la-cfg1.lo: cglib/cfg1.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-cfg1.lo -MD -MP -MF $(DEPDIR)/libglpk_la-cfg1.Tpo -c -o libglpk_la-cfg1.lo `test -f 'cglib/cfg1.c' || echo '$(srcdir)/'`cglib/cfg1.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-cfg1.Tpo $(DEPDIR)/libglpk_la-cfg1.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cglib/cfg1.c' object='libglpk_la-cfg1.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-cfg1.lo `test -f 'cglib/cfg1.c' || echo '$(srcdir)/'`cglib/cfg1.c - libglpk_la-colamd.lo: colamd/colamd.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-colamd.lo -MD -MP -MF $(DEPDIR)/libglpk_la-colamd.Tpo -c -o libglpk_la-colamd.lo `test -f 'colamd/colamd.c' || echo '$(srcdir)/'`colamd/colamd.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-colamd.Tpo $(DEPDIR)/libglpk_la-colamd.Plo @@ -1385,6 +1364,181 @@ libglpk_la-colamd.lo: colamd/colamd.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-colamd.lo `test -f 'colamd/colamd.c' || echo '$(srcdir)/'`colamd/colamd.c +libglpk_la-bfd.lo: draft/bfd.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-bfd.lo -MD -MP -MF $(DEPDIR)/libglpk_la-bfd.Tpo -c -o libglpk_la-bfd.lo `test -f 'draft/bfd.c' || echo '$(srcdir)/'`draft/bfd.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-bfd.Tpo $(DEPDIR)/libglpk_la-bfd.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/bfd.c' object='libglpk_la-bfd.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-bfd.lo `test -f 'draft/bfd.c' || echo '$(srcdir)/'`draft/bfd.c + +libglpk_la-bfx.lo: draft/bfx.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-bfx.lo -MD -MP -MF $(DEPDIR)/libglpk_la-bfx.Tpo -c -o libglpk_la-bfx.lo `test -f 'draft/bfx.c' || echo '$(srcdir)/'`draft/bfx.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-bfx.Tpo $(DEPDIR)/libglpk_la-bfx.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/bfx.c' object='libglpk_la-bfx.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-bfx.lo `test -f 'draft/bfx.c' || echo '$(srcdir)/'`draft/bfx.c + +libglpk_la-glpapi06.lo: draft/glpapi06.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi06.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi06.Tpo -c -o libglpk_la-glpapi06.lo `test -f 'draft/glpapi06.c' || echo '$(srcdir)/'`draft/glpapi06.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi06.Tpo $(DEPDIR)/libglpk_la-glpapi06.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpapi06.c' object='libglpk_la-glpapi06.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi06.lo `test -f 'draft/glpapi06.c' || echo '$(srcdir)/'`draft/glpapi06.c + +libglpk_la-glpapi07.lo: draft/glpapi07.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi07.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi07.Tpo -c -o libglpk_la-glpapi07.lo `test -f 'draft/glpapi07.c' || echo '$(srcdir)/'`draft/glpapi07.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi07.Tpo $(DEPDIR)/libglpk_la-glpapi07.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpapi07.c' object='libglpk_la-glpapi07.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi07.lo `test -f 'draft/glpapi07.c' || echo '$(srcdir)/'`draft/glpapi07.c + +libglpk_la-glpapi08.lo: draft/glpapi08.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi08.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi08.Tpo -c -o libglpk_la-glpapi08.lo `test -f 'draft/glpapi08.c' || echo '$(srcdir)/'`draft/glpapi08.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi08.Tpo $(DEPDIR)/libglpk_la-glpapi08.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpapi08.c' object='libglpk_la-glpapi08.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi08.lo `test -f 'draft/glpapi08.c' || echo '$(srcdir)/'`draft/glpapi08.c + +libglpk_la-glpapi09.lo: draft/glpapi09.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi09.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi09.Tpo -c -o libglpk_la-glpapi09.lo `test -f 'draft/glpapi09.c' || echo '$(srcdir)/'`draft/glpapi09.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi09.Tpo $(DEPDIR)/libglpk_la-glpapi09.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpapi09.c' object='libglpk_la-glpapi09.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi09.lo `test -f 'draft/glpapi09.c' || echo '$(srcdir)/'`draft/glpapi09.c + +libglpk_la-glpapi10.lo: draft/glpapi10.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi10.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi10.Tpo -c -o libglpk_la-glpapi10.lo `test -f 'draft/glpapi10.c' || echo '$(srcdir)/'`draft/glpapi10.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi10.Tpo $(DEPDIR)/libglpk_la-glpapi10.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpapi10.c' object='libglpk_la-glpapi10.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi10.lo `test -f 'draft/glpapi10.c' || echo '$(srcdir)/'`draft/glpapi10.c + +libglpk_la-glpapi12.lo: draft/glpapi12.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi12.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi12.Tpo -c -o libglpk_la-glpapi12.lo `test -f 'draft/glpapi12.c' || echo '$(srcdir)/'`draft/glpapi12.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi12.Tpo $(DEPDIR)/libglpk_la-glpapi12.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpapi12.c' object='libglpk_la-glpapi12.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi12.lo `test -f 'draft/glpapi12.c' || echo '$(srcdir)/'`draft/glpapi12.c + +libglpk_la-glpapi13.lo: draft/glpapi13.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpapi13.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpapi13.Tpo -c -o libglpk_la-glpapi13.lo `test -f 'draft/glpapi13.c' || echo '$(srcdir)/'`draft/glpapi13.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpapi13.Tpo $(DEPDIR)/libglpk_la-glpapi13.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpapi13.c' object='libglpk_la-glpapi13.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpapi13.lo `test -f 'draft/glpapi13.c' || echo '$(srcdir)/'`draft/glpapi13.c + +libglpk_la-glphbm.lo: draft/glphbm.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glphbm.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glphbm.Tpo -c -o libglpk_la-glphbm.lo `test -f 'draft/glphbm.c' || echo '$(srcdir)/'`draft/glphbm.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glphbm.Tpo $(DEPDIR)/libglpk_la-glphbm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glphbm.c' object='libglpk_la-glphbm.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glphbm.lo `test -f 'draft/glphbm.c' || echo '$(srcdir)/'`draft/glphbm.c + +libglpk_la-glpios01.lo: draft/glpios01.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios01.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios01.Tpo -c -o libglpk_la-glpios01.lo `test -f 'draft/glpios01.c' || echo '$(srcdir)/'`draft/glpios01.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios01.Tpo $(DEPDIR)/libglpk_la-glpios01.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpios01.c' object='libglpk_la-glpios01.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios01.lo `test -f 'draft/glpios01.c' || echo '$(srcdir)/'`draft/glpios01.c + +libglpk_la-glpios02.lo: draft/glpios02.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios02.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios02.Tpo -c -o libglpk_la-glpios02.lo `test -f 'draft/glpios02.c' || echo '$(srcdir)/'`draft/glpios02.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios02.Tpo $(DEPDIR)/libglpk_la-glpios02.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpios02.c' object='libglpk_la-glpios02.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios02.lo `test -f 'draft/glpios02.c' || echo '$(srcdir)/'`draft/glpios02.c + +libglpk_la-glpios03.lo: draft/glpios03.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios03.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios03.Tpo -c -o libglpk_la-glpios03.lo `test -f 'draft/glpios03.c' || echo '$(srcdir)/'`draft/glpios03.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios03.Tpo $(DEPDIR)/libglpk_la-glpios03.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpios03.c' object='libglpk_la-glpios03.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios03.lo `test -f 'draft/glpios03.c' || echo '$(srcdir)/'`draft/glpios03.c + +libglpk_la-glpios07.lo: draft/glpios07.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios07.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios07.Tpo -c -o libglpk_la-glpios07.lo `test -f 'draft/glpios07.c' || echo '$(srcdir)/'`draft/glpios07.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios07.Tpo $(DEPDIR)/libglpk_la-glpios07.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpios07.c' object='libglpk_la-glpios07.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios07.lo `test -f 'draft/glpios07.c' || echo '$(srcdir)/'`draft/glpios07.c + +libglpk_la-glpios09.lo: draft/glpios09.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios09.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios09.Tpo -c -o libglpk_la-glpios09.lo `test -f 'draft/glpios09.c' || echo '$(srcdir)/'`draft/glpios09.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios09.Tpo $(DEPDIR)/libglpk_la-glpios09.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpios09.c' object='libglpk_la-glpios09.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios09.lo `test -f 'draft/glpios09.c' || echo '$(srcdir)/'`draft/glpios09.c + +libglpk_la-glpios11.lo: draft/glpios11.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios11.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios11.Tpo -c -o libglpk_la-glpios11.lo `test -f 'draft/glpios11.c' || echo '$(srcdir)/'`draft/glpios11.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios11.Tpo $(DEPDIR)/libglpk_la-glpios11.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpios11.c' object='libglpk_la-glpios11.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios11.lo `test -f 'draft/glpios11.c' || echo '$(srcdir)/'`draft/glpios11.c + +libglpk_la-glpios12.lo: draft/glpios12.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpios12.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpios12.Tpo -c -o libglpk_la-glpios12.lo `test -f 'draft/glpios12.c' || echo '$(srcdir)/'`draft/glpios12.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpios12.Tpo $(DEPDIR)/libglpk_la-glpios12.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpios12.c' object='libglpk_la-glpios12.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpios12.lo `test -f 'draft/glpios12.c' || echo '$(srcdir)/'`draft/glpios12.c + +libglpk_la-glpipm.lo: draft/glpipm.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpipm.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpipm.Tpo -c -o libglpk_la-glpipm.lo `test -f 'draft/glpipm.c' || echo '$(srcdir)/'`draft/glpipm.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpipm.Tpo $(DEPDIR)/libglpk_la-glpipm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpipm.c' object='libglpk_la-glpipm.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpipm.lo `test -f 'draft/glpipm.c' || echo '$(srcdir)/'`draft/glpipm.c + +libglpk_la-glpmat.lo: draft/glpmat.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpmat.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpmat.Tpo -c -o libglpk_la-glpmat.lo `test -f 'draft/glpmat.c' || echo '$(srcdir)/'`draft/glpmat.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpmat.Tpo $(DEPDIR)/libglpk_la-glpmat.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpmat.c' object='libglpk_la-glpmat.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpmat.lo `test -f 'draft/glpmat.c' || echo '$(srcdir)/'`draft/glpmat.c + +libglpk_la-glprgr.lo: draft/glprgr.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glprgr.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glprgr.Tpo -c -o libglpk_la-glprgr.lo `test -f 'draft/glprgr.c' || echo '$(srcdir)/'`draft/glprgr.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glprgr.Tpo $(DEPDIR)/libglpk_la-glprgr.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glprgr.c' object='libglpk_la-glprgr.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glprgr.lo `test -f 'draft/glprgr.c' || echo '$(srcdir)/'`draft/glprgr.c + +libglpk_la-glpscl.lo: draft/glpscl.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpscl.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpscl.Tpo -c -o libglpk_la-glpscl.lo `test -f 'draft/glpscl.c' || echo '$(srcdir)/'`draft/glpscl.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpscl.Tpo $(DEPDIR)/libglpk_la-glpscl.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpscl.c' object='libglpk_la-glpscl.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpscl.lo `test -f 'draft/glpscl.c' || echo '$(srcdir)/'`draft/glpscl.c + +libglpk_la-glpspm.lo: draft/glpspm.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpspm.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpspm.Tpo -c -o libglpk_la-glpspm.lo `test -f 'draft/glpspm.c' || echo '$(srcdir)/'`draft/glpspm.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpspm.Tpo $(DEPDIR)/libglpk_la-glpspm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpspm.c' object='libglpk_la-glpspm.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpspm.lo `test -f 'draft/glpspm.c' || echo '$(srcdir)/'`draft/glpspm.c + +libglpk_la-glpssx01.lo: draft/glpssx01.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpssx01.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpssx01.Tpo -c -o libglpk_la-glpssx01.lo `test -f 'draft/glpssx01.c' || echo '$(srcdir)/'`draft/glpssx01.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpssx01.Tpo $(DEPDIR)/libglpk_la-glpssx01.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpssx01.c' object='libglpk_la-glpssx01.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpssx01.lo `test -f 'draft/glpssx01.c' || echo '$(srcdir)/'`draft/glpssx01.c + +libglpk_la-glpssx02.lo: draft/glpssx02.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-glpssx02.lo -MD -MP -MF $(DEPDIR)/libglpk_la-glpssx02.Tpo -c -o libglpk_la-glpssx02.lo `test -f 'draft/glpssx02.c' || echo '$(srcdir)/'`draft/glpssx02.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-glpssx02.Tpo $(DEPDIR)/libglpk_la-glpssx02.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/glpssx02.c' object='libglpk_la-glpssx02.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-glpssx02.lo `test -f 'draft/glpssx02.c' || echo '$(srcdir)/'`draft/glpssx02.c + +libglpk_la-lux.lo: draft/lux.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-lux.lo -MD -MP -MF $(DEPDIR)/libglpk_la-lux.Tpo -c -o libglpk_la-lux.lo `test -f 'draft/lux.c' || echo '$(srcdir)/'`draft/lux.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-lux.Tpo $(DEPDIR)/libglpk_la-lux.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='draft/lux.c' object='libglpk_la-lux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-lux.lo `test -f 'draft/lux.c' || echo '$(srcdir)/'`draft/lux.c + libglpk_la-alloc.lo: env/alloc.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-alloc.lo -MD -MP -MF $(DEPDIR)/libglpk_la-alloc.Tpo -c -o libglpk_la-alloc.lo `test -f 'env/alloc.c' || echo '$(srcdir)/'`env/alloc.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-alloc.Tpo $(DEPDIR)/libglpk_la-alloc.Plo @@ -1413,6 +1567,13 @@ libglpk_la-error.lo: env/error.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-error.lo `test -f 'env/error.c' || echo '$(srcdir)/'`env/error.c +libglpk_la-stdc.lo: env/stdc.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-stdc.lo -MD -MP -MF $(DEPDIR)/libglpk_la-stdc.Tpo -c -o libglpk_la-stdc.lo `test -f 'env/stdc.c' || echo '$(srcdir)/'`env/stdc.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-stdc.Tpo $(DEPDIR)/libglpk_la-stdc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='env/stdc.c' object='libglpk_la-stdc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-stdc.lo `test -f 'env/stdc.c' || echo '$(srcdir)/'`env/stdc.c + libglpk_la-stdout.lo: env/stdout.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-stdout.lo -MD -MP -MF $(DEPDIR)/libglpk_la-stdout.Tpo -c -o libglpk_la-stdout.lo `test -f 'env/stdout.c' || echo '$(srcdir)/'`env/stdout.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-stdout.Tpo $(DEPDIR)/libglpk_la-stdout.Plo @@ -1441,6 +1602,76 @@ libglpk_la-tls.lo: env/tls.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-tls.lo `test -f 'env/tls.c' || echo '$(srcdir)/'`env/tls.c +libglpk_la-cfg.lo: intopt/cfg.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-cfg.lo -MD -MP -MF $(DEPDIR)/libglpk_la-cfg.Tpo -c -o libglpk_la-cfg.lo `test -f 'intopt/cfg.c' || echo '$(srcdir)/'`intopt/cfg.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-cfg.Tpo $(DEPDIR)/libglpk_la-cfg.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='intopt/cfg.c' object='libglpk_la-cfg.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-cfg.lo `test -f 'intopt/cfg.c' || echo '$(srcdir)/'`intopt/cfg.c + +libglpk_la-cfg1.lo: intopt/cfg1.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-cfg1.lo -MD -MP -MF $(DEPDIR)/libglpk_la-cfg1.Tpo -c -o libglpk_la-cfg1.lo `test -f 'intopt/cfg1.c' || echo '$(srcdir)/'`intopt/cfg1.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-cfg1.Tpo $(DEPDIR)/libglpk_la-cfg1.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='intopt/cfg1.c' object='libglpk_la-cfg1.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-cfg1.lo `test -f 'intopt/cfg1.c' || echo '$(srcdir)/'`intopt/cfg1.c + +libglpk_la-cfg2.lo: intopt/cfg2.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-cfg2.lo -MD -MP -MF $(DEPDIR)/libglpk_la-cfg2.Tpo -c -o libglpk_la-cfg2.lo `test -f 'intopt/cfg2.c' || echo '$(srcdir)/'`intopt/cfg2.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-cfg2.Tpo $(DEPDIR)/libglpk_la-cfg2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='intopt/cfg2.c' object='libglpk_la-cfg2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-cfg2.lo `test -f 'intopt/cfg2.c' || echo '$(srcdir)/'`intopt/cfg2.c + +libglpk_la-clqcut.lo: intopt/clqcut.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-clqcut.lo -MD -MP -MF $(DEPDIR)/libglpk_la-clqcut.Tpo -c -o libglpk_la-clqcut.lo `test -f 'intopt/clqcut.c' || echo '$(srcdir)/'`intopt/clqcut.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-clqcut.Tpo $(DEPDIR)/libglpk_la-clqcut.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='intopt/clqcut.c' object='libglpk_la-clqcut.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-clqcut.lo `test -f 'intopt/clqcut.c' || echo '$(srcdir)/'`intopt/clqcut.c + +libglpk_la-covgen.lo: intopt/covgen.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-covgen.lo -MD -MP -MF $(DEPDIR)/libglpk_la-covgen.Tpo -c -o libglpk_la-covgen.lo `test -f 'intopt/covgen.c' || echo '$(srcdir)/'`intopt/covgen.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-covgen.Tpo $(DEPDIR)/libglpk_la-covgen.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='intopt/covgen.c' object='libglpk_la-covgen.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-covgen.lo `test -f 'intopt/covgen.c' || echo '$(srcdir)/'`intopt/covgen.c + +libglpk_la-fpump.lo: intopt/fpump.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-fpump.lo -MD -MP -MF $(DEPDIR)/libglpk_la-fpump.Tpo -c -o libglpk_la-fpump.lo `test -f 'intopt/fpump.c' || echo '$(srcdir)/'`intopt/fpump.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-fpump.Tpo $(DEPDIR)/libglpk_la-fpump.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='intopt/fpump.c' object='libglpk_la-fpump.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-fpump.lo `test -f 'intopt/fpump.c' || echo '$(srcdir)/'`intopt/fpump.c + +libglpk_la-gmicut.lo: intopt/gmicut.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-gmicut.lo -MD -MP -MF $(DEPDIR)/libglpk_la-gmicut.Tpo -c -o libglpk_la-gmicut.lo `test -f 'intopt/gmicut.c' || echo '$(srcdir)/'`intopt/gmicut.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-gmicut.Tpo $(DEPDIR)/libglpk_la-gmicut.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='intopt/gmicut.c' object='libglpk_la-gmicut.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-gmicut.lo `test -f 'intopt/gmicut.c' || echo '$(srcdir)/'`intopt/gmicut.c + +libglpk_la-gmigen.lo: intopt/gmigen.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-gmigen.lo -MD -MP -MF $(DEPDIR)/libglpk_la-gmigen.Tpo -c -o libglpk_la-gmigen.lo `test -f 'intopt/gmigen.c' || echo '$(srcdir)/'`intopt/gmigen.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-gmigen.Tpo $(DEPDIR)/libglpk_la-gmigen.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='intopt/gmigen.c' object='libglpk_la-gmigen.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-gmigen.lo `test -f 'intopt/gmigen.c' || echo '$(srcdir)/'`intopt/gmigen.c + +libglpk_la-mirgen.lo: intopt/mirgen.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mirgen.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mirgen.Tpo -c -o libglpk_la-mirgen.lo `test -f 'intopt/mirgen.c' || echo '$(srcdir)/'`intopt/mirgen.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mirgen.Tpo $(DEPDIR)/libglpk_la-mirgen.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='intopt/mirgen.c' object='libglpk_la-mirgen.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mirgen.lo `test -f 'intopt/mirgen.c' || echo '$(srcdir)/'`intopt/mirgen.c + +libglpk_la-spv.lo: intopt/spv.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-spv.lo -MD -MP -MF $(DEPDIR)/libglpk_la-spv.Tpo -c -o libglpk_la-spv.lo `test -f 'intopt/spv.c' || echo '$(srcdir)/'`intopt/spv.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-spv.Tpo $(DEPDIR)/libglpk_la-spv.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='intopt/spv.c' object='libglpk_la-spv.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-spv.lo `test -f 'intopt/spv.c' || echo '$(srcdir)/'`intopt/spv.c + libglpk_la-minisat.lo: minisat/minisat.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-minisat.lo -MD -MP -MF $(DEPDIR)/libglpk_la-minisat.Tpo -c -o libglpk_la-minisat.lo `test -f 'minisat/minisat.c' || echo '$(srcdir)/'`minisat/minisat.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-minisat.Tpo $(DEPDIR)/libglpk_la-minisat.Plo @@ -1448,6 +1679,13 @@ libglpk_la-minisat.lo: minisat/minisat.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-minisat.lo `test -f 'minisat/minisat.c' || echo '$(srcdir)/'`minisat/minisat.c +libglpk_la-avl.lo: misc/avl.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-avl.lo -MD -MP -MF $(DEPDIR)/libglpk_la-avl.Tpo -c -o libglpk_la-avl.lo `test -f 'misc/avl.c' || echo '$(srcdir)/'`misc/avl.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-avl.Tpo $(DEPDIR)/libglpk_la-avl.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc/avl.c' object='libglpk_la-avl.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-avl.lo `test -f 'misc/avl.c' || echo '$(srcdir)/'`misc/avl.c + libglpk_la-bignum.lo: misc/bignum.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-bignum.lo -MD -MP -MF $(DEPDIR)/libglpk_la-bignum.Tpo -c -o libglpk_la-bignum.lo `test -f 'misc/bignum.c' || echo '$(srcdir)/'`misc/bignum.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-bignum.Tpo $(DEPDIR)/libglpk_la-bignum.Plo @@ -1455,6 +1693,13 @@ libglpk_la-bignum.lo: misc/bignum.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-bignum.lo `test -f 'misc/bignum.c' || echo '$(srcdir)/'`misc/bignum.c +libglpk_la-dimacs.lo: misc/dimacs.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-dimacs.lo -MD -MP -MF $(DEPDIR)/libglpk_la-dimacs.Tpo -c -o libglpk_la-dimacs.lo `test -f 'misc/dimacs.c' || echo '$(srcdir)/'`misc/dimacs.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-dimacs.Tpo $(DEPDIR)/libglpk_la-dimacs.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc/dimacs.c' object='libglpk_la-dimacs.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-dimacs.lo `test -f 'misc/dimacs.c' || echo '$(srcdir)/'`misc/dimacs.c + libglpk_la-dmp.lo: misc/dmp.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-dmp.lo -MD -MP -MF $(DEPDIR)/libglpk_la-dmp.Tpo -c -o libglpk_la-dmp.lo `test -f 'misc/dmp.c' || echo '$(srcdir)/'`misc/dmp.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-dmp.Tpo $(DEPDIR)/libglpk_la-dmp.Plo @@ -1476,6 +1721,13 @@ libglpk_la-fp2rat.lo: misc/fp2rat.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-fp2rat.lo `test -f 'misc/fp2rat.c' || echo '$(srcdir)/'`misc/fp2rat.c +libglpk_la-fvs.lo: misc/fvs.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-fvs.lo -MD -MP -MF $(DEPDIR)/libglpk_la-fvs.Tpo -c -o libglpk_la-fvs.lo `test -f 'misc/fvs.c' || echo '$(srcdir)/'`misc/fvs.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-fvs.Tpo $(DEPDIR)/libglpk_la-fvs.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc/fvs.c' object='libglpk_la-fvs.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-fvs.lo `test -f 'misc/fvs.c' || echo '$(srcdir)/'`misc/fvs.c + libglpk_la-gcd.lo: misc/gcd.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-gcd.lo -MD -MP -MF $(DEPDIR)/libglpk_la-gcd.Tpo -c -o libglpk_la-gcd.lo `test -f 'misc/gcd.c' || echo '$(srcdir)/'`misc/gcd.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-gcd.Tpo $(DEPDIR)/libglpk_la-gcd.Plo @@ -1497,6 +1749,13 @@ libglpk_la-keller.lo: misc/keller.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-keller.lo `test -f 'misc/keller.c' || echo '$(srcdir)/'`misc/keller.c +libglpk_la-ks.lo: misc/ks.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-ks.lo -MD -MP -MF $(DEPDIR)/libglpk_la-ks.Tpo -c -o libglpk_la-ks.lo `test -f 'misc/ks.c' || echo '$(srcdir)/'`misc/ks.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-ks.Tpo $(DEPDIR)/libglpk_la-ks.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc/ks.c' object='libglpk_la-ks.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-ks.lo `test -f 'misc/ks.c' || echo '$(srcdir)/'`misc/ks.c + libglpk_la-mc13d.lo: misc/mc13d.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mc13d.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mc13d.Tpo -c -o libglpk_la-mc13d.lo `test -f 'misc/mc13d.c' || echo '$(srcdir)/'`misc/mc13d.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mc13d.Tpo $(DEPDIR)/libglpk_la-mc13d.Plo @@ -1511,6 +1770,20 @@ libglpk_la-mc21a.lo: misc/mc21a.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mc21a.lo `test -f 'misc/mc21a.c' || echo '$(srcdir)/'`misc/mc21a.c +libglpk_la-mt1.lo: misc/mt1.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mt1.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mt1.Tpo -c -o libglpk_la-mt1.lo `test -f 'misc/mt1.c' || echo '$(srcdir)/'`misc/mt1.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mt1.Tpo $(DEPDIR)/libglpk_la-mt1.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc/mt1.c' object='libglpk_la-mt1.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mt1.lo `test -f 'misc/mt1.c' || echo '$(srcdir)/'`misc/mt1.c + +libglpk_la-mygmp.lo: misc/mygmp.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mygmp.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mygmp.Tpo -c -o libglpk_la-mygmp.lo `test -f 'misc/mygmp.c' || echo '$(srcdir)/'`misc/mygmp.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mygmp.Tpo $(DEPDIR)/libglpk_la-mygmp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc/mygmp.c' object='libglpk_la-mygmp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mygmp.lo `test -f 'misc/mygmp.c' || echo '$(srcdir)/'`misc/mygmp.c + libglpk_la-okalg.lo: misc/okalg.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-okalg.lo -MD -MP -MF $(DEPDIR)/libglpk_la-okalg.Tpo -c -o libglpk_la-okalg.lo `test -f 'misc/okalg.c' || echo '$(srcdir)/'`misc/okalg.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-okalg.Tpo $(DEPDIR)/libglpk_la-okalg.Plo @@ -1602,6 +1875,97 @@ libglpk_la-wclique1.lo: misc/wclique1.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-wclique1.lo `test -f 'misc/wclique1.c' || echo '$(srcdir)/'`misc/wclique1.c +libglpk_la-mpl1.lo: mpl/mpl1.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mpl1.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mpl1.Tpo -c -o libglpk_la-mpl1.lo `test -f 'mpl/mpl1.c' || echo '$(srcdir)/'`mpl/mpl1.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mpl1.Tpo $(DEPDIR)/libglpk_la-mpl1.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpl/mpl1.c' object='libglpk_la-mpl1.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mpl1.lo `test -f 'mpl/mpl1.c' || echo '$(srcdir)/'`mpl/mpl1.c + +libglpk_la-mpl2.lo: mpl/mpl2.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mpl2.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mpl2.Tpo -c -o libglpk_la-mpl2.lo `test -f 'mpl/mpl2.c' || echo '$(srcdir)/'`mpl/mpl2.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mpl2.Tpo $(DEPDIR)/libglpk_la-mpl2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpl/mpl2.c' object='libglpk_la-mpl2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mpl2.lo `test -f 'mpl/mpl2.c' || echo '$(srcdir)/'`mpl/mpl2.c + +libglpk_la-mpl3.lo: mpl/mpl3.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mpl3.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mpl3.Tpo -c -o libglpk_la-mpl3.lo `test -f 'mpl/mpl3.c' || echo '$(srcdir)/'`mpl/mpl3.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mpl3.Tpo $(DEPDIR)/libglpk_la-mpl3.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpl/mpl3.c' object='libglpk_la-mpl3.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mpl3.lo `test -f 'mpl/mpl3.c' || echo '$(srcdir)/'`mpl/mpl3.c + +libglpk_la-mpl4.lo: mpl/mpl4.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mpl4.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mpl4.Tpo -c -o libglpk_la-mpl4.lo `test -f 'mpl/mpl4.c' || echo '$(srcdir)/'`mpl/mpl4.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mpl4.Tpo $(DEPDIR)/libglpk_la-mpl4.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpl/mpl4.c' object='libglpk_la-mpl4.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mpl4.lo `test -f 'mpl/mpl4.c' || echo '$(srcdir)/'`mpl/mpl4.c + +libglpk_la-mpl5.lo: mpl/mpl5.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mpl5.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mpl5.Tpo -c -o libglpk_la-mpl5.lo `test -f 'mpl/mpl5.c' || echo '$(srcdir)/'`mpl/mpl5.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mpl5.Tpo $(DEPDIR)/libglpk_la-mpl5.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpl/mpl5.c' object='libglpk_la-mpl5.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mpl5.lo `test -f 'mpl/mpl5.c' || echo '$(srcdir)/'`mpl/mpl5.c + +libglpk_la-mpl6.lo: mpl/mpl6.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mpl6.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mpl6.Tpo -c -o libglpk_la-mpl6.lo `test -f 'mpl/mpl6.c' || echo '$(srcdir)/'`mpl/mpl6.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mpl6.Tpo $(DEPDIR)/libglpk_la-mpl6.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpl/mpl6.c' object='libglpk_la-mpl6.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mpl6.lo `test -f 'mpl/mpl6.c' || echo '$(srcdir)/'`mpl/mpl6.c + +libglpk_la-mplsql.lo: mpl/mplsql.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-mplsql.lo -MD -MP -MF $(DEPDIR)/libglpk_la-mplsql.Tpo -c -o libglpk_la-mplsql.lo `test -f 'mpl/mplsql.c' || echo '$(srcdir)/'`mpl/mplsql.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-mplsql.Tpo $(DEPDIR)/libglpk_la-mplsql.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpl/mplsql.c' object='libglpk_la-mplsql.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-mplsql.lo `test -f 'mpl/mplsql.c' || echo '$(srcdir)/'`mpl/mplsql.c + +libglpk_la-npp1.lo: npp/npp1.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-npp1.lo -MD -MP -MF $(DEPDIR)/libglpk_la-npp1.Tpo -c -o libglpk_la-npp1.lo `test -f 'npp/npp1.c' || echo '$(srcdir)/'`npp/npp1.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-npp1.Tpo $(DEPDIR)/libglpk_la-npp1.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='npp/npp1.c' object='libglpk_la-npp1.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-npp1.lo `test -f 'npp/npp1.c' || echo '$(srcdir)/'`npp/npp1.c + +libglpk_la-npp2.lo: npp/npp2.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-npp2.lo -MD -MP -MF $(DEPDIR)/libglpk_la-npp2.Tpo -c -o libglpk_la-npp2.lo `test -f 'npp/npp2.c' || echo '$(srcdir)/'`npp/npp2.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-npp2.Tpo $(DEPDIR)/libglpk_la-npp2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='npp/npp2.c' object='libglpk_la-npp2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-npp2.lo `test -f 'npp/npp2.c' || echo '$(srcdir)/'`npp/npp2.c + +libglpk_la-npp3.lo: npp/npp3.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-npp3.lo -MD -MP -MF $(DEPDIR)/libglpk_la-npp3.Tpo -c -o libglpk_la-npp3.lo `test -f 'npp/npp3.c' || echo '$(srcdir)/'`npp/npp3.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-npp3.Tpo $(DEPDIR)/libglpk_la-npp3.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='npp/npp3.c' object='libglpk_la-npp3.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-npp3.lo `test -f 'npp/npp3.c' || echo '$(srcdir)/'`npp/npp3.c + +libglpk_la-npp4.lo: npp/npp4.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-npp4.lo -MD -MP -MF $(DEPDIR)/libglpk_la-npp4.Tpo -c -o libglpk_la-npp4.lo `test -f 'npp/npp4.c' || echo '$(srcdir)/'`npp/npp4.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-npp4.Tpo $(DEPDIR)/libglpk_la-npp4.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='npp/npp4.c' object='libglpk_la-npp4.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-npp4.lo `test -f 'npp/npp4.c' || echo '$(srcdir)/'`npp/npp4.c + +libglpk_la-npp5.lo: npp/npp5.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-npp5.lo -MD -MP -MF $(DEPDIR)/libglpk_la-npp5.Tpo -c -o libglpk_la-npp5.lo `test -f 'npp/npp5.c' || echo '$(srcdir)/'`npp/npp5.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-npp5.Tpo $(DEPDIR)/libglpk_la-npp5.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='npp/npp5.c' object='libglpk_la-npp5.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-npp5.lo `test -f 'npp/npp5.c' || echo '$(srcdir)/'`npp/npp5.c + +libglpk_la-npp6.lo: npp/npp6.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-npp6.lo -MD -MP -MF $(DEPDIR)/libglpk_la-npp6.Tpo -c -o libglpk_la-npp6.lo `test -f 'npp/npp6.c' || echo '$(srcdir)/'`npp/npp6.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-npp6.Tpo $(DEPDIR)/libglpk_la-npp6.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='npp/npp6.c' object='libglpk_la-npp6.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libglpk_la-npp6.lo `test -f 'npp/npp6.c' || echo '$(srcdir)/'`npp/npp6.c + libglpk_la-proxy.lo: proxy/proxy.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libglpk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libglpk_la-proxy.lo -MD -MP -MF $(DEPDIR)/libglpk_la-proxy.Tpo -c -o libglpk_la-proxy.lo `test -f 'proxy/proxy.c' || echo '$(srcdir)/'`proxy/proxy.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libglpk_la-proxy.Tpo $(DEPDIR)/libglpk_la-proxy.Plo diff --git a/resources/3rdparty/glpk-4.57/src/amd/COPYING b/resources/3rdparty/glpk-4.65/src/amd/COPYING similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/COPYING rename to resources/3rdparty/glpk-4.65/src/amd/COPYING diff --git a/resources/3rdparty/glpk-4.57/src/amd/README b/resources/3rdparty/glpk-4.65/src/amd/README similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/README rename to resources/3rdparty/glpk-4.65/src/amd/README diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd.h b/resources/3rdparty/glpk-4.65/src/amd/amd.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd.h rename to resources/3rdparty/glpk-4.65/src/amd/amd.h diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_1.c b/resources/3rdparty/glpk-4.65/src/amd/amd_1.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_1.c rename to resources/3rdparty/glpk-4.65/src/amd/amd_1.c diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_2.c b/resources/3rdparty/glpk-4.65/src/amd/amd_2.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_2.c rename to resources/3rdparty/glpk-4.65/src/amd/amd_2.c diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_aat.c b/resources/3rdparty/glpk-4.65/src/amd/amd_aat.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_aat.c rename to resources/3rdparty/glpk-4.65/src/amd/amd_aat.c diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_control.c b/resources/3rdparty/glpk-4.65/src/amd/amd_control.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_control.c rename to resources/3rdparty/glpk-4.65/src/amd/amd_control.c diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_defaults.c b/resources/3rdparty/glpk-4.65/src/amd/amd_defaults.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_defaults.c rename to resources/3rdparty/glpk-4.65/src/amd/amd_defaults.c diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_dump.c b/resources/3rdparty/glpk-4.65/src/amd/amd_dump.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_dump.c rename to resources/3rdparty/glpk-4.65/src/amd/amd_dump.c diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_info.c b/resources/3rdparty/glpk-4.65/src/amd/amd_info.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_info.c rename to resources/3rdparty/glpk-4.65/src/amd/amd_info.c diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_internal.h b/resources/3rdparty/glpk-4.65/src/amd/amd_internal.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_internal.h rename to resources/3rdparty/glpk-4.65/src/amd/amd_internal.h diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_order.c b/resources/3rdparty/glpk-4.65/src/amd/amd_order.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_order.c rename to resources/3rdparty/glpk-4.65/src/amd/amd_order.c diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_post_tree.c b/resources/3rdparty/glpk-4.65/src/amd/amd_post_tree.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_post_tree.c rename to resources/3rdparty/glpk-4.65/src/amd/amd_post_tree.c diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_postorder.c b/resources/3rdparty/glpk-4.65/src/amd/amd_postorder.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_postorder.c rename to resources/3rdparty/glpk-4.65/src/amd/amd_postorder.c diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_preprocess.c b/resources/3rdparty/glpk-4.65/src/amd/amd_preprocess.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_preprocess.c rename to resources/3rdparty/glpk-4.65/src/amd/amd_preprocess.c diff --git a/resources/3rdparty/glpk-4.57/src/amd/amd_valid.c b/resources/3rdparty/glpk-4.65/src/amd/amd_valid.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/amd/amd_valid.c rename to resources/3rdparty/glpk-4.65/src/amd/amd_valid.c diff --git a/resources/3rdparty/glpk-4.57/src/glpini01.c b/resources/3rdparty/glpk-4.65/src/api/advbas.c similarity index 97% rename from resources/3rdparty/glpk-4.57/src/glpini01.c rename to resources/3rdparty/glpk-4.65/src/api/advbas.c index 76c021477..230676246 100644 --- a/resources/3rdparty/glpk-4.57/src/glpini01.c +++ b/resources/3rdparty/glpk-4.65/src/api/advbas.c @@ -1,9 +1,9 @@ -/* glpini01.c */ +/* advbas.c (construct advanced initial LP basis) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2012, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2008-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * diff --git a/resources/3rdparty/glpk-4.65/src/api/asnhall.c b/resources/3rdparty/glpk-4.65/src/api/asnhall.c new file mode 100644 index 000000000..d7112a102 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/asnhall.c @@ -0,0 +1,163 @@ +/* asnhall.c (find bipartite matching of maximum cardinality) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" +#include "mc21a.h" + +/*********************************************************************** +* NAME +* +* glp_asnprob_hall - find bipartite matching of maximum cardinality +* +* SYNOPSIS +* +* int glp_asnprob_hall(glp_graph *G, int v_set, int a_x); +* +* DESCRIPTION +* +* The routine glp_asnprob_hall finds a matching of maximal cardinality +* in the specified bipartite graph G. It uses a version of the Fortran +* routine MC21A developed by I.S.Duff [1], which implements Hall's +* algorithm [2]. +* +* RETURNS +* +* The routine glp_asnprob_hall returns the cardinality of the matching +* found. However, if the specified graph is incorrect (as detected by +* the routine glp_check_asnprob), the routine returns negative value. +* +* REFERENCES +* +* 1. I.S.Duff, Algorithm 575: Permutations for zero-free diagonal, ACM +* Trans. on Math. Softw. 7 (1981), 387-390. +* +* 2. M.Hall, "An Algorithm for distinct representatives," Amer. Math. +* Monthly 63 (1956), 716-717. */ + +int glp_asnprob_hall(glp_graph *G, int v_set, int a_x) +{ glp_vertex *v; + glp_arc *a; + int card, i, k, loc, n, n1, n2, xij; + int *num, *icn, *ip, *lenr, *iperm, *pr, *arp, *cv, *out; + if (v_set >= 0 && v_set > G->v_size - (int)sizeof(int)) + xerror("glp_asnprob_hall: v_set = %d; invalid offset\n", + v_set); + if (a_x >= 0 && a_x > G->a_size - (int)sizeof(int)) + xerror("glp_asnprob_hall: a_x = %d; invalid offset\n", a_x); + if (glp_check_asnprob(G, v_set)) + return -1; + /* determine the number of vertices in sets R and S and renumber + vertices in S which correspond to columns of the matrix; skip + all isolated vertices */ + num = xcalloc(1+G->nv, sizeof(int)); + n1 = n2 = 0; + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + if (v->in == NULL && v->out != NULL) + n1++, num[i] = 0; /* vertex in R */ + else if (v->in != NULL && v->out == NULL) + n2++, num[i] = n2; /* vertex in S */ + else + { xassert(v->in == NULL && v->out == NULL); + num[i] = -1; /* isolated vertex */ + } + } + /* the matrix must be square, thus, if it has more columns than + rows, extra rows will be just empty, and vice versa */ + n = (n1 >= n2 ? n1 : n2); + /* allocate working arrays */ + icn = xcalloc(1+G->na, sizeof(int)); + ip = xcalloc(1+n, sizeof(int)); + lenr = xcalloc(1+n, sizeof(int)); + iperm = xcalloc(1+n, sizeof(int)); + pr = xcalloc(1+n, sizeof(int)); + arp = xcalloc(1+n, sizeof(int)); + cv = xcalloc(1+n, sizeof(int)); + out = xcalloc(1+n, sizeof(int)); + /* build the adjacency matrix of the bipartite graph in row-wise + format (rows are vertices in R, columns are vertices in S) */ + k = 0, loc = 1; + for (i = 1; i <= G->nv; i++) + { if (num[i] != 0) continue; + /* vertex i in R */ + ip[++k] = loc; + v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { xassert(num[a->head->i] != 0); + icn[loc++] = num[a->head->i]; + } + lenr[k] = loc - ip[k]; + } + xassert(loc-1 == G->na); + /* make all extra rows empty (all extra columns are empty due to + the row-wise format used) */ + for (k++; k <= n; k++) + ip[k] = loc, lenr[k] = 0; + /* find a row permutation that maximizes the number of non-zeros + on the main diagonal */ + card = mc21a(n, icn, ip, lenr, iperm, pr, arp, cv, out); +#if 1 /* 18/II-2010 */ + /* FIXED: if card = n, arp remains clobbered on exit */ + for (i = 1; i <= n; i++) + arp[i] = 0; + for (i = 1; i <= card; i++) + { k = iperm[i]; + xassert(1 <= k && k <= n); + xassert(arp[k] == 0); + arp[k] = i; + } +#endif + /* store solution, if necessary */ + if (a_x < 0) goto skip; + k = 0; + for (i = 1; i <= G->nv; i++) + { if (num[i] != 0) continue; + /* vertex i in R */ + k++; + v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { /* arp[k] is the number of matched column or zero */ + if (arp[k] == num[a->head->i]) + { xassert(arp[k] != 0); + xij = 1; + } + else + xij = 0; + memcpy((char *)a->data + a_x, &xij, sizeof(int)); + } + } +skip: /* free working arrays */ + xfree(num); + xfree(icn); + xfree(ip); + xfree(lenr); + xfree(iperm); + xfree(pr); + xfree(arp); + xfree(cv); + xfree(out); + return card; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/asnlp.c b/resources/3rdparty/glpk-4.65/src/api/asnlp.c new file mode 100644 index 000000000..cfa925d0e --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/asnlp.c @@ -0,0 +1,104 @@ +/* asnlp.c (convert assignment problem to LP) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" + +/*********************************************************************** +* NAME +* +* glp_asnprob_lp - convert assignment problem to LP +* +* SYNOPSIS +* +* int glp_asnprob_lp(glp_prob *P, int form, glp_graph *G, int names, +* int v_set, int a_cost); +* +* DESCRIPTION +* +* The routine glp_asnprob_lp builds an LP problem, which corresponds +* to the assignment problem on the specified graph G. +* +* RETURNS +* +* If the LP problem has been successfully built, the routine returns +* zero, otherwise, non-zero. */ + +int glp_asnprob_lp(glp_prob *P, int form, glp_graph *G, int names, + int v_set, int a_cost) +{ glp_vertex *v; + glp_arc *a; + int i, j, ret, ind[1+2]; + double cost, val[1+2]; + if (!(form == GLP_ASN_MIN || form == GLP_ASN_MAX || + form == GLP_ASN_MMP)) + xerror("glp_asnprob_lp: form = %d; invalid parameter\n", + form); + if (!(names == GLP_ON || names == GLP_OFF)) + xerror("glp_asnprob_lp: names = %d; invalid parameter\n", + names); + if (v_set >= 0 && v_set > G->v_size - (int)sizeof(int)) + xerror("glp_asnprob_lp: v_set = %d; invalid offset\n", + v_set); + if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) + xerror("glp_asnprob_lp: a_cost = %d; invalid offset\n", + a_cost); + ret = glp_check_asnprob(G, v_set); + if (ret != 0) goto done; + glp_erase_prob(P); + if (names) glp_set_prob_name(P, G->name); + glp_set_obj_dir(P, form == GLP_ASN_MIN ? GLP_MIN : GLP_MAX); + if (G->nv > 0) glp_add_rows(P, G->nv); + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + if (names) glp_set_row_name(P, i, v->name); + glp_set_row_bnds(P, i, form == GLP_ASN_MMP ? GLP_UP : GLP_FX, + 1.0, 1.0); + } + if (G->na > 0) glp_add_cols(P, G->na); + for (i = 1, j = 0; i <= G->nv; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { j++; + if (names) + { char name[50+1]; + sprintf(name, "x[%d,%d]", a->tail->i, a->head->i); + xassert(strlen(name) < sizeof(name)); + glp_set_col_name(P, j, name); + } + ind[1] = a->tail->i, val[1] = +1.0; + ind[2] = a->head->i, val[2] = +1.0; + glp_set_mat_col(P, j, 2, ind, val); + glp_set_col_bnds(P, j, GLP_DB, 0.0, 1.0); + if (a_cost >= 0) + memcpy(&cost, (char *)a->data + a_cost, sizeof(double)); + else + cost = 1.0; + glp_set_obj_coef(P, j, cost); + } + } + xassert(j == G->na); +done: return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/asnokalg.c b/resources/3rdparty/glpk-4.65/src/api/asnokalg.c new file mode 100644 index 000000000..d55dbac7a --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/asnokalg.c @@ -0,0 +1,154 @@ +/* asnokalg.c (solve assignment problem with out-of-kilter alg.) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" +#include "okalg.h" + +int glp_asnprob_okalg(int form, glp_graph *G, int v_set, int a_cost, + double *sol, int a_x) +{ /* solve assignment problem with out-of-kilter algorithm */ + glp_vertex *v; + glp_arc *a; + int nv, na, i, k, *tail, *head, *low, *cap, *cost, *x, *pi, ret; + double temp; + if (!(form == GLP_ASN_MIN || form == GLP_ASN_MAX || + form == GLP_ASN_MMP)) + xerror("glp_asnprob_okalg: form = %d; invalid parameter\n", + form); + if (v_set >= 0 && v_set > G->v_size - (int)sizeof(int)) + xerror("glp_asnprob_okalg: v_set = %d; invalid offset\n", + v_set); + if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) + xerror("glp_asnprob_okalg: a_cost = %d; invalid offset\n", + a_cost); + if (a_x >= 0 && a_x > G->a_size - (int)sizeof(int)) + xerror("glp_asnprob_okalg: a_x = %d; invalid offset\n", a_x); + if (glp_check_asnprob(G, v_set)) + return GLP_EDATA; + /* nv is the total number of nodes in the resulting network */ + nv = G->nv + 1; + /* na is the total number of arcs in the resulting network */ + na = G->na + G->nv; + /* allocate working arrays */ + tail = xcalloc(1+na, sizeof(int)); + head = xcalloc(1+na, sizeof(int)); + low = xcalloc(1+na, sizeof(int)); + cap = xcalloc(1+na, sizeof(int)); + cost = xcalloc(1+na, sizeof(int)); + x = xcalloc(1+na, sizeof(int)); + pi = xcalloc(1+nv, sizeof(int)); + /* construct the resulting network */ + k = 0; + /* (original arcs) */ + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { k++; + tail[k] = a->tail->i; + head[k] = a->head->i; + low[k] = 0; + cap[k] = 1; + if (a_cost >= 0) + memcpy(&temp, (char *)a->data + a_cost, sizeof(double)); + else + temp = 1.0; + if (!(fabs(temp) <= (double)INT_MAX && temp == floor(temp))) + { ret = GLP_EDATA; + goto done; + } + cost[k] = (int)temp; + if (form != GLP_ASN_MIN) cost[k] = - cost[k]; + } + } + /* (artificial arcs) */ + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + k++; + if (v->out == NULL) + tail[k] = i, head[k] = nv; + else if (v->in == NULL) + tail[k] = nv, head[k] = i; + else + xassert(v != v); + low[k] = (form == GLP_ASN_MMP ? 0 : 1); + cap[k] = 1; + cost[k] = 0; + } + xassert(k == na); + /* find minimal-cost circulation in the resulting network */ + ret = okalg(nv, na, tail, head, low, cap, cost, x, pi); + switch (ret) + { case 0: + /* optimal circulation found */ + ret = 0; + break; + case 1: + /* no feasible circulation exists */ + ret = GLP_ENOPFS; + break; + case 2: + /* integer overflow occured */ + ret = GLP_ERANGE; + goto done; + case 3: + /* optimality test failed (logic error) */ + ret = GLP_EFAIL; + goto done; + default: + xassert(ret != ret); + } + /* store solution components */ + /* (objective function = the total cost) */ + if (sol != NULL) + { temp = 0.0; + for (k = 1; k <= na; k++) + temp += (double)cost[k] * (double)x[k]; + if (form != GLP_ASN_MIN) temp = - temp; + *sol = temp; + } + /* (arc flows) */ + if (a_x >= 0) + { k = 0; + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { k++; + if (ret == 0) + xassert(x[k] == 0 || x[k] == 1); + memcpy((char *)a->data + a_x, &x[k], sizeof(int)); + } + } + } +done: /* free working arrays */ + xfree(tail); + xfree(head); + xfree(low); + xfree(cap); + xfree(cost); + xfree(x); + xfree(pi); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/ckasn.c b/resources/3rdparty/glpk-4.65/src/api/ckasn.c new file mode 100644 index 000000000..56221a8a9 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/ckasn.c @@ -0,0 +1,78 @@ +/* ckasn.c (check correctness of assignment problem data) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" + +/*********************************************************************** +* NAME +* +* glp_check_asnprob - check correctness of assignment problem data +* +* SYNOPSIS +* +* int glp_check_asnprob(glp_graph *G, int v_set); +* +* RETURNS +* +* If the specified assignment problem data are correct, the routine +* glp_check_asnprob returns zero, otherwise, non-zero. */ + +int glp_check_asnprob(glp_graph *G, int v_set) +{ glp_vertex *v; + int i, k, ret = 0; + if (v_set >= 0 && v_set > G->v_size - (int)sizeof(int)) + xerror("glp_check_asnprob: v_set = %d; invalid offset\n", + v_set); + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + if (v_set >= 0) + { memcpy(&k, (char *)v->data + v_set, sizeof(int)); + if (k == 0) + { if (v->in != NULL) + { ret = 1; + break; + } + } + else if (k == 1) + { if (v->out != NULL) + { ret = 2; + break; + } + } + else + { ret = 3; + break; + } + } + else + { if (v->in != NULL && v->out != NULL) + { ret = 4; + break; + } + } + } + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/ckcnf.c b/resources/3rdparty/glpk-4.65/src/api/ckcnf.c new file mode 100644 index 000000000..0ee47ed96 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/ckcnf.c @@ -0,0 +1,82 @@ +/* ckcnf.c (check for CNF-SAT problem instance) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "prob.h" + +int glp_check_cnfsat(glp_prob *P) +{ /* check for CNF-SAT problem instance */ + int m = P->m; + int n = P->n; + GLPROW *row; + GLPCOL *col; + GLPAIJ *aij; + int i, j, neg; +#if 0 /* 04/IV-2016 */ + if (P == NULL || P->magic != GLP_PROB_MAGIC) + xerror("glp_check_cnfsat: P = %p; invalid problem object\n", + P); +#endif + /* check columns */ + for (j = 1; j <= n; j++) + { col = P->col[j]; + /* the variable should be binary */ + if (!(col->kind == GLP_IV && col->type == GLP_DB && + col->lb == 0.0 && col->ub == 1.0)) + return 1; + } + /* objective function should be zero */ + if (P->c0 != 0.0) + return 2; + for (j = 1; j <= n; j++) + { col = P->col[j]; + if (col->coef != 0.0) + return 3; + } + /* check rows */ + for (i = 1; i <= m; i++) + { row = P->row[i]; + /* the row should be of ">=" type */ + if (row->type != GLP_LO) + return 4; + /* check constraint coefficients */ + neg = 0; + for (aij = row->ptr; aij != NULL; aij = aij->r_next) + { /* the constraint coefficient should be +1 or -1 */ + if (aij->val == +1.0) + ; + else if (aij->val == -1.0) + neg++; + else + return 5; + } + /* the right-hand side should be (1 - neg), where neg is the + number of negative constraint coefficients in the row */ + if (row->lb != (double)(1 - neg)) + return 6; + } + /* congratulations; this is CNF-SAT */ + return 0; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpcpx.c b/resources/3rdparty/glpk-4.65/src/api/cplex.c similarity index 98% rename from resources/3rdparty/glpk-4.57/src/glpcpx.c rename to resources/3rdparty/glpk-4.65/src/api/cplex.c index 1aa3f346b..8403a6464 100644 --- a/resources/3rdparty/glpk-4.57/src/glpcpx.c +++ b/resources/3rdparty/glpk-4.65/src/api/cplex.c @@ -1,10 +1,9 @@ -/* glpcpx.c (CPLEX LP format routines) */ +/* cplex.c (CPLEX LP format routines) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2009-2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -144,7 +143,7 @@ struct csa }; #define CHAR_SET "!\"#$%&()/,.;?@_`'{}|~" -/* characters, which may appear in symbolic names */ +/* characters that may appear in symbolic names */ static void error(struct csa *csa, const char *fmt, ...) { /* print error message and terminate processing */ @@ -1067,7 +1066,29 @@ static char *col_name(struct csa *csa, int j, char cname[255+1]) adjust_name(cname); if (check_name(cname)) goto fake; return cname; +#if 0 /* 18/I-2018 */ fake: sprintf(cname, "x_%d", j); +#else +fake: /* construct fake name depending on column's attributes */ + { GLPCOL *col = csa->P->col[j]; + if (col->type == GLP_FX) + { /* fixed column */ + sprintf(cname, "s_%d", j); + } + else if (col->kind == GLP_CV) + { /* continuous variable */ + sprintf(cname, "x_%d", j); + } + else if (!(col->lb == 0 && col->ub == 1)) + { /* general (non-binary) integer variable */ + sprintf(cname, "y_%d", j); + } + else + { /* binary variable */ + sprintf(cname, "z_%d", j); + } + } +#endif return cname; } diff --git a/resources/3rdparty/glpk-4.65/src/api/cpp.c b/resources/3rdparty/glpk-4.65/src/api/cpp.c new file mode 100644 index 000000000..ac3d63ef8 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/cpp.c @@ -0,0 +1,185 @@ +/* cpp.c (solve critical path problem) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" + +/*********************************************************************** +* NAME +* +* glp_cpp - solve critical path problem +* +* SYNOPSIS +* +* double glp_cpp(glp_graph *G, int v_t, int v_es, int v_ls); +* +* DESCRIPTION +* +* The routine glp_cpp solves the critical path problem represented in +* the form of the project network. +* +* The parameter G is a pointer to the graph object, which specifies +* the project network. This graph must be acyclic. Multiple arcs are +* allowed being considered as single arcs. +* +* The parameter v_t specifies an offset of the field of type double +* in the vertex data block, which contains time t[i] >= 0 needed to +* perform corresponding job j. If v_t < 0, it is assumed that t[i] = 1 +* for all jobs. +* +* The parameter v_es specifies an offset of the field of type double +* in the vertex data block, to which the routine stores earliest start +* time for corresponding job. If v_es < 0, this time is not stored. +* +* The parameter v_ls specifies an offset of the field of type double +* in the vertex data block, to which the routine stores latest start +* time for corresponding job. If v_ls < 0, this time is not stored. +* +* RETURNS +* +* The routine glp_cpp returns the minimal project duration, that is, +* minimal time needed to perform all jobs in the project. */ + +static void sorting(glp_graph *G, int list[]); + +double glp_cpp(glp_graph *G, int v_t, int v_es, int v_ls) +{ glp_vertex *v; + glp_arc *a; + int i, j, k, nv, *list; + double temp, total, *t, *es, *ls; + if (v_t >= 0 && v_t > G->v_size - (int)sizeof(double)) + xerror("glp_cpp: v_t = %d; invalid offset\n", v_t); + if (v_es >= 0 && v_es > G->v_size - (int)sizeof(double)) + xerror("glp_cpp: v_es = %d; invalid offset\n", v_es); + if (v_ls >= 0 && v_ls > G->v_size - (int)sizeof(double)) + xerror("glp_cpp: v_ls = %d; invalid offset\n", v_ls); + nv = G->nv; + if (nv == 0) + { total = 0.0; + goto done; + } + /* allocate working arrays */ + t = xcalloc(1+nv, sizeof(double)); + es = xcalloc(1+nv, sizeof(double)); + ls = xcalloc(1+nv, sizeof(double)); + list = xcalloc(1+nv, sizeof(int)); + /* retrieve job times */ + for (i = 1; i <= nv; i++) + { v = G->v[i]; + if (v_t >= 0) + { memcpy(&t[i], (char *)v->data + v_t, sizeof(double)); + if (t[i] < 0.0) + xerror("glp_cpp: t[%d] = %g; invalid time\n", i, t[i]); + } + else + t[i] = 1.0; + } + /* perform topological sorting to determine the list of nodes + (jobs) such that if list[k] = i and list[kk] = j and there + exists arc (i->j), then k < kk */ + sorting(G, list); + /* FORWARD PASS */ + /* determine earliest start times */ + for (k = 1; k <= nv; k++) + { j = list[k]; + es[j] = 0.0; + for (a = G->v[j]->in; a != NULL; a = a->h_next) + { i = a->tail->i; + /* there exists arc (i->j) in the project network */ + temp = es[i] + t[i]; + if (es[j] < temp) es[j] = temp; + } + } + /* determine the minimal project duration */ + total = 0.0; + for (i = 1; i <= nv; i++) + { temp = es[i] + t[i]; + if (total < temp) total = temp; + } + /* BACKWARD PASS */ + /* determine latest start times */ + for (k = nv; k >= 1; k--) + { i = list[k]; + ls[i] = total - t[i]; + for (a = G->v[i]->out; a != NULL; a = a->t_next) + { j = a->head->i; + /* there exists arc (i->j) in the project network */ + temp = ls[j] - t[i]; + if (ls[i] > temp) ls[i] = temp; + } + /* avoid possible round-off errors */ + if (ls[i] < es[i]) ls[i] = es[i]; + } + /* store results, if necessary */ + if (v_es >= 0) + { for (i = 1; i <= nv; i++) + { v = G->v[i]; + memcpy((char *)v->data + v_es, &es[i], sizeof(double)); + } + } + if (v_ls >= 0) + { for (i = 1; i <= nv; i++) + { v = G->v[i]; + memcpy((char *)v->data + v_ls, &ls[i], sizeof(double)); + } + } + /* free working arrays */ + xfree(t); + xfree(es); + xfree(ls); + xfree(list); +done: return total; +} + +static void sorting(glp_graph *G, int list[]) +{ /* perform topological sorting to determine the list of nodes + (jobs) such that if list[k] = i and list[kk] = j and there + exists arc (i->j), then k < kk */ + int i, k, nv, v_size, *num; + void **save; + nv = G->nv; + v_size = G->v_size; + save = xcalloc(1+nv, sizeof(void *)); + num = xcalloc(1+nv, sizeof(int)); + G->v_size = sizeof(int); + for (i = 1; i <= nv; i++) + { save[i] = G->v[i]->data; + G->v[i]->data = &num[i]; + list[i] = 0; + } + if (glp_top_sort(G, 0) != 0) + xerror("glp_cpp: project network is not acyclic\n"); + G->v_size = v_size; + for (i = 1; i <= nv; i++) + { G->v[i]->data = save[i]; + k = num[i]; + xassert(1 <= k && k <= nv); + xassert(list[k] == 0); + list[k] = i; + } + xfree(save); + xfree(num); + return; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpini02.c b/resources/3rdparty/glpk-4.65/src/api/cpxbas.c similarity index 97% rename from resources/3rdparty/glpk-4.57/src/glpini02.c rename to resources/3rdparty/glpk-4.65/src/api/cpxbas.c index 6aad59feb..e1c656a74 100644 --- a/resources/3rdparty/glpk-4.57/src/glpini02.c +++ b/resources/3rdparty/glpk-4.65/src/api/cpxbas.c @@ -1,10 +1,9 @@ -/* glpini02.c */ +/* cpxbas.c (construct Bixby's initial LP basis) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2008-2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -33,7 +32,7 @@ struct var /* penalty value */ }; -static int fcmp(const void *ptr1, const void *ptr2) +static int CDECL fcmp(const void *ptr1, const void *ptr2) { /* this routine is passed to the qsort() function */ struct var *col1 = (void *)ptr1, *col2 = (void *)ptr2; if (col1->q < col2->q) return -1; diff --git a/resources/3rdparty/glpk-4.57/src/glpapi15.c b/resources/3rdparty/glpk-4.65/src/api/graph.c similarity index 82% rename from resources/3rdparty/glpk-4.57/src/glpapi15.c rename to resources/3rdparty/glpk-4.65/src/api/graph.c index be1248c57..82994c84f 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi15.c +++ b/resources/3rdparty/glpk-4.65/src/api/graph.c @@ -1,10 +1,9 @@ -/* glpapi15.c (basic graph and network routines) */ +/* graph.c (basic graph routines) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,11 +21,10 @@ * along with GLPK. If not, see . ***********************************************************************/ +#include "avl.h" +#include "dmp.h" #include "env.h" -#include "glpsdf.h" -#include "prob.h" - -#define xfprintf glp_format +#include "glpk.h" /* CAUTION: DO NOT CHANGE THE LIMITS BELOW */ @@ -503,113 +501,4 @@ void glp_delete_v_index(glp_graph *G) return; } -/*********************************************************************** -* NAME -* -* glp_read_graph - read graph from plain text file -* -* SYNOPSIS -* -* int glp_read_graph(glp_graph *G, const char *fname); -* -* DESCRIPTION -* -* The routine glp_read_graph reads a graph from a plain text file. -* -* RETURNS -* -* If the operation was successful, the routine returns zero. Otherwise -* it prints an error message and returns non-zero. */ - -int glp_read_graph(glp_graph *G, const char *fname) -{ glp_data *data; - jmp_buf jump; - int nv, na, i, j, k, ret; - glp_erase_graph(G, G->v_size, G->a_size); - xprintf("Reading graph from '%s'...\n", fname); - data = glp_sdf_open_file(fname); - if (data == NULL) - { ret = 1; - goto done; - } - if (setjmp(jump)) - { ret = 1; - goto done; - } - glp_sdf_set_jump(data, jump); - nv = glp_sdf_read_int(data); - if (nv < 0) - glp_sdf_error(data, "invalid number of vertices\n"); - na = glp_sdf_read_int(data); - if (na < 0) - glp_sdf_error(data, "invalid number of arcs\n"); - xprintf("Graph has %d vert%s and %d arc%s\n", - nv, nv == 1 ? "ex" : "ices", na, na == 1 ? "" : "s"); - if (nv > 0) glp_add_vertices(G, nv); - for (k = 1; k <= na; k++) - { i = glp_sdf_read_int(data); - if (!(1 <= i && i <= nv)) - glp_sdf_error(data, "tail vertex number out of range\n"); - j = glp_sdf_read_int(data); - if (!(1 <= j && j <= nv)) - glp_sdf_error(data, "head vertex number out of range\n"); - glp_add_arc(G, i, j); - } - xprintf("%d lines were read\n", glp_sdf_line(data)); - ret = 0; -done: if (data != NULL) glp_sdf_close_file(data); - return ret; -} - -/*********************************************************************** -* NAME -* -* glp_write_graph - write graph to plain text file -* -* SYNOPSIS -* -* int glp_write_graph(glp_graph *G, const char *fname). -* -* DESCRIPTION -* -* The routine glp_write_graph writes the specified graph to a plain -* text file. -* -* RETURNS -* -* If the operation was successful, the routine returns zero. Otherwise -* it prints an error message and returns non-zero. */ - -int glp_write_graph(glp_graph *G, const char *fname) -{ glp_file *fp; - glp_vertex *v; - glp_arc *a; - int i, count, ret; - xprintf("Writing graph to '%s'...\n", fname); - fp = glp_open(fname, "w"), count = 0; - if (fp == NULL) - { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xfprintf(fp, "%d %d\n", G->nv, G->na), count++; - for (i = 1; i <= G->nv; i++) - { v = G->v[i]; - for (a = v->out; a != NULL; a = a->t_next) - xfprintf(fp, "%d %d\n", a->tail->i, a->head->i), count++; - } -#if 0 /* FIXME */ - xfflush(fp); -#endif - if (glp_ioerr(fp)) - { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); - ret = 1; - goto done; - } - xprintf("%d lines were written\n", count); - ret = 0; -done: if (fp != NULL) glp_close(fp); - return ret; -} - /* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpnet04.c b/resources/3rdparty/glpk-4.65/src/api/gridgen.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpnet04.c rename to resources/3rdparty/glpk-4.65/src/api/gridgen.c index 391392878..8cd3517fa 100644 --- a/resources/3rdparty/glpk-4.57/src/glpnet04.c +++ b/resources/3rdparty/glpk-4.65/src/api/gridgen.c @@ -1,4 +1,4 @@ -/* glpnet04.c (grid-like network problem generator) */ +/* gridgen.c (grid-like network problem generator) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). diff --git a/resources/3rdparty/glpk-4.57/src/glpapi20.c b/resources/3rdparty/glpk-4.65/src/api/intfeas1.c similarity index 95% rename from resources/3rdparty/glpk-4.57/src/glpapi20.c rename to resources/3rdparty/glpk-4.65/src/api/intfeas1.c index 2a2f6f988..430643517 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi20.c +++ b/resources/3rdparty/glpk-4.65/src/api/intfeas1.c @@ -1,10 +1,9 @@ -/* glpapi20.c */ +/* intfeas1.c (solve integer feasibility problem) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2011-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +22,7 @@ ***********************************************************************/ #include "env.h" -#include "glpnpp.h" +#include "npp.h" int glp_intfeas1(glp_prob *P, int use_bound, int obj_bound) { /* solve integer feasibility problem */ @@ -33,10 +32,12 @@ int glp_intfeas1(glp_prob *P, int use_bound, int obj_bound) double *obj_val = NULL; int obj_row = 0; int i, j, k, obj_len, temp, ret; +#if 0 /* 04/IV-2016 */ /* check the problem object */ if (P == NULL || P->magic != GLP_PROB_MAGIC) xerror("glp_intfeas1: P = %p; invalid problem object\n", P); +#endif if (P->tree != NULL) xerror("glp_intfeas1: operation not allowed\n"); /* integer solution is currently undefined */ @@ -45,7 +46,7 @@ int glp_intfeas1(glp_prob *P, int use_bound, int obj_bound) /* check columns (variables) */ for (j = 1; j <= P->n; j++) { GLPCOL *col = P->col[j]; -#if 0 /* currently binarization is not yet implemented */ +#if 0 /* binarization is not yet implemented */ if (!(col->kind == GLP_IV || col->type == GLP_FX)) { xprintf("glp_intfeas1: column %d: non-integer non-fixed var" "iable not allowed\n", j); @@ -123,6 +124,12 @@ int glp_intfeas1(glp_prob *P, int use_bound, int obj_bound) } } /* check the objective function */ +#if 1 /* 08/I-2017 by cmatraki & mao */ + if (!use_bound) + { /* skip check if no obj. bound is specified */ + goto skip; + } +#endif temp = (int)P->c0; if ((double)temp != P->c0) { xprintf("glp_intfeas1: objective constant term %g is non-integ" @@ -139,6 +146,9 @@ int glp_intfeas1(glp_prob *P, int use_bound, int obj_bound) goto done; } } +#if 1 /* 08/I-2017 by cmatraki & mao */ +skip: ; +#endif /* save the objective function and set it to zero */ obj_ind = xcalloc(1+P->n, sizeof(int)); obj_val = xcalloc(1+P->n, sizeof(double)); diff --git a/resources/3rdparty/glpk-4.65/src/api/maxffalg.c b/resources/3rdparty/glpk-4.65/src/api/maxffalg.c new file mode 100644 index 000000000..0f3f9b041 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/maxffalg.c @@ -0,0 +1,130 @@ +/* maxffalg.c (find maximal flow with Ford-Fulkerson algorithm) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "ffalg.h" +#include "glpk.h" + +int glp_maxflow_ffalg(glp_graph *G, int s, int t, int a_cap, + double *sol, int a_x, int v_cut) +{ /* find maximal flow with Ford-Fulkerson algorithm */ + glp_vertex *v; + glp_arc *a; + int nv, na, i, k, flag, *tail, *head, *cap, *x, ret; + char *cut; + double temp; + if (!(1 <= s && s <= G->nv)) + xerror("glp_maxflow_ffalg: s = %d; source node number out of r" + "ange\n", s); + if (!(1 <= t && t <= G->nv)) + xerror("glp_maxflow_ffalg: t = %d: sink node number out of ran" + "ge\n", t); + if (s == t) + xerror("glp_maxflow_ffalg: s = t = %d; source and sink nodes m" + "ust be distinct\n", s); + if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) + xerror("glp_maxflow_ffalg: a_cap = %d; invalid offset\n", + a_cap); + if (v_cut >= 0 && v_cut > G->v_size - (int)sizeof(int)) + xerror("glp_maxflow_ffalg: v_cut = %d; invalid offset\n", + v_cut); + /* allocate working arrays */ + nv = G->nv; + na = G->na; + tail = xcalloc(1+na, sizeof(int)); + head = xcalloc(1+na, sizeof(int)); + cap = xcalloc(1+na, sizeof(int)); + x = xcalloc(1+na, sizeof(int)); + if (v_cut < 0) + cut = NULL; + else + cut = xcalloc(1+nv, sizeof(char)); + /* copy the flow network */ + k = 0; + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { k++; + tail[k] = a->tail->i; + head[k] = a->head->i; + if (tail[k] == head[k]) + { ret = GLP_EDATA; + goto done; + } + if (a_cap >= 0) + memcpy(&temp, (char *)a->data + a_cap, sizeof(double)); + else + temp = 1.0; + if (!(0.0 <= temp && temp <= (double)INT_MAX && + temp == floor(temp))) + { ret = GLP_EDATA; + goto done; + } + cap[k] = (int)temp; + } + } + xassert(k == na); + /* find maximal flow in the flow network */ + ffalg(nv, na, tail, head, s, t, cap, x, cut); + ret = 0; + /* store solution components */ + /* (objective function = total flow through the network) */ + if (sol != NULL) + { temp = 0.0; + for (k = 1; k <= na; k++) + { if (tail[k] == s) + temp += (double)x[k]; + else if (head[k] == s) + temp -= (double)x[k]; + } + *sol = temp; + } + /* (arc flows) */ + if (a_x >= 0) + { k = 0; + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { temp = (double)x[++k]; + memcpy((char *)a->data + a_x, &temp, sizeof(double)); + } + } + } + /* (node flags) */ + if (v_cut >= 0) + { for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + flag = cut[i]; + memcpy((char *)v->data + v_cut, &flag, sizeof(int)); + } + } +done: /* free working arrays */ + xfree(tail); + xfree(head); + xfree(cap); + xfree(x); + if (cut != NULL) xfree(cut); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/maxflp.c b/resources/3rdparty/glpk-4.65/src/api/maxflp.c new file mode 100644 index 000000000..1135b78cb --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/maxflp.c @@ -0,0 +1,114 @@ +/* maxflp.c (convert maximum flow problem to LP) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" + +/*********************************************************************** +* NAME +* +* glp_maxflow_lp - convert maximum flow problem to LP +* +* SYNOPSIS +* +* void glp_maxflow_lp(glp_prob *lp, glp_graph *G, int names, int s, +* int t, int a_cap); +* +* DESCRIPTION +* +* The routine glp_maxflow_lp builds an LP problem, which corresponds +* to the maximum flow problem on the specified network G. */ + +void glp_maxflow_lp(glp_prob *lp, glp_graph *G, int names, int s, + int t, int a_cap) +{ glp_vertex *v; + glp_arc *a; + int i, j, type, ind[1+2]; + double cap, val[1+2]; + if (!(names == GLP_ON || names == GLP_OFF)) + xerror("glp_maxflow_lp: names = %d; invalid parameter\n", + names); + if (!(1 <= s && s <= G->nv)) + xerror("glp_maxflow_lp: s = %d; source node number out of rang" + "e\n", s); + if (!(1 <= t && t <= G->nv)) + xerror("glp_maxflow_lp: t = %d: sink node number out of range " + "\n", t); + if (s == t) + xerror("glp_maxflow_lp: s = t = %d; source and sink nodes must" + " be distinct\n", s); + if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) + xerror("glp_maxflow_lp: a_cap = %d; invalid offset\n", a_cap); + glp_erase_prob(lp); + if (names) glp_set_prob_name(lp, G->name); + glp_set_obj_dir(lp, GLP_MAX); + glp_add_rows(lp, G->nv); + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + if (names) glp_set_row_name(lp, i, v->name); + if (i == s) + type = GLP_LO; + else if (i == t) + type = GLP_UP; + else + type = GLP_FX; + glp_set_row_bnds(lp, i, type, 0.0, 0.0); + } + if (G->na > 0) glp_add_cols(lp, G->na); + for (i = 1, j = 0; i <= G->nv; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { j++; + if (names) + { char name[50+1]; + sprintf(name, "x[%d,%d]", a->tail->i, a->head->i); + xassert(strlen(name) < sizeof(name)); + glp_set_col_name(lp, j, name); + } + if (a->tail->i != a->head->i) + { ind[1] = a->tail->i, val[1] = +1.0; + ind[2] = a->head->i, val[2] = -1.0; + glp_set_mat_col(lp, j, 2, ind, val); + } + if (a_cap >= 0) + memcpy(&cap, (char *)a->data + a_cap, sizeof(double)); + else + cap = 1.0; + if (cap == DBL_MAX) + type = GLP_LO; + else if (cap != 0.0) + type = GLP_DB; + else + type = GLP_FX; + glp_set_col_bnds(lp, j, type, 0.0, cap); + if (a->tail->i == s) + glp_set_obj_coef(lp, j, +1.0); + else if (a->head->i == s) + glp_set_obj_coef(lp, j, -1.0); + } + } + xassert(j == G->na); + return; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/mcflp.c b/resources/3rdparty/glpk-4.65/src/api/mcflp.c new file mode 100644 index 000000000..5cd240602 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/mcflp.c @@ -0,0 +1,114 @@ +/* mcflp.c (convert minimum cost flow problem to LP) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" + +/*********************************************************************** +* NAME +* +* glp_mincost_lp - convert minimum cost flow problem to LP +* +* SYNOPSIS +* +* void glp_mincost_lp(glp_prob *lp, glp_graph *G, int names, +* int v_rhs, int a_low, int a_cap, int a_cost); +* +* DESCRIPTION +* +* The routine glp_mincost_lp builds an LP problem, which corresponds +* to the minimum cost flow problem on the specified network G. */ + +void glp_mincost_lp(glp_prob *lp, glp_graph *G, int names, int v_rhs, + int a_low, int a_cap, int a_cost) +{ glp_vertex *v; + glp_arc *a; + int i, j, type, ind[1+2]; + double rhs, low, cap, cost, val[1+2]; + if (!(names == GLP_ON || names == GLP_OFF)) + xerror("glp_mincost_lp: names = %d; invalid parameter\n", + names); + if (v_rhs >= 0 && v_rhs > G->v_size - (int)sizeof(double)) + xerror("glp_mincost_lp: v_rhs = %d; invalid offset\n", v_rhs); + if (a_low >= 0 && a_low > G->a_size - (int)sizeof(double)) + xerror("glp_mincost_lp: a_low = %d; invalid offset\n", a_low); + if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) + xerror("glp_mincost_lp: a_cap = %d; invalid offset\n", a_cap); + if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) + xerror("glp_mincost_lp: a_cost = %d; invalid offset\n", a_cost) + ; + glp_erase_prob(lp); + if (names) glp_set_prob_name(lp, G->name); + if (G->nv > 0) glp_add_rows(lp, G->nv); + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + if (names) glp_set_row_name(lp, i, v->name); + if (v_rhs >= 0) + memcpy(&rhs, (char *)v->data + v_rhs, sizeof(double)); + else + rhs = 0.0; + glp_set_row_bnds(lp, i, GLP_FX, rhs, rhs); + } + if (G->na > 0) glp_add_cols(lp, G->na); + for (i = 1, j = 0; i <= G->nv; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { j++; + if (names) + { char name[50+1]; + sprintf(name, "x[%d,%d]", a->tail->i, a->head->i); + xassert(strlen(name) < sizeof(name)); + glp_set_col_name(lp, j, name); + } + if (a->tail->i != a->head->i) + { ind[1] = a->tail->i, val[1] = +1.0; + ind[2] = a->head->i, val[2] = -1.0; + glp_set_mat_col(lp, j, 2, ind, val); + } + if (a_low >= 0) + memcpy(&low, (char *)a->data + a_low, sizeof(double)); + else + low = 0.0; + if (a_cap >= 0) + memcpy(&cap, (char *)a->data + a_cap, sizeof(double)); + else + cap = 1.0; + if (cap == DBL_MAX) + type = GLP_LO; + else if (low != cap) + type = GLP_DB; + else + type = GLP_FX; + glp_set_col_bnds(lp, j, type, low, cap); + if (a_cost >= 0) + memcpy(&cost, (char *)a->data + a_cost, sizeof(double)); + else + cost = 0.0; + glp_set_obj_coef(lp, j, cost); + } + } + xassert(j == G->na); + return; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/mcfokalg.c b/resources/3rdparty/glpk-4.65/src/api/mcfokalg.c new file mode 100644 index 000000000..786dc71bc --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/mcfokalg.c @@ -0,0 +1,221 @@ +/* mcfokalg.c (find minimum-cost flow with out-of-kilter algorithm) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" +#include "okalg.h" + +int glp_mincost_okalg(glp_graph *G, int v_rhs, int a_low, int a_cap, + int a_cost, double *sol, int a_x, int v_pi) +{ /* find minimum-cost flow with out-of-kilter algorithm */ + glp_vertex *v; + glp_arc *a; + int nv, na, i, k, s, t, *tail, *head, *low, *cap, *cost, *x, *pi, + ret; + double sum, temp; + if (v_rhs >= 0 && v_rhs > G->v_size - (int)sizeof(double)) + xerror("glp_mincost_okalg: v_rhs = %d; invalid offset\n", + v_rhs); + if (a_low >= 0 && a_low > G->a_size - (int)sizeof(double)) + xerror("glp_mincost_okalg: a_low = %d; invalid offset\n", + a_low); + if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) + xerror("glp_mincost_okalg: a_cap = %d; invalid offset\n", + a_cap); + if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) + xerror("glp_mincost_okalg: a_cost = %d; invalid offset\n", + a_cost); + if (a_x >= 0 && a_x > G->a_size - (int)sizeof(double)) + xerror("glp_mincost_okalg: a_x = %d; invalid offset\n", a_x); + if (v_pi >= 0 && v_pi > G->v_size - (int)sizeof(double)) + xerror("glp_mincost_okalg: v_pi = %d; invalid offset\n", v_pi); + /* s is artificial source node */ + s = G->nv + 1; + /* t is artificial sink node */ + t = s + 1; + /* nv is the total number of nodes in the resulting network */ + nv = t; + /* na is the total number of arcs in the resulting network */ + na = G->na + 1; + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + if (v_rhs >= 0) + memcpy(&temp, (char *)v->data + v_rhs, sizeof(double)); + else + temp = 0.0; + if (temp != 0.0) na++; + } + /* allocate working arrays */ + tail = xcalloc(1+na, sizeof(int)); + head = xcalloc(1+na, sizeof(int)); + low = xcalloc(1+na, sizeof(int)); + cap = xcalloc(1+na, sizeof(int)); + cost = xcalloc(1+na, sizeof(int)); + x = xcalloc(1+na, sizeof(int)); + pi = xcalloc(1+nv, sizeof(int)); + /* construct the resulting network */ + k = 0; + /* (original arcs) */ + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { k++; + tail[k] = a->tail->i; + head[k] = a->head->i; + if (tail[k] == head[k]) + { ret = GLP_EDATA; + goto done; + } + if (a_low >= 0) + memcpy(&temp, (char *)a->data + a_low, sizeof(double)); + else + temp = 0.0; + if (!(0.0 <= temp && temp <= (double)INT_MAX && + temp == floor(temp))) + { ret = GLP_EDATA; + goto done; + } + low[k] = (int)temp; + if (a_cap >= 0) + memcpy(&temp, (char *)a->data + a_cap, sizeof(double)); + else + temp = 1.0; + if (!((double)low[k] <= temp && temp <= (double)INT_MAX && + temp == floor(temp))) + { ret = GLP_EDATA; + goto done; + } + cap[k] = (int)temp; + if (a_cost >= 0) + memcpy(&temp, (char *)a->data + a_cost, sizeof(double)); + else + temp = 0.0; + if (!(fabs(temp) <= (double)INT_MAX && temp == floor(temp))) + { ret = GLP_EDATA; + goto done; + } + cost[k] = (int)temp; + } + } + /* (artificial arcs) */ + sum = 0.0; + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + if (v_rhs >= 0) + memcpy(&temp, (char *)v->data + v_rhs, sizeof(double)); + else + temp = 0.0; + if (!(fabs(temp) <= (double)INT_MAX && temp == floor(temp))) + { ret = GLP_EDATA; + goto done; + } + if (temp > 0.0) + { /* artificial arc from s to original source i */ + k++; + tail[k] = s; + head[k] = i; + low[k] = cap[k] = (int)(+temp); /* supply */ + cost[k] = 0; + sum += (double)temp; + } + else if (temp < 0.0) + { /* artificial arc from original sink i to t */ + k++; + tail[k] = i; + head[k] = t; + low[k] = cap[k] = (int)(-temp); /* demand */ + cost[k] = 0; + } + } + /* (feedback arc from t to s) */ + k++; + xassert(k == na); + tail[k] = t; + head[k] = s; + if (sum > (double)INT_MAX) + { ret = GLP_EDATA; + goto done; + } + low[k] = cap[k] = (int)sum; /* total supply/demand */ + cost[k] = 0; + /* find minimal-cost circulation in the resulting network */ + ret = okalg(nv, na, tail, head, low, cap, cost, x, pi); + switch (ret) + { case 0: + /* optimal circulation found */ + ret = 0; + break; + case 1: + /* no feasible circulation exists */ + ret = GLP_ENOPFS; + break; + case 2: + /* integer overflow occured */ + ret = GLP_ERANGE; + goto done; + case 3: + /* optimality test failed (logic error) */ + ret = GLP_EFAIL; + goto done; + default: + xassert(ret != ret); + } + /* store solution components */ + /* (objective function = the total cost) */ + if (sol != NULL) + { temp = 0.0; + for (k = 1; k <= na; k++) + temp += (double)cost[k] * (double)x[k]; + *sol = temp; + } + /* (arc flows) */ + if (a_x >= 0) + { k = 0; + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { temp = (double)x[++k]; + memcpy((char *)a->data + a_x, &temp, sizeof(double)); + } + } + } + /* (node potentials = Lagrange multipliers) */ + if (v_pi >= 0) + { for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + temp = - (double)pi[i]; + memcpy((char *)v->data + v_pi, &temp, sizeof(double)); + } + } +done: /* free working arrays */ + xfree(tail); + xfree(head); + xfree(low); + xfree(cap); + xfree(cost); + xfree(x); + xfree(pi); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/mcfrelax.c b/resources/3rdparty/glpk-4.65/src/api/mcfrelax.c new file mode 100644 index 000000000..9b34949a1 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/mcfrelax.c @@ -0,0 +1,251 @@ +/* mcfrelax.c (find minimum-cost flow with RELAX-IV) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2013-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" +#include "relax4.h" + +static int overflow(int u, int v) +{ /* check for integer overflow on computing u + v */ + if (u > 0 && v > 0 && u + v < 0) return 1; + if (u < 0 && v < 0 && u + v > 0) return 1; + return 0; +} + +int glp_mincost_relax4(glp_graph *G, int v_rhs, int a_low, int a_cap, + int a_cost, int crash, double *sol, int a_x, int a_rc) +{ /* find minimum-cost flow with Bertsekas-Tseng relaxation method + (RELAX-IV) */ + glp_vertex *v; + glp_arc *a; + struct relax4_csa csa; + int i, k, large, n, na, ret; + double cap, cost, low, rc, rhs, sum, x; + if (v_rhs >= 0 && v_rhs > G->v_size - (int)sizeof(double)) + xerror("glp_mincost_relax4: v_rhs = %d; invalid offset\n", + v_rhs); + if (a_low >= 0 && a_low > G->a_size - (int)sizeof(double)) + xerror("glp_mincost_relax4: a_low = %d; invalid offset\n", + a_low); + if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) + xerror("glp_mincost_relax4: a_cap = %d; invalid offset\n", + a_cap); + if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) + xerror("glp_mincost_relax4: a_cost = %d; invalid offset\n", + a_cost); + if (a_x >= 0 && a_x > G->a_size - (int)sizeof(double)) + xerror("glp_mincost_relax4: a_x = %d; invalid offset\n", + a_x); + if (a_rc >= 0 && a_rc > G->a_size - (int)sizeof(double)) + xerror("glp_mincost_relax4: a_rc = %d; invalid offset\n", + a_rc); + csa.n = n = G->nv; /* number of nodes */ + csa.na = na = G->na; /* number of arcs */ + csa.large = large = INT_MAX / 4; + csa.repeat = 0; + csa.crash = crash; + /* allocate working arrays */ + csa.startn = xcalloc(1+na, sizeof(int)); + csa.endn = xcalloc(1+na, sizeof(int)); + csa.fou = xcalloc(1+n, sizeof(int)); + csa.nxtou = xcalloc(1+na, sizeof(int)); + csa.fin = xcalloc(1+n, sizeof(int)); + csa.nxtin = xcalloc(1+na, sizeof(int)); + csa.rc = xcalloc(1+na, sizeof(int)); + csa.u = xcalloc(1+na, sizeof(int)); + csa.dfct = xcalloc(1+n, sizeof(int)); + csa.x = xcalloc(1+na, sizeof(int)); + csa.label = xcalloc(1+n, sizeof(int)); + csa.prdcsr = xcalloc(1+n, sizeof(int)); + csa.save = xcalloc(1+na, sizeof(int)); + csa.tfstou = xcalloc(1+n, sizeof(int)); + csa.tnxtou = xcalloc(1+na, sizeof(int)); + csa.tfstin = xcalloc(1+n, sizeof(int)); + csa.tnxtin = xcalloc(1+na, sizeof(int)); + csa.nxtqueue = xcalloc(1+n, sizeof(int)); + csa.scan = xcalloc(1+n, sizeof(char)); + csa.mark = xcalloc(1+n, sizeof(char)); + if (crash) + { csa.extend_arc = xcalloc(1+n, sizeof(int)); + csa.sb_level = xcalloc(1+n, sizeof(int)); + csa.sb_arc = xcalloc(1+n, sizeof(int)); + } + else + { csa.extend_arc = NULL; + csa.sb_level = NULL; + csa.sb_arc = NULL; + } + /* scan nodes */ + for (i = 1; i <= n; i++) + { v = G->v[i]; + /* get supply at i-th node */ + if (v_rhs >= 0) + memcpy(&rhs, (char *)v->data + v_rhs, sizeof(double)); + else + rhs = 0.0; + if (!(fabs(rhs) <= (double)large && rhs == floor(rhs))) + { ret = GLP_EDATA; + goto done; + } + /* set demand at i-th node */ + csa.dfct[i] = -(int)rhs; + } + /* scan arcs */ + k = 0; + for (i = 1; i <= n; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { k++; + /* set endpoints of k-th arc */ + if (a->tail->i == a->head->i) + { /* self-loops not allowed */ + ret = GLP_EDATA; + goto done; + } + csa.startn[k] = a->tail->i; + csa.endn[k] = a->head->i; + /* set per-unit cost for k-th arc flow */ + if (a_cost >= 0) + memcpy(&cost, (char *)a->data + a_cost, sizeof(double)); + else + cost = 0.0; + if (!(fabs(cost) <= (double)large && cost == floor(cost))) + { ret = GLP_EDATA; + goto done; + } + csa.rc[k] = (int)cost; + /* get lower bound for k-th arc flow */ + if (a_low >= 0) + memcpy(&low, (char *)a->data + a_low, sizeof(double)); + else + low = 0.0; + if (!(0.0 <= low && low <= (double)large && + low == floor(low))) + { ret = GLP_EDATA; + goto done; + } + /* get upper bound for k-th arc flow */ + if (a_cap >= 0) + memcpy(&cap, (char *)a->data + a_cap, sizeof(double)); + else + cap = 1.0; + if (!(low <= cap && cap <= (double)large && + cap == floor(cap))) + { ret = GLP_EDATA; + goto done; + } + /* substitute x = x' + low, where 0 <= x' <= cap - low */ + csa.u[k] = (int)(cap - low); + /* correct demands at endpoints of k-th arc */ + if (overflow(csa.dfct[a->tail->i], +low)) + { ret = GLP_ERANGE; + goto done; + } +#if 0 /* 29/IX-2017 */ + csa.dfct[a->tail->i] += low; +#else + csa.dfct[a->tail->i] += (int)low; +#endif + if (overflow(csa.dfct[a->head->i], -low)) + { ret = GLP_ERANGE; + goto done; + } +#if 0 /* 29/IX-2017 */ + csa.dfct[a->head->i] -= low; +#else + csa.dfct[a->head->i] -= (int)low; +#endif + } + } + /* construct linked list for network topology */ + relax4_inidat(&csa); + /* find minimum-cost flow */ + ret = relax4(&csa); + if (ret != 0) + { /* problem is found to be infeasible */ + xassert(1 <= ret && ret <= 8); + ret = GLP_ENOPFS; + goto done; + } + /* store solution */ + sum = 0.0; + k = 0; + for (i = 1; i <= n; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { k++; + /* get lower bound for k-th arc flow */ + if (a_low >= 0) + memcpy(&low, (char *)a->data + a_low, sizeof(double)); + else + low = 0.0; + /* store original flow x = x' + low thru k-th arc */ + x = (double)csa.x[k] + low; + if (a_x >= 0) + memcpy((char *)a->data + a_x, &x, sizeof(double)); + /* store reduced cost for k-th arc flow */ + rc = (double)csa.rc[k]; + if (a_rc >= 0) + memcpy((char *)a->data + a_rc, &rc, sizeof(double)); + /* get per-unit cost for k-th arc flow */ + if (a_cost >= 0) + memcpy(&cost, (char *)a->data + a_cost, sizeof(double)); + else + cost = 0.0; + /* compute the total cost */ + sum += cost * x; + } + } + /* store the total cost */ + if (sol != NULL) + *sol = sum; +done: /* free working arrays */ + xfree(csa.startn); + xfree(csa.endn); + xfree(csa.fou); + xfree(csa.nxtou); + xfree(csa.fin); + xfree(csa.nxtin); + xfree(csa.rc); + xfree(csa.u); + xfree(csa.dfct); + xfree(csa.x); + xfree(csa.label); + xfree(csa.prdcsr); + xfree(csa.save); + xfree(csa.tfstou); + xfree(csa.tnxtou); + xfree(csa.tfstin); + xfree(csa.tnxtin); + xfree(csa.nxtqueue); + xfree(csa.scan); + xfree(csa.mark); + if (crash) + { xfree(csa.extend_arc); + xfree(csa.sb_level); + xfree(csa.sb_arc); + } + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpapi19.c b/resources/3rdparty/glpk-4.65/src/api/minisat1.c similarity index 87% rename from resources/3rdparty/glpk-4.57/src/glpapi19.c rename to resources/3rdparty/glpk-4.65/src/api/minisat1.c index eda96a946..a669c487e 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi19.c +++ b/resources/3rdparty/glpk-4.65/src/api/minisat1.c @@ -1,10 +1,9 @@ -/* glpapi19.c (driver to MiniSat solver) */ +/* minisat1.c (driver to MiniSat solver) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2011-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -32,10 +31,12 @@ int glp_minisat1(glp_prob *P) GLPAIJ *aij; int i, j, len, ret, *ind; double sum; +#if 0 /* 04/IV-2016 */ /* check problem object */ if (P == NULL || P->magic != GLP_PROB_MAGIC) xerror("glp_minisat1: P = %p; invalid problem object\n", P); +#endif if (P->tree != NULL) xerror("glp_minisat1: operation not allowed\n"); /* integer solution is currently undefined */ @@ -48,6 +49,7 @@ int glp_minisat1(glp_prob *P) ret = GLP_EDATA; goto done; } +#if 0 /* 08/I-2017 by cmatraki */ #if 1 /* 07/XI-2015 */ if (sizeof(void *) != sizeof(int)) { xprintf("glp_minisat1: sorry, MiniSat solver is not supported " @@ -55,6 +57,14 @@ int glp_minisat1(glp_prob *P) ret = GLP_EFAIL; goto done; } +#endif +#else + if (sizeof(void *) != sizeof(size_t)) + { xprintf("glp_minisat1: sorry, MiniSat solver is not supported " + "on this platform\n"); + ret = GLP_EFAIL; + goto done; + } #endif /* solve CNF-SAT problem */ xprintf("Solving CNF-SAT problem...\n"); @@ -87,7 +97,17 @@ int glp_minisat1(glp_prob *P) ind[len] = lit_neg(ind[len]); } xassert(len > 0); +#if 0 /* 08/I-2017 by cmatraki */ xassert(solver_addclause(s, &ind[1], &ind[1+len])); +#else + if (!solver_addclause(s, &ind[1], &ind[1+len])) + { /* found trivial conflict */ + xfree(ind); + solver_delete(s); + P->mip_stat = GLP_NOFEAS; + goto fini; + } +#endif } xfree(ind); /* call the solver */ diff --git a/resources/3rdparty/glpk-4.57/src/glpapi14.c b/resources/3rdparty/glpk-4.65/src/api/mpl.c similarity index 96% rename from resources/3rdparty/glpk-4.57/src/glpapi14.c rename to resources/3rdparty/glpk-4.65/src/api/mpl.c index fc3b73757..cfa6f75b6 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi14.c +++ b/resources/3rdparty/glpk-4.65/src/api/mpl.c @@ -1,10 +1,9 @@ -/* glpapi14.c (processing models in GNU MathProg language) */ +/* mpl.c (processing model in GNU MathProg language) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2008-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,8 +21,7 @@ * along with GLPK. If not, see . ***********************************************************************/ -#include "draft.h" -#include "glpmpl.h" +#include "mpl.h" #include "prob.h" glp_tran *glp_mpl_alloc_wksp(void) @@ -33,14 +31,13 @@ glp_tran *glp_mpl_alloc_wksp(void) return tran; } -#if 1 /* 08/XII-2009 */ -void _glp_mpl_init_rand(glp_tran *tran, int seed) -{ if (tran->phase != 0) +void glp_mpl_init_rand(glp_tran *tran, int seed) +{ /* initialize pseudo-random number generator */ + if (tran->phase != 0) xerror("glp_mpl_init_rand: invalid call sequence\n"); rng_init_rand(tran->rand, seed); return; } -#endif int glp_mpl_read_model(glp_tran *tran, const char *fname, int skip) { /* read and translate model section */ diff --git a/resources/3rdparty/glpk-4.57/src/glpmps.c b/resources/3rdparty/glpk-4.65/src/api/mps.c similarity index 98% rename from resources/3rdparty/glpk-4.57/src/glpmps.c rename to resources/3rdparty/glpk-4.65/src/api/mps.c index 69be984c5..3bdc6db16 100644 --- a/resources/3rdparty/glpk-4.57/src/glpmps.c +++ b/resources/3rdparty/glpk-4.65/src/api/mps.c @@ -1,10 +1,9 @@ -/* glpmps.c (MPS format routines) */ +/* mps.c (MPS format routines) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2008-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -708,12 +707,20 @@ blnk: { /* new RANGES vector */ csa->P->row[i]->name); else if (type == GLP_LO) { rhs = csa->P->row[i]->lb; +#if 0 /* 26/V-2017 by cmatraki */ glp_set_row_bnds(csa->P, i, rhs == 0.0 ? GLP_FX : GLP_DB, +#else + glp_set_row_bnds(csa->P, i, rng == 0.0 ? GLP_FX : GLP_DB, +#endif rhs, rhs + fabs(rng)); } else if (type == GLP_UP) { rhs = csa->P->row[i]->ub; +#if 0 /* 26/V-2017 by cmatraki */ glp_set_row_bnds(csa->P, i, rhs == 0.0 ? GLP_FX : GLP_DB, +#else + glp_set_row_bnds(csa->P, i, rng == 0.0 ? GLP_FX : GLP_DB, +#endif rhs - fabs(rng), rhs); } else if (type == GLP_FX) @@ -1010,6 +1017,9 @@ int glp_read_mps(glp_prob *P, int fmt, const glp_mpscp *parm, } } xprintf("%d records were read\n", csa->recno); +#if 1 /* 31/III-2016 */ + /* free (unbounded) row(s) in MPS file are intended to specify + * objective function(s), so all such rows can be removed */ #if 1 /* 08/VIII-2013 */ /* remove free rows */ { int i, nrs, *num; @@ -1028,6 +1038,15 @@ int glp_read_mps(glp_prob *P, int fmt, const glp_mpscp *parm, } tfree(num); } +#endif +#else + /* if objective function row is free, remove it */ + if (csa->obj_row != 0 && P->row[csa->obj_row]->type == GLP_FR) + { int num[1+1]; + num[1] = csa->obj_row; + glp_del_rows(P, 1, num); + xprintf("Free objective row was removed\n"); + } #endif /* problem data has been successfully read */ glp_delete_index(P); diff --git a/resources/3rdparty/glpk-4.57/src/glpnet03.c b/resources/3rdparty/glpk-4.65/src/api/netgen.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpnet03.c rename to resources/3rdparty/glpk-4.65/src/api/netgen.c index 9ddf1cb75..519fd6096 100644 --- a/resources/3rdparty/glpk-4.57/src/glpnet03.c +++ b/resources/3rdparty/glpk-4.65/src/api/netgen.c @@ -1,4 +1,4 @@ -/* glpnet03.c (Klingman's network problem generator) */ +/* netgen.c (Klingman's network problem generator) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). diff --git a/resources/3rdparty/glpk-4.65/src/api/npp.c b/resources/3rdparty/glpk-4.65/src/api/npp.c new file mode 100644 index 000000000..a7ae07c1a --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/npp.c @@ -0,0 +1,143 @@ +/* npp.c (LP/MIP preprocessing) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2017 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "npp.h" + +glp_prep *glp_npp_alloc_wksp(void) +{ /* allocate the preprocessor workspace */ + glp_prep *prep; + prep = npp_create_wksp(); + return prep; +} + +void glp_npp_load_prob(glp_prep *prep, glp_prob *P, int sol, int names) +{ /* load original problem instance */ + if (prep->sol != 0) + xerror("glp_npp_load_prob: invalid call sequence (original ins" + "tance already loaded)\n"); + if (!(sol == GLP_SOL || sol == GLP_IPT || sol == GLP_MIP)) + xerror("glp_npp_load_prob: sol = %d; invalid parameter\n", + sol); + if (!(names == GLP_ON || names == GLP_OFF)) + xerror("glp_npp_load_prob: names = %d; invalid parameter\n", + names); + npp_load_prob(prep, P, names, sol, GLP_OFF); + return; +} + +int glp_npp_preprocess1(glp_prep *prep, int hard) +{ /* perform basic LP/MIP preprocessing */ + if (prep->sol == 0) + xerror("glp_npp_preprocess1: invalid call sequence (original i" + "nstance not loaded yet)\n"); + if (prep->pool == NULL) + xerror("glp_npp_preprocess1: invalid call sequence (preprocess" + "ing already finished)\n"); + if (!(hard == GLP_ON || hard == GLP_OFF)) + xerror("glp_npp_preprocess1: hard = %d; invalid parameter\n", + hard); + return npp_process_prob(prep, hard); +} + +void glp_npp_build_prob(glp_prep *prep, glp_prob *Q) +{ /* build resultant problem instance */ + if (prep->sol == 0) + xerror("glp_npp_build_prob: invalid call sequence (original in" + "stance not loaded yet)\n"); + if (prep->pool == NULL) + xerror("glp_npp_build_prob: invalid call sequence (resultant i" + "nstance already built)\n"); + npp_build_prob(prep, Q); + return; +} + +void glp_npp_postprocess(glp_prep *prep, glp_prob *Q) +{ /* postprocess solution to resultant problem */ + if (prep->pool != NULL) + xerror("glp_npp_postprocess: invalid call sequence (resultant " + "instance not built yet)\n"); + if (!(prep->m == Q->m && prep->n == Q->n && prep->nnz == Q->nnz)) + xerror("glp_npp_postprocess: resultant instance mismatch\n"); + switch (prep->sol) + { case GLP_SOL: + if (glp_get_status(Q) != GLP_OPT) + xerror("glp_npp_postprocess: unable to recover non-optim" + "al basic solution\n"); + break; + case GLP_IPT: + if (glp_ipt_status(Q) != GLP_OPT) + xerror("glp_npp_postprocess: unable to recover non-optim" + "al interior-point solution\n"); + break; + case GLP_MIP: + if (!(glp_mip_status(Q) == GLP_OPT || glp_mip_status(Q) == + GLP_FEAS)) + xerror("glp_npp_postprocess: unable to recover integer n" + "on-feasible solution\n"); + break; + default: + xassert(prep != prep); + } + npp_postprocess(prep, Q); + return; +} + +void glp_npp_obtain_sol(glp_prep *prep, glp_prob *P) +{ /* obtain solution to original problem */ + if (prep->pool != NULL) + xerror("glp_npp_obtain_sol: invalid call sequence (resultant i" + "nstance not built yet)\n"); + switch (prep->sol) + { case GLP_SOL: + if (prep->p_stat == 0 || prep->d_stat == 0) + xerror("glp_npp_obtain_sol: invalid call sequence (basic" + " solution not provided yet)\n"); + break; + case GLP_IPT: + if (prep->t_stat == 0) + xerror("glp_npp_obtain_sol: invalid call sequence (inter" + "ior-point solution not provided yet)\n"); + break; + case GLP_MIP: + if (prep->i_stat == 0) + xerror("glp_npp_obtain_sol: invalid call sequence (MIP s" + "olution not provided yet)\n"); + break; + default: + xassert(prep != prep); + } + if (!(prep->orig_dir == P->dir && prep->orig_m == P->m && + prep->orig_n == P->n && prep->orig_nnz == P->nnz)) + xerror("glp_npp_obtain_sol: original instance mismatch\n"); + npp_unload_sol(prep, P); + return; +} + +void glp_npp_free_wksp(glp_prep *prep) +{ /* free the preprocessor workspace */ + npp_delete_wksp(prep); + return; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/pript.c b/resources/3rdparty/glpk-4.65/src/api/pript.c new file mode 100644 index 000000000..f123089df --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/pript.c @@ -0,0 +1,186 @@ +/* pript.c (write interior-point solution in printable format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "prob.h" + +#define xfprintf glp_format + +int glp_print_ipt(glp_prob *P, const char *fname) +{ /* write interior-point solution in printable format */ + glp_file *fp; + GLPROW *row; + GLPCOL *col; + int i, j, t, ae_ind, re_ind, ret; + double ae_max, re_max; + xprintf("Writing interior-point solution to '%s'...\n", fname); + fp = glp_open(fname, "w"); + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xfprintf(fp, "%-12s%s\n", "Problem:", + P->name == NULL ? "" : P->name); + xfprintf(fp, "%-12s%d\n", "Rows:", P->m); + xfprintf(fp, "%-12s%d\n", "Columns:", P->n); + xfprintf(fp, "%-12s%d\n", "Non-zeros:", P->nnz); + t = glp_ipt_status(P); + xfprintf(fp, "%-12s%s\n", "Status:", + t == GLP_OPT ? "OPTIMAL" : + t == GLP_UNDEF ? "UNDEFINED" : + t == GLP_INFEAS ? "INFEASIBLE (INTERMEDIATE)" : + t == GLP_NOFEAS ? "INFEASIBLE (FINAL)" : "???"); + xfprintf(fp, "%-12s%s%s%.10g (%s)\n", "Objective:", + P->obj == NULL ? "" : P->obj, + P->obj == NULL ? "" : " = ", P->ipt_obj, + P->dir == GLP_MIN ? "MINimum" : + P->dir == GLP_MAX ? "MAXimum" : "???"); + xfprintf(fp, "\n"); + xfprintf(fp, " No. Row name Activity Lower bound " + " Upper bound Marginal\n"); + xfprintf(fp, "------ ------------ ------------- ------------- " + "------------- -------------\n"); + for (i = 1; i <= P->m; i++) + { row = P->row[i]; + xfprintf(fp, "%6d ", i); + if (row->name == NULL || strlen(row->name) <= 12) + xfprintf(fp, "%-12s ", row->name == NULL ? "" : row->name); + else + xfprintf(fp, "%s\n%20s", row->name, ""); + xfprintf(fp, "%3s", ""); + xfprintf(fp, "%13.6g ", + fabs(row->pval) <= 1e-9 ? 0.0 : row->pval); + if (row->type == GLP_LO || row->type == GLP_DB || + row->type == GLP_FX) + xfprintf(fp, "%13.6g ", row->lb); + else + xfprintf(fp, "%13s ", ""); + if (row->type == GLP_UP || row->type == GLP_DB) + xfprintf(fp, "%13.6g ", row->ub); + else + xfprintf(fp, "%13s ", row->type == GLP_FX ? "=" : ""); + if (fabs(row->dval) <= 1e-9) + xfprintf(fp, "%13s", "< eps"); + else + xfprintf(fp, "%13.6g ", row->dval); + xfprintf(fp, "\n"); + } + xfprintf(fp, "\n"); + xfprintf(fp, " No. Column name Activity Lower bound " + " Upper bound Marginal\n"); + xfprintf(fp, "------ ------------ ------------- ------------- " + "------------- -------------\n"); + for (j = 1; j <= P->n; j++) + { col = P->col[j]; + xfprintf(fp, "%6d ", j); + if (col->name == NULL || strlen(col->name) <= 12) + xfprintf(fp, "%-12s ", col->name == NULL ? "" : col->name); + else + xfprintf(fp, "%s\n%20s", col->name, ""); + xfprintf(fp, "%3s", ""); + xfprintf(fp, "%13.6g ", + fabs(col->pval) <= 1e-9 ? 0.0 : col->pval); + if (col->type == GLP_LO || col->type == GLP_DB || + col->type == GLP_FX) + xfprintf(fp, "%13.6g ", col->lb); + else + xfprintf(fp, "%13s ", ""); + if (col->type == GLP_UP || col->type == GLP_DB) + xfprintf(fp, "%13.6g ", col->ub); + else + xfprintf(fp, "%13s ", col->type == GLP_FX ? "=" : ""); + if (fabs(col->dval) <= 1e-9) + xfprintf(fp, "%13s", "< eps"); + else + xfprintf(fp, "%13.6g ", col->dval); + xfprintf(fp, "\n"); + } + xfprintf(fp, "\n"); + xfprintf(fp, "Karush-Kuhn-Tucker optimality conditions:\n"); + xfprintf(fp, "\n"); + glp_check_kkt(P, GLP_IPT, GLP_KKT_PE, &ae_max, &ae_ind, &re_max, + &re_ind); + xfprintf(fp, "KKT.PE: max.abs.err = %.2e on row %d\n", + ae_max, ae_ind); + xfprintf(fp, " max.rel.err = %.2e on row %d\n", + re_max, re_ind); + xfprintf(fp, "%8s%s\n", "", + re_max <= 1e-9 ? "High quality" : + re_max <= 1e-6 ? "Medium quality" : + re_max <= 1e-3 ? "Low quality" : "PRIMAL SOLUTION IS WRONG"); + xfprintf(fp, "\n"); + glp_check_kkt(P, GLP_IPT, GLP_KKT_PB, &ae_max, &ae_ind, &re_max, + &re_ind); + xfprintf(fp, "KKT.PB: max.abs.err = %.2e on %s %d\n", + ae_max, ae_ind <= P->m ? "row" : "column", + ae_ind <= P->m ? ae_ind : ae_ind - P->m); + xfprintf(fp, " max.rel.err = %.2e on %s %d\n", + re_max, re_ind <= P->m ? "row" : "column", + re_ind <= P->m ? re_ind : re_ind - P->m); + xfprintf(fp, "%8s%s\n", "", + re_max <= 1e-9 ? "High quality" : + re_max <= 1e-6 ? "Medium quality" : + re_max <= 1e-3 ? "Low quality" : "PRIMAL SOLUTION IS INFEASIBL" + "E"); + xfprintf(fp, "\n"); + glp_check_kkt(P, GLP_IPT, GLP_KKT_DE, &ae_max, &ae_ind, &re_max, + &re_ind); + xfprintf(fp, "KKT.DE: max.abs.err = %.2e on column %d\n", + ae_max, ae_ind == 0 ? 0 : ae_ind - P->m); + xfprintf(fp, " max.rel.err = %.2e on column %d\n", + re_max, re_ind == 0 ? 0 : re_ind - P->m); + xfprintf(fp, "%8s%s\n", "", + re_max <= 1e-9 ? "High quality" : + re_max <= 1e-6 ? "Medium quality" : + re_max <= 1e-3 ? "Low quality" : "DUAL SOLUTION IS WRONG"); + xfprintf(fp, "\n"); + glp_check_kkt(P, GLP_IPT, GLP_KKT_DB, &ae_max, &ae_ind, &re_max, + &re_ind); + xfprintf(fp, "KKT.DB: max.abs.err = %.2e on %s %d\n", + ae_max, ae_ind <= P->m ? "row" : "column", + ae_ind <= P->m ? ae_ind : ae_ind - P->m); + xfprintf(fp, " max.rel.err = %.2e on %s %d\n", + re_max, re_ind <= P->m ? "row" : "column", + re_ind <= P->m ? re_ind : re_ind - P->m); + xfprintf(fp, "%8s%s\n", "", + re_max <= 1e-9 ? "High quality" : + re_max <= 1e-6 ? "Medium quality" : + re_max <= 1e-3 ? "Low quality" : "DUAL SOLUTION IS INFEASIBLE") + ; + xfprintf(fp, "\n"); + xfprintf(fp, "End of output\n"); +#if 0 /* FIXME */ + xfflush(fp); +#endif + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + ret = 0; +done: if (fp != NULL) glp_close(fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/prmip.c b/resources/3rdparty/glpk-4.65/src/api/prmip.c new file mode 100644 index 000000000..885ed82ab --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/prmip.c @@ -0,0 +1,155 @@ +/* prmip.c (write MIP solution in printable format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "prob.h" + +#define xfprintf glp_format + +int glp_print_mip(glp_prob *P, const char *fname) +{ /* write MIP solution in printable format */ + glp_file *fp; + GLPROW *row; + GLPCOL *col; + int i, j, t, ae_ind, re_ind, ret; + double ae_max, re_max; + xprintf("Writing MIP solution to '%s'...\n", fname); + fp = glp_open(fname, "w"); + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xfprintf(fp, "%-12s%s\n", "Problem:", + P->name == NULL ? "" : P->name); + xfprintf(fp, "%-12s%d\n", "Rows:", P->m); + xfprintf(fp, "%-12s%d (%d integer, %d binary)\n", "Columns:", + P->n, glp_get_num_int(P), glp_get_num_bin(P)); + xfprintf(fp, "%-12s%d\n", "Non-zeros:", P->nnz); + t = glp_mip_status(P); + xfprintf(fp, "%-12s%s\n", "Status:", + t == GLP_OPT ? "INTEGER OPTIMAL" : + t == GLP_FEAS ? "INTEGER NON-OPTIMAL" : + t == GLP_NOFEAS ? "INTEGER EMPTY" : + t == GLP_UNDEF ? "INTEGER UNDEFINED" : "???"); + xfprintf(fp, "%-12s%s%s%.10g (%s)\n", "Objective:", + P->obj == NULL ? "" : P->obj, + P->obj == NULL ? "" : " = ", P->mip_obj, + P->dir == GLP_MIN ? "MINimum" : + P->dir == GLP_MAX ? "MAXimum" : "???"); + xfprintf(fp, "\n"); + xfprintf(fp, " No. Row name Activity Lower bound " + " Upper bound\n"); + xfprintf(fp, "------ ------------ ------------- ------------- " + "-------------\n"); + for (i = 1; i <= P->m; i++) + { row = P->row[i]; + xfprintf(fp, "%6d ", i); + if (row->name == NULL || strlen(row->name) <= 12) + xfprintf(fp, "%-12s ", row->name == NULL ? "" : row->name); + else + xfprintf(fp, "%s\n%20s", row->name, ""); + xfprintf(fp, "%3s", ""); + xfprintf(fp, "%13.6g ", + fabs(row->mipx) <= 1e-9 ? 0.0 : row->mipx); + if (row->type == GLP_LO || row->type == GLP_DB || + row->type == GLP_FX) + xfprintf(fp, "%13.6g ", row->lb); + else + xfprintf(fp, "%13s ", ""); + if (row->type == GLP_UP || row->type == GLP_DB) + xfprintf(fp, "%13.6g ", row->ub); + else + xfprintf(fp, "%13s ", row->type == GLP_FX ? "=" : ""); + xfprintf(fp, "\n"); + } + xfprintf(fp, "\n"); + xfprintf(fp, " No. Column name Activity Lower bound " + " Upper bound\n"); + xfprintf(fp, "------ ------------ ------------- ------------- " + "-------------\n"); + for (j = 1; j <= P->n; j++) + { col = P->col[j]; + xfprintf(fp, "%6d ", j); + if (col->name == NULL || strlen(col->name) <= 12) + xfprintf(fp, "%-12s ", col->name == NULL ? "" : col->name); + else + xfprintf(fp, "%s\n%20s", col->name, ""); + xfprintf(fp, "%s ", + col->kind == GLP_CV ? " " : + col->kind == GLP_IV ? "*" : "?"); + xfprintf(fp, "%13.6g ", + fabs(col->mipx) <= 1e-9 ? 0.0 : col->mipx); + if (col->type == GLP_LO || col->type == GLP_DB || + col->type == GLP_FX) + xfprintf(fp, "%13.6g ", col->lb); + else + xfprintf(fp, "%13s ", ""); + if (col->type == GLP_UP || col->type == GLP_DB) + xfprintf(fp, "%13.6g ", col->ub); + else + xfprintf(fp, "%13s ", col->type == GLP_FX ? "=" : ""); + xfprintf(fp, "\n"); + } + xfprintf(fp, "\n"); + xfprintf(fp, "Integer feasibility conditions:\n"); + xfprintf(fp, "\n"); + glp_check_kkt(P, GLP_MIP, GLP_KKT_PE, &ae_max, &ae_ind, &re_max, + &re_ind); + xfprintf(fp, "KKT.PE: max.abs.err = %.2e on row %d\n", + ae_max, ae_ind); + xfprintf(fp, " max.rel.err = %.2e on row %d\n", + re_max, re_ind); + xfprintf(fp, "%8s%s\n", "", + re_max <= 1e-9 ? "High quality" : + re_max <= 1e-6 ? "Medium quality" : + re_max <= 1e-3 ? "Low quality" : "SOLUTION IS WRONG"); + xfprintf(fp, "\n"); + glp_check_kkt(P, GLP_MIP, GLP_KKT_PB, &ae_max, &ae_ind, &re_max, + &re_ind); + xfprintf(fp, "KKT.PB: max.abs.err = %.2e on %s %d\n", + ae_max, ae_ind <= P->m ? "row" : "column", + ae_ind <= P->m ? ae_ind : ae_ind - P->m); + xfprintf(fp, " max.rel.err = %.2e on %s %d\n", + re_max, re_ind <= P->m ? "row" : "column", + re_ind <= P->m ? re_ind : re_ind - P->m); + xfprintf(fp, "%8s%s\n", "", + re_max <= 1e-9 ? "High quality" : + re_max <= 1e-6 ? "Medium quality" : + re_max <= 1e-3 ? "Low quality" : "SOLUTION IS INFEASIBLE"); + xfprintf(fp, "\n"); + xfprintf(fp, "End of output\n"); +#if 0 /* FIXME */ + xfflush(fp); +#endif + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + ret = 0; +done: if (fp != NULL) glp_close(fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/prob.h b/resources/3rdparty/glpk-4.65/src/api/prob.h similarity index 98% rename from resources/3rdparty/glpk-4.57/src/prob.h rename to resources/3rdparty/glpk-4.65/src/api/prob.h index 69dea0eb8..cc9389b57 100644 --- a/resources/3rdparty/glpk-4.57/src/prob.h +++ b/resources/3rdparty/glpk-4.65/src/api/prob.h @@ -3,8 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2013 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -28,18 +27,25 @@ #include "avl.h" #include "bfd.h" #include "dmp.h" +#if 1 /* 28/III-2016 */ +#define GLP_UNDOC 1 +#endif #include "glpk.h" typedef struct GLPROW GLPROW; typedef struct GLPCOL GLPCOL; typedef struct GLPAIJ GLPAIJ; +#if 0 /* 04/IV-2016 */ #define GLP_PROB_MAGIC 0xD7D9D6C2 +#endif struct glp_prob { /* LP/MIP problem object */ +#if 0 /* 04/IV-2016 */ unsigned magic; /* magic value used for debugging */ +#endif DMP *pool; /* memory pool to store problem object components */ glp_tree *tree; diff --git a/resources/3rdparty/glpk-4.57/src/glpapi01.c b/resources/3rdparty/glpk-4.65/src/api/prob1.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpapi01.c rename to resources/3rdparty/glpk-4.65/src/api/prob1.c index 376d98c47..6afad442e 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi01.c +++ b/resources/3rdparty/glpk-4.65/src/api/prob1.c @@ -1,10 +1,9 @@ -/* glpapi01.c (problem creating and modifying routines) */ +/* prob1.c (problem creating and modifying routines) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +22,7 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" +#include "ios.h" /* CAUTION: DO NOT CHANGE THE LIMITS BELOW */ @@ -56,7 +55,11 @@ * used in any subsequent operations on this object. */ static void create_prob(glp_prob *lp) +#if 0 /* 04/IV-2016 */ { lp->magic = GLP_PROB_MAGIC; +#else +{ +#endif lp->pool = dmp_create_pool(); #if 0 /* 08/III-2014 */ #if 0 /* 17/XI-2009 */ @@ -1203,9 +1206,11 @@ done: return ret; void glp_sort_matrix(glp_prob *P) { GLPAIJ *aij; int i, j; +#if 0 /* 04/IV-2016 */ if (P == NULL || P->magic != GLP_PROB_MAGIC) xerror("glp_sort_matrix: P = %p; invalid problem object\n", P); +#endif /* rebuild row linked lists */ for (i = P->m; i >= 1; i--) P->row[i]->ptr = NULL; @@ -1542,7 +1547,11 @@ void glp_erase_prob(glp_prob *lp) * frees all the memory allocated to it. */ static void delete_prob(glp_prob *lp) +#if 0 /* 04/IV-2016 */ { lp->magic = 0x3F3F3F3F; +#else +{ +#endif dmp_delete_pool(lp->pool); #if 0 /* 08/III-2014 */ #if 0 /* 17/XI-2009 */ diff --git a/resources/3rdparty/glpk-4.57/src/glpapi02.c b/resources/3rdparty/glpk-4.65/src/api/prob2.c similarity index 98% rename from resources/3rdparty/glpk-4.57/src/glpapi02.c rename to resources/3rdparty/glpk-4.65/src/api/prob2.c index 5b74aab95..d352db128 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi02.c +++ b/resources/3rdparty/glpk-4.65/src/api/prob2.c @@ -1,10 +1,9 @@ -/* glpapi02.c (problem retrieving routines) */ +/* prob2.c (problem retrieving routines) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2013 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * diff --git a/resources/3rdparty/glpk-4.57/src/glpapi03.c b/resources/3rdparty/glpk-4.65/src/api/prob3.c similarity index 96% rename from resources/3rdparty/glpk-4.57/src/glpapi03.c rename to resources/3rdparty/glpk-4.65/src/api/prob3.c index daf9174af..d7edbd337 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi03.c +++ b/resources/3rdparty/glpk-4.65/src/api/prob3.c @@ -1,10 +1,9 @@ -/* glpapi03.c (row and column searching routines) */ +/* prob3.c (problem row/column searching routines) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2013 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * diff --git a/resources/3rdparty/glpk-4.57/src/glpapi04.c b/resources/3rdparty/glpk-4.65/src/api/prob4.c similarity index 96% rename from resources/3rdparty/glpk-4.57/src/glpapi04.c rename to resources/3rdparty/glpk-4.65/src/api/prob4.c index adabb02c1..8c2b5ae5d 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi04.c +++ b/resources/3rdparty/glpk-4.65/src/api/prob4.c @@ -1,10 +1,9 @@ -/* glpapi04.c (problem scaling routines) */ +/* prob4.c (problem scaling routines) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2013 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * diff --git a/resources/3rdparty/glpk-4.57/src/glpapi05.c b/resources/3rdparty/glpk-4.65/src/api/prob5.c similarity index 96% rename from resources/3rdparty/glpk-4.57/src/glpapi05.c rename to resources/3rdparty/glpk-4.65/src/api/prob5.c index b18845522..1c1d3160a 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi05.c +++ b/resources/3rdparty/glpk-4.65/src/api/prob5.c @@ -1,10 +1,9 @@ -/* glpapi05.c (LP basis constructing routines) */ +/* prob5.c (LP problem basis constructing routines) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2013 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * diff --git a/resources/3rdparty/glpk-4.65/src/api/prrngs.c b/resources/3rdparty/glpk-4.65/src/api/prrngs.c new file mode 100644 index 000000000..41a141ff7 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/prrngs.c @@ -0,0 +1,302 @@ +/* prrngs.c (print sensitivity analysis report) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "prob.h" + +#define xfprintf glp_format + +static char *format(char buf[13+1], double x) +{ /* format floating-point number in MPS/360-like style */ + if (x == -DBL_MAX) + strcpy(buf, " -Inf"); + else if (x == +DBL_MAX) + strcpy(buf, " +Inf"); + else if (fabs(x) <= 999999.99998) + { sprintf(buf, "%13.5f", x); +#if 1 + if (strcmp(buf, " 0.00000") == 0 || + strcmp(buf, " -0.00000") == 0) + strcpy(buf, " . "); + else if (memcmp(buf, " 0.", 8) == 0) + memcpy(buf, " .", 8); + else if (memcmp(buf, " -0.", 8) == 0) + memcpy(buf, " -.", 8); +#endif + } + else + sprintf(buf, "%13.6g", x); + return buf; +} + +int glp_print_ranges(glp_prob *P, int len, const int list[], + int flags, const char *fname) +{ /* print sensitivity analysis report */ + glp_file *fp = NULL; + GLPROW *row; + GLPCOL *col; + int m, n, pass, k, t, numb, type, stat, var1, var2, count, page, + ret; + double lb, ub, slack, coef, prim, dual, value1, value2, coef1, + coef2, obj1, obj2; + const char *name, *limit; + char buf[13+1]; + /* sanity checks */ +#if 0 /* 04/IV-2016 */ + if (P == NULL || P->magic != GLP_PROB_MAGIC) + xerror("glp_print_ranges: P = %p; invalid problem object\n", + P); +#endif + m = P->m, n = P->n; + if (len < 0) + xerror("glp_print_ranges: len = %d; invalid list length\n", + len); + if (len > 0) + { if (list == NULL) + xerror("glp_print_ranges: list = %p: invalid parameter\n", + list); + for (t = 1; t <= len; t++) + { k = list[t]; + if (!(1 <= k && k <= m+n)) + xerror("glp_print_ranges: list[%d] = %d; row/column numb" + "er out of range\n", t, k); + } + } + if (flags != 0) + xerror("glp_print_ranges: flags = %d; invalid parameter\n", + flags); + if (fname == NULL) + xerror("glp_print_ranges: fname = %p; invalid parameter\n", + fname); + if (glp_get_status(P) != GLP_OPT) + { xprintf("glp_print_ranges: optimal basic solution required\n"); + ret = 1; + goto done; + } + if (!glp_bf_exists(P)) + { xprintf("glp_print_ranges: basis factorization required\n"); + ret = 2; + goto done; + } + /* start reporting */ + xprintf("Write sensitivity analysis report to '%s'...\n", fname); + fp = glp_open(fname, "w"); + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + ret = 3; + goto done; + } + page = count = 0; + for (pass = 1; pass <= 2; pass++) + for (t = 1; t <= (len == 0 ? m+n : len); t++) + { if (t == 1) count = 0; + k = (len == 0 ? t : list[t]); + if (pass == 1 && k > m || pass == 2 && k <= m) + continue; + if (count == 0) + { xfprintf(fp, "GLPK %-4s - SENSITIVITY ANALYSIS REPORT%73sPa" + "ge%4d\n", glp_version(), "", ++page); + xfprintf(fp, "\n"); + xfprintf(fp, "%-12s%s\n", "Problem:", + P->name == NULL ? "" : P->name); + xfprintf(fp, "%-12s%s%s%.10g (%s)\n", "Objective:", + P->obj == NULL ? "" : P->obj, + P->obj == NULL ? "" : " = ", P->obj_val, + P->dir == GLP_MIN ? "MINimum" : + P->dir == GLP_MAX ? "MAXimum" : "???"); + xfprintf(fp, "\n"); + xfprintf(fp, "%6s %-12s %2s %13s %13s %13s %13s %13s %13s " + "%s\n", "No.", pass == 1 ? "Row name" : "Column name", + "St", "Activity", pass == 1 ? "Slack" : "Obj coef", + "Lower bound", "Activity", "Obj coef", "Obj value at", + "Limiting"); + xfprintf(fp, "%6s %-12s %2s %13s %13s %13s %13s %13s %13s " + "%s\n", "", "", "", "", "Marginal", "Upper bound", + "range", "range", "break point", "variable"); + xfprintf(fp, "------ ------------ -- ------------- --------" + "----- ------------- ------------- ------------- ------" + "------- ------------\n"); + } + if (pass == 1) + { numb = k; + xassert(1 <= numb && numb <= m); + row = P->row[numb]; + name = row->name; + type = row->type; + lb = glp_get_row_lb(P, numb); + ub = glp_get_row_ub(P, numb); + coef = 0.0; + stat = row->stat; + prim = row->prim; + if (type == GLP_FR) + slack = - prim; + else if (type == GLP_LO) + slack = lb - prim; + else if (type == GLP_UP || type == GLP_DB || type == GLP_FX) + slack = ub - prim; + dual = row->dual; + } + else + { numb = k - m; + xassert(1 <= numb && numb <= n); + col = P->col[numb]; + name = col->name; + lb = glp_get_col_lb(P, numb); + ub = glp_get_col_ub(P, numb); + coef = col->coef; + stat = col->stat; + prim = col->prim; + slack = 0.0; + dual = col->dual; + } + if (stat != GLP_BS) + { glp_analyze_bound(P, k, &value1, &var1, &value2, &var2); + if (stat == GLP_NF) + coef1 = coef2 = coef; + else if (stat == GLP_NS) + coef1 = -DBL_MAX, coef2 = +DBL_MAX; + else if (stat == GLP_NL && P->dir == GLP_MIN || + stat == GLP_NU && P->dir == GLP_MAX) + coef1 = coef - dual, coef2 = +DBL_MAX; + else + coef1 = -DBL_MAX, coef2 = coef - dual; + if (value1 == -DBL_MAX) + { if (dual < -1e-9) + obj1 = +DBL_MAX; + else if (dual > +1e-9) + obj1 = -DBL_MAX; + else + obj1 = P->obj_val; + } + else + obj1 = P->obj_val + dual * (value1 - prim); + if (value2 == +DBL_MAX) + { if (dual < -1e-9) + obj2 = -DBL_MAX; + else if (dual > +1e-9) + obj2 = +DBL_MAX; + else + obj2 = P->obj_val; + } + else + obj2 = P->obj_val + dual * (value2 - prim); + } + else + { glp_analyze_coef(P, k, &coef1, &var1, &value1, &coef2, + &var2, &value2); + if (coef1 == -DBL_MAX) + { if (prim < -1e-9) + obj1 = +DBL_MAX; + else if (prim > +1e-9) + obj1 = -DBL_MAX; + else + obj1 = P->obj_val; + } + else + obj1 = P->obj_val + (coef1 - coef) * prim; + if (coef2 == +DBL_MAX) + { if (prim < -1e-9) + obj2 = -DBL_MAX; + else if (prim > +1e-9) + obj2 = +DBL_MAX; + else + obj2 = P->obj_val; + } + else + obj2 = P->obj_val + (coef2 - coef) * prim; + } + /*** first line ***/ + /* row/column number */ + xfprintf(fp, "%6d", numb); + /* row/column name */ + xfprintf(fp, " %-12.12s", name == NULL ? "" : name); + if (name != NULL && strlen(name) > 12) + xfprintf(fp, "%s\n%6s %12s", name+12, "", ""); + /* row/column status */ + xfprintf(fp, " %2s", + stat == GLP_BS ? "BS" : stat == GLP_NL ? "NL" : + stat == GLP_NU ? "NU" : stat == GLP_NF ? "NF" : + stat == GLP_NS ? "NS" : "??"); + /* row/column activity */ + xfprintf(fp, " %s", format(buf, prim)); + /* row slack, column objective coefficient */ + xfprintf(fp, " %s", format(buf, k <= m ? slack : coef)); + /* row/column lower bound */ + xfprintf(fp, " %s", format(buf, lb)); + /* row/column activity range */ + xfprintf(fp, " %s", format(buf, value1)); + /* row/column objective coefficient range */ + xfprintf(fp, " %s", format(buf, coef1)); + /* objective value at break point */ + xfprintf(fp, " %s", format(buf, obj1)); + /* limiting variable name */ + if (var1 != 0) + { if (var1 <= m) + limit = glp_get_row_name(P, var1); + else + limit = glp_get_col_name(P, var1 - m); + if (limit != NULL) + xfprintf(fp, " %s", limit); + } + xfprintf(fp, "\n"); + /*** second line ***/ + xfprintf(fp, "%6s %-12s %2s %13s", "", "", "", ""); + /* row/column reduced cost */ + xfprintf(fp, " %s", format(buf, dual)); + /* row/column upper bound */ + xfprintf(fp, " %s", format(buf, ub)); + /* row/column activity range */ + xfprintf(fp, " %s", format(buf, value2)); + /* row/column objective coefficient range */ + xfprintf(fp, " %s", format(buf, coef2)); + /* objective value at break point */ + xfprintf(fp, " %s", format(buf, obj2)); + /* limiting variable name */ + if (var2 != 0) + { if (var2 <= m) + limit = glp_get_row_name(P, var2); + else + limit = glp_get_col_name(P, var2 - m); + if (limit != NULL) + xfprintf(fp, " %s", limit); + } + xfprintf(fp, "\n"); + xfprintf(fp, "\n"); + /* print 10 items per page */ + count = (count + 1) % 10; + } + xfprintf(fp, "End of report\n"); +#if 0 /* FIXME */ + xfflush(fp); +#endif + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + ret = 4; + goto done; + } + ret = 0; +done: if (fp != NULL) glp_close(fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/prsol.c b/resources/3rdparty/glpk-4.65/src/api/prsol.c new file mode 100644 index 000000000..d785dc2e9 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/prsol.c @@ -0,0 +1,202 @@ +/* prsol.c (write basic solution in printable format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "prob.h" + +#define xfprintf glp_format + +int glp_print_sol(glp_prob *P, const char *fname) +{ /* write basic solution in printable format */ + glp_file *fp; + GLPROW *row; + GLPCOL *col; + int i, j, t, ae_ind, re_ind, ret; + double ae_max, re_max; + xprintf("Writing basic solution to '%s'...\n", fname); + fp = glp_open(fname, "w"); + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xfprintf(fp, "%-12s%s\n", "Problem:", + P->name == NULL ? "" : P->name); + xfprintf(fp, "%-12s%d\n", "Rows:", P->m); + xfprintf(fp, "%-12s%d\n", "Columns:", P->n); + xfprintf(fp, "%-12s%d\n", "Non-zeros:", P->nnz); + t = glp_get_status(P); + xfprintf(fp, "%-12s%s\n", "Status:", + t == GLP_OPT ? "OPTIMAL" : + t == GLP_FEAS ? "FEASIBLE" : + t == GLP_INFEAS ? "INFEASIBLE (INTERMEDIATE)" : + t == GLP_NOFEAS ? "INFEASIBLE (FINAL)" : + t == GLP_UNBND ? "UNBOUNDED" : + t == GLP_UNDEF ? "UNDEFINED" : "???"); + xfprintf(fp, "%-12s%s%s%.10g (%s)\n", "Objective:", + P->obj == NULL ? "" : P->obj, + P->obj == NULL ? "" : " = ", P->obj_val, + P->dir == GLP_MIN ? "MINimum" : + P->dir == GLP_MAX ? "MAXimum" : "???"); + xfprintf(fp, "\n"); + xfprintf(fp, " No. Row name St Activity Lower bound " + " Upper bound Marginal\n"); + xfprintf(fp, "------ ------------ -- ------------- ------------- " + "------------- -------------\n"); + for (i = 1; i <= P->m; i++) + { row = P->row[i]; + xfprintf(fp, "%6d ", i); + if (row->name == NULL || strlen(row->name) <= 12) + xfprintf(fp, "%-12s ", row->name == NULL ? "" : row->name); + else + xfprintf(fp, "%s\n%20s", row->name, ""); + xfprintf(fp, "%s ", + row->stat == GLP_BS ? "B " : + row->stat == GLP_NL ? "NL" : + row->stat == GLP_NU ? "NU" : + row->stat == GLP_NF ? "NF" : + row->stat == GLP_NS ? "NS" : "??"); + xfprintf(fp, "%13.6g ", + fabs(row->prim) <= 1e-9 ? 0.0 : row->prim); + if (row->type == GLP_LO || row->type == GLP_DB || + row->type == GLP_FX) + xfprintf(fp, "%13.6g ", row->lb); + else + xfprintf(fp, "%13s ", ""); + if (row->type == GLP_UP || row->type == GLP_DB) + xfprintf(fp, "%13.6g ", row->ub); + else + xfprintf(fp, "%13s ", row->type == GLP_FX ? "=" : ""); + if (row->stat != GLP_BS) + { if (fabs(row->dual) <= 1e-9) + xfprintf(fp, "%13s", "< eps"); + else + xfprintf(fp, "%13.6g ", row->dual); + } + xfprintf(fp, "\n"); + } + xfprintf(fp, "\n"); + xfprintf(fp, " No. Column name St Activity Lower bound " + " Upper bound Marginal\n"); + xfprintf(fp, "------ ------------ -- ------------- ------------- " + "------------- -------------\n"); + for (j = 1; j <= P->n; j++) + { col = P->col[j]; + xfprintf(fp, "%6d ", j); + if (col->name == NULL || strlen(col->name) <= 12) + xfprintf(fp, "%-12s ", col->name == NULL ? "" : col->name); + else + xfprintf(fp, "%s\n%20s", col->name, ""); + xfprintf(fp, "%s ", + col->stat == GLP_BS ? "B " : + col->stat == GLP_NL ? "NL" : + col->stat == GLP_NU ? "NU" : + col->stat == GLP_NF ? "NF" : + col->stat == GLP_NS ? "NS" : "??"); + xfprintf(fp, "%13.6g ", + fabs(col->prim) <= 1e-9 ? 0.0 : col->prim); + if (col->type == GLP_LO || col->type == GLP_DB || + col->type == GLP_FX) + xfprintf(fp, "%13.6g ", col->lb); + else + xfprintf(fp, "%13s ", ""); + if (col->type == GLP_UP || col->type == GLP_DB) + xfprintf(fp, "%13.6g ", col->ub); + else + xfprintf(fp, "%13s ", col->type == GLP_FX ? "=" : ""); + if (col->stat != GLP_BS) + { if (fabs(col->dual) <= 1e-9) + xfprintf(fp, "%13s", "< eps"); + else + xfprintf(fp, "%13.6g ", col->dual); + } + xfprintf(fp, "\n"); + } + xfprintf(fp, "\n"); + xfprintf(fp, "Karush-Kuhn-Tucker optimality conditions:\n"); + xfprintf(fp, "\n"); + glp_check_kkt(P, GLP_SOL, GLP_KKT_PE, &ae_max, &ae_ind, &re_max, + &re_ind); + xfprintf(fp, "KKT.PE: max.abs.err = %.2e on row %d\n", + ae_max, ae_ind); + xfprintf(fp, " max.rel.err = %.2e on row %d\n", + re_max, re_ind); + xfprintf(fp, "%8s%s\n", "", + re_max <= 1e-9 ? "High quality" : + re_max <= 1e-6 ? "Medium quality" : + re_max <= 1e-3 ? "Low quality" : "PRIMAL SOLUTION IS WRONG"); + xfprintf(fp, "\n"); + glp_check_kkt(P, GLP_SOL, GLP_KKT_PB, &ae_max, &ae_ind, &re_max, + &re_ind); + xfprintf(fp, "KKT.PB: max.abs.err = %.2e on %s %d\n", + ae_max, ae_ind <= P->m ? "row" : "column", + ae_ind <= P->m ? ae_ind : ae_ind - P->m); + xfprintf(fp, " max.rel.err = %.2e on %s %d\n", + re_max, re_ind <= P->m ? "row" : "column", + re_ind <= P->m ? re_ind : re_ind - P->m); + xfprintf(fp, "%8s%s\n", "", + re_max <= 1e-9 ? "High quality" : + re_max <= 1e-6 ? "Medium quality" : + re_max <= 1e-3 ? "Low quality" : "PRIMAL SOLUTION IS INFEASIBL" + "E"); + xfprintf(fp, "\n"); + glp_check_kkt(P, GLP_SOL, GLP_KKT_DE, &ae_max, &ae_ind, &re_max, + &re_ind); + xfprintf(fp, "KKT.DE: max.abs.err = %.2e on column %d\n", + ae_max, ae_ind == 0 ? 0 : ae_ind - P->m); + xfprintf(fp, " max.rel.err = %.2e on column %d\n", + re_max, re_ind == 0 ? 0 : re_ind - P->m); + xfprintf(fp, "%8s%s\n", "", + re_max <= 1e-9 ? "High quality" : + re_max <= 1e-6 ? "Medium quality" : + re_max <= 1e-3 ? "Low quality" : "DUAL SOLUTION IS WRONG"); + xfprintf(fp, "\n"); + glp_check_kkt(P, GLP_SOL, GLP_KKT_DB, &ae_max, &ae_ind, &re_max, + &re_ind); + xfprintf(fp, "KKT.DB: max.abs.err = %.2e on %s %d\n", + ae_max, ae_ind <= P->m ? "row" : "column", + ae_ind <= P->m ? ae_ind : ae_ind - P->m); + xfprintf(fp, " max.rel.err = %.2e on %s %d\n", + re_max, re_ind <= P->m ? "row" : "column", + re_ind <= P->m ? re_ind : re_ind - P->m); + xfprintf(fp, "%8s%s\n", "", + re_max <= 1e-9 ? "High quality" : + re_max <= 1e-6 ? "Medium quality" : + re_max <= 1e-3 ? "Low quality" : "DUAL SOLUTION IS INFEASIBLE") + ; + xfprintf(fp, "\n"); + xfprintf(fp, "End of output\n"); +#if 0 /* FIXME */ + xfflush(fp); +#endif + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + ret = 0; +done: if (fp != NULL) glp_close(fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/rdasn.c b/resources/3rdparty/glpk-4.65/src/api/rdasn.c new file mode 100644 index 000000000..05dcb9fc2 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/rdasn.c @@ -0,0 +1,164 @@ +/* rdasn.c (read assignment problem data in DIMACS format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "dimacs.h" +#include "glpk.h" +#include "misc.h" + +#define error dmx_error +#define warning dmx_warning +#define read_char dmx_read_char +#define read_designator dmx_read_designator +#define read_field dmx_read_field +#define end_of_line dmx_end_of_line +#define check_int dmx_check_int + +/*********************************************************************** +* NAME +* +* glp_read_asnprob - read assignment problem data in DIMACS format +* +* SYNOPSIS +* +* int glp_read_asnprob(glp_graph *G, int v_set, int a_cost, +* const char *fname); +* +* DESCRIPTION +* +* The routine glp_read_asnprob reads assignment problem data in DIMACS +* format from a text file. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_read_asnprob(glp_graph *G, int v_set, int a_cost, const char + *fname) +{ DMX _csa, *csa = &_csa; + glp_vertex *v; + glp_arc *a; + int nv, na, n1, i, j, k, ret = 0; + double cost; + char *flag = NULL; + if (v_set >= 0 && v_set > G->v_size - (int)sizeof(int)) + xerror("glp_read_asnprob: v_set = %d; invalid offset\n", + v_set); + if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) + xerror("glp_read_asnprob: a_cost = %d; invalid offset\n", + a_cost); + glp_erase_graph(G, G->v_size, G->a_size); + if (setjmp(csa->jump)) + { ret = 1; + goto done; + } + csa->fname = fname; + csa->fp = NULL; + csa->count = 0; + csa->c = '\n'; + csa->field[0] = '\0'; + csa->empty = csa->nonint = 0; + xprintf("Reading assignment problem data from '%s'...\n", fname); + csa->fp = glp_open(fname, "r"); + if (csa->fp == NULL) + { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); + longjmp(csa->jump, 1); + } + /* read problem line */ + read_designator(csa); + if (strcmp(csa->field, "p") != 0) + error(csa, "problem line missing or invalid"); + read_field(csa); + if (strcmp(csa->field, "asn") != 0) + error(csa, "wrong problem designator; 'asn' expected"); + read_field(csa); + if (!(str2int(csa->field, &nv) == 0 && nv >= 0)) + error(csa, "number of nodes missing or invalid"); + read_field(csa); + if (!(str2int(csa->field, &na) == 0 && na >= 0)) + error(csa, "number of arcs missing or invalid"); + if (nv > 0) glp_add_vertices(G, nv); + end_of_line(csa); + /* read node descriptor lines */ + flag = xcalloc(1+nv, sizeof(char)); + memset(&flag[1], 0, nv * sizeof(char)); + n1 = 0; + for (;;) + { read_designator(csa); + if (strcmp(csa->field, "n") != 0) break; + read_field(csa); + if (str2int(csa->field, &i) != 0) + error(csa, "node number missing or invalid"); + if (!(1 <= i && i <= nv)) + error(csa, "node number %d out of range", i); + if (flag[i]) + error(csa, "duplicate descriptor of node %d", i); + flag[i] = 1, n1++; + end_of_line(csa); + } + xprintf( + "Assignment problem has %d + %d = %d node%s and %d arc%s\n", + n1, nv - n1, nv, nv == 1 ? "" : "s", na, na == 1 ? "" : "s"); + if (v_set >= 0) + { for (i = 1; i <= nv; i++) + { v = G->v[i]; + k = (flag[i] ? 0 : 1); + memcpy((char *)v->data + v_set, &k, sizeof(int)); + } + } + /* read arc descriptor lines */ + for (k = 1; k <= na; k++) + { if (k > 1) read_designator(csa); + if (strcmp(csa->field, "a") != 0) + error(csa, "wrong line designator; 'a' expected"); + read_field(csa); + if (str2int(csa->field, &i) != 0) + error(csa, "starting node number missing or invalid"); + if (!(1 <= i && i <= nv)) + error(csa, "starting node number %d out of range", i); + if (!flag[i]) + error(csa, "node %d cannot be a starting node", i); + read_field(csa); + if (str2int(csa->field, &j) != 0) + error(csa, "ending node number missing or invalid"); + if (!(1 <= j && j <= nv)) + error(csa, "ending node number %d out of range", j); + if (flag[j]) + error(csa, "node %d cannot be an ending node", j); + read_field(csa); + if (str2num(csa->field, &cost) != 0) + error(csa, "arc cost missing or invalid"); + check_int(csa, cost); + a = glp_add_arc(G, i, j); + if (a_cost >= 0) + memcpy((char *)a->data + a_cost, &cost, sizeof(double)); + end_of_line(csa); + } + xprintf("%d lines were read\n", csa->count); +done: if (ret) glp_erase_graph(G, G->v_size, G->a_size); + if (csa->fp != NULL) glp_close(csa->fp); + if (flag != NULL) xfree(flag); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/rdcc.c b/resources/3rdparty/glpk-4.65/src/api/rdcc.c new file mode 100644 index 000000000..c63d60d86 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/rdcc.c @@ -0,0 +1,162 @@ +/* rdcc.c (read graph in DIMACS clique/coloring format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "dimacs.h" +#include "glpk.h" +#include "misc.h" + +#define error dmx_error +#define warning dmx_warning +#define read_char dmx_read_char +#define read_designator dmx_read_designator +#define read_field dmx_read_field +#define end_of_line dmx_end_of_line +#define check_int dmx_check_int + +/*********************************************************************** +* NAME +* +* glp_read_ccdata - read graph in DIMACS clique/coloring format +* +* SYNOPSIS +* +* int glp_read_ccdata(glp_graph *G, int v_wgt, const char *fname); +* +* DESCRIPTION +* +* The routine glp_read_ccdata reads an (undirected) graph in DIMACS +* clique/coloring format from a text file. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_read_ccdata(glp_graph *G, int v_wgt, const char *fname) +{ DMX _csa, *csa = &_csa; + glp_vertex *v; + int i, j, k, nv, ne, ret = 0; + double w; + char *flag = NULL; + if (v_wgt >= 0 && v_wgt > G->v_size - (int)sizeof(double)) + xerror("glp_read_ccdata: v_wgt = %d; invalid offset\n", + v_wgt); + glp_erase_graph(G, G->v_size, G->a_size); + if (setjmp(csa->jump)) + { ret = 1; + goto done; + } + csa->fname = fname; + csa->fp = NULL; + csa->count = 0; + csa->c = '\n'; + csa->field[0] = '\0'; + csa->empty = csa->nonint = 0; + xprintf("Reading graph from '%s'...\n", fname); + csa->fp = glp_open(fname, "r"); + if (csa->fp == NULL) + { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); + longjmp(csa->jump, 1); + } + /* read problem line */ + read_designator(csa); + if (strcmp(csa->field, "p") != 0) + error(csa, "problem line missing or invalid"); + read_field(csa); + if (strcmp(csa->field, "edge") != 0) + error(csa, "wrong problem designator; 'edge' expected"); + read_field(csa); + if (!(str2int(csa->field, &nv) == 0 && nv >= 0)) + error(csa, "number of vertices missing or invalid"); + read_field(csa); + if (!(str2int(csa->field, &ne) == 0 && ne >= 0)) + error(csa, "number of edges missing or invalid"); + xprintf("Graph has %d vert%s and %d edge%s\n", + nv, nv == 1 ? "ex" : "ices", ne, ne == 1 ? "" : "s"); + if (nv > 0) glp_add_vertices(G, nv); + end_of_line(csa); + /* read node descriptor lines */ + flag = xcalloc(1+nv, sizeof(char)); + memset(&flag[1], 0, nv * sizeof(char)); + if (v_wgt >= 0) + { w = 1.0; + for (i = 1; i <= nv; i++) + { v = G->v[i]; + memcpy((char *)v->data + v_wgt, &w, sizeof(double)); + } + } + for (;;) + { read_designator(csa); + if (strcmp(csa->field, "n") != 0) break; + read_field(csa); + if (str2int(csa->field, &i) != 0) + error(csa, "vertex number missing or invalid"); + if (!(1 <= i && i <= nv)) + error(csa, "vertex number %d out of range", i); + if (flag[i]) + error(csa, "duplicate descriptor of vertex %d", i); + read_field(csa); + if (str2num(csa->field, &w) != 0) + error(csa, "vertex weight missing or invalid"); + check_int(csa, w); + if (v_wgt >= 0) + { v = G->v[i]; + memcpy((char *)v->data + v_wgt, &w, sizeof(double)); + } + flag[i] = 1; + end_of_line(csa); + } + xfree(flag), flag = NULL; + /* read edge descriptor lines */ + for (k = 1; k <= ne; k++) + { if (k > 1) read_designator(csa); + if (strcmp(csa->field, "e") != 0) + error(csa, "wrong line designator; 'e' expected"); + read_field(csa); + if (str2int(csa->field, &i) != 0) + error(csa, "first vertex number missing or invalid"); + if (!(1 <= i && i <= nv)) + error(csa, "first vertex number %d out of range", i); + read_field(csa); + if (str2int(csa->field, &j) != 0) + error(csa, "second vertex number missing or invalid"); + if (!(1 <= j && j <= nv)) + error(csa, "second vertex number %d out of range", j); + glp_add_arc(G, i, j); + end_of_line(csa); + } + xprintf("%d lines were read\n", csa->count); +done: if (ret) glp_erase_graph(G, G->v_size, G->a_size); + if (csa->fp != NULL) glp_close(csa->fp); + if (flag != NULL) xfree(flag); + return ret; +} + +/**********************************************************************/ + +int glp_read_graph(glp_graph *G, const char *fname) +{ return + glp_read_ccdata(G, -1, fname); +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/rdcnf.c b/resources/3rdparty/glpk-4.65/src/api/rdcnf.c new file mode 100644 index 000000000..acab50fe7 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/rdcnf.c @@ -0,0 +1,136 @@ +/* rdcnf.c (read CNF-SAT problem data in DIMACS format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "dimacs.h" +#include "misc.h" +#include "prob.h" + +#define xfprintf glp_format +#define error dmx_error +#define warning dmx_warning +#define read_char dmx_read_char +#define read_designator dmx_read_designator +#define read_field dmx_read_field +#define end_of_line dmx_end_of_line +#define check_int dmx_check_int + +int glp_read_cnfsat(glp_prob *P, const char *fname) +{ /* read CNF-SAT problem data in DIMACS format */ + DMX _csa, *csa = &_csa; + int m, n, i, j, len, neg, rhs, ret = 0, *ind = NULL; + double *val = NULL; + char *map = NULL; +#if 0 /* 04/IV-2016 */ + if (P == NULL || P->magic != GLP_PROB_MAGIC) + xerror("glp_read_cnfsat: P = %p; invalid problem object\n", + P); +#endif + if (fname == NULL) + xerror("glp_read_cnfsat: fname = %p; invalid parameter\n", + fname); + glp_erase_prob(P); + if (setjmp(csa->jump)) + { ret = 1; + goto done; + } + csa->fname = fname; + csa->fp = NULL; + csa->count = 0; + csa->c = '\n'; + csa->field[0] = '\0'; + csa->empty = csa->nonint = 0; + xprintf("Reading CNF-SAT problem data from '%s'...\n", fname); + csa->fp = glp_open(fname, "r"); + if (csa->fp == NULL) + { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); + longjmp(csa->jump, 1); + } + /* read problem line */ + read_designator(csa); + if (strcmp(csa->field, "p") != 0) + error(csa, "problem line missing or invalid"); + read_field(csa); + if (strcmp(csa->field, "cnf") != 0) + error(csa, "wrong problem designator; 'cnf' expected\n"); + read_field(csa); + if (!(str2int(csa->field, &n) == 0 && n >= 0)) + error(csa, "number of variables missing or invalid\n"); + read_field(csa); + if (!(str2int(csa->field, &m) == 0 && m >= 0)) + error(csa, "number of clauses missing or invalid\n"); + xprintf("Instance has %d variable%s and %d clause%s\n", + n, n == 1 ? "" : "s", m, m == 1 ? "" : "s"); + end_of_line(csa); + if (m > 0) + glp_add_rows(P, m); + if (n > 0) + { glp_add_cols(P, n); + for (j = 1; j <= n; j++) + glp_set_col_kind(P, j, GLP_BV); + } + /* allocate working arrays */ + ind = xcalloc(1+n, sizeof(int)); + val = xcalloc(1+n, sizeof(double)); + map = xcalloc(1+n, sizeof(char)); + for (j = 1; j <= n; j++) map[j] = 0; + /* read clauses */ + for (i = 1; i <= m; i++) + { /* read i-th clause */ + len = 0, rhs = 1; + for (;;) + { /* skip white-space characters */ + while (csa->c == ' ' || csa->c == '\n') + read_char(csa); + /* read term */ + read_field(csa); + if (str2int(csa->field, &j) != 0) + error(csa, "variable number missing or invalid\n"); + if (j > 0) + neg = 0; + else if (j < 0) + neg = 1, j = -j, rhs--; + else + break; + if (!(1 <= j && j <= n)) + error(csa, "variable number out of range\n"); + if (map[j]) + error(csa, "duplicate variable number\n"); + len++, ind[len] = j, val[len] = (neg ? -1.0 : +1.0); + map[j] = 1; + } + glp_set_row_bnds(P, i, GLP_LO, (double)rhs, 0.0); + glp_set_mat_row(P, i, len, ind, val); + while (len > 0) map[ind[len--]] = 0; + } + xprintf("%d lines were read\n", csa->count); + /* problem data has been successfully read */ + glp_sort_matrix(P); +done: if (csa->fp != NULL) glp_close(csa->fp); + if (ind != NULL) xfree(ind); + if (val != NULL) xfree(val); + if (map != NULL) xfree(map); + if (ret) glp_erase_prob(P); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/rdipt.c b/resources/3rdparty/glpk-4.65/src/api/rdipt.c new file mode 100644 index 000000000..aaf8e9d4b --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/rdipt.c @@ -0,0 +1,185 @@ +/* rdipt.c (read interior-point solution in GLPK format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "dimacs.h" +#include "env.h" +#include "misc.h" +#include "prob.h" + +/*********************************************************************** +* NAME +* +* glp_read_ipt - read interior-point solution in GLPK format +* +* SYNOPSIS +* +* int glp_read_ipt(glp_prob *P, const char *fname); +* +* DESCRIPTION +* +* The routine glp_read_ipt reads interior-point solution from a text +* file in GLPK format. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_read_ipt(glp_prob *P, const char *fname) +{ DMX dmx_, *dmx = &dmx_; + int i, j, k, m, n, sst, ret = 1; + char *stat = NULL; + double obj, *prim = NULL, *dual = NULL; +#if 0 /* 04/IV-2016 */ + if (P == NULL || P->magic != GLP_PROB_MAGIC) + xerror("glp_read_ipt: P = %p; invalid problem object\n", P); +#endif + if (fname == NULL) + xerror("glp_read_ipt: fname = %d; invalid parameter\n", fname); + if (setjmp(dmx->jump)) + goto done; + dmx->fname = fname; + dmx->fp = NULL; + dmx->count = 0; + dmx->c = '\n'; + dmx->field[0] = '\0'; + dmx->empty = dmx->nonint = 0; + xprintf("Reading interior-point solution from '%s'...\n", fname); + dmx->fp = glp_open(fname, "r"); + if (dmx->fp == NULL) + { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); + goto done; + } + /* read solution line */ + dmx_read_designator(dmx); + if (strcmp(dmx->field, "s") != 0) + dmx_error(dmx, "solution line missing or invalid"); + dmx_read_field(dmx); + if (strcmp(dmx->field, "ipt") != 0) + dmx_error(dmx, "wrong solution designator; 'ipt' expected"); + dmx_read_field(dmx); + if (!(str2int(dmx->field, &m) == 0 && m >= 0)) + dmx_error(dmx, "number of rows missing or invalid"); + if (m != P->m) + dmx_error(dmx, "number of rows mismatch"); + dmx_read_field(dmx); + if (!(str2int(dmx->field, &n) == 0 && n >= 0)) + dmx_error(dmx, "number of columns missing or invalid"); + if (n != P->n) + dmx_error(dmx, "number of columns mismatch"); + dmx_read_field(dmx); + if (strcmp(dmx->field, "o") == 0) + sst = GLP_OPT; + else if (strcmp(dmx->field, "i") == 0) + sst = GLP_INFEAS; + else if (strcmp(dmx->field, "n") == 0) + sst = GLP_NOFEAS; + else if (strcmp(dmx->field, "u") == 0) + sst = GLP_UNDEF; + else + dmx_error(dmx, "solution status missing or invalid"); + dmx_read_field(dmx); + if (str2num(dmx->field, &obj) != 0) + dmx_error(dmx, "objective value missing or invalid"); + dmx_end_of_line(dmx); + /* allocate working arrays */ + stat = xalloc(1+m+n, sizeof(stat[0])); + for (k = 1; k <= m+n; k++) + stat[k] = '?'; + prim = xalloc(1+m+n, sizeof(prim[0])); + dual = xalloc(1+m+n, sizeof(dual[0])); + /* read solution descriptor lines */ + for (;;) + { dmx_read_designator(dmx); + if (strcmp(dmx->field, "i") == 0) + { /* row solution descriptor */ + dmx_read_field(dmx); + if (str2int(dmx->field, &i) != 0) + dmx_error(dmx, "row number missing or invalid"); + if (!(1 <= i && i <= m)) + dmx_error(dmx, "row number out of range"); + if (stat[i] != '?') + dmx_error(dmx, "duplicate row solution descriptor"); + stat[i] = GLP_BS; + dmx_read_field(dmx); + if (str2num(dmx->field, &prim[i]) != 0) + dmx_error(dmx, "row primal value missing or invalid"); + dmx_read_field(dmx); + if (str2num(dmx->field, &dual[i]) != 0) + dmx_error(dmx, "row dual value missing or invalid"); + dmx_end_of_line(dmx); + } + else if (strcmp(dmx->field, "j") == 0) + { /* column solution descriptor */ + dmx_read_field(dmx); + if (str2int(dmx->field, &j) != 0) + dmx_error(dmx, "column number missing or invalid"); + if (!(1 <= j && j <= n)) + dmx_error(dmx, "column number out of range"); + if (stat[m+j] != '?') + dmx_error(dmx, "duplicate column solution descriptor"); + stat[m+j] = GLP_BS; + dmx_read_field(dmx); + if (str2num(dmx->field, &prim[m+j]) != 0) + dmx_error(dmx, "column primal value missing or invalid"); + dmx_read_field(dmx); + if (str2num(dmx->field, &dual[m+j]) != 0) + dmx_error(dmx, "column dual value missing or invalid"); + dmx_end_of_line(dmx); + } + else if (strcmp(dmx->field, "e") == 0) + break; + else + dmx_error(dmx, "line designator missing or invalid"); + dmx_end_of_line(dmx); + } + /* store solution components into problem object */ + for (k = 1; k <= m+n; k++) + { if (stat[k] == '?') + dmx_error(dmx, "incomplete interior-point solution"); + } + P->ipt_stat = sst; + P->ipt_obj = obj; + for (i = 1; i <= m; i++) + { P->row[i]->pval = prim[i]; + P->row[i]->dval = dual[i]; + } + for (j = 1; j <= n; j++) + { P->col[j]->pval = prim[m+j]; + P->col[j]->dval = dual[m+j]; + } + /* interior-point solution has been successfully read */ + xprintf("%d lines were read\n", dmx->count); + ret = 0; +done: if (dmx->fp != NULL) + glp_close(dmx->fp); + if (stat != NULL) + xfree(stat); + if (prim != NULL) + xfree(prim); + if (dual != NULL) + xfree(dual); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/rdmaxf.c b/resources/3rdparty/glpk-4.65/src/api/rdmaxf.c new file mode 100644 index 000000000..a45405c9e --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/rdmaxf.c @@ -0,0 +1,163 @@ +/* rdmaxf.c (read maximum flow problem data in DIMACS format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "dimacs.h" +#include "glpk.h" +#include "misc.h" + +#define error dmx_error +#define warning dmx_warning +#define read_char dmx_read_char +#define read_designator dmx_read_designator +#define read_field dmx_read_field +#define end_of_line dmx_end_of_line +#define check_int dmx_check_int + +/*********************************************************************** +* NAME +* +* glp_read_maxflow - read maximum flow problem data in DIMACS format +* +* SYNOPSIS +* +* int glp_read_maxflow(glp_graph *G, int *s, int *t, int a_cap, +* const char *fname); +* +* DESCRIPTION +* +* The routine glp_read_maxflow reads maximum flow problem data in +* DIMACS format from a text file. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_read_maxflow(glp_graph *G, int *_s, int *_t, int a_cap, + const char *fname) +{ DMX _csa, *csa = &_csa; + glp_arc *a; + int i, j, k, s, t, nv, na, ret = 0; + double cap; + if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) + xerror("glp_read_maxflow: a_cap = %d; invalid offset\n", + a_cap); + glp_erase_graph(G, G->v_size, G->a_size); + if (setjmp(csa->jump)) + { ret = 1; + goto done; + } + csa->fname = fname; + csa->fp = NULL; + csa->count = 0; + csa->c = '\n'; + csa->field[0] = '\0'; + csa->empty = csa->nonint = 0; + xprintf("Reading maximum flow problem data from '%s'...\n", + fname); + csa->fp = glp_open(fname, "r"); + if (csa->fp == NULL) + { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); + longjmp(csa->jump, 1); + } + /* read problem line */ + read_designator(csa); + if (strcmp(csa->field, "p") != 0) + error(csa, "problem line missing or invalid"); + read_field(csa); + if (strcmp(csa->field, "max") != 0) + error(csa, "wrong problem designator; 'max' expected"); + read_field(csa); + if (!(str2int(csa->field, &nv) == 0 && nv >= 2)) + error(csa, "number of nodes missing or invalid"); + read_field(csa); + if (!(str2int(csa->field, &na) == 0 && na >= 0)) + error(csa, "number of arcs missing or invalid"); + xprintf("Flow network has %d node%s and %d arc%s\n", + nv, nv == 1 ? "" : "s", na, na == 1 ? "" : "s"); + if (nv > 0) glp_add_vertices(G, nv); + end_of_line(csa); + /* read node descriptor lines */ + s = t = 0; + for (;;) + { read_designator(csa); + if (strcmp(csa->field, "n") != 0) break; + read_field(csa); + if (str2int(csa->field, &i) != 0) + error(csa, "node number missing or invalid"); + if (!(1 <= i && i <= nv)) + error(csa, "node number %d out of range", i); + read_field(csa); + if (strcmp(csa->field, "s") == 0) + { if (s > 0) + error(csa, "only one source node allowed"); + s = i; + } + else if (strcmp(csa->field, "t") == 0) + { if (t > 0) + error(csa, "only one sink node allowed"); + t = i; + } + else + error(csa, "wrong node designator; 's' or 't' expected"); + if (s > 0 && s == t) + error(csa, "source and sink nodes must be distinct"); + end_of_line(csa); + } + if (s == 0) + error(csa, "source node descriptor missing\n"); + if (t == 0) + error(csa, "sink node descriptor missing\n"); + if (_s != NULL) *_s = s; + if (_t != NULL) *_t = t; + /* read arc descriptor lines */ + for (k = 1; k <= na; k++) + { if (k > 1) read_designator(csa); + if (strcmp(csa->field, "a") != 0) + error(csa, "wrong line designator; 'a' expected"); + read_field(csa); + if (str2int(csa->field, &i) != 0) + error(csa, "starting node number missing or invalid"); + if (!(1 <= i && i <= nv)) + error(csa, "starting node number %d out of range", i); + read_field(csa); + if (str2int(csa->field, &j) != 0) + error(csa, "ending node number missing or invalid"); + if (!(1 <= j && j <= nv)) + error(csa, "ending node number %d out of range", j); + read_field(csa); + if (!(str2num(csa->field, &cap) == 0 && cap >= 0.0)) + error(csa, "arc capacity missing or invalid"); + check_int(csa, cap); + a = glp_add_arc(G, i, j); + if (a_cap >= 0) + memcpy((char *)a->data + a_cap, &cap, sizeof(double)); + end_of_line(csa); + } + xprintf("%d lines were read\n", csa->count); +done: if (ret) glp_erase_graph(G, G->v_size, G->a_size); + if (csa->fp != NULL) glp_close(csa->fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/rdmcf.c b/resources/3rdparty/glpk-4.65/src/api/rdmcf.c new file mode 100644 index 000000000..bab1ec794 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/rdmcf.c @@ -0,0 +1,186 @@ +/* rdmcf.c (read min-cost flow problem data in DIMACS format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "dimacs.h" +#include "glpk.h" +#include "misc.h" + +#define error dmx_error +#define warning dmx_warning +#define read_char dmx_read_char +#define read_designator dmx_read_designator +#define read_field dmx_read_field +#define end_of_line dmx_end_of_line +#define check_int dmx_check_int + +/*********************************************************************** +* NAME +* +* glp_read_mincost - read min-cost flow problem data in DIMACS format +* +* SYNOPSIS +* +* int glp_read_mincost(glp_graph *G, int v_rhs, int a_low, int a_cap, +* int a_cost, const char *fname); +* +* DESCRIPTION +* +* The routine glp_read_mincost reads minimum cost flow problem data in +* DIMACS format from a text file. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_read_mincost(glp_graph *G, int v_rhs, int a_low, int a_cap, + int a_cost, const char *fname) +{ DMX _csa, *csa = &_csa; + glp_vertex *v; + glp_arc *a; + int i, j, k, nv, na, ret = 0; + double rhs, low, cap, cost; + char *flag = NULL; + if (v_rhs >= 0 && v_rhs > G->v_size - (int)sizeof(double)) + xerror("glp_read_mincost: v_rhs = %d; invalid offset\n", + v_rhs); + if (a_low >= 0 && a_low > G->a_size - (int)sizeof(double)) + xerror("glp_read_mincost: a_low = %d; invalid offset\n", + a_low); + if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) + xerror("glp_read_mincost: a_cap = %d; invalid offset\n", + a_cap); + if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) + xerror("glp_read_mincost: a_cost = %d; invalid offset\n", + a_cost); + glp_erase_graph(G, G->v_size, G->a_size); + if (setjmp(csa->jump)) + { ret = 1; + goto done; + } + csa->fname = fname; + csa->fp = NULL; + csa->count = 0; + csa->c = '\n'; + csa->field[0] = '\0'; + csa->empty = csa->nonint = 0; + xprintf("Reading min-cost flow problem data from '%s'...\n", + fname); + csa->fp = glp_open(fname, "r"); + if (csa->fp == NULL) + { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); + longjmp(csa->jump, 1); + } + /* read problem line */ + read_designator(csa); + if (strcmp(csa->field, "p") != 0) + error(csa, "problem line missing or invalid"); + read_field(csa); + if (strcmp(csa->field, "min") != 0) + error(csa, "wrong problem designator; 'min' expected"); + read_field(csa); + if (!(str2int(csa->field, &nv) == 0 && nv >= 0)) + error(csa, "number of nodes missing or invalid"); + read_field(csa); + if (!(str2int(csa->field, &na) == 0 && na >= 0)) + error(csa, "number of arcs missing or invalid"); + xprintf("Flow network has %d node%s and %d arc%s\n", + nv, nv == 1 ? "" : "s", na, na == 1 ? "" : "s"); + if (nv > 0) glp_add_vertices(G, nv); + end_of_line(csa); + /* read node descriptor lines */ + flag = xcalloc(1+nv, sizeof(char)); + memset(&flag[1], 0, nv * sizeof(char)); + if (v_rhs >= 0) + { rhs = 0.0; + for (i = 1; i <= nv; i++) + { v = G->v[i]; + memcpy((char *)v->data + v_rhs, &rhs, sizeof(double)); + } + } + for (;;) + { read_designator(csa); + if (strcmp(csa->field, "n") != 0) break; + read_field(csa); + if (str2int(csa->field, &i) != 0) + error(csa, "node number missing or invalid"); + if (!(1 <= i && i <= nv)) + error(csa, "node number %d out of range", i); + if (flag[i]) + error(csa, "duplicate descriptor of node %d", i); + read_field(csa); + if (str2num(csa->field, &rhs) != 0) + error(csa, "node supply/demand missing or invalid"); + check_int(csa, rhs); + if (v_rhs >= 0) + { v = G->v[i]; + memcpy((char *)v->data + v_rhs, &rhs, sizeof(double)); + } + flag[i] = 1; + end_of_line(csa); + } + xfree(flag), flag = NULL; + /* read arc descriptor lines */ + for (k = 1; k <= na; k++) + { if (k > 1) read_designator(csa); + if (strcmp(csa->field, "a") != 0) + error(csa, "wrong line designator; 'a' expected"); + read_field(csa); + if (str2int(csa->field, &i) != 0) + error(csa, "starting node number missing or invalid"); + if (!(1 <= i && i <= nv)) + error(csa, "starting node number %d out of range", i); + read_field(csa); + if (str2int(csa->field, &j) != 0) + error(csa, "ending node number missing or invalid"); + if (!(1 <= j && j <= nv)) + error(csa, "ending node number %d out of range", j); + read_field(csa); + if (!(str2num(csa->field, &low) == 0 && low >= 0.0)) + error(csa, "lower bound of arc flow missing or invalid"); + check_int(csa, low); + read_field(csa); + if (!(str2num(csa->field, &cap) == 0 && cap >= low)) + error(csa, "upper bound of arc flow missing or invalid"); + check_int(csa, cap); + read_field(csa); + if (str2num(csa->field, &cost) != 0) + error(csa, "per-unit cost of arc flow missing or invalid"); + check_int(csa, cost); + a = glp_add_arc(G, i, j); + if (a_low >= 0) + memcpy((char *)a->data + a_low, &low, sizeof(double)); + if (a_cap >= 0) + memcpy((char *)a->data + a_cap, &cap, sizeof(double)); + if (a_cost >= 0) + memcpy((char *)a->data + a_cost, &cost, sizeof(double)); + end_of_line(csa); + } + xprintf("%d lines were read\n", csa->count); +done: if (ret) glp_erase_graph(G, G->v_size, G->a_size); + if (csa->fp != NULL) glp_close(csa->fp); + if (flag != NULL) xfree(flag); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/rdmip.c b/resources/3rdparty/glpk-4.65/src/api/rdmip.c new file mode 100644 index 000000000..7aec26b32 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/rdmip.c @@ -0,0 +1,172 @@ +/* rdmip.c (read MIP solution in GLPK format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "dimacs.h" +#include "env.h" +#include "misc.h" +#include "prob.h" + +/*********************************************************************** +* NAME +* +* glp_read_mip - read MIP solution in GLPK format +* +* SYNOPSIS +* +* int glp_read_mip(glp_prob *P, const char *fname); +* +* DESCRIPTION +* +* The routine glp_read_mip reads MIP solution from a text file in GLPK +* format. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_read_mip(glp_prob *P, const char *fname) +{ DMX dmx_, *dmx = &dmx_; + int i, j, k, m, n, sst, ret = 1; + char *stat = NULL; + double obj, *prim = NULL; +#if 0 /* 04/IV-2016 */ + if (P == NULL || P->magic != GLP_PROB_MAGIC) + xerror("glp_read_mip: P = %p; invalid problem object\n", P); +#endif + if (fname == NULL) + xerror("glp_read_mip: fname = %d; invalid parameter\n", fname); + if (setjmp(dmx->jump)) + goto done; + dmx->fname = fname; + dmx->fp = NULL; + dmx->count = 0; + dmx->c = '\n'; + dmx->field[0] = '\0'; + dmx->empty = dmx->nonint = 0; + xprintf("Reading MIP solution from '%s'...\n", fname); + dmx->fp = glp_open(fname, "r"); + if (dmx->fp == NULL) + { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); + goto done; + } + /* read solution line */ + dmx_read_designator(dmx); + if (strcmp(dmx->field, "s") != 0) + dmx_error(dmx, "solution line missing or invalid"); + dmx_read_field(dmx); + if (strcmp(dmx->field, "mip") != 0) + dmx_error(dmx, "wrong solution designator; 'mip' expected"); + dmx_read_field(dmx); + if (!(str2int(dmx->field, &m) == 0 && m >= 0)) + dmx_error(dmx, "number of rows missing or invalid"); + if (m != P->m) + dmx_error(dmx, "number of rows mismatch"); + dmx_read_field(dmx); + if (!(str2int(dmx->field, &n) == 0 && n >= 0)) + dmx_error(dmx, "number of columns missing or invalid"); + if (n != P->n) + dmx_error(dmx, "number of columns mismatch"); + dmx_read_field(dmx); + if (strcmp(dmx->field, "o") == 0) + sst = GLP_OPT; + else if (strcmp(dmx->field, "f") == 0) + sst = GLP_FEAS; + else if (strcmp(dmx->field, "n") == 0) + sst = GLP_NOFEAS; + else if (strcmp(dmx->field, "u") == 0) + sst = GLP_UNDEF; + else + dmx_error(dmx, "solution status missing or invalid"); + dmx_read_field(dmx); + if (str2num(dmx->field, &obj) != 0) + dmx_error(dmx, "objective value missing or invalid"); + dmx_end_of_line(dmx); + /* allocate working arrays */ + stat = xalloc(1+m+n, sizeof(stat[0])); + for (k = 1; k <= m+n; k++) + stat[k] = '?'; + prim = xalloc(1+m+n, sizeof(prim[0])); + /* read solution descriptor lines */ + for (;;) + { dmx_read_designator(dmx); + if (strcmp(dmx->field, "i") == 0) + { /* row solution descriptor */ + dmx_read_field(dmx); + if (str2int(dmx->field, &i) != 0) + dmx_error(dmx, "row number missing or invalid"); + if (!(1 <= i && i <= m)) + dmx_error(dmx, "row number out of range"); + if (stat[i] != '?') + dmx_error(dmx, "duplicate row solution descriptor"); + stat[i] = GLP_BS; + dmx_read_field(dmx); + if (str2num(dmx->field, &prim[i]) != 0) + dmx_error(dmx, "row value missing or invalid"); + dmx_end_of_line(dmx); + } + else if (strcmp(dmx->field, "j") == 0) + { /* column solution descriptor */ + dmx_read_field(dmx); + if (str2int(dmx->field, &j) != 0) + dmx_error(dmx, "column number missing or invalid"); + if (!(1 <= j && j <= n)) + dmx_error(dmx, "column number out of range"); + if (stat[m+j] != '?') + dmx_error(dmx, "duplicate column solution descriptor"); + stat[m+j] = GLP_BS; + dmx_read_field(dmx); + if (str2num(dmx->field, &prim[m+j]) != 0) + dmx_error(dmx, "column value missing or invalid"); + dmx_end_of_line(dmx); + } + else if (strcmp(dmx->field, "e") == 0) + break; + else + dmx_error(dmx, "line designator missing or invalid"); + dmx_end_of_line(dmx); + } + /* store solution components into problem object */ + for (k = 1; k <= m+n; k++) + { if (stat[k] == '?') + dmx_error(dmx, "incomplete MIP solution"); + } + P->mip_stat = sst; + P->mip_obj = obj; + for (i = 1; i <= m; i++) + P->row[i]->mipx = prim[i]; + for (j = 1; j <= n; j++) + P->col[j]->mipx = prim[m+j]; + /* MIP solution has been successfully read */ + xprintf("%d lines were read\n", dmx->count); + ret = 0; +done: if (dmx->fp != NULL) + glp_close(dmx->fp); + if (stat != NULL) + xfree(stat); + if (prim != NULL) + xfree(prim); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/rdprob.c b/resources/3rdparty/glpk-4.65/src/api/rdprob.c new file mode 100644 index 000000000..1ad544a59 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/rdprob.c @@ -0,0 +1,377 @@ +/* rdprob.c (read problem data in GLPK format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "dimacs.h" +#include "misc.h" +#include "prob.h" + +#define xfprintf glp_format +#define error dmx_error +#define warning dmx_warning +#define read_char dmx_read_char +#define read_designator dmx_read_designator +#define read_field dmx_read_field +#define end_of_line dmx_end_of_line +#define check_int dmx_check_int + +/*********************************************************************** +* NAME +* +* glp_read_prob - read problem data in GLPK format +* +* SYNOPSIS +* +* int glp_read_prob(glp_prob *P, int flags, const char *fname); +* +* The routine glp_read_prob reads problem data in GLPK LP/MIP format +* from a text file. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_read_prob(glp_prob *P, int flags, const char *fname) +{ DMX _csa, *csa = &_csa; + int mip, m, n, nnz, ne, i, j, k, type, kind, ret, *ln = NULL, + *ia = NULL, *ja = NULL; + double lb, ub, temp, *ar = NULL; + char *rf = NULL, *cf = NULL; +#if 0 /* 04/IV-2016 */ + if (P == NULL || P->magic != GLP_PROB_MAGIC) + xerror("glp_read_prob: P = %p; invalid problem object\n", + P); +#endif + if (flags != 0) + xerror("glp_read_prob: flags = %d; invalid parameter\n", + flags); + if (fname == NULL) + xerror("glp_read_prob: fname = %d; invalid parameter\n", + fname); + glp_erase_prob(P); + if (setjmp(csa->jump)) + { ret = 1; + goto done; + } + csa->fname = fname; + csa->fp = NULL; + csa->count = 0; + csa->c = '\n'; + csa->field[0] = '\0'; + csa->empty = csa->nonint = 0; + xprintf("Reading problem data from '%s'...\n", fname); + csa->fp = glp_open(fname, "r"); + if (csa->fp == NULL) + { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); + longjmp(csa->jump, 1); + } + /* read problem line */ + read_designator(csa); + if (strcmp(csa->field, "p") != 0) + error(csa, "problem line missing or invalid"); + read_field(csa); + if (strcmp(csa->field, "lp") == 0) + mip = 0; + else if (strcmp(csa->field, "mip") == 0) + mip = 1; + else + error(csa, "wrong problem designator; 'lp' or 'mip' expected"); + read_field(csa); + if (strcmp(csa->field, "min") == 0) + glp_set_obj_dir(P, GLP_MIN); + else if (strcmp(csa->field, "max") == 0) + glp_set_obj_dir(P, GLP_MAX); + else + error(csa, "objective sense missing or invalid"); + read_field(csa); + if (!(str2int(csa->field, &m) == 0 && m >= 0)) + error(csa, "number of rows missing or invalid"); + read_field(csa); + if (!(str2int(csa->field, &n) == 0 && n >= 0)) + error(csa, "number of columns missing or invalid"); + read_field(csa); + if (!(str2int(csa->field, &nnz) == 0 && nnz >= 0)) + error(csa, "number of constraint coefficients missing or inval" + "id"); + if (m > 0) + { glp_add_rows(P, m); + for (i = 1; i <= m; i++) + glp_set_row_bnds(P, i, GLP_FX, 0.0, 0.0); + } + if (n > 0) + { glp_add_cols(P, n); + for (j = 1; j <= n; j++) + { if (!mip) + glp_set_col_bnds(P, j, GLP_LO, 0.0, 0.0); + else + glp_set_col_kind(P, j, GLP_BV); + } + } + end_of_line(csa); + /* allocate working arrays */ + rf = xcalloc(1+m, sizeof(char)); + memset(rf, 0, 1+m); + cf = xcalloc(1+n, sizeof(char)); + memset(cf, 0, 1+n); + ln = xcalloc(1+nnz, sizeof(int)); + ia = xcalloc(1+nnz, sizeof(int)); + ja = xcalloc(1+nnz, sizeof(int)); + ar = xcalloc(1+nnz, sizeof(double)); + /* read descriptor lines */ + ne = 0; + for (;;) + { read_designator(csa); + if (strcmp(csa->field, "i") == 0) + { /* row descriptor */ + read_field(csa); + if (str2int(csa->field, &i) != 0) + error(csa, "row number missing or invalid"); + if (!(1 <= i && i <= m)) + error(csa, "row number out of range"); + read_field(csa); + if (strcmp(csa->field, "f") == 0) + type = GLP_FR; + else if (strcmp(csa->field, "l") == 0) + type = GLP_LO; + else if (strcmp(csa->field, "u") == 0) + type = GLP_UP; + else if (strcmp(csa->field, "d") == 0) + type = GLP_DB; + else if (strcmp(csa->field, "s") == 0) + type = GLP_FX; + else + error(csa, "row type missing or invalid"); + if (type == GLP_LO || type == GLP_DB || type == GLP_FX) + { read_field(csa); + if (str2num(csa->field, &lb) != 0) + error(csa, "row lower bound/fixed value missing or in" + "valid"); + } + else + lb = 0.0; + if (type == GLP_UP || type == GLP_DB) + { read_field(csa); + if (str2num(csa->field, &ub) != 0) + error(csa, "row upper bound missing or invalid"); + } + else + ub = 0.0; + if (rf[i] & 0x01) + error(csa, "duplicate row descriptor"); + glp_set_row_bnds(P, i, type, lb, ub), rf[i] |= 0x01; + } + else if (strcmp(csa->field, "j") == 0) + { /* column descriptor */ + read_field(csa); + if (str2int(csa->field, &j) != 0) + error(csa, "column number missing or invalid"); + if (!(1 <= j && j <= n)) + error(csa, "column number out of range"); + if (!mip) + kind = GLP_CV; + else + { read_field(csa); + if (strcmp(csa->field, "c") == 0) + kind = GLP_CV; + else if (strcmp(csa->field, "i") == 0) + kind = GLP_IV; + else if (strcmp(csa->field, "b") == 0) + { kind = GLP_IV; + type = GLP_DB, lb = 0.0, ub = 1.0; + goto skip; + } + else + error(csa, "column kind missing or invalid"); + } + read_field(csa); + if (strcmp(csa->field, "f") == 0) + type = GLP_FR; + else if (strcmp(csa->field, "l") == 0) + type = GLP_LO; + else if (strcmp(csa->field, "u") == 0) + type = GLP_UP; + else if (strcmp(csa->field, "d") == 0) + type = GLP_DB; + else if (strcmp(csa->field, "s") == 0) + type = GLP_FX; + else + error(csa, "column type missing or invalid"); + if (type == GLP_LO || type == GLP_DB || type == GLP_FX) + { read_field(csa); + if (str2num(csa->field, &lb) != 0) + error(csa, "column lower bound/fixed value missing or" + " invalid"); + } + else + lb = 0.0; + if (type == GLP_UP || type == GLP_DB) + { read_field(csa); + if (str2num(csa->field, &ub) != 0) + error(csa, "column upper bound missing or invalid"); + } + else + ub = 0.0; +skip: if (cf[j] & 0x01) + error(csa, "duplicate column descriptor"); + glp_set_col_kind(P, j, kind); + glp_set_col_bnds(P, j, type, lb, ub), cf[j] |= 0x01; + } + else if (strcmp(csa->field, "a") == 0) + { /* coefficient descriptor */ + read_field(csa); + if (str2int(csa->field, &i) != 0) + error(csa, "row number missing or invalid"); + if (!(0 <= i && i <= m)) + error(csa, "row number out of range"); + read_field(csa); + if (str2int(csa->field, &j) != 0) + error(csa, "column number missing or invalid"); + if (!((i == 0 ? 0 : 1) <= j && j <= n)) + error(csa, "column number out of range"); + read_field(csa); + if (i == 0) + { if (str2num(csa->field, &temp) != 0) + error(csa, "objective %s missing or invalid", + j == 0 ? "constant term" : "coefficient"); + if (cf[j] & 0x10) + error(csa, "duplicate objective %s", + j == 0 ? "constant term" : "coefficient"); + glp_set_obj_coef(P, j, temp), cf[j] |= 0x10; + } + else + { if (str2num(csa->field, &temp) != 0) + error(csa, "constraint coefficient missing or invalid" + ); + if (ne == nnz) + error(csa, "too many constraint coefficient descripto" + "rs"); + ln[++ne] = csa->count; + ia[ne] = i, ja[ne] = j, ar[ne] = temp; + } + } + else if (strcmp(csa->field, "n") == 0) + { /* symbolic name descriptor */ + read_field(csa); + if (strcmp(csa->field, "p") == 0) + { /* problem name */ + read_field(csa); + if (P->name != NULL) + error(csa, "duplicate problem name"); + glp_set_prob_name(P, csa->field); + } + else if (strcmp(csa->field, "z") == 0) + { /* objective name */ + read_field(csa); + if (P->obj != NULL) + error(csa, "duplicate objective name"); + glp_set_obj_name(P, csa->field); + } + else if (strcmp(csa->field, "i") == 0) + { /* row name */ + read_field(csa); + if (str2int(csa->field, &i) != 0) + error(csa, "row number missing or invalid"); + if (!(1 <= i && i <= m)) + error(csa, "row number out of range"); + read_field(csa); + if (P->row[i]->name != NULL) + error(csa, "duplicate row name"); + glp_set_row_name(P, i, csa->field); + } + else if (strcmp(csa->field, "j") == 0) + { /* column name */ + read_field(csa); + if (str2int(csa->field, &j) != 0) + error(csa, "column number missing or invalid"); + if (!(1 <= j && j <= n)) + error(csa, "column number out of range"); + read_field(csa); + if (P->col[j]->name != NULL) + error(csa, "duplicate column name"); + glp_set_col_name(P, j, csa->field); + } + else + error(csa, "object designator missing or invalid"); + } + else if (strcmp(csa->field, "e") == 0) + break; + else + error(csa, "line designator missing or invalid"); + end_of_line(csa); + } + if (ne < nnz) + error(csa, "too few constraint coefficient descriptors"); + xassert(ne == nnz); + k = glp_check_dup(m, n, ne, ia, ja); + xassert(0 <= k && k <= nnz); + if (k > 0) + { csa->count = ln[k]; + error(csa, "duplicate constraint coefficient"); + } + glp_load_matrix(P, ne, ia, ja, ar); + /* print some statistics */ + if (P->name != NULL) + xprintf("Problem: %s\n", P->name); + if (P->obj != NULL) + xprintf("Objective: %s\n", P->obj); + xprintf("%d row%s, %d column%s, %d non-zero%s\n", + m, m == 1 ? "" : "s", n, n == 1 ? "" : "s", nnz, nnz == 1 ? + "" : "s"); + if (glp_get_num_int(P) > 0) + { int ni = glp_get_num_int(P); + int nb = glp_get_num_bin(P); + if (ni == 1) + { if (nb == 0) + xprintf("One variable is integer\n"); + else + xprintf("One variable is binary\n"); + } + else + { xprintf("%d integer variables, ", ni); + if (nb == 0) + xprintf("none"); + else if (nb == 1) + xprintf("one"); + else if (nb == ni) + xprintf("all"); + else + xprintf("%d", nb); + xprintf(" of which %s binary\n", nb == 1 ? "is" : "are"); + } + } + xprintf("%d lines were read\n", csa->count); + /* problem data has been successfully read */ + glp_sort_matrix(P); + ret = 0; +done: if (csa->fp != NULL) glp_close(csa->fp); + if (rf != NULL) xfree(rf); + if (cf != NULL) xfree(cf); + if (ln != NULL) xfree(ln); + if (ia != NULL) xfree(ia); + if (ja != NULL) xfree(ja); + if (ar != NULL) xfree(ar); + if (ret) glp_erase_prob(P); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/rdsol.c b/resources/3rdparty/glpk-4.65/src/api/rdsol.c new file mode 100644 index 000000000..d85a25626 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/rdsol.c @@ -0,0 +1,225 @@ +/* rdsol.c (read basic solution in GLPK format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "dimacs.h" +#include "env.h" +#include "misc.h" +#include "prob.h" + +/*********************************************************************** +* NAME +* +* glp_read_sol - read basic solution in GLPK format +* +* SYNOPSIS +* +* int glp_read_sol(glp_prob *P, const char *fname); +* +* DESCRIPTION +* +* The routine glp_read_sol reads basic solution from a text file in +* GLPK format. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_read_sol(glp_prob *P, const char *fname) +{ DMX dmx_, *dmx = &dmx_; + int i, j, k, m, n, pst, dst, ret = 1; + char *stat = NULL; + double obj, *prim = NULL, *dual = NULL; +#if 0 /* 04/IV-2016 */ + if (P == NULL || P->magic != GLP_PROB_MAGIC) + xerror("glp_read_sol: P = %p; invalid problem object\n", P); +#endif + if (fname == NULL) + xerror("glp_read_sol: fname = %d; invalid parameter\n", fname); + if (setjmp(dmx->jump)) + goto done; + dmx->fname = fname; + dmx->fp = NULL; + dmx->count = 0; + dmx->c = '\n'; + dmx->field[0] = '\0'; + dmx->empty = dmx->nonint = 0; + xprintf("Reading basic solution from '%s'...\n", fname); + dmx->fp = glp_open(fname, "r"); + if (dmx->fp == NULL) + { xprintf("Unable to open '%s' - %s\n", fname, get_err_msg()); + goto done; + } + /* read solution line */ + dmx_read_designator(dmx); + if (strcmp(dmx->field, "s") != 0) + dmx_error(dmx, "solution line missing or invalid"); + dmx_read_field(dmx); + if (strcmp(dmx->field, "bas") != 0) + dmx_error(dmx, "wrong solution designator; 'bas' expected"); + dmx_read_field(dmx); + if (!(str2int(dmx->field, &m) == 0 && m >= 0)) + dmx_error(dmx, "number of rows missing or invalid"); + if (m != P->m) + dmx_error(dmx, "number of rows mismatch"); + dmx_read_field(dmx); + if (!(str2int(dmx->field, &n) == 0 && n >= 0)) + dmx_error(dmx, "number of columns missing or invalid"); + if (n != P->n) + dmx_error(dmx, "number of columns mismatch"); + dmx_read_field(dmx); + if (strcmp(dmx->field, "u") == 0) + pst = GLP_UNDEF; + else if (strcmp(dmx->field, "f") == 0) + pst = GLP_FEAS; + else if (strcmp(dmx->field, "i") == 0) + pst = GLP_INFEAS; + else if (strcmp(dmx->field, "n") == 0) + pst = GLP_NOFEAS; + else + dmx_error(dmx, "primal solution status missing or invalid"); + dmx_read_field(dmx); + if (strcmp(dmx->field, "u") == 0) + dst = GLP_UNDEF; + else if (strcmp(dmx->field, "f") == 0) + dst = GLP_FEAS; + else if (strcmp(dmx->field, "i") == 0) + dst = GLP_INFEAS; + else if (strcmp(dmx->field, "n") == 0) + dst = GLP_NOFEAS; + else + dmx_error(dmx, "dual solution status missing or invalid"); + dmx_read_field(dmx); + if (str2num(dmx->field, &obj) != 0) + dmx_error(dmx, "objective value missing or invalid"); + dmx_end_of_line(dmx); + /* allocate working arrays */ + stat = xalloc(1+m+n, sizeof(stat[0])); + for (k = 1; k <= m+n; k++) + stat[k] = '?'; + prim = xalloc(1+m+n, sizeof(prim[0])); + dual = xalloc(1+m+n, sizeof(dual[0])); + /* read solution descriptor lines */ + for (;;) + { dmx_read_designator(dmx); + if (strcmp(dmx->field, "i") == 0) + { /* row solution descriptor */ + dmx_read_field(dmx); + if (str2int(dmx->field, &i) != 0) + dmx_error(dmx, "row number missing or invalid"); + if (!(1 <= i && i <= m)) + dmx_error(dmx, "row number out of range"); + if (stat[i] != '?') + dmx_error(dmx, "duplicate row solution descriptor"); + dmx_read_field(dmx); + if (strcmp(dmx->field, "b") == 0) + stat[i] = GLP_BS; + else if (strcmp(dmx->field, "l") == 0) + stat[i] = GLP_NL; + else if (strcmp(dmx->field, "u") == 0) + stat[i] = GLP_NU; + else if (strcmp(dmx->field, "f") == 0) + stat[i] = GLP_NF; + else if (strcmp(dmx->field, "s") == 0) + stat[i] = GLP_NS; + else + dmx_error(dmx, "row status missing or invalid"); + dmx_read_field(dmx); + if (str2num(dmx->field, &prim[i]) != 0) + dmx_error(dmx, "row primal value missing or invalid"); + dmx_read_field(dmx); + if (str2num(dmx->field, &dual[i]) != 0) + dmx_error(dmx, "row dual value missing or invalid"); + dmx_end_of_line(dmx); + } + else if (strcmp(dmx->field, "j") == 0) + { /* column solution descriptor */ + dmx_read_field(dmx); + if (str2int(dmx->field, &j) != 0) + dmx_error(dmx, "column number missing or invalid"); + if (!(1 <= j && j <= n)) + dmx_error(dmx, "column number out of range"); + if (stat[m+j] != '?') + dmx_error(dmx, "duplicate column solution descriptor"); + dmx_read_field(dmx); + if (strcmp(dmx->field, "b") == 0) + stat[m+j] = GLP_BS; + else if (strcmp(dmx->field, "l") == 0) + stat[m+j] = GLP_NL; + else if (strcmp(dmx->field, "u") == 0) + stat[m+j] = GLP_NU; + else if (strcmp(dmx->field, "f") == 0) + stat[m+j] = GLP_NF; + else if (strcmp(dmx->field, "s") == 0) + stat[m+j] = GLP_NS; + else + dmx_error(dmx, "column status missing or invalid"); + dmx_read_field(dmx); + if (str2num(dmx->field, &prim[m+j]) != 0) + dmx_error(dmx, "column primal value missing or invalid"); + dmx_read_field(dmx); + if (str2num(dmx->field, &dual[m+j]) != 0) + dmx_error(dmx, "column dual value missing or invalid"); + dmx_end_of_line(dmx); + } + else if (strcmp(dmx->field, "e") == 0) + break; + else + dmx_error(dmx, "line designator missing or invalid"); + dmx_end_of_line(dmx); + } + /* store solution components into problem object */ + for (k = 1; k <= m+n; k++) + { if (stat[k] == '?') + dmx_error(dmx, "incomplete basic solution"); + } + P->pbs_stat = pst; + P->dbs_stat = dst; + P->obj_val = obj; + P->it_cnt = 0; + P->some = 0; + for (i = 1; i <= m; i++) + { glp_set_row_stat(P, i, stat[i]); + P->row[i]->prim = prim[i]; + P->row[i]->dual = dual[i]; + } + for (j = 1; j <= n; j++) + { glp_set_col_stat(P, j, stat[m+j]); + P->col[j]->prim = prim[m+j]; + P->col[j]->dual = dual[m+j]; + } + /* basic solution has been successfully read */ + xprintf("%d lines were read\n", dmx->count); + ret = 0; +done: if (dmx->fp != NULL) + glp_close(dmx->fp); + if (stat != NULL) + xfree(stat); + if (prim != NULL) + xfree(prim); + if (dual != NULL) + xfree(dual); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpnet05.c b/resources/3rdparty/glpk-4.65/src/api/rmfgen.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpnet05.c rename to resources/3rdparty/glpk-4.65/src/api/rmfgen.c index ea7ca6300..a1ba27bb6 100644 --- a/resources/3rdparty/glpk-4.57/src/glpnet05.c +++ b/resources/3rdparty/glpk-4.65/src/api/rmfgen.c @@ -1,4 +1,4 @@ -/* glpnet05.c (Goldfarb's maximum flow problem generator) */ +/* rmfgen.c (Goldfarb's maximum flow problem generator) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). diff --git a/resources/3rdparty/glpk-4.65/src/api/strong.c b/resources/3rdparty/glpk-4.65/src/api/strong.c new file mode 100644 index 000000000..9ddcacfbc --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/strong.c @@ -0,0 +1,110 @@ +/* strong.c (find all strongly connected components of graph) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" +#include "mc13d.h" + +/*********************************************************************** +* NAME +* +* glp_strong_comp - find all strongly connected components of graph +* +* SYNOPSIS +* +* int glp_strong_comp(glp_graph *G, int v_num); +* +* DESCRIPTION +* +* The routine glp_strong_comp finds all strongly connected components +* of the specified graph. +* +* The parameter v_num specifies an offset of the field of type int +* in the vertex data block, to which the routine stores the number of +* a strongly connected component containing that vertex. If v_num < 0, +* no component numbers are stored. +* +* The components are numbered in arbitrary order from 1 to nc, where +* nc is the total number of components found, 0 <= nc <= |V|. However, +* the component numbering has the property that for every arc (i->j) +* in the graph the condition num(i) >= num(j) holds. +* +* RETURNS +* +* The routine returns nc, the total number of components found. */ + +int glp_strong_comp(glp_graph *G, int v_num) +{ glp_vertex *v; + glp_arc *a; + int i, k, last, n, na, nc, *icn, *ip, *lenr, *ior, *ib, *lowl, + *numb, *prev; + if (v_num >= 0 && v_num > G->v_size - (int)sizeof(int)) + xerror("glp_strong_comp: v_num = %d; invalid offset\n", + v_num); + n = G->nv; + if (n == 0) + { nc = 0; + goto done; + } + na = G->na; + icn = xcalloc(1+na, sizeof(int)); + ip = xcalloc(1+n, sizeof(int)); + lenr = xcalloc(1+n, sizeof(int)); + ior = xcalloc(1+n, sizeof(int)); + ib = xcalloc(1+n, sizeof(int)); + lowl = xcalloc(1+n, sizeof(int)); + numb = xcalloc(1+n, sizeof(int)); + prev = xcalloc(1+n, sizeof(int)); + k = 1; + for (i = 1; i <= n; i++) + { v = G->v[i]; + ip[i] = k; + for (a = v->out; a != NULL; a = a->t_next) + icn[k++] = a->head->i; + lenr[i] = k - ip[i]; + } + xassert(na == k-1); + nc = mc13d(n, icn, ip, lenr, ior, ib, lowl, numb, prev); + if (v_num >= 0) + { xassert(ib[1] == 1); + for (k = 1; k <= nc; k++) + { last = (k < nc ? ib[k+1] : n+1); + xassert(ib[k] < last); + for (i = ib[k]; i < last; i++) + { v = G->v[ior[i]]; + memcpy((char *)v->data + v_num, &k, sizeof(int)); + } + } + } + xfree(icn); + xfree(ip); + xfree(lenr); + xfree(ior); + xfree(ib); + xfree(lowl); + xfree(numb); + xfree(prev); +done: return nc; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/topsort.c b/resources/3rdparty/glpk-4.65/src/api/topsort.c new file mode 100644 index 000000000..971937f2e --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/topsort.c @@ -0,0 +1,123 @@ +/* topsort.c (topological sorting of acyclic digraph) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" + +/*********************************************************************** +* NAME +* +* glp_top_sort - topological sorting of acyclic digraph +* +* SYNOPSIS +* +* int glp_top_sort(glp_graph *G, int v_num); +* +* DESCRIPTION +* +* The routine glp_top_sort performs topological sorting of vertices of +* the specified acyclic digraph. +* +* The parameter v_num specifies an offset of the field of type int in +* the vertex data block, to which the routine stores the vertex number +* assigned. If v_num < 0, vertex numbers are not stored. +* +* The vertices are numbered from 1 to n, where n is the total number +* of vertices in the graph. The vertex numbering has the property that +* for every arc (i->j) in the graph the condition num(i) < num(j) +* holds. Special case num(i) = 0 means that vertex i is not assigned a +* number, because the graph is *not* acyclic. +* +* RETURNS +* +* If the graph is acyclic and therefore all the vertices have been +* assigned numbers, the routine glp_top_sort returns zero. Otherwise, +* if the graph is not acyclic, the routine returns the number of +* vertices which have not been numbered, i.e. for which num(i) = 0. */ + +static int top_sort(glp_graph *G, int num[]) +{ glp_arc *a; + int i, j, cnt, top, *stack, *indeg; + /* allocate working arrays */ + indeg = xcalloc(1+G->nv, sizeof(int)); + stack = xcalloc(1+G->nv, sizeof(int)); + /* determine initial indegree of each vertex; push into the stack + the vertices having zero indegree */ + top = 0; + for (i = 1; i <= G->nv; i++) + { num[i] = indeg[i] = 0; + for (a = G->v[i]->in; a != NULL; a = a->h_next) + indeg[i]++; + if (indeg[i] == 0) + stack[++top] = i; + } + /* assign numbers to vertices in the sorted order */ + cnt = 0; + while (top > 0) + { /* pull vertex i from the stack */ + i = stack[top--]; + /* it has zero indegree in the current graph */ + xassert(indeg[i] == 0); + /* so assign it a next number */ + xassert(num[i] == 0); + num[i] = ++cnt; + /* remove vertex i from the current graph, update indegree of + its adjacent vertices, and push into the stack new vertices + whose indegree becomes zero */ + for (a = G->v[i]->out; a != NULL; a = a->t_next) + { j = a->head->i; + /* there exists arc (i->j) in the graph */ + xassert(indeg[j] > 0); + indeg[j]--; + if (indeg[j] == 0) + stack[++top] = j; + } + } + /* free working arrays */ + xfree(indeg); + xfree(stack); + return G->nv - cnt; +} + +int glp_top_sort(glp_graph *G, int v_num) +{ glp_vertex *v; + int i, cnt, *num; + if (v_num >= 0 && v_num > G->v_size - (int)sizeof(int)) + xerror("glp_top_sort: v_num = %d; invalid offset\n", v_num); + if (G->nv == 0) + { cnt = 0; + goto done; + } + num = xcalloc(1+G->nv, sizeof(int)); + cnt = top_sort(G, num); + if (v_num >= 0) + { for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + memcpy((char *)v->data + v_num, &num[i], sizeof(int)); + } + } + xfree(num); +done: return cnt; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpapi18.c b/resources/3rdparty/glpk-4.65/src/api/wcliqex.c similarity index 95% rename from resources/3rdparty/glpk-4.57/src/glpapi18.c rename to resources/3rdparty/glpk-4.65/src/api/wcliqex.c index 07ab490d5..53c2d5215 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi18.c +++ b/resources/3rdparty/glpk-4.65/src/api/wcliqex.c @@ -1,10 +1,9 @@ -/* glpapi18.c (maximum clique problem) */ +/* wcliqex.c (find maximum weight clique with exact algorithm) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +22,7 @@ ***********************************************************************/ #include "env.h" -#include "prob.h" +#include "glpk.h" #include "wclique.h" static void set_edge(int nv, unsigned char a[], int i, int j) diff --git a/resources/3rdparty/glpk-4.65/src/api/weak.c b/resources/3rdparty/glpk-4.65/src/api/weak.c new file mode 100644 index 000000000..027c09c14 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/weak.c @@ -0,0 +1,150 @@ +/* weak.c (find all weakly connected components of graph) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" + +/*********************************************************************** +* NAME +* +* glp_weak_comp - find all weakly connected components of graph +* +* SYNOPSIS +* +* int glp_weak_comp(glp_graph *G, int v_num); +* +* DESCRIPTION +* +* The routine glp_weak_comp finds all weakly connected components of +* the specified graph. +* +* The parameter v_num specifies an offset of the field of type int +* in the vertex data block, to which the routine stores the number of +* a (weakly) connected component containing that vertex. If v_num < 0, +* no component numbers are stored. +* +* The components are numbered in arbitrary order from 1 to nc, where +* nc is the total number of components found, 0 <= nc <= |V|. +* +* RETURNS +* +* The routine returns nc, the total number of components found. */ + +int glp_weak_comp(glp_graph *G, int v_num) +{ glp_vertex *v; + glp_arc *a; + int f, i, j, nc, nv, pos1, pos2, *prev, *next, *list; + if (v_num >= 0 && v_num > G->v_size - (int)sizeof(int)) + xerror("glp_weak_comp: v_num = %d; invalid offset\n", v_num); + nv = G->nv; + if (nv == 0) + { nc = 0; + goto done; + } + /* allocate working arrays */ + prev = xcalloc(1+nv, sizeof(int)); + next = xcalloc(1+nv, sizeof(int)); + list = xcalloc(1+nv, sizeof(int)); + /* if vertex i is unlabelled, prev[i] is the index of previous + unlabelled vertex, and next[i] is the index of next unlabelled + vertex; if vertex i is labelled, then prev[i] < 0, and next[i] + is the connected component number */ + /* initially all vertices are unlabelled */ + f = 1; + for (i = 1; i <= nv; i++) + prev[i] = i - 1, next[i] = i + 1; + next[nv] = 0; + /* main loop (until all vertices have been labelled) */ + nc = 0; + while (f != 0) + { /* take an unlabelled vertex */ + i = f; + /* and remove it from the list of unlabelled vertices */ + f = next[i]; + if (f != 0) prev[f] = 0; + /* label the vertex; it begins a new component */ + prev[i] = -1, next[i] = ++nc; + /* breadth first search */ + list[1] = i, pos1 = pos2 = 1; + while (pos1 <= pos2) + { /* dequeue vertex i */ + i = list[pos1++]; + /* consider all arcs incoming to vertex i */ + for (a = G->v[i]->in; a != NULL; a = a->h_next) + { /* vertex j is adjacent to vertex i */ + j = a->tail->i; + if (prev[j] >= 0) + { /* vertex j is unlabelled */ + /* remove it from the list of unlabelled vertices */ + if (prev[j] == 0) + f = next[j]; + else + next[prev[j]] = next[j]; + if (next[j] == 0) + ; + else + prev[next[j]] = prev[j]; + /* label the vertex */ + prev[j] = -1, next[j] = nc; + /* and enqueue it for further consideration */ + list[++pos2] = j; + } + } + /* consider all arcs outgoing from vertex i */ + for (a = G->v[i]->out; a != NULL; a = a->t_next) + { /* vertex j is adjacent to vertex i */ + j = a->head->i; + if (prev[j] >= 0) + { /* vertex j is unlabelled */ + /* remove it from the list of unlabelled vertices */ + if (prev[j] == 0) + f = next[j]; + else + next[prev[j]] = next[j]; + if (next[j] == 0) + ; + else + prev[next[j]] = prev[j]; + /* label the vertex */ + prev[j] = -1, next[j] = nc; + /* and enqueue it for further consideration */ + list[++pos2] = j; + } + } + } + } + /* store component numbers */ + if (v_num >= 0) + { for (i = 1; i <= nv; i++) + { v = G->v[i]; + memcpy((char *)v->data + v_num, &next[i], sizeof(int)); + } + } + /* free working arrays */ + xfree(prev); + xfree(next); + xfree(list); +done: return nc; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/wrasn.c b/resources/3rdparty/glpk-4.65/src/api/wrasn.c new file mode 100644 index 000000000..81433da86 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/wrasn.c @@ -0,0 +1,107 @@ +/* wrasn.c (write assignment problem data in DIMACS format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" + +#define xfprintf glp_format + +/*********************************************************************** +* NAME +* +* glp_write_asnprob - write assignment problem data in DIMACS format +* +* SYNOPSIS +* +* int glp_write_asnprob(glp_graph *G, int v_set, int a_cost, +* const char *fname); +* +* DESCRIPTION +* +* The routine glp_write_asnprob writes assignment problem data in +* DIMACS format to a text file. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_write_asnprob(glp_graph *G, int v_set, int a_cost, const char + *fname) +{ glp_file *fp; + glp_vertex *v; + glp_arc *a; + int i, k, count = 0, ret; + double cost; + if (v_set >= 0 && v_set > G->v_size - (int)sizeof(int)) + xerror("glp_write_asnprob: v_set = %d; invalid offset\n", + v_set); + if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) + xerror("glp_write_asnprob: a_cost = %d; invalid offset\n", + a_cost); + xprintf("Writing assignment problem data to '%s'...\n", fname); + fp = glp_open(fname, "w"); + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xfprintf(fp, "c %s\n", + G->name == NULL ? "unknown" : G->name), count++; + xfprintf(fp, "p asn %d %d\n", G->nv, G->na), count++; + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + if (v_set >= 0) + memcpy(&k, (char *)v->data + v_set, sizeof(int)); + else + k = (v->out != NULL ? 0 : 1); + if (k == 0) + xfprintf(fp, "n %d\n", i), count++; + } + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { if (a_cost >= 0) + memcpy(&cost, (char *)a->data + a_cost, sizeof(double)); + else + cost = 1.0; + xfprintf(fp, "a %d %d %.*g\n", + a->tail->i, a->head->i, DBL_DIG, cost), count++; + } + } + xfprintf(fp, "c eof\n"), count++; +#if 0 /* FIXME */ + xfflush(fp); +#endif + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xprintf("%d lines were written\n", count); + ret = 0; +done: if (fp != NULL) glp_close(fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/wrcc.c b/resources/3rdparty/glpk-4.65/src/api/wrcc.c new file mode 100644 index 000000000..2069c8ac2 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/wrcc.c @@ -0,0 +1,102 @@ +/* wrcc.c (write graph in DIMACS clique/coloring format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" + +#define xfprintf glp_format + +/*********************************************************************** +* NAME +* +* glp_write_ccdata - write graph in DIMACS clique/coloring format +* +* SYNOPSIS +* +* int glp_write_ccdata(glp_graph *G, int v_wgt, const char *fname); +* +* DESCRIPTION +* +* The routine glp_write_ccdata writes the specified graph in DIMACS +* clique/coloring format to a text file. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_write_ccdata(glp_graph *G, int v_wgt, const char *fname) +{ glp_file *fp; + glp_vertex *v; + glp_arc *e; + int i, count = 0, ret; + double w; + if (v_wgt >= 0 && v_wgt > G->v_size - (int)sizeof(double)) + xerror("glp_write_ccdata: v_wgt = %d; invalid offset\n", + v_wgt); + xprintf("Writing graph to '%s'\n", fname); + fp = glp_open(fname, "w"); + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xfprintf(fp, "c %s\n", + G->name == NULL ? "unknown" : G->name), count++; + xfprintf(fp, "p edge %d %d\n", G->nv, G->na), count++; + if (v_wgt >= 0) + { for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + memcpy(&w, (char *)v->data + v_wgt, sizeof(double)); + if (w != 1.0) + xfprintf(fp, "n %d %.*g\n", i, DBL_DIG, w), count++; + } + } + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + for (e = v->out; e != NULL; e = e->t_next) + xfprintf(fp, "e %d %d\n", e->tail->i, e->head->i), count++; + } + xfprintf(fp, "c eof\n"), count++; +#if 0 /* FIXME */ + xfflush(fp); +#endif + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xprintf("%d lines were written\n", count); + ret = 0; +done: if (fp != NULL) glp_close(fp); + return ret; +} + +/**********************************************************************/ + +int glp_write_graph(glp_graph *G, const char *fname) +{ return + glp_write_ccdata(G, -1, fname); +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/wrcnf.c b/resources/3rdparty/glpk-4.65/src/api/wrcnf.c new file mode 100644 index 000000000..c7974386d --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/wrcnf.c @@ -0,0 +1,87 @@ +/* wrcnf.c (write CNF-SAT problem data in DIMACS format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "prob.h" + +#define xfprintf glp_format + +int glp_write_cnfsat(glp_prob *P, const char *fname) +{ /* write CNF-SAT problem data in DIMACS format */ + glp_file *fp = NULL; + GLPAIJ *aij; + int i, j, len, count = 0, ret; + char s[50]; +#if 0 /* 04/IV-2016 */ + if (P == NULL || P->magic != GLP_PROB_MAGIC) + xerror("glp_write_cnfsat: P = %p; invalid problem object\n", + P); +#endif + if (glp_check_cnfsat(P) != 0) + { xprintf("glp_write_cnfsat: problem object does not encode CNF-" + "SAT instance\n"); + ret = 1; + goto done; + } + xprintf("Writing CNF-SAT problem data to '%s'...\n", fname); + fp = glp_open(fname, "w"); + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xfprintf(fp, "c %s\n", + P->name == NULL ? "unknown" : P->name), count++; + xfprintf(fp, "p cnf %d %d\n", P->n, P->m), count++; + for (i = 1; i <= P->m; i++) + { len = 0; + for (aij = P->row[i]->ptr; aij != NULL; aij = aij->r_next) + { j = aij->col->j; + if (aij->val < 0.0) j = -j; + sprintf(s, "%d", j); + if (len > 0 && len + 1 + strlen(s) > 72) + xfprintf(fp, "\n"), count++, len = 0; + xfprintf(fp, "%s%s", len == 0 ? "" : " ", s); + if (len > 0) len++; + len += strlen(s); + } + if (len > 0 && len + 1 + 1 > 72) + xfprintf(fp, "\n"), count++, len = 0; + xfprintf(fp, "%s0\n", len == 0 ? "" : " "), count++; + } + xfprintf(fp, "c eof\n"), count++; +#if 0 /* FIXME */ + xfflush(fp); +#endif + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xprintf("%d lines were written\n", count); + ret = 0; +done: if (fp != NULL) glp_close(fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/wript.c b/resources/3rdparty/glpk-4.65/src/api/wript.c new file mode 100644 index 000000000..f2ca802c7 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/wript.c @@ -0,0 +1,124 @@ +/* wript.c (write interior-point solution in GLPK format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "prob.h" + +/*********************************************************************** +* NAME +* +* glp_write_ipt - write interior-point solution in GLPK format +* +* SYNOPSIS +* +* int glp_write_ipt(glp_prob *P, const char *fname); +* +* DESCRIPTION +* +* The routine glp_write_ipt writes interior-point solution to a text +* file in GLPK format. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_write_ipt(glp_prob *P, const char *fname) +{ glp_file *fp; + GLPROW *row; + GLPCOL *col; + int i, j, count, ret = 1; + char *s; +#if 0 /* 04/IV-2016 */ + if (P == NULL || P->magic != GLP_PROB_MAGIC) + xerror("glp_write_ipt: P = %p; invalid problem object\n", P); +#endif + if (fname == NULL) + xerror("glp_write_ipt: fname = %d; invalid parameter\n", fname) + ; + xprintf("Writing interior-point solution to '%s'...\n", fname); + fp = glp_open(fname, "w"), count = 0; + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + goto done; + } + /* write comment lines */ + glp_format(fp, "c %-12s%s\n", "Problem:", + P->name == NULL ? "" : P->name), count++; + glp_format(fp, "c %-12s%d\n", "Rows:", P->m), count++; + glp_format(fp, "c %-12s%d\n", "Columns:", P->n), count++; + glp_format(fp, "c %-12s%d\n", "Non-zeros:", P->nnz), count++; + switch (P->ipt_stat) + { case GLP_OPT: s = "OPTIMAL"; break; + case GLP_INFEAS: s = "INFEASIBLE (INTERMEDIATE)"; break; + case GLP_NOFEAS: s = "INFEASIBLE (FINAL)"; break; + case GLP_UNDEF: s = "UNDEFINED"; break; + default: s = "???"; break; + } + glp_format(fp, "c %-12s%s\n", "Status:", s), count++; + switch (P->dir) + { case GLP_MIN: s = "MINimum"; break; + case GLP_MAX: s = "MAXimum"; break; + default: s = "???"; break; + } + glp_format(fp, "c %-12s%s%s%.10g (%s)\n", "Objective:", + P->obj == NULL ? "" : P->obj, + P->obj == NULL ? "" : " = ", P->ipt_obj, s), count++; + glp_format(fp, "c\n"), count++; + /* write solution line */ + glp_format(fp, "s ipt %d %d ", P->m, P->n), count++; + switch (P->ipt_stat) + { case GLP_OPT: glp_format(fp, "o"); break; + case GLP_INFEAS: glp_format(fp, "i"); break; + case GLP_NOFEAS: glp_format(fp, "n"); break; + case GLP_UNDEF: glp_format(fp, "u"); break; + default: glp_format(fp, "?"); break; + } + glp_format(fp, " %.*g\n", DBL_DIG, P->ipt_obj); + /* write row solution descriptor lines */ + for (i = 1; i <= P->m; i++) + { row = P->row[i]; + glp_format(fp, "i %d %.*g %.*g\n", i, DBL_DIG, row->pval, + DBL_DIG, row->dval), count++; + } + /* write column solution descriptor lines */ + for (j = 1; j <= P->n; j++) + { col = P->col[j]; + glp_format(fp, "j %d %.*g %.*g\n", j, DBL_DIG, col->pval, + DBL_DIG, col->dval), count++; + } + /* write end line */ + glp_format(fp, "e o f\n"), count++; + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + goto done; + } + /* interior-point solution has been successfully written */ + xprintf("%d lines were written\n", count); + ret = 0; +done: if (fp != NULL) + glp_close(fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/wrmaxf.c b/resources/3rdparty/glpk-4.65/src/api/wrmaxf.c new file mode 100644 index 000000000..d3101ca89 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/wrmaxf.c @@ -0,0 +1,104 @@ +/* wrmaxf.c (write maximum flow problem data in DIMACS format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" + +#define xfprintf glp_format + +/*********************************************************************** +* NAME +* +* glp_write_maxflow - write maximum flow problem data in DIMACS format +* +* SYNOPSIS +* +* int glp_write_maxflow(glp_graph *G, int s, int t, int a_cap, +* const char *fname); +* +* DESCRIPTION +* +* The routine glp_write_maxflow writes maximum flow problem data in +* DIMACS format to a text file. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_write_maxflow(glp_graph *G, int s, int t, int a_cap, + const char *fname) +{ glp_file *fp; + glp_vertex *v; + glp_arc *a; + int i, count = 0, ret; + double cap; + if (!(1 <= s && s <= G->nv)) + xerror("glp_write_maxflow: s = %d; source node number out of r" + "ange\n", s); + if (!(1 <= t && t <= G->nv)) + xerror("glp_write_maxflow: t = %d: sink node number out of ran" + "ge\n", t); + if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) + xerror("glp_write_mincost: a_cap = %d; invalid offset\n", + a_cap); + xprintf("Writing maximum flow problem data to '%s'...\n", + fname); + fp = glp_open(fname, "w"); + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xfprintf(fp, "c %s\n", + G->name == NULL ? "unknown" : G->name), count++; + xfprintf(fp, "p max %d %d\n", G->nv, G->na), count++; + xfprintf(fp, "n %d s\n", s), count++; + xfprintf(fp, "n %d t\n", t), count++; + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { if (a_cap >= 0) + memcpy(&cap, (char *)a->data + a_cap, sizeof(double)); + else + cap = 1.0; + xfprintf(fp, "a %d %d %.*g\n", + a->tail->i, a->head->i, DBL_DIG, cap), count++; + } + } + xfprintf(fp, "c eof\n"), count++; +#if 0 /* FIXME */ + xfflush(fp); +#endif + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xprintf("%d lines were written\n", count); + ret = 0; +done: if (fp != NULL) glp_close(fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/wrmcf.c b/resources/3rdparty/glpk-4.65/src/api/wrmcf.c new file mode 100644 index 000000000..0da37f421 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/wrmcf.c @@ -0,0 +1,122 @@ +/* wrmcf.c (write min-cost flow problem data in DIMACS format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "glpk.h" + +#define xfprintf glp_format + +/*********************************************************************** +* NAME +* +* glp_write_mincost - write min-cost flow probl. data in DIMACS format +* +* SYNOPSIS +* +* int glp_write_mincost(glp_graph *G, int v_rhs, int a_low, int a_cap, +* int a_cost, const char *fname); +* +* DESCRIPTION +* +* The routine glp_write_mincost writes minimum cost flow problem data +* in DIMACS format to a text file. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_write_mincost(glp_graph *G, int v_rhs, int a_low, int a_cap, + int a_cost, const char *fname) +{ glp_file *fp; + glp_vertex *v; + glp_arc *a; + int i, count = 0, ret; + double rhs, low, cap, cost; + if (v_rhs >= 0 && v_rhs > G->v_size - (int)sizeof(double)) + xerror("glp_write_mincost: v_rhs = %d; invalid offset\n", + v_rhs); + if (a_low >= 0 && a_low > G->a_size - (int)sizeof(double)) + xerror("glp_write_mincost: a_low = %d; invalid offset\n", + a_low); + if (a_cap >= 0 && a_cap > G->a_size - (int)sizeof(double)) + xerror("glp_write_mincost: a_cap = %d; invalid offset\n", + a_cap); + if (a_cost >= 0 && a_cost > G->a_size - (int)sizeof(double)) + xerror("glp_write_mincost: a_cost = %d; invalid offset\n", + a_cost); + xprintf("Writing min-cost flow problem data to '%s'...\n", + fname); + fp = glp_open(fname, "w"); + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xfprintf(fp, "c %s\n", + G->name == NULL ? "unknown" : G->name), count++; + xfprintf(fp, "p min %d %d\n", G->nv, G->na), count++; + if (v_rhs >= 0) + { for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + memcpy(&rhs, (char *)v->data + v_rhs, sizeof(double)); + if (rhs != 0.0) + xfprintf(fp, "n %d %.*g\n", i, DBL_DIG, rhs), count++; + } + } + for (i = 1; i <= G->nv; i++) + { v = G->v[i]; + for (a = v->out; a != NULL; a = a->t_next) + { if (a_low >= 0) + memcpy(&low, (char *)a->data + a_low, sizeof(double)); + else + low = 0.0; + if (a_cap >= 0) + memcpy(&cap, (char *)a->data + a_cap, sizeof(double)); + else + cap = 1.0; + if (a_cost >= 0) + memcpy(&cost, (char *)a->data + a_cost, sizeof(double)); + else + cost = 0.0; + xfprintf(fp, "a %d %d %.*g %.*g %.*g\n", + a->tail->i, a->head->i, DBL_DIG, low, DBL_DIG, cap, + DBL_DIG, cost), count++; + } + } + xfprintf(fp, "c eof\n"), count++; +#if 0 /* FIXME */ + xfflush(fp); +#endif + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xprintf("%d lines were written\n", count); + ret = 0; +done: if (fp != NULL) glp_close(fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/wrmip.c b/resources/3rdparty/glpk-4.65/src/api/wrmip.c new file mode 100644 index 000000000..407a5fec6 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/wrmip.c @@ -0,0 +1,122 @@ +/* wrmip.c (write MIP solution in GLPK format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "prob.h" + +/*********************************************************************** +* NAME +* +* glp_write_mip - write MIP solution in GLPK format +* +* SYNOPSIS +* +* int glp_write_mip(glp_prob *P, const char *fname); +* +* DESCRIPTION +* +* The routine glp_write_mip writes MIP solution to a text file in GLPK +* format. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_write_mip(glp_prob *P, const char *fname) +{ glp_file *fp; + GLPROW *row; + GLPCOL *col; + int i, j, count, ret = 1; + char *s; +#if 0 /* 04/IV-2016 */ + if (P == NULL || P->magic != GLP_PROB_MAGIC) + xerror("glp_write_mip: P = %p; invalid problem object\n", P); +#endif + if (fname == NULL) + xerror("glp_write_mip: fname = %d; invalid parameter\n", fname) + ; + xprintf("Writing MIP solution to '%s'...\n", fname); + fp = glp_open(fname, "w"), count = 0; + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + goto done; + } + /* write comment lines */ + glp_format(fp, "c %-12s%s\n", "Problem:", + P->name == NULL ? "" : P->name), count++; + glp_format(fp, "c %-12s%d\n", "Rows:", P->m), count++; + glp_format(fp, "c %-12s%d\n", "Columns:", P->n), count++; + glp_format(fp, "c %-12s%d\n", "Non-zeros:", P->nnz), count++; + switch (P->mip_stat) + { case GLP_OPT: s = "INTEGER OPTIMAL"; break; + case GLP_FEAS: s = "INTEGER NON-OPTIMAL"; break; + case GLP_NOFEAS: s = "INTEGER EMPTY"; break; + case GLP_UNDEF: s = "INTEGER UNDEFINED"; break; + default: s = "???"; break; + } + glp_format(fp, "c %-12s%s\n", "Status:", s), count++; + switch (P->dir) + { case GLP_MIN: s = "MINimum"; break; + case GLP_MAX: s = "MAXimum"; break; + default: s = "???"; break; + } + glp_format(fp, "c %-12s%s%s%.10g (%s)\n", "Objective:", + P->obj == NULL ? "" : P->obj, + P->obj == NULL ? "" : " = ", P->mip_obj, s), count++; + glp_format(fp, "c\n"), count++; + /* write solution line */ + glp_format(fp, "s mip %d %d ", P->m, P->n), count++; + switch (P->mip_stat) + { case GLP_OPT: glp_format(fp, "o"); break; + case GLP_FEAS: glp_format(fp, "f"); break; + case GLP_NOFEAS: glp_format(fp, "n"); break; + case GLP_UNDEF: glp_format(fp, "u"); break; + default: glp_format(fp, "?"); break; + } + glp_format(fp, " %.*g\n", DBL_DIG, P->mip_obj); + /* write row solution descriptor lines */ + for (i = 1; i <= P->m; i++) + { row = P->row[i]; + glp_format(fp, "i %d %.*g\n", i, DBL_DIG, row->mipx), count++; + } + /* write column solution descriptor lines */ + for (j = 1; j <= P->n; j++) + { col = P->col[j]; + glp_format(fp, "j %d %.*g\n", j, DBL_DIG, col->mipx), count++; + } + /* write end line */ + glp_format(fp, "e o f\n"), count++; + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + goto done; + } + /* MIP solution has been successfully written */ + xprintf("%d lines were written\n", count); + ret = 0; +done: if (fp != NULL) + glp_close(fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/wrprob.c b/resources/3rdparty/glpk-4.65/src/api/wrprob.c new file mode 100644 index 000000000..99983d35f --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/wrprob.c @@ -0,0 +1,166 @@ +/* wrprob.c (write problem data in GLPK format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "prob.h" + +#define xfprintf glp_format + +/*********************************************************************** +* NAME +* +* glp_write_prob - write problem data in GLPK format +* +* SYNOPSIS +* +* int glp_write_prob(glp_prob *P, int flags, const char *fname); +* +* The routine glp_write_prob writes problem data in GLPK LP/MIP format +* to a text file. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_write_prob(glp_prob *P, int flags, const char *fname) +{ glp_file *fp; + GLPROW *row; + GLPCOL *col; + GLPAIJ *aij; + int mip, i, j, count, ret; +#if 0 /* 04/IV-2016 */ + if (P == NULL || P->magic != GLP_PROB_MAGIC) + xerror("glp_write_prob: P = %p; invalid problem object\n", + P); +#endif + if (flags != 0) + xerror("glp_write_prob: flags = %d; invalid parameter\n", + flags); + if (fname == NULL) + xerror("glp_write_prob: fname = %d; invalid parameter\n", + fname); + xprintf("Writing problem data to '%s'...\n", fname); + fp = glp_open(fname, "w"), count = 0; + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + /* write problem line */ + mip = (glp_get_num_int(P) > 0); + xfprintf(fp, "p %s %s %d %d %d\n", !mip ? "lp" : "mip", + P->dir == GLP_MIN ? "min" : P->dir == GLP_MAX ? "max" : "???", + P->m, P->n, P->nnz), count++; + if (P->name != NULL) + xfprintf(fp, "n p %s\n", P->name), count++; + if (P->obj != NULL) + xfprintf(fp, "n z %s\n", P->obj), count++; + /* write row descriptors */ + for (i = 1; i <= P->m; i++) + { row = P->row[i]; + if (row->type == GLP_FX && row->lb == 0.0) + goto skip1; + xfprintf(fp, "i %d ", i), count++; + if (row->type == GLP_FR) + xfprintf(fp, "f\n"); + else if (row->type == GLP_LO) + xfprintf(fp, "l %.*g\n", DBL_DIG, row->lb); + else if (row->type == GLP_UP) + xfprintf(fp, "u %.*g\n", DBL_DIG, row->ub); + else if (row->type == GLP_DB) + xfprintf(fp, "d %.*g %.*g\n", DBL_DIG, row->lb, DBL_DIG, + row->ub); + else if (row->type == GLP_FX) + xfprintf(fp, "s %.*g\n", DBL_DIG, row->lb); + else + xassert(row != row); +skip1: if (row->name != NULL) + xfprintf(fp, "n i %d %s\n", i, row->name), count++; + } + /* write column descriptors */ + for (j = 1; j <= P->n; j++) + { col = P->col[j]; + if (!mip && col->type == GLP_LO && col->lb == 0.0) + goto skip2; + if (mip && col->kind == GLP_IV && col->type == GLP_DB && + col->lb == 0.0 && col->ub == 1.0) + goto skip2; + xfprintf(fp, "j %d ", j), count++; + if (mip) + { if (col->kind == GLP_CV) + xfprintf(fp, "c "); + else if (col->kind == GLP_IV) + xfprintf(fp, "i "); + else + xassert(col != col); + } + if (col->type == GLP_FR) + xfprintf(fp, "f\n"); + else if (col->type == GLP_LO) + xfprintf(fp, "l %.*g\n", DBL_DIG, col->lb); + else if (col->type == GLP_UP) + xfprintf(fp, "u %.*g\n", DBL_DIG, col->ub); + else if (col->type == GLP_DB) + xfprintf(fp, "d %.*g %.*g\n", DBL_DIG, col->lb, DBL_DIG, + col->ub); + else if (col->type == GLP_FX) + xfprintf(fp, "s %.*g\n", DBL_DIG, col->lb); + else + xassert(col != col); +skip2: if (col->name != NULL) + xfprintf(fp, "n j %d %s\n", j, col->name), count++; + } + /* write objective coefficient descriptors */ + if (P->c0 != 0.0) + xfprintf(fp, "a 0 0 %.*g\n", DBL_DIG, P->c0), count++; + for (j = 1; j <= P->n; j++) + { col = P->col[j]; + if (col->coef != 0.0) + xfprintf(fp, "a 0 %d %.*g\n", j, DBL_DIG, col->coef), + count++; + } + /* write constraint coefficient descriptors */ + for (i = 1; i <= P->m; i++) + { row = P->row[i]; + for (aij = row->ptr; aij != NULL; aij = aij->r_next) + xfprintf(fp, "a %d %d %.*g\n", i, aij->col->j, DBL_DIG, + aij->val), count++; + } + /* write end line */ + xfprintf(fp, "e o f\n"), count++; +#if 0 /* FIXME */ + xfflush(fp); +#endif + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + ret = 1; + goto done; + } + xprintf("%d lines were written\n", count); + ret = 0; +done: if (fp != NULL) glp_close(fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/api/wrsol.c b/resources/3rdparty/glpk-4.65/src/api/wrsol.c new file mode 100644 index 000000000..66c692337 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/api/wrsol.c @@ -0,0 +1,174 @@ +/* wrsol.c (write basic solution in GLPK format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2010-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "prob.h" + +/*********************************************************************** +* NAME +* +* glp_write_sol - write basic solution in GLPK format +* +* SYNOPSIS +* +* int glp_write_sol(glp_prob *P, const char *fname); +* +* DESCRIPTION +* +* The routine glp_write_sol writes basic solution to a text file in +* GLPK format. +* +* RETURNS +* +* If the operation was successful, the routine returns zero. Otherwise +* it prints an error message and returns non-zero. */ + +int glp_write_sol(glp_prob *P, const char *fname) +{ glp_file *fp; + GLPROW *row; + GLPCOL *col; + int i, j, count, ret = 1; + char *s; +#if 0 /* 04/IV-2016 */ + if (P == NULL || P->magic != GLP_PROB_MAGIC) + xerror("glp_write_sol: P = %p; invalid problem object\n", P); +#endif + if (fname == NULL) + xerror("glp_write_sol: fname = %d; invalid parameter\n", fname) + ; + xprintf("Writing basic solution to '%s'...\n", fname); + fp = glp_open(fname, "w"), count = 0; + if (fp == NULL) + { xprintf("Unable to create '%s' - %s\n", fname, get_err_msg()); + goto done; + } + /* write comment lines */ + glp_format(fp, "c %-12s%s\n", "Problem:", + P->name == NULL ? "" : P->name), count++; + glp_format(fp, "c %-12s%d\n", "Rows:", P->m), count++; + glp_format(fp, "c %-12s%d\n", "Columns:", P->n), count++; + glp_format(fp, "c %-12s%d\n", "Non-zeros:", P->nnz), count++; + switch (glp_get_status(P)) + { case GLP_OPT: s = "OPTIMAL"; break; + case GLP_FEAS: s = "FEASIBLE"; break; + case GLP_INFEAS: s = "INFEASIBLE (INTERMEDIATE)"; break; + case GLP_NOFEAS: s = "INFEASIBLE (FINAL)"; break; + case GLP_UNBND: s = "UNBOUNDED"; break; + case GLP_UNDEF: s = "UNDEFINED"; break; + default: s = "???"; break; + } + glp_format(fp, "c %-12s%s\n", "Status:", s), count++; + switch (P->dir) + { case GLP_MIN: s = "MINimum"; break; + case GLP_MAX: s = "MAXimum"; break; + default: s = "???"; break; + } + glp_format(fp, "c %-12s%s%s%.10g (%s)\n", "Objective:", + P->obj == NULL ? "" : P->obj, + P->obj == NULL ? "" : " = ", P->obj_val, s), count++; + glp_format(fp, "c\n"), count++; + /* write solution line */ + glp_format(fp, "s bas %d %d ", P->m, P->n), count++; + switch (P->pbs_stat) + { case GLP_UNDEF: glp_format(fp, "u"); break; + case GLP_FEAS: glp_format(fp, "f"); break; + case GLP_INFEAS: glp_format(fp, "i"); break; + case GLP_NOFEAS: glp_format(fp, "n"); break; + default: glp_format(fp, "?"); break; + } + glp_format(fp, " "); + switch (P->dbs_stat) + { case GLP_UNDEF: glp_format(fp, "u"); break; + case GLP_FEAS: glp_format(fp, "f"); break; + case GLP_INFEAS: glp_format(fp, "i"); break; + case GLP_NOFEAS: glp_format(fp, "n"); break; + default: glp_format(fp, "?"); break; + } + glp_format(fp, " %.*g\n", DBL_DIG, P->obj_val); + /* write row solution descriptor lines */ + for (i = 1; i <= P->m; i++) + { row = P->row[i]; + glp_format(fp, "i %d ", i), count++; + switch (row->stat) + { case GLP_BS: + glp_format(fp, "b"); + break; + case GLP_NL: + glp_format(fp, "l"); + break; + case GLP_NU: + glp_format(fp, "u"); + break; + case GLP_NF: + glp_format(fp, "f"); + break; + case GLP_NS: + glp_format(fp, "s"); + break; + default: + xassert(row != row); + } + glp_format(fp, " %.*g %.*g\n", DBL_DIG, row->prim, DBL_DIG, + row->dual); + } + /* write column solution descriptor lines */ + for (j = 1; j <= P->n; j++) + { col = P->col[j]; + glp_format(fp, "j %d ", j), count++; + switch (col->stat) + { case GLP_BS: + glp_format(fp, "b"); + break; + case GLP_NL: + glp_format(fp, "l"); + break; + case GLP_NU: + glp_format(fp, "u"); + break; + case GLP_NF: + glp_format(fp, "f"); + break; + case GLP_NS: + glp_format(fp, "s"); + break; + default: + xassert(col != col); + } + glp_format(fp, " %.*g %.*g\n", DBL_DIG, col->prim, DBL_DIG, + col->dual); + } + /* write end line */ + glp_format(fp, "e o f\n"), count++; + if (glp_ioerr(fp)) + { xprintf("Write error on '%s' - %s\n", fname, get_err_msg()); + goto done; + } + /* basic solution has been successfully written */ + xprintf("%d lines were written\n", count); + ret = 0; +done: if (fp != NULL) + glp_close(fp); + return ret; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/bflib/btf.c b/resources/3rdparty/glpk-4.65/src/bflib/btf.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/btf.c rename to resources/3rdparty/glpk-4.65/src/bflib/btf.c diff --git a/resources/3rdparty/glpk-4.57/src/bflib/btf.h b/resources/3rdparty/glpk-4.65/src/bflib/btf.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/btf.h rename to resources/3rdparty/glpk-4.65/src/bflib/btf.h diff --git a/resources/3rdparty/glpk-4.57/src/bflib/btfint.c b/resources/3rdparty/glpk-4.65/src/bflib/btfint.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/btfint.c rename to resources/3rdparty/glpk-4.65/src/bflib/btfint.c diff --git a/resources/3rdparty/glpk-4.57/src/bflib/btfint.h b/resources/3rdparty/glpk-4.65/src/bflib/btfint.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/btfint.h rename to resources/3rdparty/glpk-4.65/src/bflib/btfint.h diff --git a/resources/3rdparty/glpk-4.57/src/bflib/fhv.c b/resources/3rdparty/glpk-4.65/src/bflib/fhv.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/fhv.c rename to resources/3rdparty/glpk-4.65/src/bflib/fhv.c diff --git a/resources/3rdparty/glpk-4.57/src/bflib/fhv.h b/resources/3rdparty/glpk-4.65/src/bflib/fhv.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/fhv.h rename to resources/3rdparty/glpk-4.65/src/bflib/fhv.h diff --git a/resources/3rdparty/glpk-4.57/src/bflib/fhvint.c b/resources/3rdparty/glpk-4.65/src/bflib/fhvint.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/fhvint.c rename to resources/3rdparty/glpk-4.65/src/bflib/fhvint.c diff --git a/resources/3rdparty/glpk-4.57/src/bflib/fhvint.h b/resources/3rdparty/glpk-4.65/src/bflib/fhvint.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/fhvint.h rename to resources/3rdparty/glpk-4.65/src/bflib/fhvint.h diff --git a/resources/3rdparty/glpk-4.57/src/bflib/ifu.c b/resources/3rdparty/glpk-4.65/src/bflib/ifu.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/ifu.c rename to resources/3rdparty/glpk-4.65/src/bflib/ifu.c diff --git a/resources/3rdparty/glpk-4.57/src/bflib/ifu.h b/resources/3rdparty/glpk-4.65/src/bflib/ifu.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/ifu.h rename to resources/3rdparty/glpk-4.65/src/bflib/ifu.h diff --git a/resources/3rdparty/glpk-4.57/src/bflib/luf.c b/resources/3rdparty/glpk-4.65/src/bflib/luf.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/luf.c rename to resources/3rdparty/glpk-4.65/src/bflib/luf.c diff --git a/resources/3rdparty/glpk-4.57/src/bflib/luf.h b/resources/3rdparty/glpk-4.65/src/bflib/luf.h similarity index 99% rename from resources/3rdparty/glpk-4.57/src/bflib/luf.h rename to resources/3rdparty/glpk-4.65/src/bflib/luf.h index d9264095a..5634a7530 100644 --- a/resources/3rdparty/glpk-4.57/src/bflib/luf.h +++ b/resources/3rdparty/glpk-4.65/src/bflib/luf.h @@ -82,7 +82,7 @@ struct LUF /*--------------------------------------------------------------*/ /* matrix F in column-wise format */ /* during the factorization process this object is constructed - by columns */ + * by columns */ int fc_ref; /* reference number of sparse vector in SVA, which is the first * column of matrix F */ diff --git a/resources/3rdparty/glpk-4.57/src/bflib/lufint.c b/resources/3rdparty/glpk-4.65/src/bflib/lufint.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/lufint.c rename to resources/3rdparty/glpk-4.65/src/bflib/lufint.c diff --git a/resources/3rdparty/glpk-4.57/src/bflib/lufint.h b/resources/3rdparty/glpk-4.65/src/bflib/lufint.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/lufint.h rename to resources/3rdparty/glpk-4.65/src/bflib/lufint.h diff --git a/resources/3rdparty/glpk-4.57/src/bflib/scf.c b/resources/3rdparty/glpk-4.65/src/bflib/scf.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/scf.c rename to resources/3rdparty/glpk-4.65/src/bflib/scf.c diff --git a/resources/3rdparty/glpk-4.57/src/bflib/scf.h b/resources/3rdparty/glpk-4.65/src/bflib/scf.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/scf.h rename to resources/3rdparty/glpk-4.65/src/bflib/scf.h diff --git a/resources/3rdparty/glpk-4.57/src/bflib/scfint.c b/resources/3rdparty/glpk-4.65/src/bflib/scfint.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/scfint.c rename to resources/3rdparty/glpk-4.65/src/bflib/scfint.c diff --git a/resources/3rdparty/glpk-4.57/src/bflib/scfint.h b/resources/3rdparty/glpk-4.65/src/bflib/scfint.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/scfint.h rename to resources/3rdparty/glpk-4.65/src/bflib/scfint.h diff --git a/resources/3rdparty/glpk-4.57/src/bflib/sgf.c b/resources/3rdparty/glpk-4.65/src/bflib/sgf.c similarity index 98% rename from resources/3rdparty/glpk-4.57/src/bflib/sgf.c rename to resources/3rdparty/glpk-4.65/src/bflib/sgf.c index 4000c8a55..1c1f49a63 100644 --- a/resources/3rdparty/glpk-4.57/src/bflib/sgf.c +++ b/resources/3rdparty/glpk-4.65/src/bflib/sgf.c @@ -59,7 +59,12 @@ * used. However, processing row and column singletons by the routines * sgf_minimize_nuc and sgf_singl_phase is more efficient. */ -void sgf_reduce_nuc(LUF *luf, int *k1_, int *k2_, int cnt[/*1+n*/], +#if 1 /* 21/II-2016 */ +/* Normally this routine returns zero. If the matrix is structurally +* singular, the routine returns non-zero. */ +#endif + +int sgf_reduce_nuc(LUF *luf, int *k1_, int *k2_, int cnt[/*1+n*/], int list[/*1+n*/]) { int n = luf->n; SVA *sva = luf->sva; @@ -91,15 +96,14 @@ void sgf_reduce_nuc(LUF *luf, int *k1_, int *k2_, int cnt[/*1+n*/], while (ns > 0) { /* column singleton is in j-th column of V */ j = list[ns--]; -#if 1 /* 25/IX-2015 */ +#if 1 /* 21/II-2016 */ if (cnt[j] == 0) { /* j-th column in the current nucleus is actually empty */ /* this happened because on a previous step in the nucleus * there were two or more identical column singletons (that * means structural singularity), so removing one of them * from the nucleus made other columns empty */ - /* do not remove empty column from the nucleus */ - continue; + return 1; } #endif /* find i-th row of V containing column singleton */ @@ -149,12 +153,11 @@ void sgf_reduce_nuc(LUF *luf, int *k1_, int *k2_, int cnt[/*1+n*/], while (ns > 0) { /* row singleton is in i-th row of V */ i = list[ns--]; -#if 1 /* 25/IX-2015 */ +#if 1 /* 21/II-2016 */ if (cnt[i] == 0) { /* i-th row in the current nucleus is actually empty */ /* (see comments above for similar case of empty column) */ - /* do not remove empty row from the nucleus */ - continue; + return 2; } #endif /* find j-th column of V containing row singleton */ @@ -183,7 +186,7 @@ void sgf_reduce_nuc(LUF *luf, int *k1_, int *k2_, int cnt[/*1+n*/], /* nucleus ends at k2-th row/column of U */ xassert(k1 < k2); done: *k1_ = k1, *k2_ = k2; - return; + return 0; } /*********************************************************************** @@ -1294,6 +1297,11 @@ int sgf_dense_phase(LUF *luf, int k, int updat) * returns k (information on linearly dependent rows/columns in this * case is provided by matrices P and Q). */ +#if 1 /* 21/II-2016 */ +/* If the matrix A is structurally singular, the routine returns -1. +* NOTE: This case can be detected only if the singl flag is set. */ +#endif + int sgf_factorize(SGF *sgf, int singl) { LUF *luf = sgf->luf; int n = luf->n; @@ -1335,7 +1343,12 @@ int sgf_factorize(SGF *sgf, int singl) } else { /* minimize nucleus size */ +#if 0 /* 21/II-2016 */ sgf_reduce_nuc(luf, &k1, &k2, rs_prev, rs_next); +#else + if (sgf_reduce_nuc(luf, &k1, &k2, rs_prev, rs_next)) + return -1; +#endif #ifdef GLP_DEBUG xprintf("n = %d; k1 = %d; k2 = %d\n", n, k1, k2); #endif diff --git a/resources/3rdparty/glpk-4.57/src/bflib/sgf.h b/resources/3rdparty/glpk-4.65/src/bflib/sgf.h similarity index 99% rename from resources/3rdparty/glpk-4.57/src/bflib/sgf.h rename to resources/3rdparty/glpk-4.65/src/bflib/sgf.h index 04d528cb7..4f744610e 100644 --- a/resources/3rdparty/glpk-4.57/src/bflib/sgf.h +++ b/resources/3rdparty/glpk-4.65/src/bflib/sgf.h @@ -169,7 +169,7 @@ struct SGF /* remove j-th column of matrix V from active set C[len] */ #define sgf_reduce_nuc _glp_sgf_reduce_nuc -void sgf_reduce_nuc(LUF *luf, int *k1, int *k2, int cnt[/*1+n*/], +int sgf_reduce_nuc(LUF *luf, int *k1, int *k2, int cnt[/*1+n*/], int list[/*1+n*/]); /* initial reordering to minimize nucleus size */ diff --git a/resources/3rdparty/glpk-4.57/src/bflib/sva.c b/resources/3rdparty/glpk-4.65/src/bflib/sva.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/sva.c rename to resources/3rdparty/glpk-4.65/src/bflib/sva.c diff --git a/resources/3rdparty/glpk-4.57/src/bflib/sva.h b/resources/3rdparty/glpk-4.65/src/bflib/sva.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bflib/sva.h rename to resources/3rdparty/glpk-4.65/src/bflib/sva.h diff --git a/resources/3rdparty/glpk-4.57/src/colamd/COPYING b/resources/3rdparty/glpk-4.65/src/colamd/COPYING similarity index 100% rename from resources/3rdparty/glpk-4.57/src/colamd/COPYING rename to resources/3rdparty/glpk-4.65/src/colamd/COPYING diff --git a/resources/3rdparty/glpk-4.57/src/colamd/README b/resources/3rdparty/glpk-4.65/src/colamd/README similarity index 100% rename from resources/3rdparty/glpk-4.57/src/colamd/README rename to resources/3rdparty/glpk-4.65/src/colamd/README diff --git a/resources/3rdparty/glpk-4.57/src/colamd/colamd.c b/resources/3rdparty/glpk-4.65/src/colamd/colamd.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/colamd/colamd.c rename to resources/3rdparty/glpk-4.65/src/colamd/colamd.c diff --git a/resources/3rdparty/glpk-4.57/src/colamd/colamd.h b/resources/3rdparty/glpk-4.65/src/colamd/colamd.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/colamd/colamd.h rename to resources/3rdparty/glpk-4.65/src/colamd/colamd.h diff --git a/resources/3rdparty/glpk-4.57/src/bfd.c b/resources/3rdparty/glpk-4.65/src/draft/bfd.c similarity index 94% rename from resources/3rdparty/glpk-4.57/src/bfd.c rename to resources/3rdparty/glpk-4.65/src/draft/bfd.c index 9e70619dc..dece376ca 100644 --- a/resources/3rdparty/glpk-4.57/src/bfd.c +++ b/resources/3rdparty/glpk-4.65/src/draft/bfd.c @@ -358,6 +358,24 @@ void bfd_ftran(BFD *bfd, double x[]) return; } +#if 1 /* 30/III-2016 */ +void bfd_ftran_s(BFD *bfd, FVS *x) +{ /* sparse version of bfd_ftran */ + /* (sparse mode is not implemented yet) */ + int n = x->n; + int *ind = x->ind; + double *vec = x->vec; + int j, nnz = 0; + bfd_ftran(bfd, vec); + for (j = n; j >= 1; j--) + { if (vec[j] != 0.0) + ind[++nnz] = j; + } + x->nnz = nnz; + return; +} +#endif + void bfd_btran(BFD *bfd, double x[]) { /* perform backward transformation (solve system B'* x = b) */ #ifdef GLP_DEBUG @@ -399,6 +417,24 @@ void bfd_btran(BFD *bfd, double x[]) return; } +#if 1 /* 30/III-2016 */ +void bfd_btran_s(BFD *bfd, FVS *x) +{ /* sparse version of bfd_btran */ + /* (sparse mode is not implemented yet) */ + int n = x->n; + int *ind = x->ind; + double *vec = x->vec; + int j, nnz = 0; + bfd_btran(bfd, vec); + for (j = n; j >= 1; j--) + { if (vec[j] != 0.0) + ind[++nnz] = j; + } + x->nnz = nnz; + return; +} +#endif + int bfd_update(BFD *bfd, int j, int len, const int ind[], const double val[]) { /* update LP basis factorization */ diff --git a/resources/3rdparty/glpk-4.57/src/bfd.h b/resources/3rdparty/glpk-4.65/src/draft/bfd.h similarity index 90% rename from resources/3rdparty/glpk-4.57/src/bfd.h rename to resources/3rdparty/glpk-4.65/src/draft/bfd.h index 1e18e561d..0ef4c0238 100644 --- a/resources/3rdparty/glpk-4.57/src/bfd.h +++ b/resources/3rdparty/glpk-4.65/src/draft/bfd.h @@ -25,6 +25,10 @@ #ifndef BFD_H #define BFD_H +#if 1 /* 30/III-2016 */ +#include "fvs.h" +#endif + typedef struct BFD BFD; /* return codes: */ @@ -69,10 +73,22 @@ double bfd_condest(BFD *bfd); void bfd_ftran(BFD *bfd, double x[]); /* perform forward transformation (solve system B*x = b) */ +#if 1 /* 30/III-2016 */ +#define bfd_ftran_s _glp_bfd_ftran_s +void bfd_ftran_s(BFD *bfd, FVS *x); +/* sparse version of bfd_ftran */ +#endif + #define bfd_btran _glp_bfd_btran void bfd_btran(BFD *bfd, double x[]); /* perform backward transformation (solve system B'*x = b) */ +#if 1 /* 30/III-2016 */ +#define bfd_btran_s _glp_bfd_btran_s +void bfd_btran_s(BFD *bfd, FVS *x); +/* sparse version of bfd_btran */ +#endif + #define bfd_update _glp_bfd_update int bfd_update(BFD *bfd, int j, int len, const int ind[], const double val[]); diff --git a/resources/3rdparty/glpk-4.57/src/bfx.c b/resources/3rdparty/glpk-4.65/src/draft/bfx.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/bfx.c rename to resources/3rdparty/glpk-4.65/src/draft/bfx.c diff --git a/resources/3rdparty/glpk-4.57/src/bfx.h b/resources/3rdparty/glpk-4.65/src/draft/bfx.h similarity index 99% rename from resources/3rdparty/glpk-4.57/src/bfx.h rename to resources/3rdparty/glpk-4.65/src/draft/bfx.h index 7d0aedaad..c67d5ea44 100644 --- a/resources/3rdparty/glpk-4.57/src/bfx.h +++ b/resources/3rdparty/glpk-4.65/src/draft/bfx.h @@ -25,7 +25,7 @@ #ifndef BFX_H #define BFX_H -#include "glpgmp.h" +#include "mygmp.h" typedef struct BFX BFX; diff --git a/resources/3rdparty/glpk-4.57/src/draft.h b/resources/3rdparty/glpk-4.65/src/draft/draft.h similarity index 55% rename from resources/3rdparty/glpk-4.57/src/draft.h rename to resources/3rdparty/glpk-4.65/src/draft/draft.h index b453acd48..cefd21248 100644 --- a/resources/3rdparty/glpk-4.57/src/draft.h +++ b/resources/3rdparty/glpk-4.65/src/draft/draft.h @@ -5,6 +5,9 @@ #ifndef DRAFT_H #define DRAFT_H +#if 1 /* 28/III-2016 */ +#define GLP_UNDOC 1 +#endif #include "glpk.h" #if 1 /* 28/XI-2009 */ @@ -14,19 +17,6 @@ int _glp_analyze_row(glp_prob *P, int len, const int ind[], /* simulate one iteration of dual simplex method */ #endif -#if 1 /* 08/XII-2009 */ -void _glp_mpl_init_rand(glp_tran *tran, int seed); -#endif - -#define glp_skpgen _glp_skpgen -void glp_skpgen(int n, int r, int type, int v, int s, int a[], - int *b, int c[]); -/* Pisinger's 0-1 single knapsack problem generator */ - -#if 1 /* 28/V-2010 */ -int _glp_intopt1(glp_prob *P, const glp_iocp *parm); -#endif - #endif /* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpapi06.c b/resources/3rdparty/glpk-4.65/src/draft/glpapi06.c similarity index 96% rename from resources/3rdparty/glpk-4.57/src/glpapi06.c rename to resources/3rdparty/glpk-4.65/src/draft/glpapi06.c index 715e1954e..a31e39681 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi06.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpapi06.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,8 +23,8 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" -#include "glpnpp.h" +#include "ios.h" +#include "npp.h" #if 0 /* 07/XI-2015 */ #include "glpspx.h" #else @@ -369,8 +369,10 @@ int glp_simplex(glp_prob *P, const glp_smcp *parm) glp_smcp _parm; int i, j, ret; /* check problem object */ +#if 0 /* 04/IV-2016 */ if (P == NULL || P->magic != GLP_PROB_MAGIC) xerror("glp_simplex: P = %p; invalid problem object\n", P); +#endif if (P->tree != NULL && P->tree->reason != 0) xerror("glp_simplex: operation not allowed\n"); /* check control parameters */ @@ -393,6 +395,9 @@ int glp_simplex(glp_prob *P, const glp_smcp *parm) xerror("glp_simplex: pricing = %d; invalid parameter\n", parm->pricing); if (!(parm->r_test == GLP_RT_STD || +#if 1 /* 16/III-2016 */ + parm->r_test == GLP_RT_FLIP || +#endif parm->r_test == GLP_RT_HAR)) xerror("glp_simplex: r_test = %d; invalid parameter\n", parm->r_test); @@ -411,7 +416,11 @@ int glp_simplex(glp_prob *P, const glp_smcp *parm) if (parm->tm_lim < 0) xerror("glp_simplex: tm_lim = %d; invalid parameter\n", parm->tm_lim); +#if 0 /* 15/VII-2017 */ if (parm->out_frq < 1) +#else + if (parm->out_frq < 0) +#endif xerror("glp_simplex: out_frq = %d; invalid parameter\n", parm->out_frq); if (parm->out_dly < 0) @@ -420,6 +429,17 @@ int glp_simplex(glp_prob *P, const glp_smcp *parm) if (!(parm->presolve == GLP_ON || parm->presolve == GLP_OFF)) xerror("glp_simplex: presolve = %d; invalid parameter\n", parm->presolve); +#if 1 /* 11/VII-2017 */ + if (!(parm->excl == GLP_ON || parm->excl == GLP_OFF)) + xerror("glp_simplex: excl = %d; invalid parameter\n", + parm->excl); + if (!(parm->shift == GLP_ON || parm->shift == GLP_OFF)) + xerror("glp_simplex: shift = %d; invalid parameter\n", + parm->shift); + if (!(parm->aorn == GLP_USE_AT || parm->aorn == GLP_USE_NT)) + xerror("glp_simplex: aorn = %d; invalid parameter\n", + parm->aorn); +#endif /* basic solution is currently undefined */ P->pbs_stat = P->dbs_stat = GLP_UNDEF; P->obj_val = 0.0; @@ -495,9 +515,18 @@ void glp_init_smcp(glp_smcp *parm) parm->obj_ul = +DBL_MAX; parm->it_lim = INT_MAX; parm->tm_lim = INT_MAX; +#if 0 /* 15/VII-2017 */ parm->out_frq = 500; +#else + parm->out_frq = 5000; /* 5 seconds */ +#endif parm->out_dly = 0; parm->presolve = GLP_OFF; +#if 1 /* 11/VII-2017 */ + parm->excl = GLP_ON; + parm->shift = GLP_ON; + parm->aorn = GLP_USE_NT; +#endif return; } diff --git a/resources/3rdparty/glpk-4.57/src/glpapi07.c b/resources/3rdparty/glpk-4.65/src/draft/glpapi07.c similarity index 92% rename from resources/3rdparty/glpk-4.57/src/glpapi07.c rename to resources/3rdparty/glpk-4.65/src/draft/glpapi07.c index 5258a4dec..9ac294bdd 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi07.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpapi07.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -267,6 +267,19 @@ int glp_exact(glp_prob *lp, const glp_smcp *parm) if (parm == NULL) parm = &_parm, glp_init_smcp((glp_smcp *)parm); /* check control parameters */ +#if 1 /* 25/XI-2017 */ + switch (parm->msg_lev) + { case GLP_MSG_OFF: + case GLP_MSG_ERR: + case GLP_MSG_ON: + case GLP_MSG_ALL: + case GLP_MSG_DBG: + break; + default: + xerror("glp_exact: msg_lev = %d; invalid parameter\n", + parm->msg_lev); + } +#endif if (parm->it_lim < 0) xerror("glp_exact: it_lim = %d; invalid parameter\n", parm->it_lim); @@ -275,7 +288,12 @@ int glp_exact(glp_prob *lp, const glp_smcp *parm) parm->tm_lim); /* the problem must have at least one row and one column */ if (!(m > 0 && n > 0)) +#if 0 /* 25/XI-2017 */ { xprintf("glp_exact: problem has no rows/columns\n"); +#else + { if (parm->msg_lev >= GLP_MSG_ERR) + xprintf("glp_exact: problem has no rows/columns\n"); +#endif return GLP_EFAIL; } #if 1 @@ -297,12 +315,22 @@ int glp_exact(glp_prob *lp, const glp_smcp *parm) ub = lp->col[k-m]->ub; } if (type == GLP_DB && lb >= ub) +#if 0 /* 25/XI-2017 */ { xprintf("glp_exact: %s %d has invalid bounds\n", k <= m ? "row" : "column", k <= m ? k : k-m); +#else + { if (parm->msg_lev >= GLP_MSG_ERR) + xprintf("glp_exact: %s %d has invalid bounds\n", + k <= m ? "row" : "column", k <= m ? k : k-m); +#endif return GLP_EBOUND; } } /* create the simplex solver workspace */ +#if 1 /* 25/XI-2017 */ + if (parm->msg_lev >= GLP_MSG_ALL) + { +#endif xprintf("glp_exact: %d rows, %d columns, %d non-zeros\n", m, n, nnz); #ifdef HAVE_GMP @@ -311,22 +339,33 @@ int glp_exact(glp_prob *lp, const glp_smcp *parm) xprintf("GLPK bignum module is being used\n"); xprintf("(Consider installing GNU MP to attain a much better perf" "ormance.)\n"); +#endif +#if 1 /* 25/XI-2017 */ + } #endif ssx = ssx_create(m, n, nnz); /* load LP problem data into the workspace */ load_data(ssx, lp); /* load current LP basis into the workspace */ if (load_basis(ssx, lp)) +#if 0 /* 25/XI-2017 */ { xprintf("glp_exact: initial LP basis is invalid\n"); +#else + { if (parm->msg_lev >= GLP_MSG_ERR) + xprintf("glp_exact: initial LP basis is invalid\n"); +#endif ret = GLP_EBADB; goto done; } - /* inherit some control parameters from the LP object */ #if 0 + /* inherit some control parameters from the LP object */ ssx->it_lim = lpx_get_int_parm(lp, LPX_K_ITLIM); ssx->it_cnt = lpx_get_int_parm(lp, LPX_K_ITCNT); ssx->tm_lim = lpx_get_real_parm(lp, LPX_K_TMLIM); #else +#if 1 /* 25/XI-2017 */ + ssx->msg_lev = parm->msg_lev; +#endif ssx->it_lim = parm->it_lim; ssx->it_cnt = lp->it_cnt; ssx->tm_lim = (double)parm->tm_lim / 1000.0; @@ -340,8 +379,8 @@ int glp_exact(glp_prob *lp, const glp_smcp *parm) #endif /* solve LP */ ret = ssx_driver(ssx); - /* copy back some statistics to the LP object */ #if 0 + /* copy back some statistics to the LP object */ lpx_set_int_parm(lp, LPX_K_ITLIM, ssx->it_lim); lpx_set_int_parm(lp, LPX_K_ITCNT, ssx->it_cnt); lpx_set_real_parm(lp, LPX_K_TMLIM, ssx->tm_lim); @@ -449,6 +488,10 @@ int glp_exact(glp_prob *lp, const glp_smcp *parm) lp->obj_val = sum; done: /* delete the simplex solver workspace */ ssx_delete(ssx); +#if 1 /* 23/XI-2015 */ + xassert(gmp_pool_count() == 0); + gmp_free_mem(); +#endif /* return to the application program */ return ret; } diff --git a/resources/3rdparty/glpk-4.57/src/glpapi08.c b/resources/3rdparty/glpk-4.65/src/draft/glpapi08.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpapi08.c rename to resources/3rdparty/glpk-4.65/src/draft/glpapi08.c index e7fc62e8f..652292cbb 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi08.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpapi08.c @@ -24,7 +24,7 @@ #include "env.h" #include "glpipm.h" -#include "glpnpp.h" +#include "npp.h" /*********************************************************************** * NAME diff --git a/resources/3rdparty/glpk-4.57/src/glpapi09.c b/resources/3rdparty/glpk-4.65/src/draft/glpapi09.c similarity index 98% rename from resources/3rdparty/glpk-4.57/src/glpapi09.c rename to resources/3rdparty/glpk-4.65/src/draft/glpapi09.c index a864e9b18..0d3ab57b5 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi09.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpapi09.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -24,8 +24,8 @@ #include "draft.h" #include "env.h" -#include "glpios.h" -#include "glpnpp.h" +#include "ios.h" +#include "npp.h" /*********************************************************************** * NAME @@ -379,10 +379,14 @@ static int preprocess_and_solve_mip(glp_prob *P, const glp_iocp *parm) xprintf("Solving LP relaxation...\n"); glp_init_smcp(&smcp); smcp.msg_lev = parm->msg_lev; + /* respect time limit */ + smcp.tm_lim = parm->tm_lim; mip->it_cnt = P->it_cnt; ret = glp_simplex(mip, &smcp); P->it_cnt = mip->it_cnt; - if (ret != 0) + if (ret == GLP_ETMLIM) + goto done; + else if (ret != 0) { if (parm->msg_lev >= GLP_MSG_ERR) xprintf("glp_intopt: cannot solve LP relaxation\n"); ret = GLP_EFAIL; @@ -442,9 +446,11 @@ int glp_intopt(glp_prob *P, const glp_iocp *parm) { /* solve MIP problem with the branch-and-bound method */ glp_iocp _parm; int i, j, ret; +#if 0 /* 04/IV-2016 */ /* check problem object */ if (P == NULL || P->magic != GLP_PROB_MAGIC) xerror("glp_intopt: P = %p; invalid problem object\n", P); +#endif if (P->tree != NULL) xerror("glp_intopt: operation not allowed\n"); /* check control parameters */ @@ -679,6 +685,13 @@ void glp_init_iocp(glp_iocp *parm) parm->use_sol = GLP_OFF; parm->save_sol = NULL; parm->alien = GLP_OFF; +#endif +#if 0 /* 20/I-2018 */ +#if 1 /* 16/III-2016; not documented--should not be used */ + parm->flip = GLP_OFF; +#endif +#else + parm->flip = GLP_ON; #endif return; } diff --git a/resources/3rdparty/glpk-4.57/src/glpapi10.c b/resources/3rdparty/glpk-4.65/src/draft/glpapi10.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/glpapi10.c rename to resources/3rdparty/glpk-4.65/src/draft/glpapi10.c diff --git a/resources/3rdparty/glpk-4.57/src/glpapi12.c b/resources/3rdparty/glpk-4.65/src/draft/glpapi12.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpapi12.c rename to resources/3rdparty/glpk-4.65/src/draft/glpapi12.c index 120953048..020c89811 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi12.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpapi12.c @@ -1799,10 +1799,12 @@ void glp_analyze_bound(glp_prob *P, int k, double *value1, int *var1, GLPCOL *col; int m, n, stat, kase, p, len, piv, *ind; double x, new_x, ll, uu, xx, delta, *val; +#if 0 /* 04/IV-2016 */ /* sanity checks */ if (P == NULL || P->magic != GLP_PROB_MAGIC) xerror("glp_analyze_bound: P = %p; invalid problem object\n", P); +#endif m = P->m, n = P->n; if (!(P->pbs_stat == GLP_FEAS && P->dbs_stat == GLP_FEAS)) xerror("glp_analyze_bound: optimal basic solution required\n"); @@ -1964,10 +1966,12 @@ void glp_analyze_coef(glp_prob *P, int k, double *coef1, int *var1, *cind, *rind; double lb, ub, coef, x, lim_coef, new_x, d, delta, ll, uu, xx, *rval, *cval; +#if 0 /* 04/IV-2016 */ /* sanity checks */ if (P == NULL || P->magic != GLP_PROB_MAGIC) xerror("glp_analyze_coef: P = %p; invalid problem object\n", P); +#endif m = P->m, n = P->n; if (!(P->pbs_stat == GLP_FEAS && P->dbs_stat == GLP_FEAS)) xerror("glp_analyze_coef: optimal basic solution required\n"); diff --git a/resources/3rdparty/glpk-4.57/src/glpapi13.c b/resources/3rdparty/glpk-4.65/src/draft/glpapi13.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpapi13.c rename to resources/3rdparty/glpk-4.65/src/draft/glpapi13.c index a4ad10b66..1181b3975 100644 --- a/resources/3rdparty/glpk-4.57/src/glpapi13.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpapi13.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +23,7 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" +#include "ios.h" /*********************************************************************** * NAME @@ -457,7 +457,11 @@ int glp_ios_pool_size(glp_tree *tree) if (tree->reason != GLP_ICUTGEN) xerror("glp_ios_pool_size: operation not allowed\n"); xassert(tree->local != NULL); +#ifdef NEW_LOCAL /* 02/II-2018 */ + return tree->local->m; +#else return tree->local->size; +#endif } /**********************************************************************/ diff --git a/resources/3rdparty/glpk-4.57/src/glphbm.c b/resources/3rdparty/glpk-4.65/src/draft/glphbm.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glphbm.c rename to resources/3rdparty/glpk-4.65/src/draft/glphbm.c index 100ece6e2..8b33c172f 100644 --- a/resources/3rdparty/glpk-4.57/src/glphbm.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glphbm.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -341,7 +341,11 @@ HBM *hbm_read_mat(const char *fname) dsa->fp = fopen(dsa->fname, "r"); if (dsa->fp == NULL) { xprintf("hbm_read_mat: unable to open '%s' - %s\n", +#if 0 /* 29/I-2017 */ dsa->fname, strerror(errno)); +#else + dsa->fname, xstrerr(errno)); +#endif goto fail; } dsa->seqn = 0; diff --git a/resources/3rdparty/glpk-4.57/src/glphbm.h b/resources/3rdparty/glpk-4.65/src/draft/glphbm.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/glphbm.h rename to resources/3rdparty/glpk-4.65/src/draft/glphbm.h diff --git a/resources/3rdparty/glpk-4.57/src/glpios01.c b/resources/3rdparty/glpk-4.65/src/draft/glpios01.c similarity index 95% rename from resources/3rdparty/glpk-4.57/src/glpios01.c rename to resources/3rdparty/glpk-4.65/src/draft/glpios01.c index da1b9479f..cb1a0dabd 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios01.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpios01.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +23,7 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" +#include "ios.h" #include "misc.h" static int lpx_eval_tab_row(glp_prob *lp, int k, int ind[], @@ -125,13 +125,16 @@ glp_tree *ios_create_tree(glp_prob *mip, const glp_iocp *parm) tree->pred_type = NULL; tree->pred_lb = tree->pred_ub = NULL; tree->pred_stat = NULL; - /* cut generator */ + /* cut generators */ tree->local = ios_create_pool(tree); /*tree->first_attempt = 1;*/ /*tree->max_added_cuts = 0;*/ /*tree->min_eff = 0.0;*/ /*tree->miss = 0;*/ /*tree->just_selected = 0;*/ +#ifdef NEW_COVER /* 13/II-2018 */ + tree->cov_gen = NULL; +#endif tree->mir_gen = NULL; tree->clq_gen = NULL; /*tree->round = 0;*/ @@ -1336,6 +1339,15 @@ int ios_solve_node(glp_tree *tree) xassert(tree != tree); } parm.meth = GLP_DUALP; +#if 1 /* 16/III-2016 */ + if (tree->parm->flip) + parm.r_test = GLP_RT_FLIP; +#endif + /* respect time limit */ + if (tree->parm->tm_lim < INT_MAX) + parm.tm_lim = tree->parm->tm_lim - (glp_time() - tree->tm_beg); + if (parm.tm_lim < 0) + parm.tm_lim = 0; if (tree->parm->msg_lev < GLP_MSG_DBG) parm.out_dly = tree->parm->out_dly; else @@ -1356,6 +1368,13 @@ int ios_solve_node(glp_tree *tree) } /* try to solve/re-optimize the LP relaxation */ ret = glp_simplex(mip, &parm); +#if 1 /* 21/II-2016 by Chris */ + if (ret == GLP_EFAIL) + { /* retry with a new basis */ + glp_adv_basis(mip, 0); + ret = glp_simplex(mip, &parm); + } +#endif tree->curr->solved++; #if 0 xprintf("ret = %d; status = %d; pbs = %d; dbs = %d; some = %d\n", @@ -1368,6 +1387,15 @@ int ios_solve_node(glp_tree *tree) /**********************************************************************/ +#ifdef NEW_LOCAL /* 02/II-2018 */ +IOSPOOL *ios_create_pool(glp_tree *tree) +{ /* create cut pool */ + IOSPOOL *pool; + pool = glp_create_prob(); + glp_add_cols(pool, tree->mip->n); + return pool; +} +#else IOSPOOL *ios_create_pool(glp_tree *tree) { /* create cut pool */ IOSPOOL *pool; @@ -1382,7 +1410,23 @@ IOSPOOL *ios_create_pool(glp_tree *tree) pool->ord = 0, pool->curr = NULL; return pool; } +#endif +#ifdef NEW_LOCAL /* 02/II-2018 */ +int ios_add_row(glp_tree *tree, IOSPOOL *pool, + const char *name, int klass, int flags, int len, const int ind[], + const double val[], int type, double rhs) +{ /* add row (constraint) to the cut pool */ + int i; + i = glp_add_rows(pool, 1); + glp_set_row_name(pool, i, name); + pool->row[i]->klass = klass; + xassert(flags == 0); + glp_set_mat_row(pool, i, len, ind, val); + glp_set_row_bnds(pool, i, type, rhs, rhs); + return i; +} +#else int ios_add_row(glp_tree *tree, IOSPOOL *pool, const char *name, int klass, int flags, int len, const int ind[], const double val[], int type, double rhs) @@ -1441,7 +1485,14 @@ int ios_add_row(glp_tree *tree, IOSPOOL *pool, pool->size++; return pool->size; } +#endif +#ifdef NEW_LOCAL /* 02/II-2018 */ +IOSCUT *ios_find_row(IOSPOOL *pool, int i) +{ /* find row (constraint) in the cut pool */ + xassert(0); +} +#else IOSCUT *ios_find_row(IOSPOOL *pool, int i) { /* find row (constraint) in the cut pool */ /* (smart linear search) */ @@ -1493,7 +1544,14 @@ IOSCUT *ios_find_row(IOSPOOL *pool, int i) xassert(pool->curr != NULL); return pool->curr; } +#endif +#ifdef NEW_LOCAL /* 02/II-2018 */ +void ios_del_row(glp_tree *tree, IOSPOOL *pool, int i) +{ /* remove row (constraint) from the cut pool */ + xassert(0); +} +#else void ios_del_row(glp_tree *tree, IOSPOOL *pool, int i) { /* remove row (constraint) from the cut pool */ IOSCUT *cut; @@ -1537,7 +1595,22 @@ void ios_del_row(glp_tree *tree, IOSPOOL *pool, int i) pool->size--; return; } +#endif +#ifdef NEW_LOCAL /* 02/II-2018 */ +void ios_clear_pool(glp_tree *tree, IOSPOOL *pool) +{ /* remove all rows (constraints) from the cut pool */ + if (pool->m > 0) + { int i, *num; + num = talloc(1+pool->m, int); + for (i = 1; i <= pool->m; i++) + num[i] = i; + glp_del_rows(pool, pool->m, num); + tfree(num); + } + return; +} +#else void ios_clear_pool(glp_tree *tree, IOSPOOL *pool) { /* remove all rows (constraints) from the cut pool */ xassert(pool != NULL); @@ -1558,7 +1631,16 @@ void ios_clear_pool(glp_tree *tree, IOSPOOL *pool) pool->ord = 0, pool->curr = NULL; return; } +#endif +#ifdef NEW_LOCAL /* 02/II-2018 */ +void ios_delete_pool(glp_tree *tree, IOSPOOL *pool) +{ /* delete cut pool */ + xassert(pool != NULL); + glp_delete_prob(pool); + return; +} +#else void ios_delete_pool(glp_tree *tree, IOSPOOL *pool) { /* delete cut pool */ xassert(pool != NULL); @@ -1566,9 +1648,10 @@ void ios_delete_pool(glp_tree *tree, IOSPOOL *pool) xfree(pool); return; } +#endif #if 1 /* 11/VII-2013 */ -#include "glpnpp.h" +#include "npp.h" void ios_process_sol(glp_tree *T) { /* process integer feasible solution just found */ diff --git a/resources/3rdparty/glpk-4.57/src/glpios02.c b/resources/3rdparty/glpk-4.65/src/draft/glpios02.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpios02.c rename to resources/3rdparty/glpk-4.65/src/draft/glpios02.c index 43cff57e1..a73458aad 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios02.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpios02.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +23,7 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" +#include "ios.h" /*********************************************************************** * prepare_row_info - prepare row info to determine implied bounds diff --git a/resources/3rdparty/glpk-4.57/src/glpios03.c b/resources/3rdparty/glpk-4.65/src/draft/glpios03.c similarity index 90% rename from resources/3rdparty/glpk-4.57/src/glpios03.c rename to resources/3rdparty/glpk-4.65/src/draft/glpios03.c index 29ea32e2c..21d6a0007 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios03.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpios03.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +23,7 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" +#include "ios.h" /*********************************************************************** * show_progress - display current progress of the search @@ -72,7 +72,10 @@ static void show_progress(glp_tree *T, int bingo) else if (temp == +DBL_MAX) sprintf(best_bound, "%17s", "+inf"); else + { if (fabs(temp) < 1e-9) + temp = 0; sprintf(best_bound, "%17.9e", temp); + } } /* choose the relation sign between global bounds */ if (T->mip->dir == GLP_MIN) @@ -633,62 +636,107 @@ done: tfree(x); return ret; } -#if 0 -#define round_heur round_heur2 -static int round_heur(glp_tree *T) -{ glp_prob *lp; - int *ind, ret, i, j, len; - double *val; - lp = glp_create_prob(); - ind = talloc(1+T->mip->n, int); - val = talloc(1+T->mip->n, double); - glp_add_rows(lp, T->orig_m); - glp_add_cols(lp, T->n); - for (i = 1; i <= T->orig_m; i++) - { glp_set_row_bnds(lp, i, - T->orig_type[i], T->orig_lb[i], T->orig_ub[i]); - len = glp_get_mat_row(T->mip, i, ind, val); - glp_set_mat_row(lp, i, len, ind, val); - } - for (j = 1; j <= T->n; j++) - { GLPCOL *col = T->mip->col[j]; - glp_set_obj_coef(lp, j, col->coef); - if (col->kind == GLP_IV) - { /* integer variable */ - glp_set_col_bnds(lp, j, GLP_FX, floor(col->prim + .5), 0); - } - else - { glp_set_col_bnds(lp, j, T->orig_type[T->orig_m+j], - T->orig_lb[T->orig_m+j], T->orig_ub[T->orig_m+j]); +/**********************************************************************/ + +#if 1 /* 08/III-2016 */ +static void gmi_gen(glp_tree *T) +{ /* generate Gomory's mixed integer cuts */ + glp_prob *P, *pool; + P = T->mip; + pool = glp_create_prob(); + glp_add_cols(pool, P->n); + glp_gmi_gen(P, pool, 50); + if (pool->m > 0) + { int i, len, *ind; + double *val; + ind = xcalloc(1+P->n, sizeof(int)); + val = xcalloc(1+P->n, sizeof(double)); + for (i = 1; i <= pool->m; i++) + { len = glp_get_mat_row(pool, i, ind, val); + glp_ios_add_row(T, NULL, GLP_RF_GMI, 0, len, ind, val, + GLP_LO, pool->row[i]->lb); } + xfree(ind); + xfree(val); } -glp_term_out(GLP_OFF); - glp_adv_basis(lp, 0); - ret = glp_simplex(lp, NULL); -glp_term_out(GLP_ON); - if (ret != 0) - { ret = 1; - goto done; + glp_delete_prob(pool); + return; +} +#endif + +#ifdef NEW_COVER /* 13/II-2018 */ +static void cov_gen(glp_tree *T) +{ /* generate cover cuts */ + glp_prob *P, *pool; + if (T->cov_gen == NULL) + return; + P = T->mip; + pool = glp_create_prob(); + glp_add_cols(pool, P->n); + glp_cov_gen1(P, T->cov_gen, pool); + if (pool->m > 0) + { int i, len, *ind; + double *val; + ind = xcalloc(1+P->n, sizeof(int)); + val = xcalloc(1+P->n, sizeof(double)); + for (i = 1; i <= pool->m; i++) + { len = glp_get_mat_row(pool, i, ind, val); + glp_ios_add_row(T, NULL, GLP_RF_COV, 0, len, ind, val, + GLP_UP, pool->row[i]->ub); + } + xfree(ind); + xfree(val); } - if (glp_get_status(lp) != GLP_OPT) - { ret = 2; - goto done; + glp_delete_prob(pool); + return; +} +#endif + +#if 1 /* 08/III-2016 */ +static void mir_gen(glp_tree *T) +{ /* generate mixed integer rounding cuts */ + glp_prob *P, *pool; + P = T->mip; + pool = glp_create_prob(); + glp_add_cols(pool, P->n); + glp_mir_gen(P, T->mir_gen, pool); + if (pool->m > 0) + { int i, len, *ind; + double *val; + ind = xcalloc(1+P->n, sizeof(int)); + val = xcalloc(1+P->n, sizeof(double)); + for (i = 1; i <= pool->m; i++) + { len = glp_get_mat_row(pool, i, ind, val); + glp_ios_add_row(T, NULL, GLP_RF_MIR, 0, len, ind, val, + GLP_UP, pool->row[i]->ub); + } + xfree(ind); + xfree(val); } - for (j = 1; j <= lp->n; j++) - val[j] = lp->col[j]->prim; - if (glp_ios_heur_sol(T, val) == 0) - ret = 0; - else - ret = 3; -done: glp_delete_prob(lp); + glp_delete_prob(pool); + return; +} +#endif + +#if 1 /* 08/III-2016 */ +static void clq_gen(glp_tree *T, glp_cfg *G) +{ /* generate clique cut from conflict graph */ + glp_prob *P = T->mip; + int n = P->n; + int len, *ind; + double *val; + ind = talloc(1+n, int); + val = talloc(1+n, double); + len = glp_clq_cut(T->mip, G, ind, val); + if (len > 0) + glp_ios_add_row(T, NULL, GLP_RF_CLQ, 0, len, ind, val, GLP_UP, + val[0]); tfree(ind); tfree(val); - return ret; + return; } #endif -/**********************************************************************/ - static void generate_cuts(glp_tree *T) { /* generate generic cuts with built-in generators */ if (!(T->parm->mir_cuts == GLP_ON || @@ -711,16 +759,27 @@ static void generate_cuts(glp_tree *T) /* generate and add to POOL all cuts violated by x* */ if (T->parm->gmi_cuts == GLP_ON) { if (T->curr->changed < 7) +#if 0 /* 08/III-2016 */ ios_gmi_gen(T); +#else + gmi_gen(T); +#endif } if (T->parm->mir_cuts == GLP_ON) { xassert(T->mir_gen != NULL); +#if 0 /* 08/III-2016 */ ios_mir_gen(T, T->mir_gen); +#else + mir_gen(T); +#endif } if (T->parm->cov_cuts == GLP_ON) { /* cover cuts works well along with mir cuts */ - /*if (T->round <= 5)*/ - ios_cov_gen(T); +#ifdef NEW_COVER /* 13/II-2018 */ + cov_gen(T); +#else + ios_cov_gen(T); +#endif } if (T->parm->clq_cuts == GLP_ON) { if (T->clq_gen != NULL) @@ -731,7 +790,11 @@ static void generate_cuts(glp_tree *T) { if (T->curr->level == 0 && T->curr->changed < 500 || T->curr->level > 0 && T->curr->changed < 50) #endif +#if 0 /* 08/III-2016 */ ios_clq_gen(T, T->clq_gen); +#else + clq_gen(T, T->clq_gen); +#endif } } done: return; @@ -851,8 +914,19 @@ int ios_driver(glp_tree *T) #else double ttt = T->tm_beg; #endif +#if 1 /* 27/II-2016 by Chris */ + int root_done = 0; +#endif #if 0 ((glp_iocp *)T->parm)->msg_lev = GLP_MSG_DBG; +#endif +#if 1 /* 16/III-2016 */ + if (((glp_iocp *)T->parm)->flip) +#if 0 /* 20/I-2018 */ + xprintf("WARNING: LONG-STEP DUAL SIMPLEX WILL BE USED\n"); +#else + xprintf("Long-step dual simplex will be used\n"); +#endif #endif /* on entry to the B&B driver it is assumed that the active list contains the only active (i.e. root) subproblem, which is the @@ -939,17 +1013,29 @@ loop: /* main loop starts here */ { if (T->parm->msg_lev >= GLP_MSG_ALL) xprintf("MIR cuts enabled\n"); xassert(T->mir_gen == NULL); +#if 0 /* 06/III-2016 */ T->mir_gen = ios_mir_init(T); +#else + T->mir_gen = glp_mir_init(T->mip); +#endif } if (T->parm->cov_cuts == GLP_ON) { if (T->parm->msg_lev >= GLP_MSG_ALL) xprintf("Cover cuts enabled\n"); +#ifdef NEW_COVER /* 13/II-2018 */ + xassert(T->cov_gen == NULL); + T->cov_gen = glp_cov_init(T->mip); +#endif } if (T->parm->clq_cuts == GLP_ON) { xassert(T->clq_gen == NULL); if (T->parm->msg_lev >= GLP_MSG_ALL) xprintf("Clique cuts enabled\n"); +#if 0 /* 08/III-2016 */ T->clq_gen = ios_clq_init(T); +#else + T->clq_gen = glp_cfg_init(T->mip); +#endif } } #if 1 /* 18/VII-2013 */ @@ -1014,13 +1100,21 @@ more: /* minor loop starts here */ if (T->parm->pp_tech == GLP_PP_NONE) ; else if (T->parm->pp_tech == GLP_PP_ROOT) +#if 0 /* 27/II-2016 by Chris */ { if (T->curr->level == 0) +#else + { if (!root_done) +#endif { if (ios_preprocess_node(T, 100)) goto fath; } } else if (T->parm->pp_tech == GLP_PP_ALL) +#if 0 /* 27/II-2016 by Chris */ { if (ios_preprocess_node(T, T->curr->level == 0 ? 100 : 10)) +#else + { if (ios_preprocess_node(T, !root_done ? 100 : 10)) +#endif goto fath; } else @@ -1034,7 +1128,9 @@ more: /* minor loop starts here */ if (T->parm->msg_lev >= GLP_MSG_DBG) xprintf("Solving LP relaxation...\n"); ret = ios_solve_node(T); - if (!(ret == 0 || ret == GLP_EOBJLL || ret == GLP_EOBJUL)) + if (ret == GLP_ETMLIM) + goto done; + else if (!(ret == 0 || ret == GLP_EOBJLL || ret == GLP_EOBJUL)) { if (T->parm->msg_lev >= GLP_MSG_ERR) xprintf("ios_driver: unable to solve current LP relaxation;" " glp_simplex returned %d\n", ret); @@ -1193,7 +1289,11 @@ more: /* minor loop starts here */ } } /* try to find solution with the feasibility pump heuristic */ +#if 0 /* 27/II-2016 by Chris */ if (T->parm->fp_heur) +#else + if (T->parm->fp_heur && !root_done) +#endif { xassert(T->reason == 0); T->reason = GLP_IHEUR; ios_feas_pump(T); @@ -1208,7 +1308,11 @@ more: /* minor loop starts here */ } #if 1 /* 25/V-2013 */ /* try to find solution with the proximity search heuristic */ +#if 0 /* 27/II-2016 by Chris */ if (T->parm->ps_heur) +#else + if (T->parm->ps_heur && !root_done) +#endif { xassert(T->reason == 0); T->reason = GLP_IHEUR; ios_proxy_heur(T); @@ -1240,7 +1344,11 @@ more: /* minor loop starts here */ #endif /* it's time to generate cutting planes */ xassert(T->local != NULL); +#ifdef NEW_LOCAL /* 02/II-2018 */ + xassert(T->local->m == 0); +#else xassert(T->local->size == 0); +#endif /* let the application program generate some cuts; note that it can add cuts either to the local cut pool or directly to the current subproblem */ @@ -1263,14 +1371,22 @@ more: /* minor loop starts here */ bad_cut = 0; } old_obj = T->curr->lp_obj; +#if 0 /* 27/II-2016 by Chris */ if (bad_cut == 0 || (T->curr->level == 0 && bad_cut <= 3)) +#else + if (bad_cut == 0 || (!root_done && bad_cut <= 3)) +#endif #endif /* try to generate generic cuts with built-in generators (as suggested by Prof. Fischetti et al. the built-in cuts are not generated at each branching node; an intense attempt of generating new cuts is only made at the root node, and then a moderate effort is spent after each backtracking step) */ +#if 0 /* 27/II-2016 by Chris */ if (T->curr->level == 0 || pred_p == 0) +#else + if (!root_done || pred_p == 0) +#endif { xassert(T->reason == 0); T->reason = GLP_ICUTGEN; generate_cuts(T); @@ -1278,7 +1394,11 @@ more: /* minor loop starts here */ } /* if the local cut pool is not empty, select useful cuts and add them to the current subproblem */ +#ifdef NEW_LOCAL /* 02/II-2018 */ + if (T->local->m > 0) +#else if (T->local->size > 0) +#endif { xassert(T->reason == 0); T->reason = GLP_ICUTGEN; ios_process_cuts(T); @@ -1294,8 +1414,16 @@ more: /* minor loop starts here */ } /* no cuts were generated; remove inactive cuts */ remove_cuts(T); +#if 0 /* 27/II-2016 by Chris */ if (T->parm->msg_lev >= GLP_MSG_ALL && T->curr->level == 0) +#else + if (T->parm->msg_lev >= GLP_MSG_ALL && !root_done) +#endif display_cut_info(T); +#if 1 /* 27/II-2016 by Chris */ + /* the first node will not be treated as root any more */ + if (!root_done) root_done = 1; +#endif /* update history information used on pseudocost branching */ if (T->pcost != NULL) ios_pcost_update(T); /* it's time to perform branching */ @@ -1362,9 +1490,21 @@ done: /* display progress of the search on exit from the solver */ if (T->parm->msg_lev >= GLP_MSG_ON) show_progress(T, 0); if (T->mir_gen != NULL) +#if 0 /* 06/III-2016 */ ios_mir_term(T->mir_gen), T->mir_gen = NULL; +#else + glp_mir_free(T->mir_gen), T->mir_gen = NULL; +#endif +#ifdef NEW_COVER /* 13/II-2018 */ + if (T->cov_gen != NULL) + glp_cov_free(T->cov_gen), T->cov_gen = NULL; +#endif if (T->clq_gen != NULL) +#if 0 /* 08/III-2016 */ ios_clq_term(T->clq_gen), T->clq_gen = NULL; +#else + glp_cfg_free(T->clq_gen), T->clq_gen = NULL; +#endif /* return to the calling program */ return ret; } diff --git a/resources/3rdparty/glpk-4.57/src/glpios07.c b/resources/3rdparty/glpk-4.65/src/draft/glpios07.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpios07.c rename to resources/3rdparty/glpk-4.65/src/draft/glpios07.c index 3ea515b67..f750e571b 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios07.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpios07.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +23,7 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" +#include "ios.h" /*---------------------------------------------------------------------- -- COVER INEQUALITIES diff --git a/resources/3rdparty/glpk-4.57/src/glpios09.c b/resources/3rdparty/glpk-4.65/src/draft/glpios09.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpios09.c rename to resources/3rdparty/glpk-4.65/src/draft/glpios09.c index d87578cbc..d80ed9a3a 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios09.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpios09.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +23,7 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" +#include "ios.h" /*********************************************************************** * NAME diff --git a/resources/3rdparty/glpk-4.57/src/glpios11.c b/resources/3rdparty/glpk-4.65/src/draft/glpios11.c similarity index 63% rename from resources/3rdparty/glpk-4.57/src/glpios11.c rename to resources/3rdparty/glpk-4.65/src/draft/glpios11.c index a9f4854d8..09fccef6b 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios11.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpios11.c @@ -4,9 +4,9 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied -* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights -* reserved. E-mail: . +* 2009, 2010, 2011, 2013, 2017, 2018 Andrew Makhorin, Department for +* Applied Informatics, Moscow Aviation Institute, Moscow, Russia. All +* rights reserved. E-mail: . * * GLPK is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by @@ -24,7 +24,7 @@ #include "draft.h" #include "env.h" -#include "glpios.h" +#include "ios.h" /*********************************************************************** * NAME @@ -66,7 +66,7 @@ struct info /* lower bound to objective degradation */ }; -static int fcmp(const void *arg1, const void *arg2) +static int CDECL fcmp(const void *arg1, const void *arg2) { const struct info *info1 = arg1, *info2 = arg2; if (info1->deg == 0.0 && info2->deg == 0.0) { if (info1->eff > info2->eff) return -1; @@ -81,6 +81,138 @@ static int fcmp(const void *arg1, const void *arg2) static double parallel(IOSCUT *a, IOSCUT *b, double work[]); +#ifdef NEW_LOCAL /* 02/II-2018 */ +void ios_process_cuts(glp_tree *T) +{ IOSPOOL *pool; + IOSCUT *cut; + GLPAIJ *aij; + struct info *info; + int k, kk, max_cuts, len, ret, *ind; + double *val, *work, rhs; + /* the current subproblem must exist */ + xassert(T->curr != NULL); + /* the pool must exist and be non-empty */ + pool = T->local; + xassert(pool != NULL); + xassert(pool->m > 0); + /* allocate working arrays */ + info = xcalloc(1+pool->m, sizeof(struct info)); + ind = xcalloc(1+T->n, sizeof(int)); + val = xcalloc(1+T->n, sizeof(double)); + work = xcalloc(1+T->n, sizeof(double)); + for (k = 1; k <= T->n; k++) work[k] = 0.0; + /* build the list of cuts stored in the cut pool */ + for (k = 1; k <= pool->m; k++) + info[k].cut = pool->row[k], info[k].flag = 0; + /* estimate efficiency of all cuts in the cut pool */ + for (k = 1; k <= pool->m; k++) + { double temp, dy, dz; + cut = info[k].cut; + /* build the vector of cut coefficients and compute its + Euclidean norm */ + len = 0; temp = 0.0; + for (aij = cut->ptr; aij != NULL; aij = aij->r_next) + { xassert(1 <= aij->col->j && aij->col->j <= T->n); + len++, ind[len] = aij->col->j, val[len] = aij->val; + temp += aij->val * aij->val; + } + if (temp < DBL_EPSILON * DBL_EPSILON) temp = DBL_EPSILON; + /* transform the cut to express it only through non-basic + (auxiliary and structural) variables */ + len = glp_transform_row(T->mip, len, ind, val); + /* determine change in the cut value and in the objective + value for the adjacent basis by simulating one step of the + dual simplex */ + switch (cut->type) + { case GLP_LO: rhs = cut->lb; break; + case GLP_UP: rhs = cut->ub; break; + default: xassert(cut != cut); + } + ret = _glp_analyze_row(T->mip, len, ind, val, cut->type, + rhs, 1e-9, NULL, NULL, NULL, NULL, &dy, &dz); + /* determine normalized residual and lower bound to objective + degradation */ + if (ret == 0) + { info[k].eff = fabs(dy) / sqrt(temp); + /* if some reduced costs violates (slightly) their zero + bounds (i.e. have wrong signs) due to round-off errors, + dz also may have wrong sign being close to zero */ + if (T->mip->dir == GLP_MIN) + { if (dz < 0.0) dz = 0.0; + info[k].deg = + dz; + } + else /* GLP_MAX */ + { if (dz > 0.0) dz = 0.0; + info[k].deg = - dz; + } + } + else if (ret == 1) + { /* the constraint is not violated at the current point */ + info[k].eff = info[k].deg = 0.0; + } + else if (ret == 2) + { /* no dual feasible adjacent basis exists */ + info[k].eff = 1.0; + info[k].deg = DBL_MAX; + } + else + xassert(ret != ret); + /* if the degradation is too small, just ignore it */ + if (info[k].deg < 0.01) info[k].deg = 0.0; + } + /* sort the list of cuts by decreasing objective degradation and + then by decreasing efficacy */ + qsort(&info[1], pool->m, sizeof(struct info), fcmp); + /* only first (most efficient) max_cuts in the list are qualified + as candidates to be added to the current subproblem */ + max_cuts = (T->curr->level == 0 ? 90 : 10); + if (max_cuts > pool->m) max_cuts = pool->m; + /* add cuts to the current subproblem */ +#if 0 + xprintf("*** adding cuts ***\n"); +#endif + for (k = 1; k <= max_cuts; k++) + { int i, len; + /* if this cut seems to be inefficient, skip it */ + if (info[k].deg < 0.01 && info[k].eff < 0.01) continue; + /* if the angle between this cut and every other cut included + in the current subproblem is small, skip this cut */ + for (kk = 1; kk < k; kk++) + { if (info[kk].flag) + { if (parallel(info[k].cut, info[kk].cut, work) > 0.90) + break; + } + } + if (kk < k) continue; + /* add this cut to the current subproblem */ +#if 0 + xprintf("eff = %g; deg = %g\n", info[k].eff, info[k].deg); +#endif + cut = info[k].cut, info[k].flag = 1; + i = glp_add_rows(T->mip, 1); + if (cut->name != NULL) + glp_set_row_name(T->mip, i, cut->name); + xassert(T->mip->row[i]->origin == GLP_RF_CUT); + T->mip->row[i]->klass = cut->klass; + len = 0; + for (aij = cut->ptr; aij != NULL; aij = aij->r_next) + len++, ind[len] = aij->col->j, val[len] = aij->val; + glp_set_mat_row(T->mip, i, len, ind, val); + switch (cut->type) + { case GLP_LO: rhs = cut->lb; break; + case GLP_UP: rhs = cut->ub; break; + default: xassert(cut != cut); + } + glp_set_row_bnds(T->mip, i, cut->type, rhs, rhs); + } + /* free working arrays */ + xfree(info); + xfree(ind); + xfree(val); + xfree(work); + return; +} +#else void ios_process_cuts(glp_tree *T) { IOSPOOL *pool; IOSCUT *cut; @@ -203,6 +335,7 @@ void ios_process_cuts(glp_tree *T) xfree(work); return; } +#endif #if 0 /*********************************************************************** @@ -261,6 +394,25 @@ static double efficacy(glp_tree *T, IOSCUT *cut) * i.e. with disjoint support, while requirement cos phi <= 0.999 means * only avoiding duplicate (parallel) cuts [1]. */ +#ifdef NEW_LOCAL /* 02/II-2018 */ +static double parallel(IOSCUT *a, IOSCUT *b, double work[]) +{ GLPAIJ *aij; + double s = 0.0, sa = 0.0, sb = 0.0, temp; + for (aij = a->ptr; aij != NULL; aij = aij->r_next) + { work[aij->col->j] = aij->val; + sa += aij->val * aij->val; + } + for (aij = b->ptr; aij != NULL; aij = aij->r_next) + { s += work[aij->col->j] * aij->val; + sb += aij->val * aij->val; + } + for (aij = a->ptr; aij != NULL; aij = aij->r_next) + work[aij->col->j] = 0.0; + temp = sqrt(sa) * sqrt(sb); + if (temp < DBL_EPSILON * DBL_EPSILON) temp = DBL_EPSILON; + return s / temp; +} +#else static double parallel(IOSCUT *a, IOSCUT *b, double work[]) { IOSAIJ *aij; double s = 0.0, sa = 0.0, sb = 0.0, temp; @@ -278,5 +430,6 @@ static double parallel(IOSCUT *a, IOSCUT *b, double work[]) if (temp < DBL_EPSILON * DBL_EPSILON) temp = DBL_EPSILON; return s / temp; } +#endif /* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpios12.c b/resources/3rdparty/glpk-4.65/src/draft/glpios12.c similarity index 98% rename from resources/3rdparty/glpk-4.57/src/glpios12.c rename to resources/3rdparty/glpk-4.65/src/draft/glpios12.c index d5cf302a8..bec6fa2c4 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios12.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpios12.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +23,7 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" +#include "ios.h" /*********************************************************************** * NAME diff --git a/resources/3rdparty/glpk-4.57/src/glpipm.c b/resources/3rdparty/glpk-4.65/src/draft/glpipm.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/glpipm.c rename to resources/3rdparty/glpk-4.65/src/draft/glpipm.c diff --git a/resources/3rdparty/glpk-4.57/src/glpipm.h b/resources/3rdparty/glpk-4.65/src/draft/glpipm.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/glpipm.h rename to resources/3rdparty/glpk-4.65/src/draft/glpipm.h diff --git a/resources/3rdparty/glpk-4.57/src/glpmat.c b/resources/3rdparty/glpk-4.65/src/draft/glpmat.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/glpmat.c rename to resources/3rdparty/glpk-4.65/src/draft/glpmat.c diff --git a/resources/3rdparty/glpk-4.57/src/glpmat.h b/resources/3rdparty/glpk-4.65/src/draft/glpmat.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/glpmat.h rename to resources/3rdparty/glpk-4.65/src/draft/glpmat.h diff --git a/resources/3rdparty/glpk-4.57/src/glprgr.c b/resources/3rdparty/glpk-4.65/src/draft/glprgr.c similarity index 96% rename from resources/3rdparty/glpk-4.57/src/glprgr.c rename to resources/3rdparty/glpk-4.65/src/draft/glprgr.c index b4b616b1b..fbff6b8d4 100644 --- a/resources/3rdparty/glpk-4.57/src/glprgr.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glprgr.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -101,7 +101,11 @@ int rgr_write_bmp16(const char *fname, int m, int n, const char map[]) fp = fopen(fname, "wb"); if (fp == NULL) { xprintf("rgr_write_bmp16: unable to create '%s' - %s\n", +#if 0 /* 29/I-2017 */ fname, strerror(errno)); +#else + fname, xstrerr(errno)); +#endif ret = 1; goto fini; } @@ -155,7 +159,11 @@ int rgr_write_bmp16(const char *fname, int m, int n, const char map[]) fflush(fp); if (ferror(fp)) { xprintf("rgr_write_bmp16: write error on '%s' - %s\n", +#if 0 /* 29/I-2017 */ fname, strerror(errno)); +#else + fname, xstrerr(errno)); +#endif ret = 1; } fini: if (fp != NULL) fclose(fp); diff --git a/resources/3rdparty/glpk-4.57/src/glprgr.h b/resources/3rdparty/glpk-4.65/src/draft/glprgr.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/glprgr.h rename to resources/3rdparty/glpk-4.65/src/draft/glprgr.h diff --git a/resources/3rdparty/glpk-4.57/src/glpscl.c b/resources/3rdparty/glpk-4.65/src/draft/glpscl.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/glpscl.c rename to resources/3rdparty/glpk-4.65/src/draft/glpscl.c diff --git a/resources/3rdparty/glpk-4.57/src/glpspm.c b/resources/3rdparty/glpk-4.65/src/draft/glpspm.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/glpspm.c rename to resources/3rdparty/glpk-4.65/src/draft/glpspm.c diff --git a/resources/3rdparty/glpk-4.57/src/glpspm.h b/resources/3rdparty/glpk-4.65/src/draft/glpspm.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/glpspm.h rename to resources/3rdparty/glpk-4.65/src/draft/glpspm.h diff --git a/resources/3rdparty/glpk-4.57/src/glpssx.h b/resources/3rdparty/glpk-4.65/src/draft/glpssx.h similarity index 97% rename from resources/3rdparty/glpk-4.57/src/glpssx.h rename to resources/3rdparty/glpk-4.65/src/draft/glpssx.h index 1b55d7a3d..3b52b3cc5 100644 --- a/resources/3rdparty/glpk-4.57/src/glpssx.h +++ b/resources/3rdparty/glpk-4.65/src/draft/glpssx.h @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -27,6 +27,9 @@ #include "bfx.h" #include "env.h" +#if 1 /* 25/XI-2017 */ +#include "glpk.h" +#endif typedef struct SSX SSX; @@ -305,6 +308,14 @@ struct SSX /* actual change of xN[q] in the adjacent basis (it has the same sign as q_dir) */ /*--------------------------------------------------------------------*/ +#if 1 /* 25/XI-2017 */ + int msg_lev; + /* verbosity level: + GLP_MSG_OFF no output + GLP_MSG_ERR report errors and warnings + GLP_MSG_ON normal output + GLP_MSG_ALL highest verbosity */ +#endif int it_lim; /* simplex iterations limit; if this value is positive, it is decreased by one each time when one simplex iteration has been diff --git a/resources/3rdparty/glpk-4.57/src/glpssx01.c b/resources/3rdparty/glpk-4.65/src/draft/glpssx01.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/glpssx01.c rename to resources/3rdparty/glpk-4.65/src/draft/glpssx01.c diff --git a/resources/3rdparty/glpk-4.57/src/glpssx02.c b/resources/3rdparty/glpk-4.65/src/draft/glpssx02.c similarity index 93% rename from resources/3rdparty/glpk-4.57/src/glpssx02.c rename to resources/3rdparty/glpk-4.65/src/draft/glpssx02.c index 4b3ea97d6..81db1350d 100644 --- a/resources/3rdparty/glpk-4.57/src/glpssx02.c +++ b/resources/3rdparty/glpk-4.65/src/draft/glpssx02.c @@ -4,7 +4,7 @@ * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -132,10 +132,16 @@ int ssx_phase_I(SSX *ssx) ssx_eval_pi(ssx); ssx_eval_cbar(ssx); /* display initial progress of the search */ +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ON) +#endif show_progress(ssx, 1); /* main loop starts here */ for (;;) { /* display current progress of the search */ +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ON) +#endif #if 0 if (utime() - ssx->tm_lag >= ssx->out_frq - 0.001) #else @@ -243,6 +249,9 @@ int ssx_phase_I(SSX *ssx) ssx->it_cnt++; } /* display final progress of the search */ +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ON) +#endif show_progress(ssx, 1); /* restore components of the original problem, which were changed by the routine */ @@ -282,10 +291,16 @@ int ssx_phase_I(SSX *ssx) int ssx_phase_II(SSX *ssx) { int ret; /* display initial progress of the search */ +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ON) +#endif show_progress(ssx, 2); /* main loop starts here */ for (;;) { /* display current progress of the search */ +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ON) +#endif #if 0 if (utime() - ssx->tm_lag >= ssx->out_frq - 0.001) #else @@ -347,6 +362,9 @@ int ssx_phase_II(SSX *ssx) ssx->it_cnt++; } /* display final progress of the search */ +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ON) +#endif show_progress(ssx, 2); /* return to the calling program */ return ret; @@ -381,7 +399,12 @@ int ssx_driver(SSX *ssx) ssx->tm_beg = xtime(); /* factorize the initial basis matrix */ if (ssx_factorize(ssx)) +#if 0 /* 25/XI-2017 */ { xprintf("Initial basis matrix is singular\n"); +#else + { if (ssx->msg_lev >= GLP_MSG_ERR) + xprintf("Initial basis matrix is singular\n"); +#endif ret = 7; goto done; } @@ -419,14 +442,23 @@ int ssx_driver(SSX *ssx) ret = 0; break; case 1: +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ALL) +#endif xprintf("PROBLEM HAS NO FEASIBLE SOLUTION\n"); ret = 1; break; case 2: +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ALL) +#endif xprintf("ITERATIONS LIMIT EXCEEDED; SEARCH TERMINATED\n"); ret = 3; break; case 3: +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ALL) +#endif xprintf("TIME LIMIT EXCEEDED; SEARCH TERMINATED\n"); ret = 5; break; @@ -446,18 +478,30 @@ skip: /* compute simplex multipliers */ ret = ssx_phase_II(ssx); switch (ret) { case 0: +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ALL) +#endif xprintf("OPTIMAL SOLUTION FOUND\n"); ret = 0; break; case 1: +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ALL) +#endif xprintf("PROBLEM HAS UNBOUNDED SOLUTION\n"); ret = 2; break; case 2: +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ALL) +#endif xprintf("ITERATIONS LIMIT EXCEEDED; SEARCH TERMINATED\n"); ret = 4; break; case 3: +#if 1 /* 25/XI-2017 */ + if (ssx->msg_lev >= GLP_MSG_ALL) +#endif xprintf("TIME LIMIT EXCEEDED; SEARCH TERMINATED\n"); ret = 6; break; diff --git a/resources/3rdparty/glpk-4.57/src/glpios.h b/resources/3rdparty/glpk-4.65/src/draft/ios.h similarity index 87% rename from resources/3rdparty/glpk-4.57/src/glpios.h rename to resources/3rdparty/glpk-4.65/src/draft/ios.h index 07ee9810e..1cb07ee04 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios.h +++ b/resources/3rdparty/glpk-4.65/src/draft/ios.h @@ -1,10 +1,10 @@ -/* glpios.h (integer optimization suite) */ +/* ios.h (integer optimization suite) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* 2009, 2010, 2011, 2013, 2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,19 +22,32 @@ * along with GLPK. If not, see . ***********************************************************************/ -#ifndef GLPIOS_H -#define GLPIOS_H +#ifndef IOS_H +#define IOS_H #include "prob.h" +#if 1 /* 02/II-2018 */ +#define NEW_LOCAL 1 +#endif + +#if 1 /* 15/II-2018 */ +#define NEW_COVER 1 +#endif + typedef struct IOSLOT IOSLOT; typedef struct IOSNPD IOSNPD; typedef struct IOSBND IOSBND; typedef struct IOSTAT IOSTAT; typedef struct IOSROW IOSROW; typedef struct IOSAIJ IOSAIJ; +#ifdef NEW_LOCAL /* 02/II-2018 */ +typedef glp_prob IOSPOOL; +typedef GLPROW IOSCUT; +#else typedef struct IOSPOOL IOSPOOL; typedef struct IOSCUT IOSCUT; +#endif struct glp_tree { /* branch-and-bound tree */ @@ -148,10 +161,14 @@ struct glp_tree /* built-in cut generators segment */ IOSPOOL *local; /* local cut pool */ - void *mir_gen; +#if 1 /* 13/II-2018 */ + glp_cov *cov_gen; + /* pointer to working area used by the cover cut generator */ +#endif + glp_mir *mir_gen; /* pointer to working area used by the MIR cut generator */ - void *clq_gen; - /* pointer to working area used by the clique cut generator */ + glp_cfg *clq_gen; + /* pointer to conflict graph used by the clique cut generator */ /*--------------------------------------------------------------*/ void *pcost; /* pointer to working area used on pseudocost branching */ @@ -163,18 +180,10 @@ struct glp_tree /* control parameters and statistics */ const glp_iocp *parm; /* copy of control parameters passed to the solver */ -#if 0 /* 10/VI-2013 */ - glp_long tm_beg; -#else double tm_beg; -#endif /* starting time of the search, in seconds; the total time of the search is the difference between xtime() and tm_beg */ -#if 0 /* 10/VI-2013 */ - glp_long tm_lag; -#else double tm_lag; -#endif /* the most recent time, in seconds, at which the progress of the the search was displayed */ int sol_cnt; @@ -364,6 +373,7 @@ struct IOSAIJ /* pointer to next coefficient for the same row */ }; +#ifndef NEW_LOCAL /* 02/II-2018 */ struct IOSPOOL { /* cut pool */ int size; @@ -377,7 +387,9 @@ struct IOSPOOL IOSCUT *curr; /* pointer to the current cut */ }; +#endif +#ifndef NEW_LOCAL /* 02/II-2018 */ struct IOSCUT { /* cut (cutting plane constraint) */ char *name; @@ -398,6 +410,7 @@ struct IOSCUT IOSCUT *next; /* pointer to next cut */ }; +#endif #define ios_create_tree _glp_ios_create_tree glp_tree *ios_create_tree(glp_prob *mip, const glp_iocp *parm); @@ -487,96 +500,10 @@ int ios_preprocess_node(glp_tree *tree, int max_pass); int ios_driver(glp_tree *tree); /* branch-and-bound driver */ -/**********************************************************************/ - -typedef struct IOSVEC IOSVEC; - -struct IOSVEC -{ /* sparse vector v = (v[j]) */ - int n; - /* dimension, n >= 0 */ - int nnz; - /* number of non-zero components, 0 <= nnz <= n */ - int *pos; /* int pos[1+n]; */ - /* pos[j] = k, 1 <= j <= n, is position of (non-zero) v[j] in the - arrays ind and val, where 1 <= k <= nnz; pos[j] = 0 means that - v[j] is structural zero */ - int *ind; /* int ind[1+n]; */ - /* ind[k] = j, 1 <= k <= nnz, is index of v[j] */ - double *val; /* double val[1+n]; */ - /* val[k], 1 <= k <= nnz, is a numeric value of v[j] */ -}; - -#define ios_create_vec _glp_ios_create_vec -IOSVEC *ios_create_vec(int n); -/* create sparse vector */ - -#define ios_check_vec _glp_ios_check_vec -void ios_check_vec(IOSVEC *v); -/* check that sparse vector has correct representation */ - -#define ios_get_vj _glp_ios_get_vj -double ios_get_vj(IOSVEC *v, int j); -/* retrieve component of sparse vector */ - -#define ios_set_vj _glp_ios_set_vj -void ios_set_vj(IOSVEC *v, int j, double val); -/* set/change component of sparse vector */ - -#define ios_clear_vec _glp_ios_clear_vec -void ios_clear_vec(IOSVEC *v); -/* set all components of sparse vector to zero */ - -#define ios_clean_vec _glp_ios_clean_vec -void ios_clean_vec(IOSVEC *v, double eps); -/* remove zero or small components from sparse vector */ - -#define ios_copy_vec _glp_ios_copy_vec -void ios_copy_vec(IOSVEC *x, IOSVEC *y); -/* copy sparse vector (x := y) */ - -#define ios_linear_comb _glp_ios_linear_comb -void ios_linear_comb(IOSVEC *x, double a, IOSVEC *y); -/* compute linear combination (x := x + a * y) */ - -#define ios_delete_vec _glp_ios_delete_vec -void ios_delete_vec(IOSVEC *v); -/* delete sparse vector */ - -/**********************************************************************/ - -#define ios_gmi_gen _glp_ios_gmi_gen -void ios_gmi_gen(glp_tree *tree); -/* generate Gomory's mixed integer cuts */ - -#define ios_mir_init _glp_ios_mir_init -void *ios_mir_init(glp_tree *tree); -/* initialize MIR cut generator */ - -#define ios_mir_gen _glp_ios_mir_gen -void ios_mir_gen(glp_tree *tree, void *gen); -/* generate MIR cuts */ - -#define ios_mir_term _glp_ios_mir_term -void ios_mir_term(void *gen); -/* terminate MIR cut generator */ - #define ios_cov_gen _glp_ios_cov_gen void ios_cov_gen(glp_tree *tree); /* generate mixed cover cuts */ -#define ios_clq_init _glp_ios_clq_init -void *ios_clq_init(glp_tree *tree); -/* initialize clique cut generator */ - -#define ios_clq_gen _glp_ios_clq_gen -void ios_clq_gen(glp_tree *tree, void *gen); -/* generate clique cuts */ - -#define ios_clq_term _glp_ios_clq_term -void ios_clq_term(void *gen); -/* terminate clique cut generator */ - #define ios_pcost_init _glp_ios_pcost_init void *ios_pcost_init(glp_tree *tree); /* initialize working data used on pseudocost branching */ diff --git a/resources/3rdparty/glpk-4.57/src/lux.c b/resources/3rdparty/glpk-4.65/src/draft/lux.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/lux.c rename to resources/3rdparty/glpk-4.65/src/draft/lux.c diff --git a/resources/3rdparty/glpk-4.57/src/lux.h b/resources/3rdparty/glpk-4.65/src/draft/lux.h similarity index 99% rename from resources/3rdparty/glpk-4.57/src/lux.h rename to resources/3rdparty/glpk-4.65/src/draft/lux.h index 6efce3636..8767bb8ef 100644 --- a/resources/3rdparty/glpk-4.57/src/lux.h +++ b/resources/3rdparty/glpk-4.65/src/draft/lux.h @@ -26,7 +26,7 @@ #define LUX_H #include "dmp.h" -#include "glpgmp.h" +#include "mygmp.h" /*********************************************************************** * The structure LUX defines LU-factorization of a square matrix A, diff --git a/resources/3rdparty/glpk-4.57/src/env/alloc.c b/resources/3rdparty/glpk-4.65/src/env/alloc.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/env/alloc.c rename to resources/3rdparty/glpk-4.65/src/env/alloc.c diff --git a/resources/3rdparty/glpk-4.57/src/env/dlsup.c b/resources/3rdparty/glpk-4.65/src/env/dlsup.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/env/dlsup.c rename to resources/3rdparty/glpk-4.65/src/env/dlsup.c diff --git a/resources/3rdparty/glpk-4.57/src/env/env.c b/resources/3rdparty/glpk-4.65/src/env/env.c similarity index 78% rename from resources/3rdparty/glpk-4.57/src/env/env.c rename to resources/3rdparty/glpk-4.65/src/env/env.c index 2cc67a3b9..5b901f35e 100644 --- a/resources/3rdparty/glpk-4.57/src/env/env.c +++ b/resources/3rdparty/glpk-4.65/src/env/env.c @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000-2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -21,6 +21,10 @@ * along with GLPK. If not, see . ***********************************************************************/ +#ifdef HAVE_CONFIG_H +#include +#endif + #include "glpk.h" #include "env.h" @@ -65,8 +69,10 @@ int glp_init_env(void) if (env == NULL) return 2; memset(env, 0, sizeof(ENV)); +#if 0 /* 14/I-2017 */ sprintf(env->version, "%d.%d", GLP_MAJOR_VERSION, GLP_MINOR_VERSION); +#endif env->self = env; env->term_buf = malloc(TBUF_SIZE); if (env->term_buf == NULL) @@ -77,6 +83,9 @@ int glp_init_env(void) env->term_hook = NULL; env->term_info = NULL; env->tee_file = NULL; +#if 1 /* 23/XI-2015 */ + env->err_st = 0; +#endif env->err_file = NULL; env->err_line = 0; env->err_hook = NULL; @@ -92,6 +101,11 @@ int glp_init_env(void) env->mem_ptr = NULL; env->mem_count = env->mem_cpeak = 0; env->mem_total = env->mem_tpeak = 0; +#if 1 /* 23/XI-2015 */ + env->gmp_pool = NULL; + env->gmp_size = 0; + env->gmp_work = NULL; +#endif env->h_odbc = env->h_mysql = NULL; /* save pointer to the environment block */ tls_set_ptr(env); @@ -162,10 +176,75 @@ ENV *get_env_ptr(void) * the form "X.Y", where X is the major version number, and Y is the * minor version number, for example, "4.16". */ +#define str(s) # s +#define xstr(s) str(s) + const char *glp_version(void) +#if 0 /* 14/I-2017 */ { ENV *env = get_env_ptr(); return env->version; } +#else /* suggested by Heinrich */ +{ return + xstr(GLP_MAJOR_VERSION) "." xstr(GLP_MINOR_VERSION); +} +#endif + +/*********************************************************************** +* NAME +* +* glp_config - determine library configuration +* +* SYNOPSIS +* +* const char *glp_config(const char *option); +* +* DESCRIPTION +* +* The routine glp_config determines some options which were specified +* on configuring the GLPK library. +* +* RETURNS +* +* The routine glp_config returns a pointer to a null-terminating +* string depending on the option inquired. +* +* For option = "TLS" the routine returns the thread local storage +* class specifier used (e.g. "_Thread_local") if the GLPK library was +* configured to run in multi-threaded environment, or NULL otherwise. +* +* For option = "ODBC_DLNAME" the routine returns the name of ODBC +* shared library if this option was enabled, or NULL otherwise. +* +* For option = "MYSQL_DLNAME" the routine returns the name of MySQL +* shared library if this option was enabled, or NULL otherwise. */ + +const char *glp_config(const char *option) +{ const char *s; + if (strcmp(option, "TLS") == 0) +#ifndef TLS + s = NULL; +#else + s = xstr(TLS); +#endif + else if (strcmp(option, "ODBC_DLNAME") == 0) +#ifndef ODBC_DLNAME + s = NULL; +#else + s = ODBC_DLNAME; +#endif + else if (strcmp(option, "MYSQL_DLNAME") == 0) +#ifndef MYSQL_DLNAME + s = NULL; +#else + s = MYSQL_DLNAME; +#endif + else + { /* invalid option is always disabled */ + s = NULL; + } + return s; +} /*********************************************************************** * NAME diff --git a/resources/3rdparty/glpk-4.57/src/env/env.h b/resources/3rdparty/glpk-4.65/src/env/env.h similarity index 94% rename from resources/3rdparty/glpk-4.57/src/env/env.h rename to resources/3rdparty/glpk-4.65/src/env/env.h index 7d26a21ee..67214ef6d 100644 --- a/resources/3rdparty/glpk-4.57/src/env/env.h +++ b/resources/3rdparty/glpk-4.65/src/env/env.h @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000-2015 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -44,8 +44,10 @@ typedef struct MBD MBD; struct ENV { /* GLPK environment block */ +#if 0 /* 14/I-2007 */ char version[7+1]; /* version string returned by the routine glp_version */ +#endif ENV *self; /* pointer to this block to check its validity */ /*--------------------------------------------------------------*/ @@ -92,6 +94,16 @@ struct ENV * the sum of the size field over all memory block descriptors */ size_t mem_tpeak; /* peak value of mem_total */ +#if 1 /* 23/XI-2015 */ + /*--------------------------------------------------------------*/ + /* bignum module working area */ + void *gmp_pool; /* DMP *gmp_pool; */ + /* working memory pool */ + int gmp_size; + /* size of working array */ + unsigned short *gmp_work; /* ushort gmp_work[gmp_size]; */ + /* working array */ +#endif /*--------------------------------------------------------------*/ /* dynamic linking support (optional) */ void *h_odbc; diff --git a/resources/3rdparty/glpk-4.57/src/env/error.c b/resources/3rdparty/glpk-4.65/src/env/error.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/env/error.c rename to resources/3rdparty/glpk-4.65/src/env/error.c diff --git a/resources/3rdparty/glpk-4.65/src/env/stdc.c b/resources/3rdparty/glpk-4.65/src/env/stdc.c new file mode 100644 index 000000000..59331e22a --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/env/stdc.c @@ -0,0 +1,98 @@ +/* stdc.c (replacements for standard non-thread-safe functions) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2017 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#ifdef HAVE_CONFIG_H +#include +#endif + +/* portable ANSI C version ********************************************/ + +#if !defined(TLS) + +#define ENABLE_NON_SAFE +#include "stdc.h" + +struct tm *xgmtime(const time_t *timer) +{ return + gmtime(timer); +} + +char *xstrerr(int errnum) +{ return + strerror(errnum); +} + +char *xstrtok(char *s1, const char *s2) +{ return + strtok(s1, s2); +} + +/* MS Windows version *************************************************/ + +#elif defined(__WOE__) + +#include "stdc.h" + +struct tm *xgmtime(const time_t *timer) +{ static TLS struct tm result; + gmtime_s(&result, timer); + return &result; +} + +char *xstrerr(int errnum) +{ static TLS char s[1023+1]; + strerror_s(s, sizeof(s), errnum); + return s; +} + +char *xstrtok(char *s1, const char *s2) +{ static TLS char *ptr; + return strtok_s(s1, s2, &ptr); +} + +/* GNU/Linux version **************************************************/ + +#else + +#include "stdc.h" + +struct tm *xgmtime(const time_t *timer) +{ static TLS struct tm result; + gmtime_r(timer, &result); + return &result; +} + +char *xstrerr(int errnum) +{ static TLS char s[1023+1]; + strerror_r(errnum, s, sizeof(s)); + return s; +} + +char *xstrtok(char *s1, const char *s2) +{ static TLS char *ptr; + return strtok_r(s1, s2, &ptr); +} + +#endif + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/env/stdc.h b/resources/3rdparty/glpk-4.65/src/env/stdc.h similarity index 64% rename from resources/3rdparty/glpk-4.57/src/env/stdc.h rename to resources/3rdparty/glpk-4.65/src/env/stdc.h index 9ffdcd942..a376f2c9e 100644 --- a/resources/3rdparty/glpk-4.57/src/env/stdc.h +++ b/resources/3rdparty/glpk-4.65/src/env/stdc.h @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000-2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -37,6 +37,37 @@ #include #include +#ifndef ENABLE_NON_SAFE /* 29/I-2017 */ +/* disable using non-thread-safe functions directly */ +#undef gmtime +#define gmtime ??? +#undef strerror +#define strerror ??? +#undef strtok +#define strtok ??? +#endif + +#if 1 /* 29/I-2017 */ +/* provide replacements for these functions on a per-thread basis */ +#define xgmtime _glp_xgmtime +struct tm *xgmtime(const time_t *); +#define xstrerr _glp_xstrerr +char *xstrerr(int); +#define xstrtok _glp_xstrtok +char *xstrtok(char *, const char *); +#endif + +#if 1 /* 06/II-2018 */ +#ifdef HAVE_CONFIG_H +#include +#endif +#ifndef __WOE__ +#define CDECL +#else +#define CDECL __cdecl +#endif +#endif + #endif /* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/env/stdout.c b/resources/3rdparty/glpk-4.65/src/env/stdout.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/env/stdout.c rename to resources/3rdparty/glpk-4.65/src/env/stdout.c diff --git a/resources/3rdparty/glpk-4.57/src/env/stream.c b/resources/3rdparty/glpk-4.65/src/env/stream.c similarity index 95% rename from resources/3rdparty/glpk-4.57/src/env/stream.c rename to resources/3rdparty/glpk-4.65/src/env/stream.c index 8879616e2..906e5b04e 100644 --- a/resources/3rdparty/glpk-4.57/src/env/stream.c +++ b/resources/3rdparty/glpk-4.65/src/env/stream.c @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2008-2014 Andrew Makhorin, Department for Applied +* Copyright (C) 2008-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -122,7 +122,11 @@ glp_file *glp_open(const char *name, const char *mode) if (ext == NULL || strcmp(ext, ".gz") != 0) { file = fopen(name, mode); if (file == NULL) +#if 0 /* 29/I-2017 */ { put_err_msg(strerror(errno)); +#else + { put_err_msg(xstrerr(errno)); +#endif return NULL; } } @@ -138,7 +142,11 @@ glp_file *glp_open(const char *name, const char *mode) #endif file = gzopen(name, mode); if (file == NULL) +#if 0 /* 29/I-2017 */ { put_err_msg(strerror(errno)); +#else + { put_err_msg(xstrerr(errno)); +#endif return NULL; } } @@ -238,7 +246,11 @@ int glp_read(glp_file *f, void *buf, int nnn) { cnt = fread(f->base, 1, f->size, (FILE *)(f->file)); if (ferror((FILE *)(f->file))) { f->flag |= IOERR; +#if 0 /* 29/I-2017 */ put_err_msg(strerror(errno)); +#else + put_err_msg(xstrerr(errno)); +#endif return EOF; } } @@ -250,7 +262,11 @@ int glp_read(glp_file *f, void *buf, int nnn) { f->flag |= IOERR; msg = gzerror((gzFile)(f->file), &errnum); if (errnum == Z_ERRNO) +#if 0 /* 29/I-2017 */ put_err_msg(strerror(errno)); +#else + put_err_msg(xstrerr(errno)); +#endif else put_err_msg(msg); return EOF; @@ -322,7 +338,11 @@ static int do_flush(glp_file *f) { if ((int)fwrite(f->base, 1, f->cnt, (FILE *)(f->file)) != f->cnt) { f->flag |= IOERR; +#if 0 /* 29/I-2017 */ put_err_msg(strerror(errno)); +#else + put_err_msg(xstrerr(errno)); +#endif return EOF; } } @@ -333,7 +353,11 @@ static int do_flush(glp_file *f) { f->flag |= IOERR; msg = gzerror((gzFile)(f->file), &errnum); if (errnum == Z_ERRNO) +#if 0 /* 29/I-2017 */ put_err_msg(strerror(errno)); +#else + put_err_msg(xstrerr(errno)); +#endif else put_err_msg(msg); return EOF; @@ -450,7 +474,11 @@ int glp_close(glp_file *f) else if (!(f->flag & IOGZIP)) { if (fclose((FILE *)(f->file)) != 0) { if (ret == 0) +#if 0 /* 29/I-2017 */ { put_err_msg(strerror(errno)); +#else + { put_err_msg(xstrerr(errno)); +#endif ret = EOF; } } @@ -462,7 +490,11 @@ int glp_close(glp_file *f) ; else if (errnum == Z_ERRNO) { if (ret == 0) +#if 0 /* 29/I-2017 */ { put_err_msg(strerror(errno)); +#else + { put_err_msg(xstrerr(errno)); +#endif ret = EOF; } } diff --git a/resources/3rdparty/glpk-4.57/src/env/time.c b/resources/3rdparty/glpk-4.65/src/env/time.c similarity index 77% rename from resources/3rdparty/glpk-4.57/src/env/time.c rename to resources/3rdparty/glpk-4.65/src/env/time.c index e5aac0b0b..1ffb28e98 100644 --- a/resources/3rdparty/glpk-4.57/src/env/time.c +++ b/resources/3rdparty/glpk-4.65/src/env/time.c @@ -3,9 +3,9 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000-2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights -* reserved. E-mail: . +* reserved. E-mail: . * * GLPK is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by @@ -42,12 +42,13 @@ * The routine glp_time returns the current universal time (UTC), in * milliseconds, elapsed since 00:00:00 GMT January 1, 1970. */ -#define EPOCH 2440588 /* jday(1, 1, 1970) */ +#define EPOCH 2440588 /* = jday(1, 1, 1970) */ /* POSIX version ******************************************************/ #if defined(HAVE_SYS_TIME_H) && defined(HAVE_GETTIMEOFDAY) +#if 0 /* 29/VI-2017 */ #include #include @@ -57,7 +58,11 @@ double glp_time(void) int j; double t; gettimeofday(&tv, NULL); +#if 0 /* 29/I-2017 */ tm = gmtime(&tv.tv_sec); +#else + tm = xgmtime(&tv.tv_sec); +#endif j = jday(tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year); xassert(j >= 0); t = ((((double)(j - EPOCH) * 24.0 + (double)tm->tm_hour) * 60.0 + @@ -65,6 +70,18 @@ double glp_time(void) (double)(tv.tv_usec / 1000); return t; } +#else +#include + +double glp_time(void) +{ struct timeval tv; + double t; + gettimeofday(&tv, NULL); + t = (double)tv.tv_sec + (double)(tv.tv_usec) / 1e6; + xassert(0.0 <= t && t < 4294967296.0); + return 1000.0 * t; +} +#endif /* MS Windows version *************************************************/ @@ -97,7 +114,11 @@ double glp_time(void) int j; double t; timer = time(NULL); +#if 0 /* 29/I-2017 */ tm = gmtime(&timer); +#else + tm = xgmtime(&timer); +#endif j = jday(tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year); xassert(j >= 0); t = ((((double)(j - EPOCH) * 24.0 + (double)tm->tm_hour) * 60.0 + @@ -126,34 +147,4 @@ double glp_difftime(double t1, double t0) (t1 - t0) / 1000.0; } -/**********************************************************************/ - -#ifdef GLP_TEST -#include - -int main(void) -{ int ttt, ss, mm, hh, day, month, year; - double t; - t = glp_time(); - xprintf("t = %.f\n", t); - assert(floor(t) == t); - ttt = (int)fmod(t, 1000.0); - t = (t - (double)ttt) / 1000.0; - assert(floor(t) == t); - ss = (int)fmod(t, 60.0); - t = (t - (double)ss) / 60.0; - assert(floor(t) == t); - mm = (int)fmod(t, 60.0); - t = (t - (double)mm) / 60.0; - assert(floor(t) == t); - hh = (int)fmod(t, 24.0); - t = (t - (double)hh) / 24.0; - assert(floor(t) == t); - assert(jdate((int)t + EPOCH, &day, &month, &year) == 0); - printf("%04d-%02d-%02d %02d:%02d:%02d.%03d\n", - year, month, day, hh, mm, ss, ttt); - return 0; -} -#endif - /* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/env/tls.c b/resources/3rdparty/glpk-4.65/src/env/tls.c similarity index 50% rename from resources/3rdparty/glpk-4.57/src/env/tls.c rename to resources/3rdparty/glpk-4.65/src/env/tls.c index 3ffa11437..4062ee4ce 100644 --- a/resources/3rdparty/glpk-4.57/src/env/tls.c +++ b/resources/3rdparty/glpk-4.65/src/env/tls.c @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2001-2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2001-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -21,11 +21,22 @@ * along with GLPK. If not, see . ***********************************************************************/ +#ifdef HAVE_CONFIG_H +#include +#endif + #include "env.h" +#ifndef TLS static void *tls = NULL; -/* NOTE: in a re-entrant version of the package this variable should be - * placed in the Thread Local Storage (TLS) */ +#else +static TLS void *tls = NULL; +/* this option allows running multiple independent instances of GLPK in + * different threads of a multi-threaded application, in which case the + * variable tls should be placed in the Thread Local Storage (TLS); + * it is assumed that the macro TLS is previously defined to something + * like '__thread', '_Thread_local', etc. */ +#endif /*********************************************************************** * NAME @@ -69,4 +80,49 @@ void *tls_get_ptr(void) return ptr; } +/**********************************************************************/ + +#ifdef __WOE__ + +/*** Author: Heinrich Schuchardt ***/ + +#pragma comment(lib, "user32.lib") + +#include + +#define VISTA 0x06 + +/* This is the main entry point of the DLL. */ + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID + lpvReserved) +{ DWORD version; + DWORD major_version; +#ifdef TLS + switch (fdwReason) + { case DLL_PROCESS_ATTACH: + /* @TODO: + * GetVersion is deprecated but the version help functions are + * not available in Visual Studio 2010. So lets use it until + * we remove the outdated Build files. */ + version = GetVersion(); + major_version = version & 0xff; + if (major_version < VISTA) + { MessageBoxA(NULL, + "The GLPK library called by this application is configur" + "ed to use thread local storage which is not fully suppo" + "rted by your version of Microsoft Windows.\n\n" + "Microsoft Windows Vista or a later version of Windows i" + "s required to run this application.", + "GLPK", MB_OK | MB_ICONERROR); + return FALSE; + } + break; + } +#endif /* TLS */ + return TRUE; +} + +#endif /* __WOE__ */ + /* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpk.h b/resources/3rdparty/glpk-4.65/src/glpk.h similarity index 90% rename from resources/3rdparty/glpk-4.57/src/glpk.h rename to resources/3rdparty/glpk-4.65/src/glpk.h index ed5be77fc..f4e250f90 100644 --- a/resources/3rdparty/glpk-4.57/src/glpk.h +++ b/resources/3rdparty/glpk-4.65/src/glpk.h @@ -1,12 +1,11 @@ -/* glpk.h (GLPK API) */ +/* glpk.h */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013, 2014, 2015 Andrew Makhorin, Department for -* Applied Informatics, Moscow Aviation Institute, Moscow, Russia. All -* rights reserved. E-mail: . +* Copyright (C) 2000-2018 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . * * GLPK is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by @@ -34,7 +33,7 @@ extern "C" { /* library version numbers: */ #define GLP_MAJOR_VERSION 4 -#define GLP_MINOR_VERSION 57 +#define GLP_MINOR_VERSION 65 typedef struct glp_prob glp_prob; /* LP/MIP problem object */ @@ -107,7 +106,7 @@ typedef struct } glp_bfcp; typedef struct -{ /* simplex method control parameters */ +{ /* simplex solver control parameters */ int msg_lev; /* message level: */ #define GLP_MSG_OFF 0 /* no output */ #define GLP_MSG_ERR 1 /* warning and error messages only */ @@ -124,17 +123,27 @@ typedef struct int r_test; /* ratio test technique: */ #define GLP_RT_STD 0x11 /* standard (textbook) */ #define GLP_RT_HAR 0x22 /* Harris' two-pass ratio test */ - double tol_bnd; /* spx.tol_bnd */ - double tol_dj; /* spx.tol_dj */ - double tol_piv; /* spx.tol_piv */ - double obj_ll; /* spx.obj_ll */ - double obj_ul; /* spx.obj_ul */ - int it_lim; /* spx.it_lim */ - int tm_lim; /* spx.tm_lim (milliseconds) */ - int out_frq; /* spx.out_frq */ - int out_dly; /* spx.out_dly (milliseconds) */ +#if 1 /* 16/III-2016 */ +#define GLP_RT_FLIP 0x33 /* long-step (flip-flop) ratio test */ +#endif + double tol_bnd; /* primal feasibility tolerance */ + double tol_dj; /* dual feasibility tolerance */ + double tol_piv; /* pivot tolerance */ + double obj_ll; /* lower objective limit */ + double obj_ul; /* upper objective limit */ + int it_lim; /* simplex iteration limit */ + int tm_lim; /* time limit, ms */ + int out_frq; /* display output frequency, ms */ + int out_dly; /* display output delay, ms */ int presolve; /* enable/disable using LP presolver */ - double foo_bar[36]; /* (reserved) */ +#if 1 /* 11/VII-2017 (not documented yet) */ + int excl; /* exclude fixed non-basic variables */ + int shift; /* shift bounds of variables to zero */ + int aorn; /* option to use A or N: */ +#define GLP_USE_AT 1 /* use A matrix in row-wise format */ +#define GLP_USE_NT 2 /* use N matrix in row-wise format */ + double foo_bar[33]; /* (reserved) */ +#endif } glp_smcp; typedef struct @@ -194,7 +203,10 @@ typedef struct const char *save_sol; /* filename to save every new solution */ int alien; /* use alien solver */ #endif - double foo_bar[24]; /* (reserved) */ +#if 1 /* 16/III-2016; not documented--should not be used */ + int flip; /* use long-step dual simplex */ +#endif + double foo_bar[23]; /* (reserved) */ } glp_iocp; typedef struct @@ -284,6 +296,11 @@ typedef struct /* (reserved for use in the future) */ } glp_cpxcp; +#if 1 /* 10/XII-2017 */ +typedef struct glp_prep glp_prep; +/* LP/MIP preprocessor workspace */ +#endif + typedef struct glp_tran glp_tran; /* MathProg translator workspace */ @@ -653,6 +670,30 @@ void glp_analyze_coef(glp_prob *P, int k, double *coef1, int *var1, double *value1, double *coef2, int *var2, double *value2); /* analyze objective coefficient at basic variable */ +#if 1 /* 10/XII-2017 */ +glp_prep *glp_npp_alloc_wksp(void); +/* allocate the preprocessor workspace */ + +void glp_npp_load_prob(glp_prep *prep, glp_prob *P, int sol, + int names); +/* load original problem instance */ + +int glp_npp_preprocess1(glp_prep *prep, int hard); +/* perform basic LP/MIP preprocessing */ + +void glp_npp_build_prob(glp_prep *prep, glp_prob *Q); +/* build resultant problem instance */ + +void glp_npp_postprocess(glp_prep *prep, glp_prob *Q); +/* postprocess solution to resultant problem */ + +void glp_npp_obtain_sol(glp_prep *prep, glp_prob *P); +/* obtain solution to original problem */ + +void glp_npp_free_wksp(glp_prep *prep); +/* free the preprocessor workspace */ +#endif + int glp_ios_reason(glp_tree *T); /* determine reason for calling the callback routine */ @@ -722,6 +763,51 @@ int glp_ios_heur_sol(glp_tree *T, const double x[]); void glp_ios_terminate(glp_tree *T); /* terminate the solution process */ +#ifdef GLP_UNDOC +int glp_gmi_cut(glp_prob *P, int j, int ind[], double val[], double + phi[]); +/* generate Gomory's mixed integer cut (core routine) */ + +int glp_gmi_gen(glp_prob *P, glp_prob *pool, int max_cuts); +/* generate Gomory's mixed integer cuts */ + +typedef struct glp_cov glp_cov; +/* cover cur generator workspace */ + +glp_cov *glp_cov_init(glp_prob *P); +/* create and initialize cover cut generator */ + +void glp_cov_gen1(glp_prob *P, glp_cov *cov, glp_prob *pool); +/* generate locally valid simple cover cuts */ + +void glp_cov_free(glp_cov *cov); +/* delete cover cut generator workspace */ + +typedef struct glp_mir glp_mir; +/* MIR cut generator workspace */ + +glp_mir *glp_mir_init(glp_prob *P); +/* create and initialize MIR cut generator */ + +int glp_mir_gen(glp_prob *P, glp_mir *mir, glp_prob *pool); +/* generate mixed integer rounding (MIR) cuts */ + +void glp_mir_free(glp_mir *mir); +/* delete MIR cut generator workspace */ + +typedef struct glp_cfg glp_cfg; +/* conflict graph descriptor */ + +glp_cfg *glp_cfg_init(glp_prob *P); +/* create and initialize conflict graph */ + +void glp_cfg_free(glp_cfg *G); +/* delete conflict graph descriptor */ + +int glp_clq_cut(glp_prob *P, glp_cfg *G, int ind[], double val[]); +/* generate clique cut from conflict graph */ +#endif /* GLP_UNDOC */ + void glp_init_mpscp(glp_mpscp *parm); /* initialize MPS format control parameters */ @@ -751,6 +837,9 @@ int glp_write_prob(glp_prob *P, int flags, const char *fname); glp_tran *glp_mpl_alloc_wksp(void); /* allocate the MathProg translator workspace */ +void glp_mpl_init_rand(glp_tran *tran, int seed); +/* initialize pseudo-random number generator */ + int glp_mpl_read_model(glp_tran *tran, const char *fname, int skip); /* read and translate model section */ @@ -769,9 +858,6 @@ int glp_mpl_postsolve(glp_tran *tran, glp_prob *prob, int sol); void glp_mpl_free_wksp(glp_tran *tran); /* free the MathProg translator workspace */ -int glp_main(int argc, const char *argv[]); -/* stand-alone LP/MIP solver */ - int glp_read_cnfsat(glp_prob *P, const char *fname); /* read CNF-SAT problem data in DIMACS format */ @@ -793,6 +879,9 @@ int glp_init_env(void); const char *glp_version(void); /* determine library version */ +const char *glp_config(const char *option); +/* determine library configuration */ + int glp_free_env(void); /* free GLPK environment */ @@ -861,6 +950,12 @@ void glp_mem_usage(int *count, int *cpeak, size_t *total, size_t *tpeak); /* get memory usage information */ +double glp_time(void); +/* determine current universal time */ + +double glp_difftime(double t1, double t0); +/* compute difference between two time values */ + typedef struct glp_graph glp_graph; typedef struct glp_vertex glp_vertex; typedef struct glp_arc glp_arc; diff --git a/resources/3rdparty/glpk-4.57/src/cglib/cfg.c b/resources/3rdparty/glpk-4.65/src/intopt/cfg.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/cglib/cfg.c rename to resources/3rdparty/glpk-4.65/src/intopt/cfg.c diff --git a/resources/3rdparty/glpk-4.57/src/cglib/cfg.h b/resources/3rdparty/glpk-4.65/src/intopt/cfg.h similarity index 97% rename from resources/3rdparty/glpk-4.57/src/cglib/cfg.h rename to resources/3rdparty/glpk-4.65/src/intopt/cfg.h index bbf2454ca..d478f6c08 100644 --- a/resources/3rdparty/glpk-4.57/src/cglib/cfg.h +++ b/resources/3rdparty/glpk-4.65/src/intopt/cfg.h @@ -40,11 +40,19 @@ * Since the conflict graph may be dense, it is stored as an union of * its cliques rather than explicitly. */ +#if 0 /* 08/III-2016 */ typedef struct CFG CFG; +#else +typedef struct glp_cfg CFG; +#endif typedef struct CFGVLE CFGVLE; typedef struct CFGCLE CFGCLE; +#if 0 /* 08/III-2016 */ struct CFG +#else +struct glp_cfg +#endif { /* conflict graph descriptor */ int n; /* number of *all* variables (columns) in corresponding MIP */ diff --git a/resources/3rdparty/glpk-4.57/src/cglib/cfg1.c b/resources/3rdparty/glpk-4.65/src/intopt/cfg1.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/cglib/cfg1.c rename to resources/3rdparty/glpk-4.65/src/intopt/cfg1.c index 0dbfbeb06..80a2e8346 100644 --- a/resources/3rdparty/glpk-4.57/src/cglib/cfg1.c +++ b/resources/3rdparty/glpk-4.65/src/intopt/cfg1.c @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2012-2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2012-2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -197,7 +197,7 @@ struct term { int ind; double val; }; /* term a[j] * z[j] used to sort a[j]'s */ -static int fcmp(const void *e1, const void *e2) +static int CDECL fcmp(const void *e1, const void *e2) { /* auxiliary routine called from qsort */ const struct term *t1 = e1, *t2 = e2; if (t1->val > t2->val) diff --git a/resources/3rdparty/glpk-4.65/src/intopt/cfg2.c b/resources/3rdparty/glpk-4.65/src/intopt/cfg2.c new file mode 100644 index 000000000..85c0705ee --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/intopt/cfg2.c @@ -0,0 +1,91 @@ +/* cfg2.c (conflict graph) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2015-2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "cfg.h" +#include "env.h" +#include "prob.h" + +/*********************************************************************** +* NAME +* +* glp_cfg_init - create and initialize conflict graph +* +* SYNOPSIS +* +* glp_cfg *glp_cfg_init(glp_prob *P); +* +* DESCRIPTION +* +* This routine creates and initializes the conflict graph for the +* specified problem object. +* +* RETURNS +* +* The routine returns a pointer to the conflict graph descriptor. +* However, if the conflict graph is empty (no conflicts have been +* found), the routine returns NULL. */ + +glp_cfg *glp_cfg_init(glp_prob *P) +{ glp_cfg *G; + int j, n1, n2; + xprintf("Constructing conflict graph...\n"); + G = cfg_build_graph(P); + n1 = n2 = 0; + for (j = 1; j <= P->n; j++) + { if (G->pos[j]) + n1 ++; + if (G->neg[j]) + n2++; + } + if (n1 == 0 && n2 == 0) + { xprintf("No conflicts found\n"); + cfg_delete_graph(G); + G = NULL; + } + else + xprintf("Conflict graph has %d + %d = %d vertices\n", + n1, n2, G->nv); + return G; +} + +/*********************************************************************** +* NAME +* +* glp_cfg_free - delete conflict graph descriptor +* +* SYNOPSIS +* +* void glp_cfg_free(glp_cfg *G); +* +* DESCRIPTION +* +* This routine deletes the conflict graph descriptor and frees all the +* memory allocated to it. */ + +void glp_cfg_free(glp_cfg *G) +{ xassert(G != NULL); + cfg_delete_graph(G); + return; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpios08.c b/resources/3rdparty/glpk-4.65/src/intopt/clqcut.c similarity index 67% rename from resources/3rdparty/glpk-4.57/src/glpios08.c rename to resources/3rdparty/glpk-4.65/src/intopt/clqcut.c index d165492f7..d3db5b395 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios08.c +++ b/resources/3rdparty/glpk-4.65/src/intopt/clqcut.c @@ -1,9 +1,9 @@ -/* glpios08.c (clique cut generator) */ +/* clqcut.c (clique cut generator) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2008, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2008-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,48 +23,48 @@ #include "cfg.h" #include "env.h" -#include "glpios.h" +#include "prob.h" -void *ios_clq_init(glp_tree *T) -{ /* initialize clique cut generator */ - glp_prob *P = T->mip; - CFG *G; - int j, n1, n2; - xprintf("Constructing conflict graph...\n"); - G = cfg_build_graph(P); - n1 = n2 = 0; - for (j = 1; j <= P->n; j++) - { if (G->pos[j]) - n1 ++; - if (G->neg[j]) - n2++; - } - if (n1 == 0 && n2 == 0) - { xprintf("No conflicts found\n"); - cfg_delete_graph(G); - G = NULL; - } - else - xprintf("Conflict graph has %d + %d = %d vertices\n", - n1, n2, G->nv); - return G; -} +/*********************************************************************** +* NAME +* +* glp_clq_cut - generate clique cut from conflict graph +* +* SYNOPSIS +* +* int glp_clq_cut(glp_prob *P, glp_cfg *G, int ind[], double val[]); +* +* DESCRIPTION +* +* This routine attempts to generate a clique cut. +* +* The cut generated by the routine is the following inequality: +* +* sum a[j] * x[j] <= b, +* +* which is expected to be violated at the current basic solution. +* +* If the cut has been successfully generated, the routine stores its +* non-zero coefficients a[j] and corresponding column indices j in the +* array locations val[1], ..., val[len] and ind[1], ..., ind[len], +* where 1 <= len <= n is the number of non-zero coefficients. The +* right-hand side value b is stored in val[0], and ind[0] is set to 0. +* +* RETURNS +* +* If the cut has been successfully generated, the routine returns +* len, the number of non-zero coefficients in the cut, 1 <= len <= n. +* Otherwise, the routine returns a non-positive value. */ -void ios_clq_gen(glp_tree *T, void *G_) -{ /* attempt to generate clique cut */ - glp_prob *P = T->mip; - int n = P->n; - CFG *G = G_; +int glp_clq_cut(glp_prob *P, glp_cfg *G, int ind[], double val[]) +{ int n = P->n; int *pos = G->pos; int *neg = G->neg; int nv = G->nv; int *ref = G->ref; - int j, k, v, len, *ind; - double rhs, sum, *val; + int j, k, v, len; + double rhs, sum; xassert(G->n == n); - /* allocate working arrays */ - ind = talloc(1+n, int); - val = talloc(1+n, double); /* find maximum weight clique in conflict graph */ len = cfg_find_clique(P, G, ind, &sum); #ifdef GLP_DEBUG @@ -73,7 +73,7 @@ void ios_clq_gen(glp_tree *T, void *G_) #endif /* check if clique inequality is violated */ if (sum < 1.07) - goto skip; + return 0; /* expand clique to maximal one */ len = cfg_expand_clique(G, len, ind); #ifdef GLP_DEBUG @@ -127,21 +127,8 @@ void ios_clq_gen(glp_tree *T, void *G_) val[len] = val[j]; } } - /* add cut inequality to local cut pool */ - glp_ios_add_row(T, NULL, GLP_RF_CLQ, 0, len, ind, val, GLP_UP, - rhs); -skip: /* free working arrays */ - tfree(ind); - tfree(val); - return; -} - -void ios_clq_term(void *G_) -{ /* terminate clique cut generator */ - CFG *G = G_; - xassert(G != NULL); - cfg_delete_graph(G); - return; + ind[0] = 0, val[0] = rhs; + return len; } /* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/intopt/covgen.c b/resources/3rdparty/glpk-4.65/src/intopt/covgen.c new file mode 100644 index 000000000..427c3aa81 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/intopt/covgen.c @@ -0,0 +1,885 @@ +/* covgen.c */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2017-2018 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "fvs.h" +#include "ks.h" +#include "prob.h" + +struct glp_cov +{ /* cover cut generator working area */ + int n; + /* number of columns (variables) */ + glp_prob *set; + /* set of globally valid 0-1 knapsack inequalities chosen from + * the root problem; each inequality is either original row or + * its relaxation (surrogate 0-1 knapsack) which is constructed + * by substitution of lower/upper single/variable bounds for + * continuous and general integer (non-binary) variables */ +}; + +struct bnd +{ /* simple or variable bound */ + /* if z = 0, it is a simple bound x >= or <= b; if b = -DBL_MAX + * (b = +DBL_MAX), x has no lower (upper) bound; otherwise, if + * z != 0, it is a variable bound x >= or <= a * z + b */ + int z; + /* number of binary variable or 0 */ + double a, b; + /* bound parameters */ +}; + +struct csa +{ /* common storage area */ + glp_prob *P; + /* original (root) MIP */ + struct bnd *l; /* struct bnd l[1+P->n]; */ + /* lower simple/variable bounds of variables */ + struct bnd *u; /* struct bnd u[1+P->n]; */ + /* upper simple/variable bounds of variables */ + glp_prob *set; + /* see struct glp_cov above */ +}; + +/*********************************************************************** +* init_bounds - initialize bounds of variables with simple bounds +* +* This routine initializes lower and upper bounds of all variables +* with simple bounds specified in the original mip. */ + +static void init_bounds(struct csa *csa) +{ glp_prob *P = csa->P; + struct bnd *l = csa->l, *u = csa->u; + int j; + for (j = 1; j <= P->n; j++) + { l[j].z = u[j].z = 0; + l[j].a = u[j].a = 0; + l[j].b = glp_get_col_lb(P, j); + u[j].b = glp_get_col_ub(P, j); + } + return; +} + +/*********************************************************************** +* check_vb - check variable bound +* +* This routine checks if the specified i-th row has the form +* +* a1 * x + a2 * z >= or <= rhs, (1) +* +* where x is a non-fixed continuous or general integer variable, and +* z is a binary variable. If it is, the routine converts the row to +* the following variable lower/upper bound (VLB/VUB) of x: +* +* x >= or <= a * z + b, (2) +* +* where a = - a2 / a1, b = rhs / a1. Note that the inequality type is +* changed to opposite one when a1 < 0. +* +* If the row is identified as a variable bound, the routine returns +* GLP_LO for VLB or GLP_UP for VUB and provides the reference numbers +* of variables x and z and values of a and b. Otherwise, the routine +* returns zero. */ + +static int check_vb(struct csa *csa, int i, int *x, int *z, double *a, + double *b) +{ glp_prob *P = csa->P; + GLPROW *row; + GLPAIJ *a1, *a2; + int type; + double rhs; + xassert(1 <= i && i <= P->m); + row = P->row[i]; + /* check row type */ + switch (row->type) + { case GLP_LO: + case GLP_UP: + break; + default: + return 0; + } + /* take first term of the row */ + a1 = row->ptr; + if (a1 == NULL) + return 0; + /* take second term of the row */ + a2 = a1->r_next; + if (a2 == NULL) + return 0; + /* there should be exactly two terms in the row */ + if (a2->r_next != NULL) + return 0; + /* if first term is a binary variable, swap the terms */ + if (glp_get_col_kind(P, a1->col->j) == GLP_BV) + { GLPAIJ *a; + a = a1, a1 = a2, a2 = a; + } + /* now first term should be a non-fixed continuous or general + * integer variable */ + if (a1->col->type == GLP_FX) + return 0; + if (glp_get_col_kind(P, a1->col->j) == GLP_BV) + return 0; + /* and second term should be a binary variable */ + if (glp_get_col_kind(P, a2->col->j) != GLP_BV) + return 0; + /* VLB/VUB row has been identified */ + switch (row->type) + { case GLP_LO: + type = a1->val > 0 ? GLP_LO : GLP_UP; + rhs = row->lb; + break; + case GLP_UP: + type = a1->val > 0 ? GLP_UP : GLP_LO; + rhs = row->ub; + break; + default: + xassert(type != type); + } + *x = a1->col->j; + *z = a2->col->j; + *a = - a2->val / a1->val; + *b = rhs / a1->val; + return type; +} + +/*********************************************************************** +* set_vb - set variable bound +* +* This routine sets lower or upper variable bound specified as +* +* x >= a * z + b (type = GLP_LO) +* +* x <= a * z + b (type = GLP_UP) */ + +static void set_vb(struct csa *csa, int type, int x, int z, double a, + double b) +{ glp_prob *P = csa->P; + struct bnd *l = csa->l, *u = csa->u; + xassert(glp_get_col_type(P, x) != GLP_FX); + xassert(glp_get_col_kind(P, x) != GLP_BV); + xassert(glp_get_col_kind(P, z) == GLP_BV); + xassert(a != 0); + switch (type) + { case GLP_LO: + /* FIXME: check existing simple lower bound? */ + l[x].z = z, l[x].a = a, l[x].b = b; + break; + case GLP_UP: + /* FIXME: check existing simple upper bound? */ + u[x].z = z, u[x].a = a, u[x].b = b; + break; + default: + xassert(type != type); + } + return; +} + +/*********************************************************************** +* obtain_vbs - obtain and set variable bounds +* +* This routine walks thru all rows of the original mip, identifies +* rows specifying variable lower/upper bounds, and sets these bounds +* for corresponding (non-binary) variables. */ + +static void obtain_vbs(struct csa *csa) +{ glp_prob *P = csa->P; + int i, x, z, type, save; + double a, b; + for (i = 1; i <= P->m; i++) + { switch (P->row[i]->type) + { case GLP_FR: + break; + case GLP_LO: + case GLP_UP: + type = check_vb(csa, i, &x, &z, &a, &b); + if (type) + set_vb(csa, type, x, z, a, b); + break; + case GLP_DB: + case GLP_FX: + /* double-side inequality l <= ... <= u and equality + * ... = l = u are considered as two single inequalities + * ... >= l and ... <= u */ + save = P->row[i]->type; + P->row[i]->type = GLP_LO; + type = check_vb(csa, i, &x, &z, &a, &b); + if (type) + set_vb(csa, type, x, z, a, b); + P->row[i]->type = GLP_UP; + type = check_vb(csa, i, &x, &z, &a, &b); + if (type) + set_vb(csa, type, x, z, a, b); + P->row[i]->type = save; + break; + default: + xassert(P != P); + } + } + return; +} + +/*********************************************************************** +* add_term - add term to sparse vector +* +* This routine computes the following linear combination: +* +* v := v + a * e[j], +* +* where v is a sparse vector in full storage format, a is a non-zero +* scalar, e[j] is j-th column of unity matrix. */ + +static void add_term(FVS *v, int j, double a) +{ xassert(1 <= j && j <= v->n); + xassert(a != 0); + if (v->vec[j] == 0) + { /* create j-th component */ + v->nnz++; + xassert(v->nnz <= v->n); + v->ind[v->nnz] = j; + } + /* perform addition */ + v->vec[j] += a; + if (fabs(v->vec[j]) < 1e-9 * (1 + fabs(a))) + { /* remove j-th component */ + v->vec[j] = DBL_MIN; + } + return; +} + +/*********************************************************************** +* build_ks - build "0-1 knapsack" inequality +* +* Given an inequality of "not greater" type: +* +* sum{j in 1..n} a[j]*x[j] <= b, (1) +* +* this routine attempts to transform it to equivalent or relaxed "0-1 +* knapsack" inequality that contains only binary variables. +* +* If x[j] is a binary variable, the term a[j]*x[j] is not changed. +* Otherwise, if x[j] is a continuous or integer non-binary variable, +* it is replaced by its lower (if a[j] > 0) or upper (if a[j] < 0) +* single or variable bound. In the latter case, if x[j] is a non-fixed +* variable, this results in a relaxation of original inequality known +* as "surrogate knapsack". Thus, if the specified inequality is valid +* for the original mip, the resulting inequality is also valid. +* +* Note that in both source and resulting inequalities coefficients +* a[j] can have any sign. +* +* On entry to the routine the source inequality is specified by the +* parameters n, ind (contains original numbers of x[j]), a, and b. The +* parameter v is a working sparse vector whose components are assumed +* to be zero. +* +* On exit the routine stores the resulting "0-1 knapsack" inequality +* in the parameters ind, a, and b, and returns n which is the number +* of terms in the resulting inequality. Zero content of the vector v +* is restored before exit. +* +* If the resulting inequality cannot be constructed due to missing +* lower/upper bounds of some variable, the routine returns a negative +* value. */ + +static int build_ks(struct csa *csa, int n, int ind[], double a[], + double *b, FVS *v) +{ glp_prob *P = csa->P; + struct bnd *l = csa->l, *u = csa->u; + int j, k; + /* check that v = 0 */ +#ifdef GLP_DEBUG + fvs_check_vec(v); +#endif + xassert(v->nnz == 0); + /* walk thru terms of original inequality */ + for (j = 1; j <= n; j++) + { /* process term a[j]*x[j] */ + k = ind[j]; /* original number of x[j] in mip */ + if (glp_get_col_kind(P, k) == GLP_BV) + { /* x[j] is a binary variable */ + /* include its term into resulting inequality */ + add_term(v, k, a[j]); + } + else if (a[j] > 0) + { /* substitute x[j] by its lower bound */ + if (l[k].b == -DBL_MAX) + { /* x[j] has no lower bound */ + n = -1; + goto skip; + } + else if (l[k].z == 0) + { /* x[j] has simple lower bound */ + *b -= a[j] * l[k].b; + } + else + { /* x[j] has variable lower bound (a * z + b) */ + add_term(v, l[k].z, a[j] * l[k].a); + *b -= a[j] * l[k].b; + } + } + else /* a[j] < 0 */ + { /* substitute x[j] by its upper bound */ + if (u[k].b == +DBL_MAX) + { /* x[j] has no upper bound */ + n = -1; + goto skip; + } + else if (u[k].z == 0) + { /* x[j] has simple upper bound */ + *b -= a[j] * u[k].b; + } + else + { /* x[j] has variable upper bound (a * z + b) */ + add_term(v, u[k].z, a[j] * u[k].a); + *b -= a[j] * u[k].b; + } + } + } + /* replace tiny coefficients by exact zeros (see add_term) */ + fvs_adjust_vec(v, 2 * DBL_MIN); + /* copy terms of resulting inequality */ + xassert(v->nnz <= n); + n = v->nnz; + for (j = 1; j <= n; j++) + { ind[j] = v->ind[j]; + a[j] = v->vec[ind[j]]; + } +skip: /* restore zero content of v */ + fvs_clear_vec(v); + return n; +} + +/*********************************************************************** +* can_be_active - check if inequality can be active +* +* This routine checks if the specified "0-1 knapsack" inequality +* +* sum{j in 1..n} a[j]*x[j] <= b +* +* can be active. If so, the routine returns true, otherwise false. */ + +static int can_be_active(int n, const double a[], double b) +{ int j; + double s; + s = 0; + for (j = 1; j <= n; j++) + { if (a[j] > 0) + s += a[j]; + } + return s > b + .001 * (1 + fabs(b)); +} + +/*********************************************************************** +* is_sos_ineq - check if inequality is packing (SOS) constraint +* +* This routine checks if the specified "0-1 knapsack" inequality +* +* sum{j in 1..n} a[j]*x[j] <= b (1) +* +* is equivalent to packing inequality (Padberg calls such inequalities +* special ordered set or SOS constraints) +* +* sum{j in J'} x[j] - sum{j in J"} x[j] <= 1 - |J"|. (2) +* +* If so, the routine returns true, otherwise false. +* +* Note that if X is a set of feasible binary points satisfying to (2), +* its convex hull conv(X) equals to the set of feasible points of LP +* relaxation of (2), which is a n-dimensional simplex, so inequalities +* (2) are useless for generating cover cuts (due to unimodularity). +* +* ALGORITHM +* +* First, we make all a[j] positive by complementing x[j] = 1 - x'[j] +* in (1). This is performed implicitly (i.e. actually the array a is +* not changed), but b is replaced by b - sum{j : a[j] < 0}. +* +* Then we find two smallest coefficients a[p] = min{j in 1..n} a[j] +* and a[q] = min{j in 1..n : j != p} a[j]. It is obvious that if +* a[p] + a[q] > b, then a[i] + a[j] > b for all i != j, from which it +* follows that x[i] + x[j] <= 1 for all i != j. But the latter means +* that the original inequality (with all a[j] > 0) is equivalent to +* packing inequality +* +* sum{j in 1..n} x[j] <= 1. (3) +* +* Returning to original (uncomplemented) variables x'[j] = 1 - x[j] +* we have that the original inequality is equivalent to (2), where +* J' = {j : a[j] > 0} and J" = {j : a[j] < 0}. */ + +static int is_sos_ineq(int n, const double a[], double b) +{ int j, p, q; + xassert(n >= 2); + /* compute b := b - sum{j : a[j] < 0} */ + for (j = 1; j <= n; j++) + { if (a[j] < 0) + b -= a[j]; + } + /* find a[p] = min{j in 1..n} a[j] */ + p = 1; + for (j = 2; j <= n; j++) + { if (fabs(a[p]) > fabs(a[j])) + p = j; + } + /* find a[q] = min{j in 1..n : j != p} a[j] */ + q = 0; + for (j = 1; j <= n; j++) + { if (j != p) + { if (q == 0 || fabs(a[q]) > fabs(a[j])) + q = j; + } + } + xassert(q != 0); + /* check condition a[p] + a[q] > b */ + return fabs(a[p]) + fabs(a[q]) > b + .001 * (1 + fabs(b)); +} + +/*********************************************************************** +* process_ineq - basic inequality processing +* +* This routine performs basic processing of an inequality of "not +* greater" type +* +* sum{j in 1..n} a[j]*x[j] <= b +* +* specified by the parameters, n, ind, a, and b. +* +* If the inequality can be transformed to "0-1 knapsack" ineqiality +* suitable for generating cover cuts, the routine adds it to the set +* of "0-1 knapsack" inequalities. +* +* Note that the arrays ind and a are not saved on exit. */ + +static void process_ineq(struct csa *csa, int n, int ind[], double a[], + double b, FVS *v) +{ int i; + /* attempt to transform the specified inequality to equivalent or + * relaxed "0-1 knapsack" inequality */ + n = build_ks(csa, n, ind, a, &b, v); + if (n <= 1) + { /* uninteresting inequality (in principle, such inequalities + * should be removed by the preprocessor) */ + goto done; + } + if (!can_be_active(n, a, b)) + { /* inequality is redundant (i.e. cannot be active) */ + goto done; + } + if (is_sos_ineq(n, a, b)) + { /* packing (SOS) inequality is useless for generating cover + * cuts; currently such inequalities are just ignored */ + goto done; + } + /* add resulting "0-1 knapsack" inequality to the set */ + i = glp_add_rows(csa->set, 1); + glp_set_mat_row(csa->set, i, n, ind, a); + glp_set_row_bnds(csa->set, i, GLP_UP, b, b); +done: return; +} + +/**********************************************************************/ + +glp_cov *glp_cov_init(glp_prob *P) +{ /* create and initialize cover cut generator */ + glp_cov *cov; + struct csa csa; + int i, k, len, *ind; + double rhs, *val; + FVS fvs; + csa.P = P; + csa.l = talloc(1+P->n, struct bnd); + csa.u = talloc(1+P->n, struct bnd); + csa.set = glp_create_prob(); + glp_add_cols(csa.set, P->n); + /* initialize bounds of variables with simple bounds */ + init_bounds(&csa); + /* obtain and set variable bounds */ + obtain_vbs(&csa); + /* allocate working arrays */ + ind = talloc(1+P->n, int); + val = talloc(1+P->n, double); + fvs_alloc_vec(&fvs, P->n); + /* process all rows of the root mip */ + for (i = 1; i <= P->m; i++) + { switch (P->row[i]->type) + { case GLP_FR: + break; + case GLP_LO: + /* obtain row of ">=" type */ + len = glp_get_mat_row(P, i, ind, val); + rhs = P->row[i]->lb; + /* transforms it to row of "<=" type */ + for (k = 1; k <= len; k++) + val[k] = - val[k]; + rhs = - rhs; + /* process the row */ + process_ineq(&csa, len, ind, val, rhs, &fvs); + break; + case GLP_UP: + /* obtain row of "<=" type */ + len = glp_get_mat_row(P, i, ind, val); + rhs = P->row[i]->ub; + /* and process it */ + process_ineq(&csa, len, ind, val, rhs, &fvs); + break; + case GLP_DB: + case GLP_FX: + /* double-sided inequalitiy and equality constraints are + * processed as two separate inequalities */ + /* obtain row as if it were of ">=" type */ + len = glp_get_mat_row(P, i, ind, val); + rhs = P->row[i]->lb; + /* transforms it to row of "<=" type */ + for (k = 1; k <= len; k++) + val[k] = - val[k]; + rhs = - rhs; + /* and process it */ + process_ineq(&csa, len, ind, val, rhs, &fvs); + /* obtain the same row as if it were of "<=" type */ + len = glp_get_mat_row(P, i, ind, val); + rhs = P->row[i]->ub; + /* and process it */ + process_ineq(&csa, len, ind, val, rhs, &fvs); + break; + default: + xassert(P != P); + } + } + /* free working arrays */ + tfree(ind); + tfree(val); + fvs_check_vec(&fvs); + fvs_free_vec(&fvs); + /* the set of "0-1 knapsack" inequalities has been built */ + if (csa.set->m == 0) + { /* the set is empty */ + xprintf("No 0-1 knapsack inequalities detected\n"); + cov = NULL; + glp_delete_prob(csa.set); + } + else + { /* create the cover cut generator working area */ + xprintf("Number of 0-1 knapsack inequalities = %d\n", + csa.set->m); + cov = talloc(1, glp_cov); + cov->n = P->n; + cov->set = csa.set; +#if 0 + glp_write_lp(cov->set, 0, "set.lp"); +#endif + } + tfree(csa.l); + tfree(csa.u); + return cov; +} + +/*********************************************************************** +* solve_ks - solve 0-1 knapsack problem +* +* This routine finds (sub)optimal solution to 0-1 knapsack problem: +* +* maximize z = sum{j in 1..n} c[j]x[j] (1) +* +* s.t. sum{j in 1..n} a[j]x[j] <= b (2) +* +* x[j] in {0, 1} for all j in 1..n (3) +* +* It is assumed that the instance is non-normalized, i.e. parameters +* a, b, and c may have any sign. +* +* On exit the routine stores the (sub)optimal point found in locations +* x[1], ..., x[n] and returns the optimal objective value. However, if +* the instance is infeasible, the routine returns INT_MIN. */ + +static int solve_ks(int n, const int a[], int b, const int c[], + char x[]) +{ int z; + /* surprisingly, even for some small instances (n = 50-100) + * MT1 routine takes too much time, so it is used only for tiny + * instances */ + if (n <= 16) +#if 0 + z = ks_enum(n, a, b, c, x); +#else + z = ks_mt1(n, a, b, c, x); +#endif + else + z = ks_greedy(n, a, b, c, x); + return z; +} + +/*********************************************************************** +* simple_cover - find simple cover cut +* +* Given a 0-1 knapsack inequality (which may be globally as well as +* locally valid) +* +* sum{j in 1..n} a[j]x[j] <= b, (1) +* +* where all x[j] are binary variables and all a[j] are positive, and +* a fractional point x~{j in 1..n}, which is feasible to LP relaxation +* of (1), this routine attempts to find a simple cover inequality +* +* sum{j in C} (1 - x[j]) >= 1, (2) +* +* which is valid for (1) and violated at x~. +* +* Actually, the routine finds a cover C, i.e. a subset of {1, ..., n} +* such that +* +* sum{j in C} a[j] > b, (3) +* +* and which minimizes the left-hand side of (2) at x~ +* +* zeta = sum{j in C} (1 - x~[j]). (4) +* +* On exit the routine stores the characteritic vector z{j in 1..n} +* of the cover found (i.e. z[j] = 1 means j in C, and z[j] = 0 means +* j not in C), and returns corresponding minimal value of zeta (4). +* However, if no cover is found, the routine returns DBL_MAX. +* +* ALGORITHM +* +* The separation problem (3)-(4) is converted to 0-1 knapsack problem +* as follows. +* +* First, note that the constraint (3) is equivalent to +* +* sum{j in 1..n} a[j]z[j] >= b + eps, (5) +* +* where eps > 0 is a sufficiently small number (in case of integral +* a and b we may take eps = 1). Multiplying both sides of (5) by (-1) +* gives +* +* sum{j in 1..n} (-a[j])z[j] <= - b - eps. (6) +* +* To make all coefficients in (6) positive, z[j] is complemented by +* substitution z[j] = 1 - z'[j] that finally gives +* +* sum{j in 1..n} a[j]z'[j] <= sum{j in 1..n} a[j] - b - eps. (7) +* +* Minimization of zeta (4) is equivalent to maximization of +* +* -zeta = sum{j in 1..n} (x~[j] - 1)z[j]. (8) +* +* Substitution z[j] = 1 - z'[j] gives +* +* -zeta = sum{j in 1..n} (1 - x~[j])z'[j] - zeta0, (9) +* +* where zeta0 = sum{j in 1..n} (1 - x~[j]) is a constant term. +* +* Thus, the 0-1 knapsack problem to be solved is the following: +* +* maximize +* +* -zeta = sum{j in 1..n} (1 - x~[j])z'[j] - zeta0 (10) +* +* subject to +* +* sum{j in 1..n} a[j]z'[j] <= sum{j in 1..n} a[j] - b - eps (11) +* +* z'[j] in {0,1} for all j = 1,...,n (12) +* +* (The constant term zeta0 doesn't affect the solution, so it can be +* dropped.) */ + +static double simple_cover(int n, const double a[], double b, const + double x[], char z[]) +{ int j, *aa, bb, *cc; + double max_aj, min_aj, s, eps; + xassert(n >= 3); + /* allocate working arrays */ + aa = talloc(1+n, int); + cc = talloc(1+n, int); + /* compute max{j in 1..n} a[j] and min{j in 1..n} a[j] */ + max_aj = 0, min_aj = DBL_MAX; + for (j = 1; j <= n; j++) + { xassert(a[j] > 0); + if (max_aj < a[j]) + max_aj = a[j]; + if (min_aj > a[j]) + min_aj = a[j]; + } + /* scale and round constraint parameters to make them integral; + * note that we make the resulting inequality stronger than (11), + * so a[j]'s are rounded up while rhs is rounded down */ + s = 0; + for (j = 1; j <= n; j++) + { s += a[j]; + aa[j] = ceil(a[j] / max_aj * 1000); + } + bb = floor((s - b) / max_aj * 1000) - 1; + /* scale and round obj. coefficients to make them integral; + * again we make the objective function stronger than (10), so + * the coefficients are rounded down */ + for (j = 1; j <= n; j++) + { xassert(0 <= x[j] && x[j] <= 1); + cc[j] = floor((1 - x[j]) * 1000); + } + /* solve separation problem */ + if (solve_ks(n, aa, bb, cc, z) == INT_MIN) + { /* no cover exists */ + s = DBL_MAX; + goto skip; + } + /* determine z[j] = 1 - z'[j] */ + for (j = 1; j <= n; j++) + { xassert(z[j] == 0 || z[j] == 1); + z[j] ^= 1; + } + /* check condition (11) for original (non-scaled) parameters */ + s = 0; + for (j = 1; j <= n; j++) + { if (z[j]) + s += a[j]; + } + eps = 0.01 * (min_aj >= 1 ? min_aj : 1); + if (!(s >= b + eps)) + { /* no cover found within a precision req'd */ + s = DBL_MAX; + goto skip; + } + /* compute corresponding zeta (4) for cover found */ + s = 0; + for (j = 1; j <= n; j++) + { if (z[j]) + s += 1 - x[j]; + } +skip: /* free working arrays */ + tfree(aa); + tfree(cc); + return s; +} + +/**********************************************************************/ + +void glp_cov_gen1(glp_prob *P, glp_cov *cov, glp_prob *pool) +{ /* generate locally valid simple cover cuts */ + int i, k, len, new_len, *ind; + double *val, rhs, *x, zeta; + char *z; + xassert(P->n == cov->n && P->n == cov->set->n); + xassert(glp_get_status(P) == GLP_OPT); + /* allocate working arrays */ + ind = talloc(1+P->n, int); + val = talloc(1+P->n, double); + x = talloc(1+P->n, double); + z = talloc(1+P->n, char); + /* walk thru 0-1 knapsack inequalities */ + for (i = 1; i <= cov->set->m; i++) + { /* retrieve 0-1 knapsack inequality */ + len = glp_get_mat_row(cov->set, i, ind, val); + rhs = glp_get_row_ub(cov->set, i); + xassert(rhs != +DBL_MAX); + /* FIXME: skip, if slack is too large? */ + /* substitute and eliminate binary variables which have been + * fixed in the current subproblem (this makes the inequality + * only locally valid) */ + new_len = 0; + for (k = 1; k <= len; k++) + { if (glp_get_col_type(P, ind[k]) == GLP_FX) + rhs -= val[k] * glp_get_col_prim(P, ind[k]); + else + { new_len++; + ind[new_len] = ind[k]; + val[new_len] = val[k]; + } + } + len = new_len; + /* we need at least 3 binary variables in the inequality */ + if (len <= 2) + continue; + /* obtain values of binary variables from optimal solution to + * LP relaxation of current subproblem */ + for (k = 1; k <= len; k++) + { xassert(glp_get_col_kind(P, ind[k]) == GLP_BV); + x[k] = glp_get_col_prim(P, ind[k]); + if (x[k] < 0.00001) + x[k] = 0; + else if (x[k] > 0.99999) + x[k] = 1; + /* if val[k] < 0, perform substitution x[k] = 1 - x'[k] to + * make all coefficients positive */ + if (val[k] < 0) + { ind[k] = - ind[k]; /* x[k] is complemented */ + val[k] = - val[k]; + rhs += val[k]; + x[k] = 1 - x[k]; + } + } + /* find locally valid simple cover cut */ + zeta = simple_cover(len, val, rhs, x, z); + if (zeta > 0.95) + { /* no violation or insufficient violation; see (2) */ + continue; + } + /* construct cover inequality (2) for the cover found, which + * for original binary variables x[k] is equivalent to: + * sum{k in C'} x[k] + sum{k in C"} x'[k] <= |C| - 1 + * or + * sum{k in C'} x[k] + sum{k in C"} (1 - x[k]) <= |C| - 1 + * or + * sum{k in C'} x[k] - sum{k in C"} x[k] <= |C'| - 1 + * since |C| - |C"| = |C'| */ + new_len = 0; + rhs = -1; + for (k = 1; k <= len; k++) + { if (z[k]) + { new_len++; + if (ind[k] > 0) + { ind[new_len] = +ind[k]; + val[new_len] = +1; + rhs++; + } + else /* ind[k] < 0 */ + { ind[new_len] = -ind[k]; + val[new_len] = -1; + } + } + } + len = new_len; + /* add the cover inequality to the local cut pool */ + k = glp_add_rows(pool, 1); + glp_set_mat_row(pool, k, len, ind, val); + glp_set_row_bnds(pool, k, GLP_UP, rhs, rhs); + } + /* free working arrays */ + tfree(ind); + tfree(val); + tfree(x); + tfree(z); + return; +} + +/**********************************************************************/ + +void glp_cov_free(glp_cov *cov) +{ /* delete cover cut generator workspace */ + xassert(cov != NULL); + glp_delete_prob(cov->set); + tfree(cov); + return; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpios10.c b/resources/3rdparty/glpk-4.65/src/intopt/fpump.c similarity index 97% rename from resources/3rdparty/glpk-4.57/src/glpios10.c rename to resources/3rdparty/glpk-4.65/src/intopt/fpump.c index e67625795..0bdd6d4e5 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios10.c +++ b/resources/3rdparty/glpk-4.65/src/intopt/fpump.c @@ -1,10 +1,9 @@ -/* glpios10.c (feasibility pump heuristic) */ +/* fpump.c (feasibility pump heuristic) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2009-2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +22,7 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" +#include "ios.h" #include "rng.h" /*********************************************************************** @@ -56,7 +55,7 @@ struct VAR /* sorting key */ }; -static int fcmp(const void *x, const void *y) +static int CDECL fcmp(const void *x, const void *y) { /* comparison routine */ const struct VAR *vx = x, *vy = y; if (vx->d > vy->d) @@ -307,12 +306,18 @@ skip: /* check if the time limit has been exhausted */ if (ret != 0) { if (T->parm->msg_lev >= GLP_MSG_ERR) xprintf("Warning: glp_simplex returned %d\n", ret); +#if 1 /* 17/III-2016: fix memory leak */ + xfree(x); +#endif goto done; } ret = glp_get_status(lp); if (ret != GLP_OPT) { if (T->parm->msg_lev >= GLP_MSG_ERR) xprintf("Warning: glp_get_status returned %d\n", ret); +#if 1 /* 17/III-2016: fix memory leak */ + xfree(x); +#endif goto done; } for (j = 1; j <= n; j++) diff --git a/resources/3rdparty/glpk-4.57/src/glpios05.c b/resources/3rdparty/glpk-4.65/src/intopt/gmicut.c similarity index 50% rename from resources/3rdparty/glpk-4.57/src/glpios05.c rename to resources/3rdparty/glpk-4.65/src/intopt/gmicut.c index 18ae0cbbb..4ef0b746c 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios05.c +++ b/resources/3rdparty/glpk-4.65/src/intopt/gmicut.c @@ -1,10 +1,9 @@ -/* glpios05.c (Gomory's mixed integer cut generator) */ +/* gmicut.c (Gomory's mixed integer cut generator) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2002-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,71 +22,139 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" +#include "prob.h" /*********************************************************************** * NAME * -* ios_gmi_gen - generate Gomory's mixed integer cuts. +* glp_gmi_cut - generate Gomory's mixed integer cut (core routine) * * SYNOPSIS * -* #include "glpios.h" -* void ios_gmi_gen(glp_tree *tree, IOSPOOL *pool); +* int glp_gmi_cut(glp_prob *P, int j, int ind[], double val[], double +* phi[]); * * DESCRIPTION * -* The routine ios_gmi_gen generates Gomory's mixed integer cuts for -* the current point and adds them to the cut pool. */ - -#define MAXCUTS 50 -/* maximal number of cuts to be generated for one round */ - -struct worka -{ /* Gomory's cut generator working area */ - int *ind; /* int ind[1+n]; */ - double *val; /* double val[1+n]; */ - double *phi; /* double phi[1+m+n]; */ -}; +* This routine attempts to generate a Gomory's mixed integer cut for +* specified integer column (structural variable), whose primal value +* in current basic solution is integer infeasible (fractional). +* +* On entry to the routine the basic solution contained in the problem +* object P should be optimal, and the basis factorization should be +* valid. The parameter j should specify the ordinal number of column +* (structural variable x[j]), for which the cut should be generated, +* 1 <= j <= n, where n is the number of columns in the problem object. +* This column should be integer, non-fixed, and basic, and its primal +* value should be fractional. +* +* The cut generated by the routine is the following inequality: +* +* sum a[j] * x[j] >= b, +* +* which is expected to be violated at the current basic solution. +* +* If the cut has been successfully generated, the routine stores its +* non-zero coefficients a[j] and corresponding column indices j in the +* array locations val[1], ..., val[len] and ind[1], ..., ind[len], +* where 1 <= len <= n is the number of non-zero coefficients. The +* right-hand side value b is stored in val[0], and ind[0] is set to 0. +* +* The working array phi should have 1+m+n locations (location phi[0] +* is not used), where m and n is the number of rows and columns in the +* problem object, resp. +* +* RETURNS +* +* If the cut has been successfully generated, the routine returns +* len, the number of non-zero coefficients in the cut, 1 <= len <= n. +* +* Otherwise, the routine returns one of the following codes: +* +* -1 current basis factorization is not valid; +* +* -2 current basic solution is not optimal; +* +* -3 column ordinal number j is out of range; +* +* -4 variable x[j] is not of integral kind; +* +* -5 variable x[j] is either fixed or non-basic; +* +* -6 primal value of variable x[j] in basic solution is too close +* to nearest integer; +* +* -7 some coefficients in the simplex table row corresponding to +* variable x[j] are too large in magnitude; +* +* -8 some free (unbounded) variables have non-zero coefficients in +* the simplex table row corresponding to variable x[j]. +* +* ALGORITHM +* +* See glpk/doc/notes/gomory (in Russian). */ #define f(x) ((x) - floor(x)) /* compute fractional part of x */ -static void gen_cut(glp_tree *tree, struct worka *worka, int j) -{ /* this routine tries to generate Gomory's mixed integer cut for - specified structural variable x[m+j] of integer kind, which is - basic and has fractional value in optimal solution to current - LP relaxation */ - glp_prob *mip = tree->mip; - int m = mip->m; - int n = mip->n; - int *ind = worka->ind; - double *val = worka->val; - double *phi = worka->phi; +int glp_gmi_cut(glp_prob *P, int j, + int ind[/*1+n*/], double val[/*1+n*/], double phi[/*1+m+n*/]) +{ int m = P->m; + int n = P->n; + GLPROW *row; + GLPCOL *col; + GLPAIJ *aij; int i, k, len, kind, stat; double lb, ub, alfa, beta, ksi, phi1, rhs; + /* sanity checks */ + if (!(P->m == 0 || P->valid)) + { /* current basis factorization is not valid */ + return -1; + } + if (!(P->pbs_stat == GLP_FEAS && P->dbs_stat == GLP_FEAS)) + { /* current basic solution is not optimal */ + return -2; + } + if (!(1 <= j && j <= n)) + { /* column ordinal number is out of range */ + return -3; + } + col = P->col[j]; + if (col->kind != GLP_IV) + { /* x[j] is not of integral kind */ + return -4; + } + if (col->type == GLP_FX || col->stat != GLP_BS) + { /* x[j] is either fixed or non-basic */ + return -5; + } + if (fabs(col->prim - floor(col->prim + 0.5)) < 0.001) + { /* primal value of x[j] is too close to nearest integer */ + return -6; + } /* compute row of the simplex tableau, which (row) corresponds - to specified basic variable xB[i] = x[m+j]; see (23) */ - len = glp_eval_tab_row(mip, m+j, ind, val); + * to specified basic variable xB[i] = x[j]; see (23) */ + len = glp_eval_tab_row(P, m+j, ind, val); /* determine beta[i], which a value of xB[i] in optimal solution - to current LP relaxation; note that this value is the same as - if it would be computed with formula (27); it is assumed that - beta[i] is fractional enough */ - beta = mip->col[j]->prim; + * to current LP relaxation; note that this value is the same as + * if it would be computed with formula (27); it is assumed that + * beta[i] is fractional enough */ + beta = P->col[j]->prim; /* compute cut coefficients phi and right-hand side rho, which - correspond to formula (30); dense format is used, because rows - of the simplex tableau is usually dense */ - for (k = 1; k <= m+n; k++) phi[k] = 0.0; + * correspond to formula (30); dense format is used, because rows + * of the simplex tableau are usually dense */ + for (k = 1; k <= m+n; k++) + phi[k] = 0.0; rhs = f(beta); /* initial value of rho; see (28), (32) */ for (j = 1; j <= len; j++) { /* determine original number of non-basic variable xN[j] */ k = ind[j]; xassert(1 <= k && k <= m+n); /* determine the kind, bounds and current status of xN[j] in - optimal solution to LP relaxation */ + * optimal solution to LP relaxation */ if (k <= m) { /* auxiliary variable */ - GLPROW *row = mip->row[k]; + row = P->row[k]; kind = GLP_CV; lb = row->lb; ub = row->ub; @@ -95,7 +162,7 @@ static void gen_cut(glp_tree *tree, struct worka *worka, int j) } else { /* structural variable */ - GLPCOL *col = mip->col[k-m]; + col = P->col[k-m]; kind = col->kind; lb = col->lb; ub = col->ub; @@ -105,17 +172,18 @@ static void gen_cut(glp_tree *tree, struct worka *worka, int j) xassert(stat != GLP_BS); /* determine row coefficient ksi[i,j] at xN[j]; see (23) */ ksi = val[j]; - /* if ksi[i,j] is too large in the magnitude, do not generate - the cut */ - if (fabs(ksi) > 1e+05) goto fini; - /* if ksi[i,j] is too small in the magnitude, skip it */ - if (fabs(ksi) < 1e-10) goto skip; + /* if ksi[i,j] is too large in magnitude, report failure */ + if (fabs(ksi) > 1e+05) + return -7; + /* if ksi[i,j] is too small in magnitude, skip it */ + if (fabs(ksi) < 1e-10) + goto skip; /* compute row coefficient alfa[i,j] at y[j]; see (26) */ switch (stat) { case GLP_NF: /* xN[j] is free (unbounded) having non-zero ksi[i,j]; - do not generate the cut */ - goto fini; + * report failure */ + return -8; case GLP_NL: /* xN[j] has active lower bound */ alfa = - ksi; @@ -154,7 +222,7 @@ static void gen_cut(glp_tree *tree, struct worka *worka, int j) xassert(kind != kind); } /* compute cut coefficient phi[j] at xN[j] and update right- - hand side rho; see (31), (32) */ + * hand side rho; see (31), (32) */ switch (stat) { case GLP_NL: /* xN[j] has active lower bound */ @@ -172,31 +240,30 @@ static void gen_cut(glp_tree *tree, struct worka *worka, int j) skip: ; } /* now the cut has the form sum_k phi[k] * x[k] >= rho, where cut - coefficients are stored in the array phi in dense format; - x[1,...,m] are auxiliary variables, x[m+1,...,m+n] are struc- - tural variables; see (30) */ + * coefficients are stored in the array phi in dense format; + * x[1,...,m] are auxiliary variables, x[m+1,...,m+n] are struc- + * tural variables; see (30) */ /* eliminate auxiliary variables in order to express the cut only - through structural variables; see (33) */ + * through structural variables; see (33) */ for (i = 1; i <= m; i++) - { GLPROW *row; - GLPAIJ *aij; - if (fabs(phi[i]) < 1e-10) continue; + { if (fabs(phi[i]) < 1e-10) + continue; /* auxiliary variable x[i] has non-zero cut coefficient */ - row = mip->row[i]; - /* x[i] cannot be fixed */ + row = P->row[i]; + /* x[i] cannot be fixed variable */ xassert(row->type != GLP_FX); /* substitute x[i] = sum_j a[i,j] * x[m+j] */ for (aij = row->ptr; aij != NULL; aij = aij->r_next) phi[m+aij->col->j] += phi[i] * aij->val; } /* convert the final cut to sparse format and substitute fixed - (structural) variables */ + * (structural) variables */ len = 0; for (j = 1; j <= n; j++) - { GLPCOL *col; - if (fabs(phi[m+j]) < 1e-10) continue; + { if (fabs(phi[m+j]) < 1e-10) + continue; /* structural variable x[m+j] has non-zero cut coefficient */ - col = mip->col[j]; + col = P->col[j]; if (col->type == GLP_FX) { /* eliminate x[m+j] */ rhs -= phi[m+j] * col->lb; @@ -207,76 +274,11 @@ skip: ; val[len] = phi[m+j]; } } - if (fabs(rhs) < 1e-12) rhs = 0.0; - /* if the cut inequality seems to be badly scaled, reject it to - avoid numeric difficulties */ - for (k = 1; k <= len; k++) - { if (fabs(val[k]) < 1e-03) goto fini; - if (fabs(val[k]) > 1e+03) goto fini; - } - /* add the cut to the cut pool for further consideration */ -#if 0 - ios_add_cut_row(tree, pool, GLP_RF_GMI, len, ind, val, GLP_LO, - rhs); -#else - glp_ios_add_row(tree, NULL, GLP_RF_GMI, 0, len, ind, val, GLP_LO, - rhs); -#endif -fini: return; -} - -struct var { int j; double f; }; - -static int fcmp(const void *p1, const void *p2) -{ const struct var *v1 = p1, *v2 = p2; - if (v1->f > v2->f) return -1; - if (v1->f < v2->f) return +1; - return 0; -} - -void ios_gmi_gen(glp_tree *tree) -{ /* main routine to generate Gomory's cuts */ - glp_prob *mip = tree->mip; - int m = mip->m; - int n = mip->n; - struct var *var; - int k, nv, j, size; - struct worka _worka, *worka = &_worka; - /* allocate working arrays */ - var = xcalloc(1+n, sizeof(struct var)); - worka->ind = xcalloc(1+n, sizeof(int)); - worka->val = xcalloc(1+n, sizeof(double)); - worka->phi = xcalloc(1+m+n, sizeof(double)); - /* build the list of integer structural variables, which are - basic and have fractional value in optimal solution to current - LP relaxation */ - nv = 0; - for (j = 1; j <= n; j++) - { GLPCOL *col = mip->col[j]; - double frac; - if (col->kind != GLP_IV) continue; - if (col->type == GLP_FX) continue; - if (col->stat != GLP_BS) continue; - frac = f(col->prim); - if (!(0.05 <= frac && frac <= 0.95)) continue; - /* add variable to the list */ - nv++, var[nv].j = j, var[nv].f = frac; - } - /* order the list by descending fractionality */ - qsort(&var[1], nv, sizeof(struct var), fcmp); - /* try to generate cuts by one for each variable in the list, but - not more than MAXCUTS cuts */ - size = glp_ios_pool_size(tree); - for (k = 1; k <= nv; k++) - { if (glp_ios_pool_size(tree) - size >= MAXCUTS) break; - gen_cut(tree, worka, var[k].j); - } - /* free working arrays */ - xfree(var); - xfree(worka->ind); - xfree(worka->val); - xfree(worka->phi); - return; + if (fabs(rhs) < 1e-12) + rhs = 0.0; + ind[0] = 0, val[0] = rhs; + /* the cut has been successfully generated */ + return len; } /* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/intopt/gmigen.c b/resources/3rdparty/glpk-4.65/src/intopt/gmigen.c new file mode 100644 index 000000000..627682cbd --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/intopt/gmigen.c @@ -0,0 +1,142 @@ +/* gmigen.c (Gomory's mixed integer cuts generator) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2002-2018 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "prob.h" + +/*********************************************************************** +* NAME +* +* glp_gmi_gen - generate Gomory's mixed integer cuts +* +* SYNOPSIS +* +* int glp_gmi_gen(glp_prob *P, glp_prob *pool, int max_cuts); +* +* DESCRIPTION +* +* This routine attempts to generate Gomory's mixed integer cuts for +* integer variables, whose primal values in current basic solution are +* integer infeasible (fractional). +* +* On entry to the routine the basic solution contained in the problem +* object P should be optimal, and the basis factorization should be +* valid. +* +* The cutting plane inequalities generated by the routine are added to +* the specified cut pool. +* +* The parameter max_cuts specifies the maximal number of cuts to be +* generated. Note that the number of cuts cannot exceed the number of +* basic variables, which is the number of rows in the problem object. +* +* RETURNS +* +* The routine returns the number of cuts that have been generated and +* added to the cut pool. */ + +#define f(x) ((x) - floor(x)) +/* compute fractional part of x */ + +struct var { int j; double f; }; + +static int CDECL fcmp(const void *p1, const void *p2) +{ const struct var *v1 = p1, *v2 = p2; + if (v1->f > v2->f) return -1; + if (v1->f < v2->f) return +1; + return 0; +} + +int glp_gmi_gen(glp_prob *P, glp_prob *pool, int max_cuts) +{ int m = P->m; + int n = P->n; + GLPCOL *col; + struct var *var; + int i, j, k, t, len, nv, nnn, *ind; + double frac, *val, *phi; + /* sanity checks */ + if (!(P->m == 0 || P->valid)) + xerror("glp_gmi_gen: basis factorization does not exist\n"); + if (!(P->pbs_stat == GLP_FEAS && P->dbs_stat == GLP_FEAS)) + xerror("glp_gmi_gen: optimal basic solution required\n"); + if (pool->n != n) + xerror("glp_gmi_gen: cut pool has wrong number of columns\n"); + /* allocate working arrays */ + var = xcalloc(1+n, sizeof(struct var)); + ind = xcalloc(1+n, sizeof(int)); + val = xcalloc(1+n, sizeof(double)); + phi = xcalloc(1+m+n, sizeof(double)); + /* build the list of integer structural variables, which are + * basic and have integer infeasible (fractional) primal values + * in optimal solution to specified LP */ + nv = 0; + for (j = 1; j <= n; j++) + { col = P->col[j]; + if (col->kind != GLP_IV) + continue; + if (col->type == GLP_FX) + continue; + if (col->stat != GLP_BS) + continue; + frac = f(col->prim); + if (!(0.05 <= frac && frac <= 0.95)) + continue; + /* add variable to the list */ + nv++, var[nv].j = j, var[nv].f = frac; + } + /* sort the list by descending fractionality */ + qsort(&var[1], nv, sizeof(struct var), fcmp); + /* try to generate cuts by one for each variable in the list, but + * not more than max_cuts cuts */ + nnn = 0; + for (t = 1; t <= nv; t++) + { len = glp_gmi_cut(P, var[t].j, ind, val, phi); + if (len < 1) + goto skip; + /* if the cut inequality seems to be badly scaled, reject it + * to avoid numerical difficulties */ + for (k = 1; k <= len; k++) + { if (fabs(val[k]) < 1e-03) + goto skip; + if (fabs(val[k]) > 1e+03) + goto skip; + } + /* add the cut to the cut pool for further consideration */ + i = glp_add_rows(pool, 1); + glp_set_row_bnds(pool, i, GLP_LO, val[0], 0); + glp_set_mat_row(pool, i, len, ind, val); + /* one cut has been generated */ + nnn++; + if (nnn == max_cuts) + break; +skip: ; + } + /* free working arrays */ + xfree(var); + xfree(ind); + xfree(val); + xfree(phi); + return nnn; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpios06.c b/resources/3rdparty/glpk-4.65/src/intopt/mirgen.c similarity index 85% rename from resources/3rdparty/glpk-4.57/src/glpios06.c rename to resources/3rdparty/glpk-4.65/src/intopt/mirgen.c index 53f8dcfc7..45a0a55dc 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios06.c +++ b/resources/3rdparty/glpk-4.65/src/intopt/mirgen.c @@ -1,10 +1,9 @@ -/* glpios06.c (MIR cut generator) */ +/* mirgen.c (mixed integer rounding cuts generator) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2007-2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,15 +21,40 @@ * along with GLPK. If not, see . ***********************************************************************/ +#if 1 /* 29/II-2016 by Chris */ +/*---------------------------------------------------------------------- +Subject: Mir cut generation performance improvement +From: Chris Matrakidis +To: Andrew Makhorin , help-glpk + +Andrew, + +I noticed that mir cut generation takes considerable time on some large +problems (like rocII-4-11 from miplib). The attached patch makes two +improvements that considerably improve performance in such instances: +1. A lot of time was spent on generating a temporary vector in function +aggregate_row. It is a lot faster to reuse an existing vector. +2. A search for an element in the same function was done in row order, +where using the elements in the order they are in the column is more +efficient. This changes the generated cuts in some cases, but seems +neutral overall (0.3% less cuts in a test set of 64 miplib instances). + +Best Regards, + +Chris Matrakidis +----------------------------------------------------------------------*/ +#endif + #include "env.h" -#include "glpios.h" +#include "prob.h" +#include "spv.h" -#define _MIR_DEBUG 0 +#define MIR_DEBUG 0 #define MAXAGGR 5 -/* maximal number of rows which can be aggregated */ +/* maximal number of rows that can be aggregated */ -struct MIR +struct glp_mir { /* MIR cut generator working area */ /*--------------------------------------------------------------*/ /* global information valid for the root subproblem */ @@ -74,7 +98,7 @@ struct MIR int *agg_row; /* int agg_row[1+MAXAGGR]; */ /* agg_row[k], 1 <= k <= agg_cnt, is the row number used to build aggregated constraint */ - IOSVEC *agg_vec; /* IOSVEC agg_vec[1:m+n]; */ + SPV *agg_vec; /* SPV agg_vec[1:m+n]; */ /* sparse vector of aggregated constraint coefficients, a[k] */ double agg_rhs; /* right-hand side of the aggregated constraint, b */ @@ -91,13 +115,13 @@ struct MIR derived from aggregated constraint by substituting bounds; note that due to substitution of variable bounds there may be additional terms in the modified constraint */ - IOSVEC *mod_vec; /* IOSVEC mod_vec[1:m+n]; */ + SPV *mod_vec; /* SPV mod_vec[1:m+n]; */ /* sparse vector of modified constraint coefficients, a'[k] */ double mod_rhs; /* right-hand side of the modified constraint, b' */ /*--------------------------------------------------------------*/ /* cutting plane sum alpha[k] * x[k] <= beta */ - IOSVEC *cut_vec; /* IOSVEC cut_vec[1:m+n]; */ + SPV *cut_vec; /* SPV cut_vec[1:m+n]; */ /* sparse vector of cutting plane coefficients, alpha[k] */ double cut_rhs; /* right-hand size of the cutting plane, beta */ @@ -106,26 +130,23 @@ struct MIR /*********************************************************************** * NAME * -* ios_mir_init - initialize MIR cut generator +* glp_mir_init - create and initialize MIR cut generator * * SYNOPSIS * -* #include "glpios.h" -* void *ios_mir_init(glp_tree *tree); +* glp_mir *glp_mir_init(glp_prob *P); * * DESCRIPTION * -* The routine ios_mir_init initializes the MIR cut generator assuming -* that the current subproblem is the root subproblem. +* This routine creates and initializes the MIR cut generator for the +* specified problem object. * * RETURNS * -* The routine ios_mir_init returns a pointer to the MIR cut generator -* working area. */ +* The routine returns a pointer to the MIR cut generator workspace. */ -static void set_row_attrib(glp_tree *tree, struct MIR *mir) +static void set_row_attrib(glp_prob *mip, glp_mir *mir) { /* set global row attributes */ - glp_prob *mip = tree->mip; int m = mir->m; int k; for (k = 1; k <= m; k++) @@ -151,9 +172,8 @@ static void set_row_attrib(glp_tree *tree, struct MIR *mir) return; } -static void set_col_attrib(glp_tree *tree, struct MIR *mir) +static void set_col_attrib(glp_prob *mip, glp_mir *mir) { /* set global column attributes */ - glp_prob *mip = tree->mip; int m = mir->m; int n = mir->n; int k; @@ -186,9 +206,8 @@ static void set_col_attrib(glp_tree *tree, struct MIR *mir) return; } -static void set_var_bounds(glp_tree *tree, struct MIR *mir) +static void set_var_bounds(glp_prob *mip, glp_mir *mir) { /* set variable bounds */ - glp_prob *mip = tree->mip; int m = mir->m; GLPAIJ *aij; int i, k1, k2; @@ -249,9 +268,8 @@ static void set_var_bounds(glp_tree *tree, struct MIR *mir) return; } -static void mark_useless_rows(glp_tree *tree, struct MIR *mir) +static void mark_useless_rows(glp_prob *mip, glp_mir *mir) { /* mark rows which should not be used */ - glp_prob *mip = tree->mip; int m = mir->m; GLPAIJ *aij; int i, k, nv; @@ -289,17 +307,16 @@ static void mark_useless_rows(glp_tree *tree, struct MIR *mir) return; } -void *ios_mir_init(glp_tree *tree) -{ /* initialize MIR cut generator */ - glp_prob *mip = tree->mip; +glp_mir *glp_mir_init(glp_prob *mip) +{ /* create and initialize MIR cut generator */ int m = mip->m; int n = mip->n; - struct MIR *mir; -#if _MIR_DEBUG + glp_mir *mir; +#if MIR_DEBUG xprintf("ios_mir_init: warning: debug mode enabled\n"); #endif /* allocate working area */ - mir = xmalloc(sizeof(struct MIR)); + mir = xmalloc(sizeof(glp_mir)); mir->m = m; mir->n = n; mir->skip = xcalloc(1+m, sizeof(char)); @@ -310,39 +327,45 @@ void *ios_mir_init(glp_tree *tree) mir->vub = xcalloc(1+m+n, sizeof(int)); mir->x = xcalloc(1+m+n, sizeof(double)); mir->agg_row = xcalloc(1+MAXAGGR, sizeof(int)); - mir->agg_vec = ios_create_vec(m+n); + mir->agg_vec = spv_create_vec(m+n); mir->subst = xcalloc(1+m+n, sizeof(char)); - mir->mod_vec = ios_create_vec(m+n); - mir->cut_vec = ios_create_vec(m+n); + mir->mod_vec = spv_create_vec(m+n); + mir->cut_vec = spv_create_vec(m+n); /* set global row attributes */ - set_row_attrib(tree, mir); + set_row_attrib(mip, mir); /* set global column attributes */ - set_col_attrib(tree, mir); + set_col_attrib(mip, mir); /* set variable bounds */ - set_var_bounds(tree, mir); + set_var_bounds(mip, mir); /* mark rows which should not be used */ - mark_useless_rows(tree, mir); + mark_useless_rows(mip, mir); return mir; } /*********************************************************************** * NAME * -* ios_mir_gen - generate MIR cuts +* glp_mir_gen - generate mixed integer rounding (MIR) cuts * * SYNOPSIS * -* #include "glpios.h" -* void ios_mir_gen(glp_tree *tree, void *gen, IOSPOOL *pool); +* int glp_mir_gen(glp_prob *P, glp_mir *mir, glp_prob *pool); * * DESCRIPTION * -* The routine ios_mir_gen generates MIR cuts for the current point and -* adds them to the cut pool. */ +* This routine attempts to generate mixed integer rounding (MIR) cuts +* for current basic solution to the specified problem object. +* +* The cutting plane inequalities generated by the routine are added to +* the specified cut pool. +* +* RETURNS +* +* The routine returns the number of cuts that have been generated and +* added to the cut pool. */ -static void get_current_point(glp_tree *tree, struct MIR *mir) +static void get_current_point(glp_prob *mip, glp_mir *mir) { /* obtain current point */ - glp_prob *mip = tree->mip; int m = mir->m; int n = mir->n; int k; @@ -353,8 +376,8 @@ static void get_current_point(glp_tree *tree, struct MIR *mir) return; } -#if _MIR_DEBUG -static void check_current_point(struct MIR *mir) +#if MIR_DEBUG +static void check_current_point(glp_mir *mir) { /* check current point */ int m = mir->m; int n = mir->n; @@ -394,9 +417,8 @@ static void check_current_point(struct MIR *mir) } #endif -static void initial_agg_row(glp_tree *tree, struct MIR *mir, int i) +static void initial_agg_row(glp_prob *mip, glp_mir *mir, int i) { /* use original i-th row as initial aggregated constraint */ - glp_prob *mip = tree->mip; int m = mir->m; GLPAIJ *aij; xassert(1 <= i && i <= m); @@ -408,19 +430,19 @@ static void initial_agg_row(glp_tree *tree, struct MIR *mir, int i) mir->agg_row[1] = i; /* use x[i] - sum a[i,j] * x[m+j] = 0, where x[i] is auxiliary variable of row i, x[m+j] are structural variables */ - ios_clear_vec(mir->agg_vec); - ios_set_vj(mir->agg_vec, i, 1.0); + spv_clear_vec(mir->agg_vec); + spv_set_vj(mir->agg_vec, i, 1.0); for (aij = mip->row[i]->ptr; aij != NULL; aij = aij->r_next) - ios_set_vj(mir->agg_vec, m + aij->col->j, - aij->val); + spv_set_vj(mir->agg_vec, m + aij->col->j, - aij->val); mir->agg_rhs = 0.0; -#if _MIR_DEBUG - ios_check_vec(mir->agg_vec); +#if MIR_DEBUG + spv_check_vec(mir->agg_vec); #endif return; } -#if _MIR_DEBUG -static void check_agg_row(struct MIR *mir) +#if MIR_DEBUG +static void check_agg_row(glp_mir *mir) { /* check aggregated constraint */ int m = mir->m; int n = mir->n; @@ -445,7 +467,7 @@ static void check_agg_row(struct MIR *mir) } #endif -static void subst_fixed_vars(struct MIR *mir) +static void subst_fixed_vars(glp_mir *mir) { /* substitute fixed variables into aggregated constraint */ int m = mir->m; int n = mir->n; @@ -461,14 +483,14 @@ static void subst_fixed_vars(struct MIR *mir) } } /* remove terms corresponding to fixed variables */ - ios_clean_vec(mir->agg_vec, DBL_EPSILON); -#if _MIR_DEBUG - ios_check_vec(mir->agg_vec); + spv_clean_vec(mir->agg_vec, DBL_EPSILON); +#if MIR_DEBUG + spv_check_vec(mir->agg_vec); #endif return; } -static void bound_subst_heur(struct MIR *mir) +static void bound_subst_heur(glp_mir *mir) { /* bound substitution heuristic */ int m = mir->m; int n = mir->n; @@ -518,16 +540,16 @@ static void bound_subst_heur(struct MIR *mir) return; } -static void build_mod_row(struct MIR *mir) +static void build_mod_row(glp_mir *mir) { /* substitute bounds and build modified constraint */ int m = mir->m; int n = mir->n; int j, jj, k, kk; /* initially modified constraint is aggregated constraint */ - ios_copy_vec(mir->mod_vec, mir->agg_vec); + spv_copy_vec(mir->mod_vec, mir->agg_vec); mir->mod_rhs = mir->agg_rhs; -#if _MIR_DEBUG - ios_check_vec(mir->mod_vec); +#if MIR_DEBUG + spv_check_vec(mir->mod_vec); #endif /* substitute bounds for continuous variables; note that due to substitution of variable bounds additional terms may appear in @@ -549,7 +571,7 @@ static void build_mod_row(struct MIR *mir) xassert(mir->isint[kk]); jj = mir->mod_vec->pos[kk]; if (jj == 0) - { ios_set_vj(mir->mod_vec, kk, 1.0); + { spv_set_vj(mir->mod_vec, kk, 1.0); jj = mir->mod_vec->pos[kk]; mir->mod_vec->val[jj] = 0.0; } @@ -570,7 +592,7 @@ static void build_mod_row(struct MIR *mir) xassert(mir->isint[kk]); jj = mir->mod_vec->pos[kk]; if (jj == 0) - { ios_set_vj(mir->mod_vec, kk, 1.0); + { spv_set_vj(mir->mod_vec, kk, 1.0); jj = mir->mod_vec->pos[kk]; mir->mod_vec->val[jj] = 0.0; } @@ -582,8 +604,8 @@ static void build_mod_row(struct MIR *mir) else xassert(k != k); } -#if _MIR_DEBUG - ios_check_vec(mir->mod_vec); +#if MIR_DEBUG + spv_check_vec(mir->mod_vec); #endif /* substitute bounds for integer variables */ for (j = 1; j <= mir->mod_vec->nnz; j++) @@ -605,14 +627,14 @@ static void build_mod_row(struct MIR *mir) mir->mod_vec->val[j] = - mir->mod_vec->val[j]; } } -#if _MIR_DEBUG - ios_check_vec(mir->mod_vec); +#if MIR_DEBUG + spv_check_vec(mir->mod_vec); #endif return; } -#if _MIR_DEBUG -static void check_mod_row(struct MIR *mir) +#if MIR_DEBUG +static void check_mod_row(glp_mir *mir) { /* check modified constraint */ int m = mir->m; int n = mir->n; @@ -776,7 +798,7 @@ static int cmir_ineq(const int n, const double a[], const double b, struct vset { int j; double v; }; -static int cmir_cmp(const void *p1, const void *p2) +static int CDECL cmir_cmp(const void *p1, const void *p2) { const struct vset *v1 = p1, *v2 = p2; if (v1->v < v2->v) return -1; if (v1->v > v2->v) return +1; @@ -870,19 +892,19 @@ done: /* free working arrays */ return r_best; } -static double generate(struct MIR *mir) +static double generate(glp_mir *mir) { /* try to generate violated c-MIR cut for modified constraint */ int m = mir->m; int n = mir->n; int j, k, kk, nint; double s, *u, *x, *alpha, r_best = 0.0, b, beta, gamma; - ios_copy_vec(mir->cut_vec, mir->mod_vec); + spv_copy_vec(mir->cut_vec, mir->mod_vec); mir->cut_rhs = mir->mod_rhs; /* remove small terms, which can appear due to substitution of variable bounds */ - ios_clean_vec(mir->cut_vec, DBL_EPSILON); -#if _MIR_DEBUG - ios_check_vec(mir->cut_vec); + spv_clean_vec(mir->cut_vec, DBL_EPSILON); +#if MIR_DEBUG + spv_check_vec(mir->cut_vec); #endif /* remove positive continuous terms to obtain MK relaxation */ for (j = 1; j <= mir->cut_vec->nnz; j++) @@ -891,9 +913,9 @@ static double generate(struct MIR *mir) if (!mir->isint[k] && mir->cut_vec->val[j] > 0.0) mir->cut_vec->val[j] = 0.0; } - ios_clean_vec(mir->cut_vec, 0.0); -#if _MIR_DEBUG - ios_check_vec(mir->cut_vec); + spv_clean_vec(mir->cut_vec, 0.0); +#if MIR_DEBUG + spv_check_vec(mir->cut_vec); #endif /* move integer terms to the beginning of the sparse vector and determine the number of integer variables */ @@ -915,8 +937,8 @@ static double generate(struct MIR *mir) mir->cut_vec->val[j] = temp; } } -#if _MIR_DEBUG - ios_check_vec(mir->cut_vec); +#if MIR_DEBUG + spv_check_vec(mir->cut_vec); #endif /* if there is no integer variable, nothing to generate */ if (nint == 0) goto done; @@ -937,7 +959,15 @@ static double generate(struct MIR *mir) x[j] = mir->ub[k] - mir->x[k]; else xassert(k != k); +#if 0 /* 06/III-2016; notorious bug reported many times */ xassert(x[j] >= -0.001); +#else + if (x[j] < -0.001) + { xprintf("glp_mir_gen: warning: x[%d] = %g\n", j, x[j]); + r_best = 0.0; + goto skip; + } +#endif if (x[j] < 0.0) x[j] = 0.0; } /* compute s = - sum of continuous terms */ @@ -966,7 +996,15 @@ static double generate(struct MIR *mir) } else xassert(k != k); +#if 0 /* 06/III-2016; notorious bug reported many times */ xassert(x >= -0.001); +#else + if (x < -0.001) + { xprintf("glp_mir_gen: warning: x = %g\n", x); + r_best = 0.0; + goto skip; + } +#endif if (x < 0.0) x = 0.0; s -= mir->cut_vec->val[j] * x; } @@ -986,8 +1024,8 @@ static double generate(struct MIR *mir) if (k <= m+n) mir->cut_vec->val[j] *= gamma; } mir->cut_rhs = beta; -#if _MIR_DEBUG - ios_check_vec(mir->cut_vec); +#if MIR_DEBUG + spv_check_vec(mir->cut_vec); #endif skip: /* free working arrays */ xfree(u); @@ -996,8 +1034,8 @@ skip: /* free working arrays */ done: return r_best; } -#if _MIR_DEBUG -static void check_raw_cut(struct MIR *mir, double r_best) +#if MIR_DEBUG +static void check_raw_cut(glp_mir *mir, double r_best) { /* check raw cut before back bound substitution */ int m = mir->m; int n = mir->n; @@ -1040,7 +1078,7 @@ static void check_raw_cut(struct MIR *mir, double r_best) } #endif -static void back_subst(struct MIR *mir) +static void back_subst(glp_mir *mir) { /* back substitution of original bounds */ int m = mir->m; int n = mir->n; @@ -1088,7 +1126,7 @@ static void back_subst(struct MIR *mir) xassert(jj != 0); #else if (jj == 0) - { ios_set_vj(mir->cut_vec, kk, 1.0); + { spv_set_vj(mir->cut_vec, kk, 1.0); jj = mir->cut_vec->pos[kk]; xassert(jj != 0); mir->cut_vec->val[jj] = 0.0; @@ -1110,7 +1148,7 @@ static void back_subst(struct MIR *mir) { /* x'[k] = ub[k] * x[kk] - x[k] */ jj = mir->cut_vec->pos[kk]; if (jj == 0) - { ios_set_vj(mir->cut_vec, kk, 1.0); + { spv_set_vj(mir->cut_vec, kk, 1.0); jj = mir->cut_vec->pos[kk]; xassert(jj != 0); mir->cut_vec->val[jj] = 0.0; @@ -1123,14 +1161,14 @@ static void back_subst(struct MIR *mir) else xassert(k != k); } -#if _MIR_DEBUG - ios_check_vec(mir->cut_vec); +#if MIR_DEBUG + spv_check_vec(mir->cut_vec); #endif return; } -#if _MIR_DEBUG -static void check_cut_row(struct MIR *mir, double r_best) +#if MIR_DEBUG +static void check_cut_row(glp_mir *mir, double r_best) { /* check the cut after back bound substitution or elimination of auxiliary variables */ int m = mir->m; @@ -1156,9 +1194,8 @@ static void check_cut_row(struct MIR *mir, double r_best) } #endif -static void subst_aux_vars(glp_tree *tree, struct MIR *mir) +static void subst_aux_vars(glp_prob *mip, glp_mir *mir) { /* final substitution to eliminate auxiliary variables */ - glp_prob *mip = tree->mip; int m = mir->m; int n = mir->n; GLPAIJ *aij; @@ -1171,7 +1208,7 @@ static void subst_aux_vars(glp_tree *tree, struct MIR *mir) { kk = m + aij->col->j; /* structural */ jj = mir->cut_vec->pos[kk]; if (jj == 0) - { ios_set_vj(mir->cut_vec, kk, 1.0); + { spv_set_vj(mir->cut_vec, kk, 1.0); jj = mir->cut_vec->pos[kk]; mir->cut_vec->val[jj] = 0.0; } @@ -1179,11 +1216,11 @@ static void subst_aux_vars(glp_tree *tree, struct MIR *mir) } mir->cut_vec->val[j] = 0.0; } - ios_clean_vec(mir->cut_vec, 0.0); + spv_clean_vec(mir->cut_vec, 0.0); return; } -static void add_cut(glp_tree *tree, struct MIR *mir) +static void add_cut(glp_mir *mir, glp_prob *pool) { /* add constructed cut inequality to the cut pool */ int m = mir->m; int n = mir->n; @@ -1196,25 +1233,38 @@ static void add_cut(glp_tree *tree, struct MIR *mir) xassert(m+1 <= k && k <= m+n); len++, ind[len] = k - m, val[len] = mir->cut_vec->val[j]; } +#if 0 #if 0 ios_add_cut_row(tree, pool, GLP_RF_MIR, len, ind, val, GLP_UP, mir->cut_rhs); #else glp_ios_add_row(tree, NULL, GLP_RF_MIR, 0, len, ind, val, GLP_UP, mir->cut_rhs); +#endif +#else + { int i; + i = glp_add_rows(pool, 1); + glp_set_row_bnds(pool, i, GLP_UP, 0, mir->cut_rhs); + glp_set_mat_row(pool, i, len, ind, val); + } #endif xfree(ind); xfree(val); return; } -static int aggregate_row(glp_tree *tree, struct MIR *mir) +#if 0 /* 29/II-2016 by Chris */ +static int aggregate_row(glp_prob *mip, glp_mir *mir) +#else +static int aggregate_row(glp_prob *mip, glp_mir *mir, SPV *v) +#endif { /* try to aggregate another row */ - glp_prob *mip = tree->mip; int m = mir->m; int n = mir->n; GLPAIJ *aij; - IOSVEC *v; +#if 0 /* 29/II-2016 by Chris */ + SPV *v; +#endif int ii, j, jj, k, kk, kappa = 0, ret = 0; double d1, d2, d, d_max = 0.0; /* choose appropriate structural variable in the aggregated row @@ -1272,13 +1322,29 @@ static int aggregate_row(glp_tree *tree, struct MIR *mir) xassert(!mir->isint[kappa]); /* find another row, which have not been used yet, to eliminate x[kappa] from the aggregated row */ +#if 0 /* 29/II-2016 by Chris */ for (ii = 1; ii <= m; ii++) { if (mir->skip[ii]) continue; for (aij = mip->row[ii]->ptr; aij != NULL; aij = aij->r_next) if (aij->col->j == kappa - m) break; if (aij != NULL && fabs(aij->val) >= 0.001) break; +#else + ii = 0; + for (aij = mip->col[kappa - m]->ptr; aij != NULL; + aij = aij->c_next) + { if (aij->row->i > m) continue; + if (mir->skip[aij->row->i]) continue; + if (fabs(aij->val) >= 0.001) + { ii = aij->row->i; + break; + } +#endif } +#if 0 /* 29/II-2016 by Chris */ if (ii > m) +#else + if (ii == 0) +#endif { /* nothing found */ ret = 2; goto done; @@ -1289,63 +1355,73 @@ static int aggregate_row(glp_tree *tree, struct MIR *mir) mir->agg_row[mir->agg_cnt] = ii; mir->skip[ii] = 2; /* v := new row */ +#if 0 /* 29/II-2016 by Chris */ v = ios_create_vec(m+n); - ios_set_vj(v, ii, 1.0); +#else + spv_clear_vec(v); +#endif + spv_set_vj(v, ii, 1.0); for (aij = mip->row[ii]->ptr; aij != NULL; aij = aij->r_next) - ios_set_vj(v, m + aij->col->j, - aij->val); -#if _MIR_DEBUG - ios_check_vec(v); + spv_set_vj(v, m + aij->col->j, - aij->val); +#if MIR_DEBUG + spv_check_vec(v); #endif /* perform gaussian elimination to remove x[kappa] */ j = mir->agg_vec->pos[kappa]; xassert(j != 0); jj = v->pos[kappa]; xassert(jj != 0); - ios_linear_comb(mir->agg_vec, + spv_linear_comb(mir->agg_vec, - mir->agg_vec->val[j] / v->val[jj], v); +#if 0 /* 29/II-2016 by Chris */ ios_delete_vec(v); - ios_set_vj(mir->agg_vec, kappa, 0.0); -#if _MIR_DEBUG - ios_check_vec(mir->agg_vec); +#endif + spv_set_vj(mir->agg_vec, kappa, 0.0); +#if MIR_DEBUG + spv_check_vec(mir->agg_vec); #endif done: return ret; } -void ios_mir_gen(glp_tree *tree, void *gen) +int glp_mir_gen(glp_prob *mip, glp_mir *mir, glp_prob *pool) { /* main routine to generate MIR cuts */ - glp_prob *mip = tree->mip; - struct MIR *mir = gen; int m = mir->m; int n = mir->n; - int i; + int i, nnn = 0; double r_best; +#if 1 /* 29/II-2016 by Chris */ + SPV *work; +#endif xassert(mip->m >= m); xassert(mip->n == n); /* obtain current point */ - get_current_point(tree, mir); -#if _MIR_DEBUG + get_current_point(mip, mir); +#if MIR_DEBUG /* check current point */ check_current_point(mir); #endif /* reset bound substitution flags */ memset(&mir->subst[1], '?', m+n); +#if 1 /* 29/II-2016 by Chris */ + work = spv_create_vec(m+n); +#endif /* try to generate a set of violated MIR cuts */ for (i = 1; i <= m; i++) { if (mir->skip[i]) continue; /* use original i-th row as initial aggregated constraint */ - initial_agg_row(tree, mir, i); + initial_agg_row(mip, mir, i); loop: ; -#if _MIR_DEBUG +#if MIR_DEBUG /* check aggregated row */ check_agg_row(mir); #endif /* substitute fixed variables into aggregated constraint */ subst_fixed_vars(mir); -#if _MIR_DEBUG +#if MIR_DEBUG /* check aggregated row */ check_agg_row(mir); #endif -#if _MIR_DEBUG +#if MIR_DEBUG /* check bound substitution flags */ { int k; for (k = 1; k <= m+n; k++) @@ -1356,7 +1432,7 @@ loop: ; bound_subst_heur(mir); /* substitute bounds and build modified constraint */ build_mod_row(mir); -#if _MIR_DEBUG +#if MIR_DEBUG /* check modified row */ check_mod_row(mir); #endif @@ -1364,24 +1440,24 @@ loop: ; r_best = generate(mir); if (r_best > 0.0) { /* success */ -#if _MIR_DEBUG +#if MIR_DEBUG /* check raw cut before back bound substitution */ check_raw_cut(mir, r_best); #endif /* back substitution of original bounds */ back_subst(mir); -#if _MIR_DEBUG +#if MIR_DEBUG /* check the cut after back bound substitution */ check_cut_row(mir, r_best); #endif /* final substitution to eliminate auxiliary variables */ - subst_aux_vars(tree, mir); -#if _MIR_DEBUG + subst_aux_vars(mip, mir); +#if MIR_DEBUG /* check the cut after elimination of auxiliaries */ check_cut_row(mir, r_best); #endif /* add constructed cut inequality to the cut pool */ - add_cut(tree, mir); + add_cut(mir, pool), nnn++; } /* reset bound substitution flags */ { int j, k; @@ -1396,7 +1472,11 @@ loop: ; { /* failure */ if (mir->agg_cnt < MAXAGGR) { /* try to aggregate another row */ - if (aggregate_row(tree, mir) == 0) goto loop; +#if 0 /* 29/II-2016 by Chris */ + if (aggregate_row(mip, mir) == 0) goto loop; +#else + if (aggregate_row(mip, mir, work) == 0) goto loop; +#endif } } /* unmark rows used in the aggregated constraint */ @@ -1409,27 +1489,28 @@ loop: ; } } } - return; +#if 1 /* 29/II-2016 by Chris */ + spv_delete_vec(work); +#endif + return nnn; } /*********************************************************************** * NAME * -* ios_mir_term - terminate MIR cut generator +* glp_mir_free - delete MIR cut generator workspace * * SYNOPSIS * -* #include "glpios.h" -* void ios_mir_term(void *gen); +* void glp_mir_free(glp_mir *mir); * * DESCRIPTION * -* The routine ios_mir_term deletes the MIR cut generator working area -* freeing all the memory allocated to it. */ +* This routine deletes the MIR cut generator workspace and frees all +* the memory allocated to it. */ -void ios_mir_term(void *gen) -{ struct MIR *mir = gen; - xfree(mir->skip); +void glp_mir_free(glp_mir *mir) +{ xfree(mir->skip); xfree(mir->isint); xfree(mir->lb); xfree(mir->vlb); @@ -1437,10 +1518,10 @@ void ios_mir_term(void *gen) xfree(mir->vub); xfree(mir->x); xfree(mir->agg_row); - ios_delete_vec(mir->agg_vec); + spv_delete_vec(mir->agg_vec); xfree(mir->subst); - ios_delete_vec(mir->mod_vec); - ios_delete_vec(mir->cut_vec); + spv_delete_vec(mir->mod_vec); + spv_delete_vec(mir->cut_vec); xfree(mir); return; } diff --git a/resources/3rdparty/glpk-4.57/src/glpios04.c b/resources/3rdparty/glpk-4.65/src/intopt/spv.c similarity index 72% rename from resources/3rdparty/glpk-4.57/src/glpios04.c rename to resources/3rdparty/glpk-4.65/src/intopt/spv.c index 8074f7e71..502f3cd04 100644 --- a/resources/3rdparty/glpk-4.57/src/glpios04.c +++ b/resources/3rdparty/glpk-4.65/src/intopt/spv.c @@ -1,10 +1,9 @@ -/* glpios04.c (operations on sparse vectors) */ +/* spv.c (operations on sparse vectors) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2007-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,31 +22,31 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" +#include "spv.h" /*********************************************************************** * NAME * -* ios_create_vec - create sparse vector +* spv_create_vec - create sparse vector * * SYNOPSIS * * #include "glpios.h" -* IOSVEC *ios_create_vec(int n); +* SPV *spv_create_vec(int n); * * DESCRIPTION * -* The routine ios_create_vec creates a sparse vector of dimension n, +* The routine spv_create_vec creates a sparse vector of dimension n, * which initially is a null vector. * * RETURNS * * The routine returns a pointer to the vector created. */ -IOSVEC *ios_create_vec(int n) -{ IOSVEC *v; +SPV *spv_create_vec(int n) +{ SPV *v; xassert(n >= 0); - v = xmalloc(sizeof(IOSVEC)); + v = xmalloc(sizeof(SPV)); v->n = n; v->nnz = 0; v->pos = xcalloc(1+n, sizeof(int)); @@ -60,23 +59,23 @@ IOSVEC *ios_create_vec(int n) /*********************************************************************** * NAME * -* ios_check_vec - check that sparse vector has correct representation +* spv_check_vec - check that sparse vector has correct representation * * SYNOPSIS * * #include "glpios.h" -* void ios_check_vec(IOSVEC *v); +* void spv_check_vec(SPV *v); * * DESCRIPTION * -* The routine ios_check_vec checks that a sparse vector specified by +* The routine spv_check_vec checks that a sparse vector specified by * the parameter v has correct representation. * * NOTE * * Complexity of this operation is O(n). */ -void ios_check_vec(IOSVEC *v) +void spv_check_vec(SPV *v) { int j, k, nnz; xassert(v->n >= 0); nnz = 0; @@ -95,19 +94,19 @@ void ios_check_vec(IOSVEC *v) /*********************************************************************** * NAME * -* ios_get_vj - retrieve component of sparse vector +* spv_get_vj - retrieve component of sparse vector * * SYNOPSIS * * #include "glpios.h" -* double ios_get_vj(IOSVEC *v, int j); +* double spv_get_vj(SPV *v, int j); * * RETURNS * -* The routine ios_get_vj returns j-th component of a sparse vector +* The routine spv_get_vj returns j-th component of a sparse vector * specified by the parameter v. */ -double ios_get_vj(IOSVEC *v, int j) +double spv_get_vj(SPV *v, int j) { int k; xassert(1 <= j && j <= v->n); k = v->pos[j]; @@ -118,19 +117,19 @@ double ios_get_vj(IOSVEC *v, int j) /*********************************************************************** * NAME * -* ios_set_vj - set/change component of sparse vector +* spv_set_vj - set/change component of sparse vector * * SYNOPSIS * * #include "glpios.h" -* void ios_set_vj(IOSVEC *v, int j, double val); +* void spv_set_vj(SPV *v, int j, double val); * * DESCRIPTION * -* The routine ios_set_vj assigns val to j-th component of a sparse +* The routine spv_set_vj assigns val to j-th component of a sparse * vector specified by the parameter v. */ -void ios_set_vj(IOSVEC *v, int j, double val) +void spv_set_vj(SPV *v, int j, double val) { int k; xassert(1 <= j && j <= v->n); k = v->pos[j]; @@ -161,19 +160,19 @@ void ios_set_vj(IOSVEC *v, int j, double val) /*********************************************************************** * NAME * -* ios_clear_vec - set all components of sparse vector to zero +* spv_clear_vec - set all components of sparse vector to zero * * SYNOPSIS * * #include "glpios.h" -* void ios_clear_vec(IOSVEC *v); +* void spv_clear_vec(SPV *v); * * DESCRIPTION * -* The routine ios_clear_vec sets all components of a sparse vector +* The routine spv_clear_vec sets all components of a sparse vector * specified by the parameter v to zero. */ -void ios_clear_vec(IOSVEC *v) +void spv_clear_vec(SPV *v) { int k; for (k = 1; k <= v->nnz; k++) v->pos[v->ind[k]] = 0; @@ -184,20 +183,20 @@ void ios_clear_vec(IOSVEC *v) /*********************************************************************** * NAME * -* ios_clean_vec - remove zero or small components from sparse vector +* spv_clean_vec - remove zero or small components from sparse vector * * SYNOPSIS * * #include "glpios.h" -* void ios_clean_vec(IOSVEC *v, double eps); +* void spv_clean_vec(SPV *v, double eps); * * DESCRIPTION * -* The routine ios_clean_vec removes zero components and components +* The routine spv_clean_vec removes zero components and components * whose magnitude is less than eps from a sparse vector specified by * the parameter v. If eps is 0.0, only zero components are removed. */ -void ios_clean_vec(IOSVEC *v, double eps) +void spv_clean_vec(SPV *v, double eps) { int k, nnz; nnz = 0; for (k = 1; k <= v->nnz; k++) @@ -220,23 +219,23 @@ void ios_clean_vec(IOSVEC *v, double eps) /*********************************************************************** * NAME * -* ios_copy_vec - copy sparse vector (x := y) +* spv_copy_vec - copy sparse vector (x := y) * * SYNOPSIS * * #include "glpios.h" -* void ios_copy_vec(IOSVEC *x, IOSVEC *y); +* void spv_copy_vec(SPV *x, SPV *y); * * DESCRIPTION * -* The routine ios_copy_vec copies a sparse vector specified by the +* The routine spv_copy_vec copies a sparse vector specified by the * parameter y to a sparse vector specified by the parameter x. */ -void ios_copy_vec(IOSVEC *x, IOSVEC *y) +void spv_copy_vec(SPV *x, SPV *y) { int j; xassert(x != y); xassert(x->n == y->n); - ios_clear_vec(x); + spv_clear_vec(x); x->nnz = y->nnz; memcpy(&x->ind[1], &y->ind[1], x->nnz * sizeof(int)); memcpy(&x->val[1], &y->val[1], x->nnz * sizeof(double)); @@ -248,31 +247,31 @@ void ios_copy_vec(IOSVEC *x, IOSVEC *y) /*********************************************************************** * NAME * -* ios_linear_comb - compute linear combination (x := x + a * y) +* spv_linear_comb - compute linear combination (x := x + a * y) * * SYNOPSIS * * #include "glpios.h" -* void ios_linear_comb(IOSVEC *x, double a, IOSVEC *y); +* void spv_linear_comb(SPV *x, double a, SPV *y); * * DESCRIPTION * -* The routine ios_linear_comb computes the linear combination +* The routine spv_linear_comb computes the linear combination * * x := x + a * y, * * where x and y are sparse vectors, a is a scalar. */ -void ios_linear_comb(IOSVEC *x, double a, IOSVEC *y) +void spv_linear_comb(SPV *x, double a, SPV *y) { int j, k; double xj, yj; xassert(x != y); xassert(x->n == y->n); for (k = 1; k <= y->nnz; k++) { j = y->ind[k]; - xj = ios_get_vj(x, j); + xj = spv_get_vj(x, j); yj = y->val[k]; - ios_set_vj(x, j, xj + a * yj); + spv_set_vj(x, j, xj + a * yj); } return; } @@ -280,19 +279,19 @@ void ios_linear_comb(IOSVEC *x, double a, IOSVEC *y) /*********************************************************************** * NAME * -* ios_delete_vec - delete sparse vector +* spv_delete_vec - delete sparse vector * * SYNOPSIS * * #include "glpios.h" -* void ios_delete_vec(IOSVEC *v); +* void spv_delete_vec(SPV *v); * * DESCRIPTION * -* The routine ios_delete_vec deletes a sparse vector specified by the +* The routine spv_delete_vec deletes a sparse vector specified by the * parameter v freeing all the memory allocated to this object. */ -void ios_delete_vec(IOSVEC *v) +void spv_delete_vec(SPV *v) { /* delete sparse vector */ xfree(v->pos); xfree(v->ind); diff --git a/resources/3rdparty/glpk-4.65/src/intopt/spv.h b/resources/3rdparty/glpk-4.65/src/intopt/spv.h new file mode 100644 index 000000000..d7d4699f6 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/intopt/spv.h @@ -0,0 +1,83 @@ +/* spv.h (operations on sparse vectors) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2007-2017 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#ifndef SPV_H +#define SPV_H + +typedef struct SPV SPV; + +struct SPV +{ /* sparse vector v = (v[j]) */ + int n; + /* dimension, n >= 0 */ + int nnz; + /* number of non-zero components, 0 <= nnz <= n */ + int *pos; /* int pos[1+n]; */ + /* pos[j] = k, 1 <= j <= n, is position of (non-zero) v[j] in the + * arrays ind and val, where 1 <= k <= nnz; pos[j] = 0 means that + * v[j] is structural zero */ + int *ind; /* int ind[1+n]; */ + /* ind[k] = j, 1 <= k <= nnz, is index of v[j] */ + double *val; /* double val[1+n]; */ + /* val[k], 1 <= k <= nnz, is a numeric value of v[j] */ +}; + +#define spv_create_vec _glp_spv_create_vec +SPV *spv_create_vec(int n); +/* create sparse vector */ + +#define spv_check_vec _glp_spv_check_vec +void spv_check_vec(SPV *v); +/* check that sparse vector has correct representation */ + +#define spv_get_vj _glp_spv_get_vj +double spv_get_vj(SPV *v, int j); +/* retrieve component of sparse vector */ + +#define spv_set_vj _glp_spv_set_vj +void spv_set_vj(SPV *v, int j, double val); +/* set/change component of sparse vector */ + +#define spv_clear_vec _glp_spv_clear_vec +void spv_clear_vec(SPV *v); +/* set all components of sparse vector to zero */ + +#define spv_clean_vec _glp_spv_clean_vec +void spv_clean_vec(SPV *v, double eps); +/* remove zero or small components from sparse vector */ + +#define spv_copy_vec _glp_spv_copy_vec +void spv_copy_vec(SPV *x, SPV *y); +/* copy sparse vector (x := y) */ + +#define spv_linear_comb _glp_spv_linear_comb +void spv_linear_comb(SPV *x, double a, SPV *y); +/* compute linear combination (x := x + a * y) */ + +#define spv_delete_vec _glp_spv_delete_vec +void spv_delete_vec(SPV *v); +/* delete sparse vector */ + +#endif + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/minisat/LICENSE b/resources/3rdparty/glpk-4.65/src/minisat/LICENSE similarity index 100% rename from resources/3rdparty/glpk-4.57/src/minisat/LICENSE rename to resources/3rdparty/glpk-4.65/src/minisat/LICENSE diff --git a/resources/3rdparty/glpk-4.57/src/minisat/README b/resources/3rdparty/glpk-4.65/src/minisat/README similarity index 100% rename from resources/3rdparty/glpk-4.57/src/minisat/README rename to resources/3rdparty/glpk-4.65/src/minisat/README diff --git a/resources/3rdparty/glpk-4.57/src/minisat/minisat.c b/resources/3rdparty/glpk-4.65/src/minisat/minisat.c similarity index 98% rename from resources/3rdparty/glpk-4.57/src/minisat/minisat.c rename to resources/3rdparty/glpk-4.65/src/minisat/minisat.c index f242d838a..2432d650e 100644 --- a/resources/3rdparty/glpk-4.57/src/minisat/minisat.c +++ b/resources/3rdparty/glpk-4.65/src/minisat/minisat.c @@ -1,6 +1,8 @@ /* minisat.c */ /* Modified by Andrew Makhorin , August 2011 */ +/* May 2017: Changes were made to provide 64-bit portability; thanks to + * Chris Matrakidis for patch */ /*********************************************************************** * MiniSat -- Copyright (c) 2005, Niklas Sorensson @@ -142,6 +144,7 @@ struct clause_t /*====================================================================*/ /* Encode literals in clause pointers: */ +#if 0 /* 8/I-2017 by cmatraki (64-bit portability) */ #define clause_from_lit(l) \ (clause*)((unsigned long)(l) + (unsigned long)(l) + 1) @@ -150,6 +153,16 @@ struct clause_t #define clause_read_lit(c) \ (lit)((unsigned long)(c) >> 1) +#else +#define clause_from_lit(l) \ + (clause*)((size_t)(l) + (size_t)(l) + 1) + +#define clause_is_lit(c) \ + ((size_t)(c) & 1) + +#define clause_read_lit(c) \ + (lit)((size_t)(c) >> 1) +#endif /*====================================================================*/ /* Simple helpers: */ @@ -332,8 +345,11 @@ static clause* clause_new(solver* s, lit* begin, lit* end, int learnt) c = (clause*)malloc(sizeof(clause) + sizeof(lit) * size + learnt * sizeof(float)); c->size_learnt = (size << 1) | learnt; -#if 0 /* by mao; meaningless non-portable check */ - assert(((unsigned int)c & 1) == 0); +#if 1 /* by mao & cmatraki; non-portable check that is a fundamental \ + * assumption of minisat code: bit 0 is used as a flag (zero \ + * for pointer, one for shifted int) so allocated memory should \ + * be at least 16-bit aligned */ + assert(((size_t)c & 1) == 0); #endif for (i = 0; i < size; i++) diff --git a/resources/3rdparty/glpk-4.57/src/minisat/minisat.h b/resources/3rdparty/glpk-4.65/src/minisat/minisat.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/minisat/minisat.h rename to resources/3rdparty/glpk-4.65/src/minisat/minisat.h diff --git a/resources/3rdparty/glpk-4.57/src/avl.c b/resources/3rdparty/glpk-4.65/src/misc/avl.c similarity index 98% rename from resources/3rdparty/glpk-4.57/src/avl.c rename to resources/3rdparty/glpk-4.65/src/misc/avl.c index c9b7f2203..c97cf13af 100644 --- a/resources/3rdparty/glpk-4.57/src/avl.c +++ b/resources/3rdparty/glpk-4.65/src/misc/avl.c @@ -3,8 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2013 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * diff --git a/resources/3rdparty/glpk-4.57/src/avl.h b/resources/3rdparty/glpk-4.65/src/misc/avl.h similarity index 94% rename from resources/3rdparty/glpk-4.57/src/avl.h rename to resources/3rdparty/glpk-4.65/src/misc/avl.h index c4144c293..b0aaef61e 100644 --- a/resources/3rdparty/glpk-4.57/src/avl.h +++ b/resources/3rdparty/glpk-4.65/src/misc/avl.h @@ -3,8 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2000-2013 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * diff --git a/resources/3rdparty/glpk-4.57/src/misc/bignum.c b/resources/3rdparty/glpk-4.65/src/misc/bignum.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/bignum.c rename to resources/3rdparty/glpk-4.65/src/misc/bignum.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/bignum.h b/resources/3rdparty/glpk-4.65/src/misc/bignum.h similarity index 96% rename from resources/3rdparty/glpk-4.57/src/misc/bignum.h rename to resources/3rdparty/glpk-4.65/src/misc/bignum.h index aebac374d..8567519b7 100644 --- a/resources/3rdparty/glpk-4.57/src/misc/bignum.h +++ b/resources/3rdparty/glpk-4.65/src/misc/bignum.h @@ -1,4 +1,4 @@ -/* bignum.h (arbitrary precision arithmetic) */ +/* bignum.h (bignum arithmetic) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). diff --git a/resources/3rdparty/glpk-4.65/src/misc/dimacs.c b/resources/3rdparty/glpk-4.65/src/misc/dimacs.c new file mode 100644 index 000000000..6aa630a5e --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/misc/dimacs.c @@ -0,0 +1,147 @@ +/* dimacs.c (reading data in DIMACS format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2015 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "dimacs.h" + +void dmx_error(DMX *csa, const char *fmt, ...) +{ /* print error message and terminate processing */ + va_list arg; + xprintf("%s:%d: error: ", csa->fname, csa->count); + va_start(arg, fmt); + xvprintf(fmt, arg); + va_end(arg); + xprintf("\n"); + longjmp(csa->jump, 1); + /* no return */ +} + +void dmx_warning(DMX *csa, const char *fmt, ...) +{ /* print warning message and continue processing */ + va_list arg; + xprintf("%s:%d: warning: ", csa->fname, csa->count); + va_start(arg, fmt); + xvprintf(fmt, arg); + va_end(arg); + xprintf("\n"); + return; +} + +void dmx_read_char(DMX *csa) +{ /* read character from input text file */ + int c; + if (csa->c == '\n') csa->count++; + c = glp_getc(csa->fp); + if (c < 0) + { if (glp_ioerr(csa->fp)) + dmx_error(csa, "read error - %s", get_err_msg()); + else if (csa->c == '\n') + dmx_error(csa, "unexpected end of file"); + else + { dmx_warning(csa, "missing final end of line"); + c = '\n'; + } + } + else if (c == '\n') + ; + else if (isspace(c)) + c = ' '; + else if (iscntrl(c)) + dmx_error(csa, "invalid control character 0x%02X", c); + csa->c = c; + return; +} + +void dmx_read_designator(DMX *csa) +{ /* read one-character line designator */ + xassert(csa->c == '\n'); + dmx_read_char(csa); + for (;;) + { /* skip preceding white-space characters */ + while (csa->c == ' ') + dmx_read_char(csa); + if (csa->c == '\n') + { /* ignore empty line */ + if (!csa->empty) + { dmx_warning(csa, "empty line ignored"); + csa->empty = 1; + } + dmx_read_char(csa); + } + else if (csa->c == 'c') + { /* skip comment line */ + while (csa->c != '\n') + dmx_read_char(csa); + dmx_read_char(csa); + } + else + { /* hmm... looks like a line designator */ + csa->field[0] = (char)csa->c, csa->field[1] = '\0'; + /* check that it is followed by a white-space character */ + dmx_read_char(csa); + if (!(csa->c == ' ' || csa->c == '\n')) + dmx_error(csa, "line designator missing or invalid"); + break; + } + } + return; +} + +void dmx_read_field(DMX *csa) +{ /* read data field */ + int len = 0; + /* skip preceding white-space characters */ + while (csa->c == ' ') + dmx_read_char(csa); + /* scan data field */ + if (csa->c == '\n') + dmx_error(csa, "unexpected end of line"); + while (!(csa->c == ' ' || csa->c == '\n')) + { if (len == sizeof(csa->field)-1) + dmx_error(csa, "data field '%.15s...' too long", + csa->field); + csa->field[len++] = (char)csa->c; + dmx_read_char(csa); + } + csa->field[len] = '\0'; + return; +} + +void dmx_end_of_line(DMX *csa) +{ /* skip white-space characters until end of line */ + while (csa->c == ' ') + dmx_read_char(csa); + if (csa->c != '\n') + dmx_error(csa, "too many data fields specified"); + return; +} + +void dmx_check_int(DMX *csa, double num) +{ /* print a warning if non-integer data are detected */ + if (!csa->nonint && num != floor(num)) + { dmx_warning(csa, "non-integer data detected"); + csa->nonint = 1; + } + return; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/misc/dimacs.h b/resources/3rdparty/glpk-4.65/src/misc/dimacs.h new file mode 100644 index 000000000..42fb99961 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/misc/dimacs.h @@ -0,0 +1,81 @@ +/* dimacs.h (reading data in DIMACS format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2009-2015 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#ifndef DIMACS_H +#define DIMACS_H + +#include "env.h" + +typedef struct DMX DMX; + +struct DMX +{ /* DIMACS data reader */ + jmp_buf jump; + /* label for go to in case of error */ + const char *fname; + /* name of input text file */ + glp_file *fp; + /* stream assigned to input text file */ + int count; + /* line count */ + int c; + /* current character */ + char field[255+1]; + /* data field */ + int empty; + /* warning 'empty line ignored' was printed */ + int nonint; + /* warning 'non-integer data detected' was printed */ +}; + +#define dmx_error _glp_dmx_error +void dmx_error(DMX *csa, const char *fmt, ...); +/* print error message and terminate processing */ + +#define dmx_warning _glp_dmx_warning +void dmx_warning(DMX *csa, const char *fmt, ...); +/* print warning message and continue processing */ + +#define dmx_read_char _glp_dmx_read_char +void dmx_read_char(DMX *csa); +/* read character from input text file */ + +#define dmx_read_designator _glp_dmx_read_designator +void dmx_read_designator(DMX *csa); +/* read one-character line designator */ + +#define dmx_read_field _glp_dmx_read_field +void dmx_read_field(DMX *csa); +/* read data field */ + +#define dmx_end_of_line _glp_dmx_end_of_line +void dmx_end_of_line(DMX *csa); +/* skip white-space characters until end of line */ + +#define dmx_check_int _glp_dmx_check_int +void dmx_check_int(DMX *csa, double num); +/* print a warning if non-integer data are detected */ + +#endif + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/misc/dmp.c b/resources/3rdparty/glpk-4.65/src/misc/dmp.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/dmp.c rename to resources/3rdparty/glpk-4.65/src/misc/dmp.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/dmp.h b/resources/3rdparty/glpk-4.65/src/misc/dmp.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/dmp.h rename to resources/3rdparty/glpk-4.65/src/misc/dmp.h diff --git a/resources/3rdparty/glpk-4.57/src/misc/ffalg.c b/resources/3rdparty/glpk-4.65/src/misc/ffalg.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/ffalg.c rename to resources/3rdparty/glpk-4.65/src/misc/ffalg.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/ffalg.h b/resources/3rdparty/glpk-4.65/src/misc/ffalg.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/ffalg.h rename to resources/3rdparty/glpk-4.65/src/misc/ffalg.h diff --git a/resources/3rdparty/glpk-4.57/src/misc/fp2rat.c b/resources/3rdparty/glpk-4.65/src/misc/fp2rat.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/fp2rat.c rename to resources/3rdparty/glpk-4.65/src/misc/fp2rat.c diff --git a/resources/3rdparty/glpk-4.65/src/misc/fvs.c b/resources/3rdparty/glpk-4.65/src/misc/fvs.c new file mode 100644 index 000000000..916a1bf94 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/misc/fvs.c @@ -0,0 +1,137 @@ +/* fvs.c (sparse vector in FVS format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "fvs.h" + +void fvs_alloc_vec(FVS *x, int n) +{ /* allocate sparse vector */ + int j; + xassert(n >= 0); + x->n = n; + x->nnz = 0; + x->ind = talloc(1+n, int); + x->vec = talloc(1+n, double); + for (j = 1; j <= n; j++) + x->vec[j] = 0.0; + return; +} + +void fvs_check_vec(const FVS *x) +{ /* check sparse vector */ + /* NOTE: for testing/debugging only */ + int n = x->n; + int nnz = x->nnz; + int *ind = x->ind; + double *vec = x->vec; + char *map; + int j, k; + xassert(n >= 0); + xassert(0 <= nnz && nnz <= n); + map = talloc(1+n, char); + for (j = 1; j <= n; j++) + map[j] = (vec[j] != 0.0); + for (k = 1; k <= nnz; k++) + { j = ind[k]; + xassert(1 <= j && j <= n); + xassert(map[j]); + map[j] = 0; + } + for (j = 1; j <= n; j++) + xassert(!map[j]); + tfree(map); + return; +} + +void fvs_gather_vec(FVS *x, double eps) +{ /* gather sparse vector */ + int n = x->n; + int *ind = x->ind; + double *vec = x->vec; + int j, nnz = 0; + for (j = n; j >= 1; j--) + { if (-eps < vec[j] && vec[j] < +eps) + vec[j] = 0.0; + else + ind[++nnz] = j; + } + x->nnz = nnz; + return; +} + +void fvs_clear_vec(FVS *x) +{ /* clear sparse vector */ + int *ind = x->ind; + double *vec = x->vec; + int k; + for (k = x->nnz; k >= 1; k--) + vec[ind[k]] = 0.0; + x->nnz = 0; + return; +} + +void fvs_copy_vec(FVS *x, const FVS *y) +{ /* copy sparse vector */ + int *x_ind = x->ind; + double *x_vec = x->vec; + int *y_ind = y->ind; + double *y_vec = y->vec; + int j, k; + xassert(x != y); + xassert(x->n == y->n); + fvs_clear_vec(x); + for (k = x->nnz = y->nnz; k >= 1; k--) + { j = x_ind[k] = y_ind[k]; + x_vec[j] = y_vec[j]; + } + return; +} + +void fvs_adjust_vec(FVS *x, double eps) +{ /* replace tiny vector elements by exact zeros */ + int nnz = x->nnz; + int *ind = x->ind; + double *vec = x->vec; + int j, k, cnt = 0; + for (k = 1; k <= nnz; k++) + { j = ind[k]; + if (-eps < vec[j] && vec[j] < +eps) + vec[j] = 0.0; + else + ind[++cnt] = j; + } + x->nnz = cnt; + return; +} + +void fvs_free_vec(FVS *x) +{ /* deallocate sparse vector */ + tfree(x->ind); + tfree(x->vec); + x->n = x->nnz = -1; + x->ind = NULL; + x->vec = NULL; + return; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/misc/fvs.h b/resources/3rdparty/glpk-4.65/src/misc/fvs.h new file mode 100644 index 000000000..abfed8cc9 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/misc/fvs.h @@ -0,0 +1,76 @@ +/* fvs.h (sparse vector in FVS format) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2016 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#ifndef FVS_H +#define FVS_H + +typedef struct FVS FVS; + +struct FVS +{ /* sparse vector in FVS (Full Vector Storage) format */ + int n; + /* vector dimension (total number of elements) */ + int nnz; + /* number of non-zero elements, 0 <= nnz <= n */ + int *ind; /* int ind[1+n]; */ + /* ind[0] is not used; + * ind[k] = j, 1 <= k <= nnz, means that vec[j] != 0 + * non-zero indices in the array ind are stored in arbitrary + * order; if vec[j] = 0, its index j SHOULD NOT be presented in + * the array ind */ + double *vec; /* double vec[1+n]; */ + /* vec[0] is not used; + * vec[j], 1 <= j <= n, is a numeric value of j-th element */ +}; + +#define fvs_alloc_vec _glp_fvs_alloc_vec +void fvs_alloc_vec(FVS *x, int n); +/* allocate sparse vector */ + +#define fvs_check_vec _glp_fvs_check_vec +void fvs_check_vec(const FVS *x); +/* check sparse vector */ + +#define fvs_gather_vec _glp_fvs_gather_vec +void fvs_gather_vec(FVS *x, double eps); +/* gather sparse vector */ + +#define fvs_clear_vec _glp_fvs_clear_vec +void fvs_clear_vec(FVS *x); +/* clear sparse vector */ + +#define fvs_copy_vec _glp_fvs_copy_vec +void fvs_copy_vec(FVS *x, const FVS *y); +/* copy sparse vector */ + +#define fvs_adjust_vec _glp_fvs_adjust_vec +void fvs_adjust_vec(FVS *x, double eps); +/* replace tiny vector elements by exact zeros */ + +#define fvs_free_vec _glp_fvs_free_vec +void fvs_free_vec(FVS *x); +/* deallocate sparse vector */ + +#endif + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/misc/gcd.c b/resources/3rdparty/glpk-4.65/src/misc/gcd.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/gcd.c rename to resources/3rdparty/glpk-4.65/src/misc/gcd.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/jd.c b/resources/3rdparty/glpk-4.65/src/misc/jd.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/jd.c rename to resources/3rdparty/glpk-4.65/src/misc/jd.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/jd.h b/resources/3rdparty/glpk-4.65/src/misc/jd.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/jd.h rename to resources/3rdparty/glpk-4.65/src/misc/jd.h diff --git a/resources/3rdparty/glpk-4.57/src/misc/keller.c b/resources/3rdparty/glpk-4.65/src/misc/keller.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/keller.c rename to resources/3rdparty/glpk-4.65/src/misc/keller.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/keller.h b/resources/3rdparty/glpk-4.65/src/misc/keller.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/keller.h rename to resources/3rdparty/glpk-4.65/src/misc/keller.h diff --git a/resources/3rdparty/glpk-4.65/src/misc/ks.c b/resources/3rdparty/glpk-4.65/src/misc/ks.c new file mode 100644 index 000000000..0720cc90b --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/misc/ks.c @@ -0,0 +1,466 @@ +/* ks.c (0-1 knapsack problem) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2017-2018 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "ks.h" +#include "mt1.h" + +/*********************************************************************** +* 0-1 knapsack problem has the following formulation: +* +* maximize z = sum{j in 1..n} c[j]x[j] (1) +* +* s.t. sum{j in 1..n} a[j]x[j] <= b (2) +* +* x[j] in {0, 1} for all j in 1..n (3) +* +* In general case it is assumed that the instance is non-normalized, +* i.e. parameters a, b, and c may have any sign. +***********************************************************************/ + +/*********************************************************************** +* ks_enum - solve 0-1 knapsack problem by complete enumeration +* +* This routine finds optimal solution to 0-1 knapsack problem (1)-(3) +* by complete enumeration. It is intended mainly for testing purposes. +* +* The instance to be solved is specified by parameters n, a, b, and c. +* Note that these parameters can have any sign, i.e. normalization is +* not needed. +* +* On exit the routine stores the optimal point found in locations +* x[1], ..., x[n] and returns the optimal objective value. However, if +* the instance is infeasible, the routine returns INT_MIN. +* +* Since the complete enumeration is inefficient, this routine can be +* used only for small instances (n <= 20-30). */ + +#define N_MAX 40 + +int ks_enum(int n, const int a[/*1+n*/], int b, const int c[/*1+n*/], + char x[/*1+n*/]) +{ int j, s, z, z_best; + char x_best[1+N_MAX]; + xassert(0 <= n && n <= N_MAX); + /* initialization */ + memset(&x[1], 0, n * sizeof(char)); + z_best = INT_MIN; +loop: /* compute constraint and objective at current x */ + s = z = 0; + for (j = 1; j <= n; j++) + { if (x[j]) + s += a[j], z += c[j]; + } + /* check constraint violation */ + if (s > b) + goto next; + /* check objective function */ + if (z_best < z) + { /* better solution has been found */ + memcpy(&x_best[1], &x[1], n * sizeof(char)); + z_best = z; + } +next: /* generate next x */ + for (j = 1; j <= n; j++) + { if (!x[j]) + { x[j] = 1; + goto loop; + } + x[j] = 0; + } + /* report best (optimal) solution */ + memcpy(&x[1], &x_best[1], n * sizeof(char)); + return z_best; +} + +/*********************************************************************** +* reduce - prepare reduced instance of 0-1 knapsack +* +* Given original instance of 0-1 knapsack (1)-(3) specified by the +* parameters n, a, b, and c this routine transforms it to equivalent +* reduced instance in the same format. The reduced instance is +* normalized, i.e. the following additional conditions are met: +* +* n >= 2 (4) +* +* 1 <= a[j] <= b for all j in 1..n (5) +* +* sum{j in 1..n} a[j] >= b+1 (6) +* +* c[j] >= 1 for all j in 1..n (7) +* +* The routine creates the structure ks and stores there parameters n, +* a, b, and c of the reduced instance as well as template of solution +* to original instance. +* +* Normally the routine returns a pointer to the structure ks created. +* However, if the original instance is infeasible, the routine returns +* a null pointer. */ + +struct ks +{ int orig_n; + /* original problem dimension */ + int n; + /* reduced problem dimension */ + int *a; /* int a[1+orig_n]; */ + /* a{j in 1..n} are constraint coefficients (2) */ + int b; + /* b is constraint right-hand side (2) */ + int *c; /* int c[1+orig_n]; */ + /* c{j in 1..n} are objective coefficients (1) */ + int c0; + /* c0 is objective constant term */ + char *x; /* char x[1+orig_n]; */ + /* x{j in 1..orig_n} is solution template to original instance: + * x[j] = 0 x[j] is fixed at 0 + * x[j] = 1 x[j] is fixed at 1 + * x[j] = 0x10 x[j] = x[j'] + * x[j] = 0x11 x[j] = 1 - x[j'] + * where x[j'] is corresponding solution to reduced instance */ +}; + +static void free_ks(struct ks *ks); + +static struct ks *reduce(const int n, const int a[/*1+n*/], int b, + const int c[/*1+n*/]) +{ struct ks *ks; + int j, s; + xassert(n >= 0); + /* initially reduced instance is the same as original one */ + ks = talloc(1, struct ks); + ks->orig_n = n; + ks->n = 0; + ks->a = talloc(1+n, int); + memcpy(&ks->a[1], &a[1], n * sizeof(int)); + ks->b = b; + ks->c = talloc(1+n, int); + memcpy(&ks->c[1], &c[1], n * sizeof(int)); + ks->c0 = 0; + ks->x = talloc(1+n, char); + /* make all a[j] non-negative */ + for (j = 1; j <= n; j++) + { if (a[j] >= 0) + { /* keep original x[j] */ + ks->x[j] = 0x10; + } + else /* a[j] < 0 */ + { /* substitute x[j] = 1 - x'[j] */ + ks->x[j] = 0x11; + /* ... + a[j]x[j] + ... <= b + * ... + a[j](1 - x'[j]) + ... <= b + * ... - a[j]x'[j] + ... <= b - a[j] */ + ks->a[j] = - ks->a[j]; + ks->b += ks->a[j]; + /* z = ... + c[j]x[j] + ... + c0 = + * = ... + c[j](1 - x'[j]) + ... + c0 = + * = ... - c[j]x'[j] + ... + (c0 + c[j]) */ + ks->c0 += ks->c[j]; + ks->c[j] = - ks->c[j]; + } + } + /* now a[j] >= 0 for all j in 1..n */ + if (ks->b < 0) + { /* instance is infeasible */ + free_ks(ks); + return NULL; + } + /* build reduced instance */ + for (j = 1; j <= n; j++) + { if (ks->a[j] == 0) + { if (ks->c[j] <= 0) + { /* fix x[j] at 0 */ + ks->x[j] ^= 0x10; + } + else + { /* fix x[j] at 1 */ + ks->x[j] ^= 0x11; + ks->c0 += ks->c[j]; + } + } + else if (ks->a[j] > ks->b || ks->c[j] <= 0) + { /* fix x[j] at 0 */ + ks->x[j] ^= 0x10; + } + else + { /* include x[j] in reduced instance */ + ks->n++; + ks->a[ks->n] = ks->a[j]; + ks->c[ks->n] = ks->c[j]; + } + } + /* now conditions (5) and (7) are met */ + /* check condition (6) */ + s = 0; + for (j = 1; j <= ks->n; j++) + { xassert(1 <= ks->a[j] && ks->a[j] <= ks->b); + xassert(ks->c[j] >= 1); + s += ks->a[j]; + } + if (s <= ks->b) + { /* sum{j in 1..n} a[j] <= b */ + /* fix all remaining x[j] at 1 to obtain trivial solution */ + for (j = 1; j <= n; j++) + { if (ks->x[j] & 0x10) + ks->x[j] ^= 0x11; + } + for (j = 1; j <= ks->n; j++) + ks->c0 += ks->c[j]; + /* reduced instance is empty */ + ks->n = 0; + } + /* here n = 0 or n >= 2 due to condition (6) */ + xassert(ks->n == 0 || ks->n >= 2); + return ks; +} + +/*********************************************************************** +* restore - restore solution to original 0-1 knapsack instance +* +* Given optimal solution x{j in 1..ks->n} to the reduced 0-1 knapsack +* instance (previously prepared by the routine reduce) this routine +* constructs optimal solution to the original instance and stores it +* in the array ks->x{j in 1..ks->orig_n}. +* +* On exit the routine returns optimal objective value for the original +* instance. +* +* NOTE: This operation should be performed only once. */ + +static int restore(struct ks *ks, char x[]) +{ int j, k, z; + z = ks->c0; + for (j = 1, k = 0; j <= ks->orig_n; j++) + { if (ks->x[j] & 0x10) + { k++; + xassert(k <= ks->n); + xassert(x[k] == 0 || x[k] == 1); + if (ks->x[j] & 1) + ks->x[j] = 1 - x[k]; + else + ks->x[j] = x[k]; + if (x[k]) + z += ks->c[k]; + } + } + xassert(k == ks->n); + return z; +} + +/*********************************************************************** +* free_ks - deallocate structure ks +* +* This routine frees memory previously allocated to the structure ks +* and all its components. */ + +static void free_ks(struct ks *ks) +{ xassert(ks != NULL); + tfree(ks->a); + tfree(ks->c); + tfree(ks->x); + tfree(ks); +} + +/*********************************************************************** +* ks_mt1 - solve 0-1 knapsack problem with Martello & Toth algorithm +* +* This routine finds optimal solution to 0-1 knapsack problem (1)-(3) +* with Martello & Toth algorithm MT1. +* +* The instance to be solved is specified by parameters n, a, b, and c. +* Note that these parameters can have any sign, i.e. normalization is +* not needed. +* +* On exit the routine stores the optimal point found in locations +* x[1], ..., x[n] and returns the optimal objective value. However, if +* the instance is infeasible, the routine returns INT_MIN. +* +* REFERENCES +* +* S.Martello, P.Toth. Knapsack Problems: Algorithms and Computer Imp- +* lementations. John Wiley & Sons, 1990. */ + +struct mt +{ int j; + float r; /* r[j] = c[j] / a[j] */ +}; + +static int CDECL fcmp(const void *p1, const void *p2) +{ if (((struct mt *)p1)->r > ((struct mt *)p2)->r) + return -1; + else if (((struct mt *)p1)->r < ((struct mt *)p2)->r) + return +1; + else + return 0; +} + +static int mt1a(int n, const int a[], int b, const int c[], char x[]) +{ /* interface routine to MT1 */ + struct mt *mt; + int j, z, *p, *w, *x1, *xx, *min, *psign, *wsign, *zsign; + xassert(n >= 2); + /* allocate working arrays */ + mt = talloc(1+n, struct mt); + p = talloc(1+n+1, int); + w = talloc(1+n+1, int); + x1 = talloc(1+n+1, int); + xx = talloc(1+n+1, int); + min = talloc(1+n+1, int); + psign = talloc(1+n+1, int); + wsign = talloc(1+n+1, int); + zsign = talloc(1+n+1, int); + /* reorder items to provide c[j] / a[j] >= a[j+1] / a[j+1] */ + for (j = 1; j <= n; j++) + { mt[j].j = j; + mt[j].r = (float)c[j] / (float)a[j]; + } + qsort(&mt[1], n, sizeof(struct mt), fcmp); + /* load instance parameters */ + for (j = 1; j <= n; j++) + { p[j] = c[mt[j].j]; + w[j] = a[mt[j].j]; + } + /* find optimal solution */ + z = mt1(n, p, w, b, x1, 1, xx, min, psign, wsign, zsign); + xassert(z >= 0); + /* store optimal point found */ + for (j = 1; j <= n; j++) + { xassert(x1[j] == 0 || x1[j] == 1); + x[mt[j].j] = x1[j]; + } + /* free working arrays */ + tfree(mt); + tfree(p); + tfree(w); + tfree(x1); + tfree(xx); + tfree(min); + tfree(psign); + tfree(wsign); + tfree(zsign); + return z; +} + +int ks_mt1(int n, const int a[/*1+n*/], int b, const int c[/*1+n*/], + char x[/*1+n*/]) +{ struct ks *ks; + int j, s1, s2, z; + xassert(n >= 0); + /* prepare reduced instance */ + ks = reduce(n, a, b, c); + if (ks == NULL) + { /* original instance is infeasible */ + return INT_MIN; + } + /* find optimal solution to reduced instance */ + if (ks->n > 0) + mt1a(ks->n, ks->a, ks->b, ks->c, x); + /* restore solution to original instance */ + z = restore(ks, x); + memcpy(&x[1], &ks->x[1], n * sizeof(char)); + free_ks(ks); + /* check solution found */ + s1 = s2 = 0; + for (j = 1; j <= n; j++) + { xassert(x[j] == 0 || x[j] == 1); + if (x[j]) + s1 += a[j], s2 += c[j]; + } + xassert(s1 <= b); + xassert(s2 == z); + return z; +} + +/*********************************************************************** +* ks_greedy - solve 0-1 knapsack problem with greedy heuristic +* +* This routine finds (sub)optimal solution to 0-1 knapsack problem +* (1)-(3) with greedy heuristic. +* +* The instance to be solved is specified by parameters n, a, b, and c. +* Note that these parameters can have any sign, i.e. normalization is +* not needed. +* +* On exit the routine stores the optimal point found in locations +* x[1], ..., x[n] and returns the optimal objective value. However, if +* the instance is infeasible, the routine returns INT_MIN. */ + +static int greedy(int n, const int a[], int b, const int c[], char x[]) +{ /* core routine for normalized 0-1 knapsack instance */ + struct mt *mt; + int j, s, z; + xassert(n >= 2); + /* reorder items to provide c[j] / a[j] >= a[j+1] / a[j+1] */ + mt = talloc(1+n, struct mt); + for (j = 1; j <= n; j++) + { mt[j].j = j; + mt[j].r = (float)c[j] / (float)a[j]; + } + qsort(&mt[1], n, sizeof(struct mt), fcmp); + /* take items starting from most valuable ones until the knapsack + * is full */ + s = z = 0; + for (j = 1; j <= n; j++) + { if (s + a[mt[j].j] > b) + break; + x[mt[j].j] = 1; + s += a[mt[j].j]; + z += c[mt[j].j]; + } + /* don't take remaining items */ + for (j = j; j <= n; j++) + x[mt[j].j] = 0; + tfree(mt); + return z; +} + +int ks_greedy(int n, const int a[/*1+n*/], int b, const int c[/*1+n*/], + char x[/*1+n*/]) +{ struct ks *ks; + int j, s1, s2, z; + xassert(n >= 0); + /* prepare reduced instance */ + ks = reduce(n, a, b, c); + if (ks == NULL) + { /* original instance is infeasible */ + return INT_MIN; + } + /* find suboptimal solution to reduced instance */ + if (ks->n > 0) + greedy(ks->n, ks->a, ks->b, ks->c, x); + /* restore solution to original instance */ + z = restore(ks, x); + memcpy(&x[1], &ks->x[1], n * sizeof(char)); + free_ks(ks); + /* check solution found */ + s1 = s2 = 0; + for (j = 1; j <= n; j++) + { xassert(x[j] == 0 || x[j] == 1); + if (x[j]) + s1 += a[j], s2 += c[j]; + } + xassert(s1 <= b); + xassert(s2 == z); + return z; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/misc/ks.h b/resources/3rdparty/glpk-4.65/src/misc/ks.h new file mode 100644 index 000000000..d607dc44f --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/misc/ks.h @@ -0,0 +1,44 @@ +/* ks.h (0-1 knapsack problem) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2017-2018 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#ifndef KS_H +#define KS_H + +#define ks_enum _glp_ks_enum +int ks_enum(int n, const int a[/*1+n*/], int b, const int c[/*1+n*/], + char x[/*1+n*/]); +/* solve 0-1 knapsack problem by complete enumeration */ + +#define ks_mt1 _glp_ks_mt1 +int ks_mt1(int n, const int a[/*1+n*/], int b, const int c[/*1+n*/], + char x[/*1+n*/]); +/* solve 0-1 knapsack problem with Martello & Toth algorithm */ + +#define ks_greedy _glp_ks_greedy +int ks_greedy(int n, const int a[/*1+n*/], int b, const int c[/*1+n*/], + char x[/*1+n*/]); +/* solve 0-1 knapsack problem with greedy heuristic */ + +#endif + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/misc/mc13d.c b/resources/3rdparty/glpk-4.65/src/misc/mc13d.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/mc13d.c rename to resources/3rdparty/glpk-4.65/src/misc/mc13d.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/mc13d.h b/resources/3rdparty/glpk-4.65/src/misc/mc13d.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/mc13d.h rename to resources/3rdparty/glpk-4.65/src/misc/mc13d.h diff --git a/resources/3rdparty/glpk-4.57/src/misc/mc21a.c b/resources/3rdparty/glpk-4.65/src/misc/mc21a.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/mc21a.c rename to resources/3rdparty/glpk-4.65/src/misc/mc21a.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/mc21a.h b/resources/3rdparty/glpk-4.65/src/misc/mc21a.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/mc21a.h rename to resources/3rdparty/glpk-4.65/src/misc/mc21a.h diff --git a/resources/3rdparty/glpk-4.57/src/misc/misc.h b/resources/3rdparty/glpk-4.65/src/misc/misc.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/misc.h rename to resources/3rdparty/glpk-4.65/src/misc/misc.h diff --git a/resources/3rdparty/glpk-4.65/src/misc/mt1.c b/resources/3rdparty/glpk-4.65/src/misc/mt1.c new file mode 100644 index 000000000..63a0f80ed --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/misc/mt1.c @@ -0,0 +1,1110 @@ +/* mt1.c (0-1 knapsack problem; Martello & Toth algorithm) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* THIS CODE IS THE RESULT OF TRANSLATION OF THE FORTRAN SUBROUTINES +* MT1 FROM THE BOOK: +* +* SILVANO MARTELLO, PAOLO TOTH. KNAPSACK PROBLEMS: ALGORITHMS AND +* COMPUTER IMPLEMENTATIONS. JOHN WILEY & SONS, 1990. +* +* THE TRANSLATION HAS BEEN DONE WITH THE PERMISSION OF THE AUTHORS OF +* THE ORIGINAL FORTRAN SUBROUTINES: SILVANO MARTELLO AND PAOLO TOTH. +* +* The translation was made by Andrew Makhorin . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#line 1 "" +/* -- translated by f2c (version 20100827). + You must link the resulting object file with libf2c: + on Microsoft Windows system, link with libf2c.lib; + on Linux or Unix systems, link with .../path/to/libf2c.a -lm + or, if you install libf2c.a in a standard place, with -lf2c -lm + -- in that order, at the end of the command line, as in + cc *.o -lf2c -lm + Source for libf2c is in /netlib/f2c/libf2c.zip, e.g., + + http://www.netlib.org/f2c/libf2c.zip +*/ + +#if 0 /* by mao */ +#include "f2c.h" +#else +#include "env.h" +#include "mt1.h" + +typedef int integer; +typedef float real; +#endif + +#line 1 "" +/*< SUBROUTINE MT1(N,P,W,C,Z,X,JDIM,JCK,XX,MIN,PSIGN,WSIGN,ZSIGN) >*/ +#if 1 /* by mao */ +static int chmt1_(int *, int *, int *, int *, int *, int *); + +static +#endif +/* Subroutine */ int mt1_(integer *n, integer *p, integer *w, integer *c__, + integer *z__, integer *x, integer *jdim, integer *jck, integer *xx, + integer *min__, integer *psign, integer *wsign, integer *zsign) +{ + /* System generated locals */ + integer i__1; + + /* Local variables */ + static real a, b; + static integer j, r__, t, j1, n1, ch, ii, jj, kk, in, ll, ip, nn, iu, ii1, + chs, lim, lim1, diff, lold, mink; + extern /* Subroutine */ int chmt1_(integer *, integer *, integer *, + integer *, integer *, integer *); + static integer profit; + + +/* THIS SUBROUTINE SOLVES THE 0-1 SINGLE KNAPSACK PROBLEM */ + +/* MAXIMIZE Z = P(1)*X(1) + ... + P(N)*X(N) */ + +/* SUBJECT TO: W(1)*X(1) + ... + W(N)*X(N) .LE. C , */ +/* X(J) = 0 OR 1 FOR J=1,...,N. */ + +/* THE PROGRAM IS INCLUDED IN THE VOLUME */ +/* S. MARTELLO, P. TOTH, "KNAPSACK PROBLEMS: ALGORITHMS */ +/* AND COMPUTER IMPLEMENTATIONS", JOHN WILEY, 1990 */ +/* AND IMPLEMENTS THE BRANCH-AND-BOUND ALGORITHM DESCRIBED IN */ +/* SECTION 2.5.2 . */ +/* THE PROGRAM DERIVES FROM AN EARLIER CODE PRESENTED IN */ +/* S. MARTELLO, P. TOTH, "ALGORITHM FOR THE SOLUTION OF THE 0-1 SINGLE */ +/* KNAPSACK PROBLEM", COMPUTING, 1978. */ + +/* THE INPUT PROBLEM MUST SATISFY THE CONDITIONS */ + +/* 1) 2 .LE. N .LE. JDIM - 1 ; */ +/* 2) P(J), W(J), C POSITIVE INTEGERS; */ +/* 3) MAX (W(J)) .LE. C ; */ +/* 4) W(1) + ... + W(N) .GT. C ; */ +/* 5) P(J)/W(J) .GE. P(J+1)/W(J+1) FOR J=1,...,N-1. */ + +/* MT1 CALLS 1 PROCEDURE: CHMT1. */ + +/* THE PROGRAM IS COMPLETELY SELF-CONTAINED AND COMMUNICATION TO IT IS */ +/* ACHIEVED SOLELY THROUGH THE PARAMETER LIST OF MT1. */ +/* NO MACHINE-DEPENDENT CONSTANT IS USED. */ +/* THE PROGRAM IS WRITTEN IN 1967 AMERICAN NATIONAL STANDARD FORTRAN */ +/* AND IS ACCEPTED BY THE PFORT VERIFIER (PFORT IS THE PORTABLE */ +/* SUBSET OF ANSI DEFINED BY THE ASSOCIATION FOR COMPUTING MACHINERY). */ +/* THE PROGRAM HAS BEEN TESTED ON A DIGITAL VAX 11/780 AND AN H.P. */ +/* 9000/840. */ + +/* MT1 NEEDS 8 ARRAYS ( P , W , X , XX , MIN , PSIGN , WSIGN */ +/* AND ZSIGN ) OF LENGTH AT LEAST N + 1 . */ + +/* MEANING OF THE INPUT PARAMETERS: */ +/* N = NUMBER OF ITEMS; */ +/* P(J) = PROFIT OF ITEM J (J=1,...,N); */ +/* W(J) = WEIGHT OF ITEM J (J=1,...,N); */ +/* C = CAPACITY OF THE KNAPSACK; */ +/* JDIM = DIMENSION OF THE 8 ARRAYS; */ +/* JCK = 1 IF CHECK ON THE INPUT DATA IS DESIRED, */ +/* = 0 OTHERWISE. */ + +/* MEANING OF THE OUTPUT PARAMETERS: */ +/* Z = VALUE OF THE OPTIMAL SOLUTION IF Z .GT. 0 , */ +/* = ERROR IN THE INPUT DATA (WHEN JCK=1) IF Z .LT. 0 : CONDI- */ +/* TION - Z IS VIOLATED; */ +/* X(J) = 1 IF ITEM J IS IN THE OPTIMAL SOLUTION, */ +/* = 0 OTHERWISE. */ + +/* ARRAYS XX, MIN, PSIGN, WSIGN AND ZSIGN ARE DUMMY. */ + +/* ALL THE PARAMETERS ARE INTEGER. ON RETURN OF MT1 ALL THE INPUT */ +/* PARAMETERS ARE UNCHANGED. */ + +/*< INTEGER P(JDIM),W(JDIM),X(JDIM),C,Z >*/ +/*< INTEGER XX(JDIM),MIN(JDIM),PSIGN(JDIM),WSIGN(JDIM),ZSIGN(JDIM) >*/ +/*< INTEGER CH,CHS,DIFF,PROFIT,R,T >*/ +/*< Z = 0 >*/ +#line 65 "" + /* Parameter adjustments */ +#line 65 "" + --zsign; +#line 65 "" + --wsign; +#line 65 "" + --psign; +#line 65 "" + --min__; +#line 65 "" + --xx; +#line 65 "" + --x; +#line 65 "" + --w; +#line 65 "" + --p; +#line 65 "" + +#line 65 "" + /* Function Body */ +#line 65 "" + *z__ = 0; +/*< IF ( JCK .EQ. 1 ) CALL CHMT1(N,P,W,C,Z,JDIM) >*/ +#line 66 "" + if (*jck == 1) { +#line 66 "" + chmt1_(n, &p[1], &w[1], c__, z__, jdim); +#line 66 "" + } +/*< IF ( Z .LT. 0 ) RETURN >*/ +#line 67 "" + if (*z__ < 0) { +#line 67 "" + return 0; +#line 67 "" + } +/* INITIALIZE. */ +/*< CH = C >*/ +#line 69 "" + ch = *c__; +/*< IP = 0 >*/ +#line 70 "" + ip = 0; +/*< CHS = CH >*/ +#line 71 "" + chs = ch; +/*< DO 10 LL=1,N >*/ +#line 72 "" + i__1 = *n; +#line 72 "" + for (ll = 1; ll <= i__1; ++ll) { +/*< IF ( W(LL) .GT. CHS ) GO TO 20 >*/ +#line 73 "" + if (w[ll] > chs) { +#line 73 "" + goto L20; +#line 73 "" + } +/*< IP = IP + P(LL) >*/ +#line 74 "" + ip += p[ll]; +/*< CHS = CHS - W(LL) >*/ +#line 75 "" + chs -= w[ll]; +/*< 10 CONTINUE >*/ +#line 76 "" +/* L10: */ +#line 76 "" + } +/*< 20 LL = LL - 1 >*/ +#line 77 "" +L20: +#line 77 "" + --ll; +/*< IF ( CHS .EQ. 0 ) GO TO 50 >*/ +#line 78 "" + if (chs == 0) { +#line 78 "" + goto L50; +#line 78 "" + } +/*< P(N+1) = 0 >*/ +#line 79 "" + p[*n + 1] = 0; +/*< W(N+1) = CH + 1 >*/ +#line 80 "" + w[*n + 1] = ch + 1; +/*< LIM = IP + CHS*P(LL+2)/W(LL+2) >*/ +#line 81 "" + lim = ip + chs * p[ll + 2] / w[ll + 2]; +/*< A = W(LL+1) - CHS >*/ +#line 82 "" + a = (real) (w[ll + 1] - chs); +/*< B = IP + P(LL+1) >*/ +#line 83 "" + b = (real) (ip + p[ll + 1]); +/*< LIM1 = B - A*FLOAT(P(LL))/FLOAT(W(LL)) >*/ +#line 84 "" + lim1 = b - a * (real) p[ll] / (real) w[ll]; +/*< IF ( LIM1 .GT. LIM ) LIM = LIM1 >*/ +#line 85 "" + if (lim1 > lim) { +#line 85 "" + lim = lim1; +#line 85 "" + } +/*< MINK = CH + 1 >*/ +#line 86 "" + mink = ch + 1; +/*< MIN(N) = MINK >*/ +#line 87 "" + min__[*n] = mink; +/*< DO 30 J=2,N >*/ +#line 88 "" + i__1 = *n; +#line 88 "" + for (j = 2; j <= i__1; ++j) { +/*< KK = N + 2 - J >*/ +#line 89 "" + kk = *n + 2 - j; +/*< IF ( W(KK) .LT. MINK ) MINK = W(KK) >*/ +#line 90 "" + if (w[kk] < mink) { +#line 90 "" + mink = w[kk]; +#line 90 "" + } +/*< MIN(KK-1) = MINK >*/ +#line 91 "" + min__[kk - 1] = mink; +/*< 30 CONTINUE >*/ +#line 92 "" +/* L30: */ +#line 92 "" + } +/*< DO 40 J=1,N >*/ +#line 93 "" + i__1 = *n; +#line 93 "" + for (j = 1; j <= i__1; ++j) { +/*< XX(J) = 0 >*/ +#line 94 "" + xx[j] = 0; +/*< 40 CONTINUE >*/ +#line 95 "" +/* L40: */ +#line 95 "" + } +/*< Z = 0 >*/ +#line 96 "" + *z__ = 0; +/*< PROFIT = 0 >*/ +#line 97 "" + profit = 0; +/*< LOLD = N >*/ +#line 98 "" + lold = *n; +/*< II = 1 >*/ +#line 99 "" + ii = 1; +/*< GO TO 170 >*/ +#line 100 "" + goto L170; +/*< 50 Z = IP >*/ +#line 101 "" +L50: +#line 101 "" + *z__ = ip; +/*< DO 60 J=1,LL >*/ +#line 102 "" + i__1 = ll; +#line 102 "" + for (j = 1; j <= i__1; ++j) { +/*< X(J) = 1 >*/ +#line 103 "" + x[j] = 1; +/*< 60 CONTINUE >*/ +#line 104 "" +/* L60: */ +#line 104 "" + } +/*< NN = LL + 1 >*/ +#line 105 "" + nn = ll + 1; +/*< DO 70 J=NN,N >*/ +#line 106 "" + i__1 = *n; +#line 106 "" + for (j = nn; j <= i__1; ++j) { +/*< X(J) = 0 >*/ +#line 107 "" + x[j] = 0; +/*< 70 CONTINUE >*/ +#line 108 "" +/* L70: */ +#line 108 "" + } +/*< RETURN >*/ +#line 109 "" + return 0; +/* TRY TO INSERT THE II-TH ITEM INTO THE CURRENT SOLUTION. */ +/*< 80 IF ( W(II) .LE. CH ) GO TO 90 >*/ +#line 111 "" +L80: +#line 111 "" + if (w[ii] <= ch) { +#line 111 "" + goto L90; +#line 111 "" + } +/*< II1 = II + 1 >*/ +#line 112 "" + ii1 = ii + 1; +/*< IF ( Z .GE. CH*P(II1)/W(II1) + PROFIT ) GO TO 280 >*/ +#line 113 "" + if (*z__ >= ch * p[ii1] / w[ii1] + profit) { +#line 113 "" + goto L280; +#line 113 "" + } +/*< II = II1 >*/ +#line 114 "" + ii = ii1; +/*< GO TO 80 >*/ +#line 115 "" + goto L80; +/* BUILD A NEW CURRENT SOLUTION. */ +/*< 90 IP = PSIGN(II) >*/ +#line 117 "" +L90: +#line 117 "" + ip = psign[ii]; +/*< CHS = CH - WSIGN(II) >*/ +#line 118 "" + chs = ch - wsign[ii]; +/*< IN = ZSIGN(II) >*/ +#line 119 "" + in = zsign[ii]; +/*< DO 100 LL=IN,N >*/ +#line 120 "" + i__1 = *n; +#line 120 "" + for (ll = in; ll <= i__1; ++ll) { +/*< IF ( W(LL) .GT. CHS ) GO TO 160 >*/ +#line 121 "" + if (w[ll] > chs) { +#line 121 "" + goto L160; +#line 121 "" + } +/*< IP = IP + P(LL) >*/ +#line 122 "" + ip += p[ll]; +/*< CHS = CHS - W(LL) >*/ +#line 123 "" + chs -= w[ll]; +/*< 100 CONTINUE >*/ +#line 124 "" +/* L100: */ +#line 124 "" + } +/*< LL = N >*/ +#line 125 "" + ll = *n; +/*< 110 IF ( Z .GE. IP + PROFIT ) GO TO 280 >*/ +#line 126 "" +L110: +#line 126 "" + if (*z__ >= ip + profit) { +#line 126 "" + goto L280; +#line 126 "" + } +/*< Z = IP + PROFIT >*/ +#line 127 "" + *z__ = ip + profit; +/*< NN = II - 1 >*/ +#line 128 "" + nn = ii - 1; +/*< DO 120 J=1,NN >*/ +#line 129 "" + i__1 = nn; +#line 129 "" + for (j = 1; j <= i__1; ++j) { +/*< X(J) = XX(J) >*/ +#line 130 "" + x[j] = xx[j]; +/*< 120 CONTINUE >*/ +#line 131 "" +/* L120: */ +#line 131 "" + } +/*< DO 130 J=II,LL >*/ +#line 132 "" + i__1 = ll; +#line 132 "" + for (j = ii; j <= i__1; ++j) { +/*< X(J) = 1 >*/ +#line 133 "" + x[j] = 1; +/*< 130 CONTINUE >*/ +#line 134 "" +/* L130: */ +#line 134 "" + } +/*< IF ( LL .EQ. N ) GO TO 150 >*/ +#line 135 "" + if (ll == *n) { +#line 135 "" + goto L150; +#line 135 "" + } +/*< NN = LL + 1 >*/ +#line 136 "" + nn = ll + 1; +/*< DO 140 J=NN,N >*/ +#line 137 "" + i__1 = *n; +#line 137 "" + for (j = nn; j <= i__1; ++j) { +/*< X(J) = 0 >*/ +#line 138 "" + x[j] = 0; +/*< 140 CONTINUE >*/ +#line 139 "" +/* L140: */ +#line 139 "" + } +/*< 150 IF ( Z .NE. LIM ) GO TO 280 >*/ +#line 140 "" +L150: +#line 140 "" + if (*z__ != lim) { +#line 140 "" + goto L280; +#line 140 "" + } +/*< RETURN >*/ +#line 141 "" + return 0; +/*< 160 IU = CHS*P(LL)/W(LL) >*/ +#line 142 "" +L160: +#line 142 "" + iu = chs * p[ll] / w[ll]; +/*< LL = LL - 1 >*/ +#line 143 "" + --ll; +/*< IF ( IU .EQ. 0 ) GO TO 110 >*/ +#line 144 "" + if (iu == 0) { +#line 144 "" + goto L110; +#line 144 "" + } +/*< IF ( Z .GE. PROFIT + IP + IU ) GO TO 280 >*/ +#line 145 "" + if (*z__ >= profit + ip + iu) { +#line 145 "" + goto L280; +#line 145 "" + } +/* SAVE THE CURRENT SOLUTION. */ +/*< 170 WSIGN(II) = CH - CHS >*/ +#line 147 "" +L170: +#line 147 "" + wsign[ii] = ch - chs; +/*< PSIGN(II) = IP >*/ +#line 148 "" + psign[ii] = ip; +/*< ZSIGN(II) = LL + 1 >*/ +#line 149 "" + zsign[ii] = ll + 1; +/*< XX(II) = 1 >*/ +#line 150 "" + xx[ii] = 1; +/*< NN = LL - 1 >*/ +#line 151 "" + nn = ll - 1; +/*< IF ( NN .LT. II) GO TO 190 >*/ +#line 152 "" + if (nn < ii) { +#line 152 "" + goto L190; +#line 152 "" + } +/*< DO 180 J=II,NN >*/ +#line 153 "" + i__1 = nn; +#line 153 "" + for (j = ii; j <= i__1; ++j) { +/*< WSIGN(J+1) = WSIGN(J) - W(J) >*/ +#line 154 "" + wsign[j + 1] = wsign[j] - w[j]; +/*< PSIGN(J+1) = PSIGN(J) - P(J) >*/ +#line 155 "" + psign[j + 1] = psign[j] - p[j]; +/*< ZSIGN(J+1) = LL + 1 >*/ +#line 156 "" + zsign[j + 1] = ll + 1; +/*< XX(J+1) = 1 >*/ +#line 157 "" + xx[j + 1] = 1; +/*< 180 CONTINUE >*/ +#line 158 "" +/* L180: */ +#line 158 "" + } +/*< 190 J1 = LL + 1 >*/ +#line 159 "" +L190: +#line 159 "" + j1 = ll + 1; +/*< DO 200 J=J1,LOLD >*/ +#line 160 "" + i__1 = lold; +#line 160 "" + for (j = j1; j <= i__1; ++j) { +/*< WSIGN(J) = 0 >*/ +#line 161 "" + wsign[j] = 0; +/*< PSIGN(J) = 0 >*/ +#line 162 "" + psign[j] = 0; +/*< ZSIGN(J) = J >*/ +#line 163 "" + zsign[j] = j; +/*< 200 CONTINUE >*/ +#line 164 "" +/* L200: */ +#line 164 "" + } +/*< LOLD = LL >*/ +#line 165 "" + lold = ll; +/*< CH = CHS >*/ +#line 166 "" + ch = chs; +/*< PROFIT = PROFIT + IP >*/ +#line 167 "" + profit += ip; +/*< IF ( LL - (N - 2) ) 240, 220, 210 >*/ +#line 168 "" + if ((i__1 = ll - (*n - 2)) < 0) { +#line 168 "" + goto L240; +#line 168 "" + } else if (i__1 == 0) { +#line 168 "" + goto L220; +#line 168 "" + } else { +#line 168 "" + goto L210; +#line 168 "" + } +/*< 210 II = N >*/ +#line 169 "" +L210: +#line 169 "" + ii = *n; +/*< GO TO 250 >*/ +#line 170 "" + goto L250; +/*< 220 IF ( CH .LT. W(N) ) GO TO 230 >*/ +#line 171 "" +L220: +#line 171 "" + if (ch < w[*n]) { +#line 171 "" + goto L230; +#line 171 "" + } +/*< CH = CH - W(N) >*/ +#line 172 "" + ch -= w[*n]; +/*< PROFIT = PROFIT + P(N) >*/ +#line 173 "" + profit += p[*n]; +/*< XX(N) = 1 >*/ +#line 174 "" + xx[*n] = 1; +/*< 230 II = N - 1 >*/ +#line 175 "" +L230: +#line 175 "" + ii = *n - 1; +/*< GO TO 250 >*/ +#line 176 "" + goto L250; +/*< 240 II = LL + 2 >*/ +#line 177 "" +L240: +#line 177 "" + ii = ll + 2; +/*< IF ( CH .GE. MIN(II-1) ) GO TO 80 >*/ +#line 178 "" + if (ch >= min__[ii - 1]) { +#line 178 "" + goto L80; +#line 178 "" + } +/* SAVE THE CURRENT OPTIMAL SOLUTION. */ +/*< 250 IF ( Z .GE. PROFIT ) GO TO 270 >*/ +#line 180 "" +L250: +#line 180 "" + if (*z__ >= profit) { +#line 180 "" + goto L270; +#line 180 "" + } +/*< Z = PROFIT >*/ +#line 181 "" + *z__ = profit; +/*< DO 260 J=1,N >*/ +#line 182 "" + i__1 = *n; +#line 182 "" + for (j = 1; j <= i__1; ++j) { +/*< X(J) = XX(J) >*/ +#line 183 "" + x[j] = xx[j]; +/*< 260 CONTINUE >*/ +#line 184 "" +/* L260: */ +#line 184 "" + } +/*< IF ( Z .EQ. LIM ) RETURN >*/ +#line 185 "" + if (*z__ == lim) { +#line 185 "" + return 0; +#line 185 "" + } +/*< 270 IF ( XX(N) .EQ. 0 ) GO TO 280 >*/ +#line 186 "" +L270: +#line 186 "" + if (xx[*n] == 0) { +#line 186 "" + goto L280; +#line 186 "" + } +/*< XX(N) = 0 >*/ +#line 187 "" + xx[*n] = 0; +/*< CH = CH + W(N) >*/ +#line 188 "" + ch += w[*n]; +/*< PROFIT = PROFIT - P(N) >*/ +#line 189 "" + profit -= p[*n]; +/* BACKTRACK. */ +/*< 280 NN = II - 1 >*/ +#line 191 "" +L280: +#line 191 "" + nn = ii - 1; +/*< IF ( NN .EQ. 0 ) RETURN >*/ +#line 192 "" + if (nn == 0) { +#line 192 "" + return 0; +#line 192 "" + } +/*< DO 290 J=1,NN >*/ +#line 193 "" + i__1 = nn; +#line 193 "" + for (j = 1; j <= i__1; ++j) { +/*< KK = II - J >*/ +#line 194 "" + kk = ii - j; +/*< IF ( XX(KK) .EQ. 1 ) GO TO 300 >*/ +#line 195 "" + if (xx[kk] == 1) { +#line 195 "" + goto L300; +#line 195 "" + } +/*< 290 CONTINUE >*/ +#line 196 "" +/* L290: */ +#line 196 "" + } +/*< RETURN >*/ +#line 197 "" + return 0; +/*< 300 R = CH >*/ +#line 198 "" +L300: +#line 198 "" + r__ = ch; +/*< CH = CH + W(KK) >*/ +#line 199 "" + ch += w[kk]; +/*< PROFIT = PROFIT - P(KK) >*/ +#line 200 "" + profit -= p[kk]; +/*< XX(KK) = 0 >*/ +#line 201 "" + xx[kk] = 0; +/*< IF ( R .LT. MIN(KK) ) GO TO 310 >*/ +#line 202 "" + if (r__ < min__[kk]) { +#line 202 "" + goto L310; +#line 202 "" + } +/*< II = KK + 1 >*/ +#line 203 "" + ii = kk + 1; +/*< GO TO 80 >*/ +#line 204 "" + goto L80; +/*< 310 NN = KK + 1 >*/ +#line 205 "" +L310: +#line 205 "" + nn = kk + 1; +/*< II = KK >*/ +#line 206 "" + ii = kk; +/* TRY TO SUBSTITUTE THE NN-TH ITEM FOR THE KK-TH. */ +/*< 320 IF ( Z .GE. PROFIT + CH*P(NN)/W(NN) ) GO TO 280 >*/ +#line 208 "" +L320: +#line 208 "" + if (*z__ >= profit + ch * p[nn] / w[nn]) { +#line 208 "" + goto L280; +#line 208 "" + } +/*< DIFF = W(NN) - W(KK) >*/ +#line 209 "" + diff = w[nn] - w[kk]; +/*< IF ( DIFF ) 370, 330, 340 >*/ +#line 210 "" + if (diff < 0) { +#line 210 "" + goto L370; +#line 210 "" + } else if (diff == 0) { +#line 210 "" + goto L330; +#line 210 "" + } else { +#line 210 "" + goto L340; +#line 210 "" + } +/*< 330 NN = NN + 1 >*/ +#line 211 "" +L330: +#line 211 "" + ++nn; +/*< GO TO 320 >*/ +#line 212 "" + goto L320; +/*< 340 IF ( DIFF .GT. R ) GO TO 330 >*/ +#line 213 "" +L340: +#line 213 "" + if (diff > r__) { +#line 213 "" + goto L330; +#line 213 "" + } +/*< IF ( Z .GE. PROFIT + P(NN) ) GO TO 330 >*/ +#line 214 "" + if (*z__ >= profit + p[nn]) { +#line 214 "" + goto L330; +#line 214 "" + } +/*< Z = PROFIT + P(NN) >*/ +#line 215 "" + *z__ = profit + p[nn]; +/*< DO 350 J=1,KK >*/ +#line 216 "" + i__1 = kk; +#line 216 "" + for (j = 1; j <= i__1; ++j) { +/*< X(J) = XX(J) >*/ +#line 217 "" + x[j] = xx[j]; +/*< 350 CONTINUE >*/ +#line 218 "" +/* L350: */ +#line 218 "" + } +/*< JJ = KK + 1 >*/ +#line 219 "" + jj = kk + 1; +/*< DO 360 J=JJ,N >*/ +#line 220 "" + i__1 = *n; +#line 220 "" + for (j = jj; j <= i__1; ++j) { +/*< X(J) = 0 >*/ +#line 221 "" + x[j] = 0; +/*< 360 CONTINUE >*/ +#line 222 "" +/* L360: */ +#line 222 "" + } +/*< X(NN) = 1 >*/ +#line 223 "" + x[nn] = 1; +/*< IF ( Z .EQ. LIM ) RETURN >*/ +#line 224 "" + if (*z__ == lim) { +#line 224 "" + return 0; +#line 224 "" + } +/*< R = R - DIFF >*/ +#line 225 "" + r__ -= diff; +/*< KK = NN >*/ +#line 226 "" + kk = nn; +/*< NN = NN + 1 >*/ +#line 227 "" + ++nn; +/*< GO TO 320 >*/ +#line 228 "" + goto L320; +/*< 370 T = R - DIFF >*/ +#line 229 "" +L370: +#line 229 "" + t = r__ - diff; +/*< IF ( T .LT. MIN(NN) ) GO TO 330 >*/ +#line 230 "" + if (t < min__[nn]) { +#line 230 "" + goto L330; +#line 230 "" + } +/*< IF ( Z .GE. PROFIT + P(NN) + T*P(NN+1)/W(NN+1)) GO TO 280 >*/ +#line 231 "" + if (*z__ >= profit + p[nn] + t * p[nn + 1] / w[nn + 1]) { +#line 231 "" + goto L280; +#line 231 "" + } +/*< CH = CH - W(NN) >*/ +#line 232 "" + ch -= w[nn]; +/*< PROFIT = PROFIT + P(NN) >*/ +#line 233 "" + profit += p[nn]; +/*< XX(NN) = 1 >*/ +#line 234 "" + xx[nn] = 1; +/*< II = NN + 1 >*/ +#line 235 "" + ii = nn + 1; +/*< WSIGN(NN) = W(NN) >*/ +#line 236 "" + wsign[nn] = w[nn]; +/*< PSIGN(NN) = P(NN) >*/ +#line 237 "" + psign[nn] = p[nn]; +/*< ZSIGN(NN) = II >*/ +#line 238 "" + zsign[nn] = ii; +/*< N1 = NN + 1 >*/ +#line 239 "" + n1 = nn + 1; +/*< DO 380 J=N1,LOLD >*/ +#line 240 "" + i__1 = lold; +#line 240 "" + for (j = n1; j <= i__1; ++j) { +/*< WSIGN(J) = 0 >*/ +#line 241 "" + wsign[j] = 0; +/*< PSIGN(J) = 0 >*/ +#line 242 "" + psign[j] = 0; +/*< ZSIGN(J) = J >*/ +#line 243 "" + zsign[j] = j; +/*< 380 CONTINUE >*/ +#line 244 "" +/* L380: */ +#line 244 "" + } +/*< LOLD = NN >*/ +#line 245 "" + lold = nn; +/*< GO TO 80 >*/ +#line 246 "" + goto L80; +/*< END >*/ +} /* mt1_ */ + +/*< SUBROUTINE CHMT1(N,P,W,C,Z,JDIM) >*/ +#if 1 /* by mao */ +static +#endif +/* Subroutine */ int chmt1_(integer *n, integer *p, integer *w, integer *c__, + integer *z__, integer *jdim) +{ + /* System generated locals */ + integer i__1; + + /* Local variables */ + static integer j; + static real r__, rr; + static integer jsw; + + +/* CHECK THE INPUT DATA. */ + +/*< INTEGER P(JDIM),W(JDIM),C,Z >*/ +/*< IF ( N .GE. 2 .AND. N .LE. JDIM - 1 ) GO TO 10 >*/ +#line 253 "" + /* Parameter adjustments */ +#line 253 "" + --w; +#line 253 "" + --p; +#line 253 "" + +#line 253 "" + /* Function Body */ +#line 253 "" + if (*n >= 2 && *n <= *jdim - 1) { +#line 253 "" + goto L10; +#line 253 "" + } +/*< Z = - 1 >*/ +#line 254 "" + *z__ = -1; +/*< RETURN >*/ +#line 255 "" + return 0; +/*< 10 IF ( C .GT. 0 ) GO TO 30 >*/ +#line 256 "" +L10: +#line 256 "" + if (*c__ > 0) { +#line 256 "" + goto L30; +#line 256 "" + } +/*< 20 Z = - 2 >*/ +#line 257 "" +L20: +#line 257 "" + *z__ = -2; +/*< RETURN >*/ +#line 258 "" + return 0; +/*< 30 JSW = 0 >*/ +#line 259 "" +L30: +#line 259 "" + jsw = 0; +/*< RR = FLOAT(P(1))/FLOAT(W(1)) >*/ +#line 260 "" + rr = (real) p[1] / (real) w[1]; +/*< DO 50 J=1,N >*/ +#line 261 "" + i__1 = *n; +#line 261 "" + for (j = 1; j <= i__1; ++j) { +/*< R = RR >*/ +#line 262 "" + r__ = rr; +/*< IF ( P(J) .LE. 0 ) GO TO 20 >*/ +#line 263 "" + if (p[j] <= 0) { +#line 263 "" + goto L20; +#line 263 "" + } +/*< IF ( W(J) .LE. 0 ) GO TO 20 >*/ +#line 264 "" + if (w[j] <= 0) { +#line 264 "" + goto L20; +#line 264 "" + } +/*< JSW = JSW + W(J) >*/ +#line 265 "" + jsw += w[j]; +/*< IF ( W(J) .LE. C ) GO TO 40 >*/ +#line 266 "" + if (w[j] <= *c__) { +#line 266 "" + goto L40; +#line 266 "" + } +/*< Z = - 3 >*/ +#line 267 "" + *z__ = -3; +/*< RETURN >*/ +#line 268 "" + return 0; +/*< 40 RR = FLOAT(P(J))/FLOAT(W(J)) >*/ +#line 269 "" +L40: +#line 269 "" + rr = (real) p[j] / (real) w[j]; +/*< IF ( RR .LE. R ) GO TO 50 >*/ +#line 270 "" + if (rr <= r__) { +#line 270 "" + goto L50; +#line 270 "" + } +/*< Z = - 5 >*/ +#line 271 "" + *z__ = -5; +/*< RETURN >*/ +#line 272 "" + return 0; +/*< 50 CONTINUE >*/ +#line 273 "" +L50: +#line 273 "" + ; +#line 273 "" + } +/*< IF ( JSW .GT. C ) RETURN >*/ +#line 274 "" + if (jsw > *c__) { +#line 274 "" + return 0; +#line 274 "" + } +/*< Z = - 4 >*/ +#line 275 "" + *z__ = -4; +/*< RETURN >*/ +#line 276 "" + return 0; +/*< END >*/ +} /* chmt1_ */ + +#if 1 /* by mao */ +int mt1(int n, int p[], int w[], int c, int x[], int jck, int xx[], + int min[], int psign[], int wsign[], int zsign[]) +{ /* solve 0-1 knapsack problem */ + int z, jdim = n+1, j, s1, s2; + mt1_(&n, &p[1], &w[1], &c, &z, &x[1], &jdim, &jck, &xx[1], + &min[1], &psign[1], &wsign[1], &zsign[1]); + /* check solution found */ + s1 = s2 = 0; + for (j = 1; j <= n; j++) + { xassert(x[j] == 0 || x[j] == 1); + if (x[j]) + s1 += p[j], s2 += w[j]; + } + xassert(s1 == z); + xassert(s2 <= c); + return z; +} +#endif + +/* eof */ diff --git a/resources/3rdparty/glpk-4.65/src/misc/mt1.f b/resources/3rdparty/glpk-4.65/src/misc/mt1.f new file mode 100644 index 000000000..82cc4a1be --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/misc/mt1.f @@ -0,0 +1,277 @@ + SUBROUTINE MT1(N,P,W,C,Z,X,JDIM,JCK,XX,MIN,PSIGN,WSIGN,ZSIGN) +C +C THIS SUBROUTINE SOLVES THE 0-1 SINGLE KNAPSACK PROBLEM +C +C MAXIMIZE Z = P(1)*X(1) + ... + P(N)*X(N) +C +C SUBJECT TO: W(1)*X(1) + ... + W(N)*X(N) .LE. C , +C X(J) = 0 OR 1 FOR J=1,...,N. +C +C THE PROGRAM IS INCLUDED IN THE VOLUME +C S. MARTELLO, P. TOTH, "KNAPSACK PROBLEMS: ALGORITHMS +C AND COMPUTER IMPLEMENTATIONS", JOHN WILEY, 1990 +C AND IMPLEMENTS THE BRANCH-AND-BOUND ALGORITHM DESCRIBED IN +C SECTION 2.5.2 . +C THE PROGRAM DERIVES FROM AN EARLIER CODE PRESENTED IN +C S. MARTELLO, P. TOTH, "ALGORITHM FOR THE SOLUTION OF THE 0-1 SINGLE +C KNAPSACK PROBLEM", COMPUTING, 1978. +C +C THE INPUT PROBLEM MUST SATISFY THE CONDITIONS +C +C 1) 2 .LE. N .LE. JDIM - 1 ; +C 2) P(J), W(J), C POSITIVE INTEGERS; +C 3) MAX (W(J)) .LE. C ; +C 4) W(1) + ... + W(N) .GT. C ; +C 5) P(J)/W(J) .GE. P(J+1)/W(J+1) FOR J=1,...,N-1. +C +C MT1 CALLS 1 PROCEDURE: CHMT1. +C +C THE PROGRAM IS COMPLETELY SELF-CONTAINED AND COMMUNICATION TO IT IS +C ACHIEVED SOLELY THROUGH THE PARAMETER LIST OF MT1. +C NO MACHINE-DEPENDENT CONSTANT IS USED. +C THE PROGRAM IS WRITTEN IN 1967 AMERICAN NATIONAL STANDARD FORTRAN +C AND IS ACCEPTED BY THE PFORT VERIFIER (PFORT IS THE PORTABLE +C SUBSET OF ANSI DEFINED BY THE ASSOCIATION FOR COMPUTING MACHINERY). +C THE PROGRAM HAS BEEN TESTED ON A DIGITAL VAX 11/780 AND AN H.P. +C 9000/840. +C +C MT1 NEEDS 8 ARRAYS ( P , W , X , XX , MIN , PSIGN , WSIGN +C AND ZSIGN ) OF LENGTH AT LEAST N + 1 . +C +C MEANING OF THE INPUT PARAMETERS: +C N = NUMBER OF ITEMS; +C P(J) = PROFIT OF ITEM J (J=1,...,N); +C W(J) = WEIGHT OF ITEM J (J=1,...,N); +C C = CAPACITY OF THE KNAPSACK; +C JDIM = DIMENSION OF THE 8 ARRAYS; +C JCK = 1 IF CHECK ON THE INPUT DATA IS DESIRED, +C = 0 OTHERWISE. +C +C MEANING OF THE OUTPUT PARAMETERS: +C Z = VALUE OF THE OPTIMAL SOLUTION IF Z .GT. 0 , +C = ERROR IN THE INPUT DATA (WHEN JCK=1) IF Z .LT. 0 : CONDI- +C TION - Z IS VIOLATED; +C X(J) = 1 IF ITEM J IS IN THE OPTIMAL SOLUTION, +C = 0 OTHERWISE. +C +C ARRAYS XX, MIN, PSIGN, WSIGN AND ZSIGN ARE DUMMY. +C +C ALL THE PARAMETERS ARE INTEGER. ON RETURN OF MT1 ALL THE INPUT +C PARAMETERS ARE UNCHANGED. +C + INTEGER P(JDIM),W(JDIM),X(JDIM),C,Z + INTEGER XX(JDIM),MIN(JDIM),PSIGN(JDIM),WSIGN(JDIM),ZSIGN(JDIM) + INTEGER CH,CHS,DIFF,PROFIT,R,T + Z = 0 + IF ( JCK .EQ. 1 ) CALL CHMT1(N,P,W,C,Z,JDIM) + IF ( Z .LT. 0 ) RETURN +C INITIALIZE. + CH = C + IP = 0 + CHS = CH + DO 10 LL=1,N + IF ( W(LL) .GT. CHS ) GO TO 20 + IP = IP + P(LL) + CHS = CHS - W(LL) + 10 CONTINUE + 20 LL = LL - 1 + IF ( CHS .EQ. 0 ) GO TO 50 + P(N+1) = 0 + W(N+1) = CH + 1 + LIM = IP + CHS*P(LL+2)/W(LL+2) + A = W(LL+1) - CHS + B = IP + P(LL+1) + LIM1 = B - A*FLOAT(P(LL))/FLOAT(W(LL)) + IF ( LIM1 .GT. LIM ) LIM = LIM1 + MINK = CH + 1 + MIN(N) = MINK + DO 30 J=2,N + KK = N + 2 - J + IF ( W(KK) .LT. MINK ) MINK = W(KK) + MIN(KK-1) = MINK + 30 CONTINUE + DO 40 J=1,N + XX(J) = 0 + 40 CONTINUE + Z = 0 + PROFIT = 0 + LOLD = N + II = 1 + GO TO 170 + 50 Z = IP + DO 60 J=1,LL + X(J) = 1 + 60 CONTINUE + NN = LL + 1 + DO 70 J=NN,N + X(J) = 0 + 70 CONTINUE + RETURN +C TRY TO INSERT THE II-TH ITEM INTO THE CURRENT SOLUTION. + 80 IF ( W(II) .LE. CH ) GO TO 90 + II1 = II + 1 + IF ( Z .GE. CH*P(II1)/W(II1) + PROFIT ) GO TO 280 + II = II1 + GO TO 80 +C BUILD A NEW CURRENT SOLUTION. + 90 IP = PSIGN(II) + CHS = CH - WSIGN(II) + IN = ZSIGN(II) + DO 100 LL=IN,N + IF ( W(LL) .GT. CHS ) GO TO 160 + IP = IP + P(LL) + CHS = CHS - W(LL) + 100 CONTINUE + LL = N + 110 IF ( Z .GE. IP + PROFIT ) GO TO 280 + Z = IP + PROFIT + NN = II - 1 + DO 120 J=1,NN + X(J) = XX(J) + 120 CONTINUE + DO 130 J=II,LL + X(J) = 1 + 130 CONTINUE + IF ( LL .EQ. N ) GO TO 150 + NN = LL + 1 + DO 140 J=NN,N + X(J) = 0 + 140 CONTINUE + 150 IF ( Z .NE. LIM ) GO TO 280 + RETURN + 160 IU = CHS*P(LL)/W(LL) + LL = LL - 1 + IF ( IU .EQ. 0 ) GO TO 110 + IF ( Z .GE. PROFIT + IP + IU ) GO TO 280 +C SAVE THE CURRENT SOLUTION. + 170 WSIGN(II) = CH - CHS + PSIGN(II) = IP + ZSIGN(II) = LL + 1 + XX(II) = 1 + NN = LL - 1 + IF ( NN .LT. II) GO TO 190 + DO 180 J=II,NN + WSIGN(J+1) = WSIGN(J) - W(J) + PSIGN(J+1) = PSIGN(J) - P(J) + ZSIGN(J+1) = LL + 1 + XX(J+1) = 1 + 180 CONTINUE + 190 J1 = LL + 1 + DO 200 J=J1,LOLD + WSIGN(J) = 0 + PSIGN(J) = 0 + ZSIGN(J) = J + 200 CONTINUE + LOLD = LL + CH = CHS + PROFIT = PROFIT + IP + IF ( LL - (N - 2) ) 240, 220, 210 + 210 II = N + GO TO 250 + 220 IF ( CH .LT. W(N) ) GO TO 230 + CH = CH - W(N) + PROFIT = PROFIT + P(N) + XX(N) = 1 + 230 II = N - 1 + GO TO 250 + 240 II = LL + 2 + IF ( CH .GE. MIN(II-1) ) GO TO 80 +C SAVE THE CURRENT OPTIMAL SOLUTION. + 250 IF ( Z .GE. PROFIT ) GO TO 270 + Z = PROFIT + DO 260 J=1,N + X(J) = XX(J) + 260 CONTINUE + IF ( Z .EQ. LIM ) RETURN + 270 IF ( XX(N) .EQ. 0 ) GO TO 280 + XX(N) = 0 + CH = CH + W(N) + PROFIT = PROFIT - P(N) +C BACKTRACK. + 280 NN = II - 1 + IF ( NN .EQ. 0 ) RETURN + DO 290 J=1,NN + KK = II - J + IF ( XX(KK) .EQ. 1 ) GO TO 300 + 290 CONTINUE + RETURN + 300 R = CH + CH = CH + W(KK) + PROFIT = PROFIT - P(KK) + XX(KK) = 0 + IF ( R .LT. MIN(KK) ) GO TO 310 + II = KK + 1 + GO TO 80 + 310 NN = KK + 1 + II = KK +C TRY TO SUBSTITUTE THE NN-TH ITEM FOR THE KK-TH. + 320 IF ( Z .GE. PROFIT + CH*P(NN)/W(NN) ) GO TO 280 + DIFF = W(NN) - W(KK) + IF ( DIFF ) 370, 330, 340 + 330 NN = NN + 1 + GO TO 320 + 340 IF ( DIFF .GT. R ) GO TO 330 + IF ( Z .GE. PROFIT + P(NN) ) GO TO 330 + Z = PROFIT + P(NN) + DO 350 J=1,KK + X(J) = XX(J) + 350 CONTINUE + JJ = KK + 1 + DO 360 J=JJ,N + X(J) = 0 + 360 CONTINUE + X(NN) = 1 + IF ( Z .EQ. LIM ) RETURN + R = R - DIFF + KK = NN + NN = NN + 1 + GO TO 320 + 370 T = R - DIFF + IF ( T .LT. MIN(NN) ) GO TO 330 + IF ( Z .GE. PROFIT + P(NN) + T*P(NN+1)/W(NN+1)) GO TO 280 + CH = CH - W(NN) + PROFIT = PROFIT + P(NN) + XX(NN) = 1 + II = NN + 1 + WSIGN(NN) = W(NN) + PSIGN(NN) = P(NN) + ZSIGN(NN) = II + N1 = NN + 1 + DO 380 J=N1,LOLD + WSIGN(J) = 0 + PSIGN(J) = 0 + ZSIGN(J) = J + 380 CONTINUE + LOLD = NN + GO TO 80 + END + SUBROUTINE CHMT1(N,P,W,C,Z,JDIM) +C +C CHECK THE INPUT DATA. +C + INTEGER P(JDIM),W(JDIM),C,Z + IF ( N .GE. 2 .AND. N .LE. JDIM - 1 ) GO TO 10 + Z = - 1 + RETURN + 10 IF ( C .GT. 0 ) GO TO 30 + 20 Z = - 2 + RETURN + 30 JSW = 0 + RR = FLOAT(P(1))/FLOAT(W(1)) + DO 50 J=1,N + R = RR + IF ( P(J) .LE. 0 ) GO TO 20 + IF ( W(J) .LE. 0 ) GO TO 20 + JSW = JSW + W(J) + IF ( W(J) .LE. C ) GO TO 40 + Z = - 3 + RETURN + 40 RR = FLOAT(P(J))/FLOAT(W(J)) + IF ( RR .LE. R ) GO TO 50 + Z = - 5 + RETURN + 50 CONTINUE + IF ( JSW .GT. C ) RETURN + Z = - 4 + RETURN + END diff --git a/resources/3rdparty/glpk-4.65/src/misc/mt1.h b/resources/3rdparty/glpk-4.65/src/misc/mt1.h new file mode 100644 index 000000000..cceebba93 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/misc/mt1.h @@ -0,0 +1,34 @@ +/* mt1.h (0-1 knapsack problem; Martello & Toth algorithm) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2017-2018 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#ifndef MT1_H +#define MT1_H + +#define mt1 _glp_mt1 +int mt1(int n, int p[], int w[], int c, int x[], int jck, int xx[], + int min[], int psign[], int wsign[], int zsign[]); +/* solve 0-1 single knapsack problem */ + +#endif + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/glpgmp.c b/resources/3rdparty/glpk-4.65/src/misc/mygmp.c similarity index 83% rename from resources/3rdparty/glpk-4.57/src/glpgmp.c rename to resources/3rdparty/glpk-4.65/src/misc/mygmp.c index 95c5159bd..89d053aec 100644 --- a/resources/3rdparty/glpk-4.57/src/glpgmp.c +++ b/resources/3rdparty/glpk-4.65/src/misc/mygmp.c @@ -1,10 +1,9 @@ -/* glpgmp.c */ +/* mygmp.c (integer and rational arithmetic) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2008-2015 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,52 +21,47 @@ * along with GLPK. If not, see . ***********************************************************************/ -#define _GLPSTD_STDIO -#if 1 /* 11/VI-2013 */ -#include "bignum.h" -#endif -#include "dmp.h" -#include "glpgmp.h" -#include "env.h" -#define xfault xerror +#include "mygmp.h" -#ifdef HAVE_GMP /* use GNU MP bignum library */ +#ifdef HAVE_GMP /* use GNU MP library */ -int gmp_pool_count(void) { return 0; } +/* nothing is needed */ -void gmp_free_mem(void) { return; } +#else /* use GLPK MP module */ -#else /* use GLPK bignum module */ +#include "bignum.h" +#include "dmp.h" +#include "env.h" -static DMP *gmp_pool = NULL; -static int gmp_size = 0; -static unsigned short *gmp_work = NULL; +#define gmp_pool env->gmp_pool +#define gmp_size env->gmp_size +#define gmp_work env->gmp_work void *gmp_get_atom(int size) -{ if (gmp_pool == NULL) +{ ENV *env = get_env_ptr(); + if (gmp_pool == NULL) gmp_pool = dmp_create_pool(); return dmp_get_atom(gmp_pool, size); } void gmp_free_atom(void *ptr, int size) -{ xassert(gmp_pool != NULL); +{ ENV *env = get_env_ptr(); + xassert(gmp_pool != NULL); dmp_free_atom(gmp_pool, ptr, size); return; } int gmp_pool_count(void) -{ if (gmp_pool == NULL) +{ ENV *env = get_env_ptr(); + if (gmp_pool == NULL) return 0; else -#if 0 /* 10/VI-2013 */ - return dmp_in_use(gmp_pool).lo; -#else return dmp_in_use(gmp_pool); -#endif } unsigned short *gmp_get_work(int size) -{ xassert(size > 0); +{ ENV *env = get_env_ptr(); + xassert(size > 0); if (gmp_size < size) { if (gmp_size == 0) { xassert(gmp_work == NULL); @@ -77,25 +71,29 @@ unsigned short *gmp_get_work(int size) { xassert(gmp_work != NULL); xfree(gmp_work); } - while (gmp_size < size) gmp_size += gmp_size; + while (gmp_size < size) + gmp_size += gmp_size; gmp_work = xcalloc(gmp_size, sizeof(unsigned short)); } return gmp_work; } void gmp_free_mem(void) -{ if (gmp_pool != NULL) dmp_delete_pool(gmp_pool); - if (gmp_work != NULL) xfree(gmp_work); +{ ENV *env = get_env_ptr(); + if (gmp_pool != NULL) + dmp_delete_pool(gmp_pool); + if (gmp_work != NULL) + xfree(gmp_work); gmp_pool = NULL; gmp_size = 0; gmp_work = NULL; return; } -/*====================================================================*/ +/*--------------------------------------------------------------------*/ mpz_t _mpz_init(void) -{ /* initialize x, and set its value to 0 */ +{ /* initialize x and set its value to 0 */ mpz_t x; x = gmp_get_atom(sizeof(struct mpz)); x->val = 0; @@ -175,18 +173,19 @@ double mpz_get_d(mpz_t x) deg *= 65536.0; } } - if (x->val < 0) val = - val; + if (x->val < 0) + val = - val; } return val; } double mpz_get_d_2exp(int *exp, mpz_t x) { /* convert x to a double, truncating if necessary (i.e. rounding - towards zero), and returning the exponent separately; - the return value is in the range 0.5 <= |d| < 1 and the - exponent is stored to *exp; d*2^exp is the (truncated) x value; - if x is zero, the return is 0.0 and 0 is stored to *exp; - this is similar to the standard C frexp function */ + * towards zero), and returning the exponent separately; + * the return value is in the range 0.5 <= |d| < 1 and the + * exponent is stored to *exp; d*2^exp is the (truncated) x value; + * if x is zero, the return is 0.0 and 0 is stored to *exp; + * this is similar to the standard C frexp function */ struct mpz_seg *e; int j, n, n1; double val; @@ -201,7 +200,8 @@ double mpz_get_d_2exp(int *exp, mpz_t x) val /= 65536.0, n += 16; } } - if (x->val < 0) val = - val; + if (x->val < 0) + val = - val; } val = frexp(val, &n1); *exp = n + n1; @@ -220,7 +220,7 @@ void mpz_swap(mpz_t x, mpz_t y) static void normalize(mpz_t x) { /* normalize integer x that includes removing non-significant - (leading) zeros and converting to short format, if possible */ + * (leading) zeros and converting to short format, if possible */ struct mpz_seg *es, *e; /* if the integer is in short format, it remains unchanged */ if (x->ptr == NULL) @@ -232,7 +232,8 @@ static void normalize(mpz_t x) es = NULL; for (e = x->ptr; e != NULL; e = e->next) { if (e->d[0] || e->d[1] || e->d[2] || - e->d[3] || e->d[4] || e->d[5]) es = e; + e->d[3] || e->d[4] || e->d[5]) + es = e; } /* if all segments contain zeros, the integer is zero */ if (es == NULL) @@ -251,7 +252,8 @@ static void normalize(mpz_t x) !e->d[2] && !e->d[3] && !e->d[4] && !e->d[5]) { int val; val = (int)e->d[0] + ((int)e->d[1] << 16); - if (x->val < 0) val = - val; + if (x->val < 0) + val = - val; mpz_set_si(x, val); } done: return; @@ -336,8 +338,10 @@ void mpz_add(mpz_t z, mpz_t x, mpz_t y) { /* [x] and [y] have identical signs -- addition */ t = 0; for (; ex || ey; ex = ex->next, ey = ey->next) - { if (ex == NULL) ex = &zero; - if (ey == NULL) ey = &zero; + { if (ex == NULL) + ex = &zero; + if (ey == NULL) + ey = &zero; ee = gmp_get_atom(sizeof(struct mpz_seg)); for (k = 0; k <= 5; k++) { t += (unsigned int)ex->d[k]; @@ -366,8 +370,10 @@ void mpz_add(mpz_t z, mpz_t x, mpz_t y) { /* [x] and [y] have different signs -- subtraction */ t = 1; for (; ex || ey; ex = ex->next, ey = ey->next) - { if (ex == NULL) ex = &zero; - if (ey == NULL) ey = &zero; + { if (ex == NULL) + ex = &zero; + if (ey == NULL) + ey = &zero; ee = gmp_get_atom(sizeof(struct mpz_seg)); for (k = 0; k <= 5; k++) { t += (unsigned int)ex->d[k]; @@ -387,10 +393,11 @@ void mpz_add(mpz_t z, mpz_t x, mpz_t y) sz = - sz; t = 1; for (ee = ez; ee != NULL; ee = ee->next) - for (k = 0; k <= 5; k++) - { t += (0xFFFF - (unsigned int)ee->d[k]); - ee->d[k] = (unsigned short)t; - t >>= 16; + { for (k = 0; k <= 5; k++) + { t += (0xFFFF - (unsigned int)ee->d[k]); + ee->d[k] = (unsigned short)t; + t >>= 16; + } } } } @@ -409,7 +416,8 @@ void mpz_sub(mpz_t z, mpz_t x, mpz_t y) else { y->val = - y->val; mpz_add(z, x, y); - if (y != z) y->val = - y->val; + if (y != z) + y->val = - y->val; } return; } @@ -436,8 +444,10 @@ void mpz_mul(mpz_t z, mpz_t x, mpz_t y) if (x->ptr == NULL && y->ptr == NULL) { int xval = x->val, yval = y->val, sz = +1; xassert(xval != 0x80000000 && yval != 0x80000000); - if (xval < 0) xval = - xval, sz = - sz; - if (yval < 0) yval = - yval, sz = - sz; + if (xval < 0) + xval = - xval, sz = - sz; + if (yval < 0) + yval = - yval, sz = - sz; if (xval <= 0x7FFFFFFF / yval) { mpz_set_si(z, sz * (xval * yval)); goto done; @@ -490,33 +500,44 @@ void mpz_mul(mpz_t z, mpz_t x, mpz_t y) /* determine the number of digits of [x] */ nx = n = 0; for (e = ex; e != NULL; e = e->next) - for (k = 0; k <= 5; k++) - { n++; - if (e->d[k]) nx = n; + { for (k = 0; k <= 5; k++) + { n++; + if (e->d[k]) + nx = n; + } } xassert(nx > 0); /* determine the number of digits of [y] */ ny = n = 0; for (e = ey; e != NULL; e = e->next) - for (k = 0; k <= 5; k++) - { n++; - if (e->d[k]) ny = n; + { for (k = 0; k <= 5; k++) + { n++; + if (e->d[k]) + ny = n; + } } xassert(ny > 0); /* we need working array containing at least nx+ny+ny places */ work = gmp_get_work(nx+ny+ny); /* load digits of [x] */ wx = &work[0]; - for (n = 0; n < nx; n++) wx[ny+n] = 0; + for (n = 0; n < nx; n++) + wx[ny+n] = 0; for (n = 0, e = ex; e != NULL; e = e->next) - for (k = 0; k <= 5; k++, n++) - if (e->d[k]) wx[ny+n] = e->d[k]; + { for (k = 0; k <= 5; k++, n++) + { if (e->d[k]) + wx[ny+n] = e->d[k]; + } + } /* load digits of [y] */ wy = &work[nx+ny]; for (n = 0; n < ny; n++) wy[n] = 0; for (n = 0, e = ey; e != NULL; e = e->next) - for (k = 0; k <= 5; k++, n++) - if (e->d[k]) wy[n] = e->d[k]; + { for (k = 0; k <= 5; k++, n++) + { if (e->d[k]) + wy[n] = e->d[k]; + } + } /* compute [x] * [y] */ bigmul(nx, ny, wx, wy); /* construct and normalize result */ @@ -553,20 +574,21 @@ void mpz_neg(mpz_t z, mpz_t x) void mpz_abs(mpz_t z, mpz_t x) { /* set z to the absolute value of x */ mpz_set(z, x); - if (z->val < 0) z->val = - z->val; + if (z->val < 0) + z->val = - z->val; return; } void mpz_div(mpz_t q, mpz_t r, mpz_t x, mpz_t y) { /* divide x by y, forming quotient q and/or remainder r - if q = NULL then quotient is not stored; if r = NULL then - remainder is not stored - the sign of quotient is determined as in algebra while the - sign of remainder is the same as the sign of dividend: - +26 : +7 = +3, remainder is +5 - -26 : +7 = -3, remainder is -5 - +26 : -7 = -3, remainder is +5 - -26 : -7 = +3, remainder is -5 */ + * if q = NULL then quotient is not stored; if r = NULL then + * remainder is not stored + * the sign of quotient is determined as in algebra while the + * sign of remainder is the same as the sign of dividend: + * +26 : +7 = +3, remainder is +5 + * -26 : +7 = -3, remainder is -5 + * +26 : -7 = -3, remainder is +5 + * -26 : -7 = +3, remainder is -5 */ struct mpz_seg dumx, dumy, *ex, *ey, *es, *e; int sx, sy, k, nx, ny, n; unsigned int t; @@ -574,21 +596,26 @@ void mpz_div(mpz_t q, mpz_t r, mpz_t x, mpz_t y) /* divide by zero is not allowed */ if (y->val == 0) { xassert(y->ptr == NULL); - xfault("mpz_div: divide by zero not allowed\n"); + xerror("mpz_div: divide by zero not allowed\n"); } /* if [x] = 0 then [q] = [r] = 0 */ if (x->val == 0) { xassert(x->ptr == NULL); - if (q != NULL) mpz_set_si(q, 0); - if (r != NULL) mpz_set_si(r, 0); + if (q != NULL) + mpz_set_si(q, 0); + if (r != NULL) + mpz_set_si(r, 0); goto done; } /* special case when both [x] and [y] are in short format */ if (x->ptr == NULL && y->ptr == NULL) { int xval = x->val, yval = y->val; xassert(xval != 0x80000000 && yval != 0x80000000); - if (q != NULL) mpz_set_si(q, xval / yval); - if (r != NULL) mpz_set_si(r, xval % yval); + /* FIXME: use div function */ + if (q != NULL) + mpz_set_si(q, xval / yval); + if (r != NULL) + mpz_set_si(r, xval % yval); goto done; } /* convert [x] to long format, if necessary */ @@ -638,39 +665,49 @@ void mpz_div(mpz_t q, mpz_t r, mpz_t x, mpz_t y) /* determine the number of digits of [x] */ nx = n = 0; for (e = ex; e != NULL; e = e->next) - for (k = 0; k <= 5; k++) - { n++; - if (e->d[k]) nx = n; + { for (k = 0; k <= 5; k++) + { n++; + if (e->d[k]) + nx = n; + } } xassert(nx > 0); /* determine the number of digits of [y] */ ny = n = 0; for (e = ey; e != NULL; e = e->next) - for (k = 0; k <= 5; k++) - { n++; - if (e->d[k]) ny = n; + { for (k = 0; k <= 5; k++) + { n++; + if (e->d[k]) + ny = n; + } } xassert(ny > 0); /* if nx < ny then [q] = 0 and [r] = [x] */ if (nx < ny) - { if (r != NULL) mpz_set(r, x); - if (q != NULL) mpz_set_si(q, 0); + { if (r != NULL) + mpz_set(r, x); + if (q != NULL) + mpz_set_si(q, 0); goto done; } /* we need working array containing at least nx+ny+1 places */ work = gmp_get_work(nx+ny+1); /* load digits of [x] */ wx = &work[0]; - for (n = 0; n < nx; n++) wx[n] = 0; + for (n = 0; n < nx; n++) + wx[n] = 0; for (n = 0, e = ex; e != NULL; e = e->next) - for (k = 0; k <= 5; k++, n++) + { for (k = 0; k <= 5; k++, n++) if (e->d[k]) wx[n] = e->d[k]; + } /* load digits of [y] */ wy = &work[nx+1]; - for (n = 0; n < ny; n++) wy[n] = 0; + for (n = 0; n < ny; n++) + wy[n] = 0; for (n = 0, e = ey; e != NULL; e = e->next) - for (k = 0; k <= 5; k++, n++) + { for (k = 0; k <= 5; k++, n++) if (e->d[k]) wy[n] = e->d[k]; + } /* compute quotient and remainder */ xassert(wy[ny-1] != 0); bigdiv(nx-ny, ny, wx, wy); @@ -726,7 +763,7 @@ done: return; void mpz_gcd(mpz_t z, mpz_t x, mpz_t y) { /* set z to the greatest common divisor of x and y */ /* in case of arbitrary integers GCD(x, y) = GCD(|x|, |y|), and, - in particular, GCD(0, 0) = 0 */ + * in particular, GCD(0, 0) = 0 */ mpz_t u, v, r; mpz_init(u); mpz_init(v); @@ -747,7 +784,7 @@ void mpz_gcd(mpz_t z, mpz_t x, mpz_t y) int mpz_cmp(mpz_t x, mpz_t y) { /* compare x and y; return a positive value if x > y, zero if - x = y, or a nefative value if x < y */ + * x = y, or a nefative value if x < y */ static struct mpz_seg zero = { { 0, 0, 0, 0, 0, 0 }, NULL }; struct mpz_seg dumx, dumy, *ex, *ey; int cc, sx, sy, k; @@ -820,11 +857,15 @@ int mpz_cmp(mpz_t x, mpz_t y) xassert(sx > 0 && sy > 0 || sx < 0 && sy < 0); cc = 0; for (; ex || ey; ex = ex->next, ey = ey->next) - { if (ex == NULL) ex = &zero; - if (ey == NULL) ey = &zero; + { if (ex == NULL) + ex = &zero; + if (ey == NULL) + ey = &zero; for (k = 0; k <= 5; k++) - { if (ex->d[k] > ey->d[k]) cc = +1; - if (ex->d[k] < ey->d[k]) cc = -1; + { if (ex->d[k] > ey->d[k]) + cc = +1; + if (ex->d[k] < ey->d[k]) + cc = -1; } } if (sx < 0) cc = - cc; @@ -840,16 +881,16 @@ int mpz_sgn(mpz_t x) int mpz_out_str(void *_fp, int base, mpz_t x) { /* output x on stream fp, as a string in given base; the base - may vary from 2 to 36; - return the number of bytes written, or if an error occurred, - return 0 */ + * may vary from 2 to 36; + * return the number of bytes written, or if an error occurred, + * return 0 */ FILE *fp = _fp; mpz_t b, y, r; int n, j, nwr = 0; unsigned char *d; static char *set = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; if (!(2 <= base && base <= 36)) - xfault("mpz_out_str: base = %d; invalid base\n", base); + xerror("mpz_out_str: base = %d; invalid base\n", base); mpz_init(b); mpz_set_si(b, base); mpz_init(y); @@ -868,12 +909,14 @@ int mpz_out_str(void *_fp, int base, mpz_t x) d[j] = (unsigned char)r->val; } /* output the integer to the stream */ - if (fp == NULL) fp = stdout; + if (fp == NULL) + fp = stdout; if (mpz_sgn(x) < 0) fputc('-', fp), nwr++; for (j = n-1; j >= 0; j--) fputc(set[d[j]], fp), nwr++; - if (ferror(fp)) nwr = 0; + if (ferror(fp)) + nwr = 0; mpz_clear(b); mpz_clear(y); mpz_clear(r); @@ -881,7 +924,7 @@ int mpz_out_str(void *_fp, int base, mpz_t x) return nwr; } -/*====================================================================*/ +/*--------------------------------------------------------------------*/ mpq_t _mpq_init(void) { /* initialize x, and set its value to 0/1 */ @@ -907,7 +950,7 @@ void mpq_clear(mpq_t x) void mpq_canonicalize(mpq_t x) { /* remove any factors that are common to the numerator and - denominator of x, and make the denominator positive */ + * denominator of x, and make the denominator positive */ mpz_t f; xassert(x->q.val != 0); if (x->q.val < 0) @@ -936,7 +979,7 @@ void mpq_set(mpq_t z, mpq_t x) void mpq_set_si(mpq_t x, int p, unsigned int q) { /* set the value of x to p/q */ if (q == 0) - xfault("mpq_set_si: zero denominator not allowed\n"); + xerror("mpq_set_si: zero denominator not allowed\n"); mpz_set_si(&x->p, p); xassert(q <= 0x7FFFFFFF); mpz_set_si(&x->q, q); @@ -990,7 +1033,8 @@ void mpq_set_d(mpq_t x, double val) mpz_add(&x->q, &x->q, &x->q); mpq_canonicalize(x); } - if (s < 0) mpq_neg(x, x); + if (s < 0) + mpq_neg(x, x); done: return; } @@ -1040,7 +1084,7 @@ void mpq_div(mpq_t z, mpq_t x, mpq_t y) { /* set z to x / y */ mpz_t p, q; if (mpq_sgn(y) == 0) - xfault("mpq_div: zero divisor not allowed\n"); + xerror("mpq_div: zero divisor not allowed\n"); mpz_init(p); mpz_init(q); mpz_mul(p, &x->p, &y->q); @@ -1070,7 +1114,7 @@ void mpq_abs(mpq_t z, mpq_t x) int mpq_cmp(mpq_t x, mpq_t y) { /* compare x and y; return a positive value if x > y, zero if - x = y, or a nefative value if x < y */ + * x = y, or a negative value if x < y */ mpq_t temp; int s; mpq_init(temp); @@ -1090,16 +1134,17 @@ int mpq_sgn(mpq_t x) int mpq_out_str(void *_fp, int base, mpq_t x) { /* output x on stream fp, as a string in given base; the base - may vary from 2 to 36; output is in the form 'num/den' or if - the denominator is 1 then just 'num'; - if the parameter fp is a null pointer, stdout is assumed; - return the number of bytes written, or if an error occurred, - return 0 */ + * may vary from 2 to 36; output is in the form 'num/den' or if + * the denominator is 1 then just 'num'; + * if the parameter fp is a null pointer, stdout is assumed; + * return the number of bytes written, or if an error occurred, + * return 0 */ FILE *fp = _fp; int nwr; if (!(2 <= base && base <= 36)) - xfault("mpq_out_str: base = %d; invalid base\n", base); - if (fp == NULL) fp = stdout; + xerror("mpq_out_str: base = %d; invalid base\n", base); + if (fp == NULL) + fp = stdout; nwr = mpz_out_str(fp, base, &x->p); if (x->q.val == 1 && x->q.ptr == NULL) ; @@ -1107,7 +1152,8 @@ int mpq_out_str(void *_fp, int base, mpq_t x) { fputc('/', fp), nwr++; nwr += mpz_out_str(fp, base, &x->q); } - if (ferror(fp)) nwr = 0; + if (ferror(fp)) + nwr = 0; return nwr; } diff --git a/resources/3rdparty/glpk-4.65/src/misc/mygmp.h b/resources/3rdparty/glpk-4.65/src/misc/mygmp.h new file mode 100644 index 000000000..31d2024df --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/misc/mygmp.h @@ -0,0 +1,254 @@ +/* mygmp.h (integer and rational arithmetic) */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2008-2015 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#ifndef MYGMP_H +#define MYGMP_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#ifdef HAVE_GMP /* use GNU MP library */ + +#include + +#define gmp_pool_count() 0 + +#define gmp_free_mem() ((void)0) + +#else /* use GLPK MP module */ + +/*********************************************************************** +* INTEGER NUMBERS +* --------------- +* Depending on its magnitude an integer number of arbitrary precision +* is represented either in short format or in long format. +* +* Short format corresponds to the int type and allows representing +* integer numbers in the range [-(2^31-1), +(2^31-1)]. Note that for +* the most negative number of int type the short format is not used. +* +* In long format integer numbers are represented using the positional +* system with the base (radix) 2^16 = 65536: +* +* x = (-1)^s sum{j in 0..n-1} d[j] * 65536^j, +* +* where x is the integer to be represented, s is its sign (+1 or -1), +* d[j] are its digits (0 <= d[j] <= 65535). +* +* RATIONAL NUMBERS +* ---------------- +* A rational number is represented as an irreducible fraction: +* +* p / q, +* +* where p (numerator) and q (denominator) are integer numbers (q > 0) +* having no common divisors. */ + +struct mpz +{ /* integer number */ + int val; + /* if ptr is a null pointer, the number is in short format, and + val is its value; otherwise, the number is in long format, and + val is its sign (+1 or -1) */ + struct mpz_seg *ptr; + /* pointer to the linked list of the number segments ordered in + ascending of powers of the base */ +}; + +struct mpz_seg +{ /* integer number segment */ + unsigned short d[6]; + /* six digits of the number ordered in ascending of powers of the + base */ + struct mpz_seg *next; + /* pointer to the next number segment */ +}; + +struct mpq +{ /* rational number (p / q) */ + struct mpz p; + /* numerator */ + struct mpz q; + /* denominator */ +}; + +typedef struct mpz *mpz_t; +typedef struct mpq *mpq_t; + +#define gmp_get_atom _glp_gmp_get_atom +void *gmp_get_atom(int size); + +#define gmp_free_atom _glp_gmp_free_atom +void gmp_free_atom(void *ptr, int size); + +#define gmp_pool_count _glp_gmp_pool_count +int gmp_pool_count(void); + +#define gmp_get_work _glp_gmp_get_work +unsigned short *gmp_get_work(int size); + +#define gmp_free_mem _glp_gmp_free_mem +void gmp_free_mem(void); + +#define mpz_init(x) (void)((x) = _mpz_init()) + +#define _mpz_init _glp_mpz_init +mpz_t _mpz_init(void); +/* initialize x and set its value to 0 */ + +#define mpz_clear _glp_mpz_clear +void mpz_clear(mpz_t x); +/* free the space occupied by x */ + +#define mpz_set _glp_mpz_set +void mpz_set(mpz_t z, mpz_t x); +/* set the value of z from x */ + +#define mpz_set_si _glp_mpz_set_si +void mpz_set_si(mpz_t x, int val); +/* set the value of x to val */ + +#define mpz_get_d _glp_mpz_get_d +double mpz_get_d(mpz_t x); +/* convert x to a double, truncating if necessary */ + +#define mpz_get_d_2exp _glp_mpz_get_d_2exp +double mpz_get_d_2exp(int *exp, mpz_t x); +/* convert x to a double, returning the exponent separately */ + +#define mpz_swap _glp_mpz_swap +void mpz_swap(mpz_t x, mpz_t y); +/* swap the values x and y efficiently */ + +#define mpz_add _glp_mpz_add +void mpz_add(mpz_t, mpz_t, mpz_t); +/* set z to x + y */ + +#define mpz_sub _glp_mpz_sub +void mpz_sub(mpz_t, mpz_t, mpz_t); +/* set z to x - y */ + +#define mpz_mul _glp_mpz_mul +void mpz_mul(mpz_t, mpz_t, mpz_t); +/* set z to x * y */ + +#define mpz_neg _glp_mpz_neg +void mpz_neg(mpz_t z, mpz_t x); +/* set z to 0 - x */ + +#define mpz_abs _glp_mpz_abs +void mpz_abs(mpz_t z, mpz_t x); +/* set z to the absolute value of x */ + +#define mpz_div _glp_mpz_div +void mpz_div(mpz_t q, mpz_t r, mpz_t x, mpz_t y); +/* divide x by y, forming quotient q and/or remainder r */ + +#define mpz_gcd _glp_mpz_gcd +void mpz_gcd(mpz_t z, mpz_t x, mpz_t y); +/* set z to the greatest common divisor of x and y */ + +#define mpz_cmp _glp_mpz_cmp +int mpz_cmp(mpz_t x, mpz_t y); +/* compare x and y */ + +#define mpz_sgn _glp_mpz_sgn +int mpz_sgn(mpz_t x); +/* return +1 if x > 0, 0 if x = 0, and -1 if x < 0 */ + +#define mpz_out_str _glp_mpz_out_str +int mpz_out_str(void *fp, int base, mpz_t x); +/* output x on stream fp, as a string in given base */ + +#define mpq_init(x) (void)((x) = _mpq_init()) + +#define _mpq_init _glp_mpq_init +mpq_t _mpq_init(void); +/* initialize x, and set its value to 0/1 */ + +#define mpq_clear _glp_mpq_clear +void mpq_clear(mpq_t x); +/* free the space occupied by x */ + +#define mpq_canonicalize _glp_mpq_canonicalize +void mpq_canonicalize(mpq_t x); +/* canonicalize x */ + +#define mpq_set _glp_mpq_set +void mpq_set(mpq_t z, mpq_t x); +/* set the value of z from x */ + +#define mpq_set_si _glp_mpq_set_si +void mpq_set_si(mpq_t x, int p, unsigned int q); +/* set the value of x to p/q */ + +#define mpq_get_d _glp_mpq_get_d +double mpq_get_d(mpq_t x); +/* convert x to a double, truncating if necessary */ + +#define mpq_set_d _glp_mpq_set_d +void mpq_set_d(mpq_t x, double val); +/* set x to val; there is no rounding, the conversion is exact */ + +#define mpq_add _glp_mpq_add +void mpq_add(mpq_t z, mpq_t x, mpq_t y); +/* set z to x + y */ + +#define mpq_sub _glp_mpq_sub +void mpq_sub(mpq_t z, mpq_t x, mpq_t y); +/* set z to x - y */ + +#define mpq_mul _glp_mpq_mul +void mpq_mul(mpq_t z, mpq_t x, mpq_t y); +/* set z to x * y */ + +#define mpq_div _glp_mpq_div +void mpq_div(mpq_t z, mpq_t x, mpq_t y); +/* set z to x / y */ + +#define mpq_neg _glp_mpq_neg +void mpq_neg(mpq_t z, mpq_t x); +/* set z to 0 - x */ + +#define mpq_abs _glp_mpq_abs +void mpq_abs(mpq_t z, mpq_t x); +/* set z to the absolute value of x */ + +#define mpq_cmp _glp_mpq_cmp +int mpq_cmp(mpq_t x, mpq_t y); +/* compare x and y */ + +#define mpq_sgn _glp_mpq_sgn +int mpq_sgn(mpq_t x); +/* return +1 if x > 0, 0 if x = 0, and -1 if x < 0 */ + +#define mpq_out_str _glp_mpq_out_str +int mpq_out_str(void *fp, int base, mpq_t x); +/* output x on stream fp, as a string in given base */ + +#endif + +#endif + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/misc/okalg.c b/resources/3rdparty/glpk-4.65/src/misc/okalg.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/okalg.c rename to resources/3rdparty/glpk-4.65/src/misc/okalg.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/okalg.h b/resources/3rdparty/glpk-4.65/src/misc/okalg.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/okalg.h rename to resources/3rdparty/glpk-4.65/src/misc/okalg.h diff --git a/resources/3rdparty/glpk-4.57/src/misc/qmd.c b/resources/3rdparty/glpk-4.65/src/misc/qmd.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/qmd.c rename to resources/3rdparty/glpk-4.65/src/misc/qmd.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/qmd.h b/resources/3rdparty/glpk-4.65/src/misc/qmd.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/qmd.h rename to resources/3rdparty/glpk-4.65/src/misc/qmd.h diff --git a/resources/3rdparty/glpk-4.57/src/misc/relax4.c b/resources/3rdparty/glpk-4.65/src/misc/relax4.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/relax4.c rename to resources/3rdparty/glpk-4.65/src/misc/relax4.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/relax4.h b/resources/3rdparty/glpk-4.65/src/misc/relax4.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/relax4.h rename to resources/3rdparty/glpk-4.65/src/misc/relax4.h diff --git a/resources/3rdparty/glpk-4.57/src/misc/rng.c b/resources/3rdparty/glpk-4.65/src/misc/rng.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/rng.c rename to resources/3rdparty/glpk-4.65/src/misc/rng.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/rng.h b/resources/3rdparty/glpk-4.65/src/misc/rng.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/rng.h rename to resources/3rdparty/glpk-4.65/src/misc/rng.h diff --git a/resources/3rdparty/glpk-4.57/src/misc/rng1.c b/resources/3rdparty/glpk-4.65/src/misc/rng1.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/rng1.c rename to resources/3rdparty/glpk-4.65/src/misc/rng1.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/round2n.c b/resources/3rdparty/glpk-4.65/src/misc/round2n.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/round2n.c rename to resources/3rdparty/glpk-4.65/src/misc/round2n.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/str2int.c b/resources/3rdparty/glpk-4.65/src/misc/str2int.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/str2int.c rename to resources/3rdparty/glpk-4.65/src/misc/str2int.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/str2num.c b/resources/3rdparty/glpk-4.65/src/misc/str2num.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/str2num.c rename to resources/3rdparty/glpk-4.65/src/misc/str2num.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/strspx.c b/resources/3rdparty/glpk-4.65/src/misc/strspx.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/strspx.c rename to resources/3rdparty/glpk-4.65/src/misc/strspx.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/strtrim.c b/resources/3rdparty/glpk-4.65/src/misc/strtrim.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/strtrim.c rename to resources/3rdparty/glpk-4.65/src/misc/strtrim.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/triang.c b/resources/3rdparty/glpk-4.65/src/misc/triang.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/triang.c rename to resources/3rdparty/glpk-4.65/src/misc/triang.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/triang.h b/resources/3rdparty/glpk-4.65/src/misc/triang.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/triang.h rename to resources/3rdparty/glpk-4.65/src/misc/triang.h diff --git a/resources/3rdparty/glpk-4.57/src/misc/wclique.c b/resources/3rdparty/glpk-4.65/src/misc/wclique.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/wclique.c rename to resources/3rdparty/glpk-4.65/src/misc/wclique.c diff --git a/resources/3rdparty/glpk-4.57/src/misc/wclique.h b/resources/3rdparty/glpk-4.65/src/misc/wclique.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/wclique.h rename to resources/3rdparty/glpk-4.65/src/misc/wclique.h diff --git a/resources/3rdparty/glpk-4.57/src/misc/wclique1.c b/resources/3rdparty/glpk-4.65/src/misc/wclique1.c similarity index 98% rename from resources/3rdparty/glpk-4.57/src/misc/wclique1.c rename to resources/3rdparty/glpk-4.65/src/misc/wclique1.c index c263a5e5a..a3d895429 100644 --- a/resources/3rdparty/glpk-4.57/src/misc/wclique1.c +++ b/resources/3rdparty/glpk-4.65/src/misc/wclique1.c @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2012-2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2012-2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -64,7 +64,7 @@ struct vertex { int i; double cw; }; -static int fcmp(const void *xx, const void *yy) +static int CDECL fcmp(const void *xx, const void *yy) { const struct vertex *x = xx, *y = yy; if (x->cw > y->cw) return -1; if (x->cw < y->cw) return +1; diff --git a/resources/3rdparty/glpk-4.57/src/misc/wclique1.h b/resources/3rdparty/glpk-4.65/src/misc/wclique1.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/misc/wclique1.h rename to resources/3rdparty/glpk-4.65/src/misc/wclique1.h diff --git a/resources/3rdparty/glpk-4.57/src/glpmpl.h b/resources/3rdparty/glpk-4.65/src/mpl/mpl.h similarity index 96% rename from resources/3rdparty/glpk-4.57/src/glpmpl.h rename to resources/3rdparty/glpk-4.65/src/mpl/mpl.h index 34445d30a..ddd315438 100644 --- a/resources/3rdparty/glpk-4.57/src/glpmpl.h +++ b/resources/3rdparty/glpk-4.65/src/mpl/mpl.h @@ -1,10 +1,9 @@ -/* glpmpl.h (GNU MathProg translator) */ +/* mpl.h (GNU MathProg translator) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2003-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,8 +21,8 @@ * along with GLPK. If not, see . ***********************************************************************/ -#ifndef GLPMPL_H -#define GLPMPL_H +#ifndef MPL_H +#define MPL_H #include "avl.h" #include "dmp.h" @@ -837,6 +836,10 @@ double fp_sin(MPL *mpl, double x); double fp_cos(MPL *mpl, double x); /* floating-point trigonometric cosine */ +#define fp_tan _glp_mpl_fp_tan +double fp_tan(MPL *mpl, double x); +/* floating-point trigonometric tangent */ + #define fp_atan _glp_mpl_fp_atan double fp_atan(MPL *mpl, double x); /* floating-point trigonometric arctangent */ @@ -2117,62 +2120,63 @@ struct CODE #define O_SQRT 330 /* square root */ #define O_SIN 331 /* trigonometric sine */ #define O_COS 332 /* trigonometric cosine */ -#define O_ATAN 333 /* trigonometric arctangent */ -#define O_ROUND 334 /* round to nearest integer */ -#define O_TRUNC 335 /* truncate to nearest integer */ -#define O_CARD 336 /* cardinality of set */ -#define O_LENGTH 337 /* length of symbolic value */ +#define O_TAN 333 /* trigonometric tangent */ +#define O_ATAN 334 /* trigonometric arctangent */ +#define O_ROUND 335 /* round to nearest integer */ +#define O_TRUNC 336 /* truncate to nearest integer */ +#define O_CARD 337 /* cardinality of set */ +#define O_LENGTH 338 /* length of symbolic value */ /* binary operations -------------------*/ -#define O_ADD 338 /* addition */ -#define O_SUB 339 /* subtraction */ -#define O_LESS 340 /* non-negative subtraction */ -#define O_MUL 341 /* multiplication */ -#define O_DIV 342 /* division */ -#define O_IDIV 343 /* quotient of exact division */ -#define O_MOD 344 /* remainder of exact division */ -#define O_POWER 345 /* exponentiation (raise to power) */ -#define O_ATAN2 346 /* trigonometric arctangent */ -#define O_ROUND2 347 /* round to n fractional digits */ -#define O_TRUNC2 348 /* truncate to n fractional digits */ -#define O_UNIFORM 349 /* pseudo-random in [a, b) */ -#define O_NORMAL 350 /* gaussian random, given mu and sigma */ -#define O_CONCAT 351 /* concatenation */ -#define O_LT 352 /* comparison on 'less than' */ -#define O_LE 353 /* comparison on 'not greater than' */ -#define O_EQ 354 /* comparison on 'equal to' */ -#define O_GE 355 /* comparison on 'not less than' */ -#define O_GT 356 /* comparison on 'greater than' */ -#define O_NE 357 /* comparison on 'not equal to' */ -#define O_AND 358 /* conjunction (logical "and") */ -#define O_OR 359 /* disjunction (logical "or") */ -#define O_UNION 360 /* union */ -#define O_DIFF 361 /* difference */ -#define O_SYMDIFF 362 /* symmetric difference */ -#define O_INTER 363 /* intersection */ -#define O_CROSS 364 /* cross (Cartesian) product */ -#define O_IN 365 /* test on 'x in Y' */ -#define O_NOTIN 366 /* test on 'x not in Y' */ -#define O_WITHIN 367 /* test on 'X within Y' */ -#define O_NOTWITHIN 368 /* test on 'X not within Y' */ -#define O_SUBSTR 369 /* substring */ -#define O_STR2TIME 370 /* convert string to time */ -#define O_TIME2STR 371 /* convert time to string */ +#define O_ADD 339 /* addition */ +#define O_SUB 340 /* subtraction */ +#define O_LESS 341 /* non-negative subtraction */ +#define O_MUL 342 /* multiplication */ +#define O_DIV 343 /* division */ +#define O_IDIV 344 /* quotient of exact division */ +#define O_MOD 345 /* remainder of exact division */ +#define O_POWER 346 /* exponentiation (raise to power) */ +#define O_ATAN2 347 /* trigonometric arctangent */ +#define O_ROUND2 348 /* round to n fractional digits */ +#define O_TRUNC2 349 /* truncate to n fractional digits */ +#define O_UNIFORM 350 /* pseudo-random in [a, b) */ +#define O_NORMAL 351 /* gaussian random, given mu and sigma */ +#define O_CONCAT 352 /* concatenation */ +#define O_LT 353 /* comparison on 'less than' */ +#define O_LE 354 /* comparison on 'not greater than' */ +#define O_EQ 355 /* comparison on 'equal to' */ +#define O_GE 356 /* comparison on 'not less than' */ +#define O_GT 357 /* comparison on 'greater than' */ +#define O_NE 358 /* comparison on 'not equal to' */ +#define O_AND 359 /* conjunction (logical "and") */ +#define O_OR 360 /* disjunction (logical "or") */ +#define O_UNION 361 /* union */ +#define O_DIFF 362 /* difference */ +#define O_SYMDIFF 363 /* symmetric difference */ +#define O_INTER 364 /* intersection */ +#define O_CROSS 365 /* cross (Cartesian) product */ +#define O_IN 366 /* test on 'x in Y' */ +#define O_NOTIN 367 /* test on 'x not in Y' */ +#define O_WITHIN 368 /* test on 'X within Y' */ +#define O_NOTWITHIN 369 /* test on 'X not within Y' */ +#define O_SUBSTR 370 /* substring */ +#define O_STR2TIME 371 /* convert string to time */ +#define O_TIME2STR 372 /* convert time to string */ /* ternary operations ------------------*/ -#define O_DOTS 372 /* build "arithmetic" set */ -#define O_FORK 373 /* if-then-else */ -#define O_SUBSTR3 374 /* substring */ +#define O_DOTS 373 /* build "arithmetic" set */ +#define O_FORK 374 /* if-then-else */ +#define O_SUBSTR3 375 /* substring */ /* n-ary operations --------------------*/ -#define O_MIN 375 /* minimal value (n-ary) */ -#define O_MAX 376 /* maximal value (n-ary) */ +#define O_MIN 376 /* minimal value (n-ary) */ +#define O_MAX 377 /* maximal value (n-ary) */ /* iterated operations -----------------*/ -#define O_SUM 377 /* summation */ -#define O_PROD 378 /* multiplication */ -#define O_MINIMUM 379 /* minimum */ -#define O_MAXIMUM 380 /* maximum */ -#define O_FORALL 381 /* conjunction (A-quantification) */ -#define O_EXISTS 382 /* disjunction (E-quantification) */ -#define O_SETOF 383 /* compute elemental set */ -#define O_BUILD 384 /* build elemental set */ +#define O_SUM 378 /* summation */ +#define O_PROD 379 /* multiplication */ +#define O_MINIMUM 380 /* minimum */ +#define O_MAXIMUM 381 /* maximum */ +#define O_FORALL 382 /* conjunction (A-quantification) */ +#define O_EXISTS 383 /* disjunction (E-quantification) */ +#define O_SETOF 384 /* compute elemental set */ +#define O_BUILD 385 /* build elemental set */ OPERANDS arg; /* operands that participate in the operation */ int type; diff --git a/resources/3rdparty/glpk-4.57/src/glpmpl01.c b/resources/3rdparty/glpk-4.65/src/mpl/mpl1.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpmpl01.c rename to resources/3rdparty/glpk-4.65/src/mpl/mpl1.c index db7af246b..7dc3cd796 100644 --- a/resources/3rdparty/glpk-4.57/src/glpmpl01.c +++ b/resources/3rdparty/glpk-4.65/src/mpl/mpl1.c @@ -1,10 +1,9 @@ -/* glpmpl01.c */ +/* mpl1.c */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2003-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,7 +21,7 @@ * along with GLPK. If not, see . ***********************************************************************/ -#include "glpmpl.h" +#include "mpl.h" #define dmp_get_atomv dmp_get_atom @@ -602,6 +601,7 @@ CODE *make_code(MPL *mpl, int op, OPERANDS *arg, int type, int dim) case O_SQRT: case O_SIN: case O_COS: + case O_TAN: case O_ATAN: case O_ROUND: case O_TRUNC: @@ -1148,6 +1148,7 @@ CODE *elemset_argument(MPL *mpl, char *func) -- ::= sqrt ( ) -- ::= sin ( ) -- ::= cos ( ) +-- ::= tan ( ) -- ::= atan ( ) -- ::= atan2 ( , ) -- ::= round ( ) @@ -1194,6 +1195,8 @@ CODE *function_reference(MPL *mpl) op = O_SIN; else if (strcmp(mpl->image, "cos") == 0) op = O_COS; + else if (strcmp(mpl->image, "tan") == 0) + op = O_TAN; else if (strcmp(mpl->image, "atan") == 0) op = O_ATAN; else if (strcmp(mpl->image, "min") == 0) diff --git a/resources/3rdparty/glpk-4.57/src/glpmpl02.c b/resources/3rdparty/glpk-4.65/src/mpl/mpl2.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpmpl02.c rename to resources/3rdparty/glpk-4.65/src/mpl/mpl2.c index 277593981..0f99528b9 100644 --- a/resources/3rdparty/glpk-4.57/src/glpmpl02.c +++ b/resources/3rdparty/glpk-4.65/src/mpl/mpl2.c @@ -1,10 +1,9 @@ -/* glpmpl02.c */ +/* mpl2.c */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2003-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,7 +21,7 @@ * along with GLPK. If not, see . ***********************************************************************/ -#include "glpmpl.h" +#include "mpl.h" /**********************************************************************/ /* * * PROCESSING DATA SECTION * * */ diff --git a/resources/3rdparty/glpk-4.57/src/glpmpl03.c b/resources/3rdparty/glpk-4.65/src/mpl/mpl3.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpmpl03.c rename to resources/3rdparty/glpk-4.65/src/mpl/mpl3.c index ddc3b583e..2489db27d 100644 --- a/resources/3rdparty/glpk-4.57/src/glpmpl03.c +++ b/resources/3rdparty/glpk-4.65/src/mpl/mpl3.c @@ -1,10 +1,9 @@ -/* glpmpl03.c */ +/* mpl3.c */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2003-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,7 +21,7 @@ * along with GLPK. If not, see . ***********************************************************************/ -#include "glpmpl.h" +#include "mpl.h" /**********************************************************************/ /* * * FLOATING-POINT NUMBERS * * */ @@ -227,6 +226,17 @@ double fp_cos(MPL *mpl, double x) return cos(x); } +/*---------------------------------------------------------------------- +-- fp_tan - floating-point trigonometric tangent. +-- +-- This routine computes the trigonometric tangent tan(x). */ + +double fp_tan(MPL *mpl, double x) +{ if (!(-1e6 <= x && x <= +1e6)) + error(mpl, "tan(%.*g); argument too large", DBL_DIG, x); + return tan(x); +} + /*---------------------------------------------------------------------- -- fp_atan - floating-point trigonometric arctangent. -- @@ -3679,6 +3689,10 @@ double eval_numeric(MPL *mpl, CODE *code) /* trigonometric cosine */ value = fp_cos(mpl, eval_numeric(mpl, code->arg.arg.x)); break; + case O_TAN: + /* trigonometric tangent */ + value = fp_tan(mpl, eval_numeric(mpl, code->arg.arg.x)); + break; case O_ATAN: /* trigonometric arctangent (one argument) */ value = fp_atan(mpl, eval_numeric(mpl, code->arg.arg.x)); @@ -4874,6 +4888,7 @@ void clean_code(MPL *mpl, CODE *code) case O_SQRT: case O_SIN: case O_COS: + case O_TAN: case O_ATAN: case O_ROUND: case O_TRUNC: diff --git a/resources/3rdparty/glpk-4.57/src/glpmpl04.c b/resources/3rdparty/glpk-4.65/src/mpl/mpl4.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpmpl04.c rename to resources/3rdparty/glpk-4.65/src/mpl/mpl4.c index 4ec2c19c2..6e80499c9 100644 --- a/resources/3rdparty/glpk-4.57/src/glpmpl04.c +++ b/resources/3rdparty/glpk-4.65/src/mpl/mpl4.c @@ -1,10 +1,9 @@ -/* glpmpl04.c */ +/* mpl4.c */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2003-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,7 +21,7 @@ * along with GLPK. If not, see . ***********************************************************************/ -#include "glpmpl.h" +#include "mpl.h" #define xfault xerror #define xfprintf glp_format diff --git a/resources/3rdparty/glpk-4.57/src/glpmpl05.c b/resources/3rdparty/glpk-4.65/src/mpl/mpl5.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpmpl05.c rename to resources/3rdparty/glpk-4.65/src/mpl/mpl5.c index 2207572a7..c5374c9c6 100644 --- a/resources/3rdparty/glpk-4.57/src/glpmpl05.c +++ b/resources/3rdparty/glpk-4.65/src/mpl/mpl5.c @@ -1,4 +1,4 @@ -/* glpmpl05.c */ +/* mpl5.c */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). @@ -6,8 +6,7 @@ * Authors: Andrew Makhorin * Heinrich Schuchardt * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2003-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -25,10 +24,10 @@ * along with GLPK. If not, see . ***********************************************************************/ -#include "glpmpl.h" #if 1 /* 11/VI-2013 */ #include "jd.h" #endif +#include "mpl.h" double fn_gmtime(MPL *mpl) { /* obtain the current calendar time (UTC) */ @@ -38,7 +37,11 @@ double fn_gmtime(MPL *mpl) time(&timer); if (timer == (time_t)(-1)) err: error(mpl, "gmtime(); unable to obtain current calendar time"); +#if 0 /* 29/I-2017 */ tm = gmtime(&timer); +#else + tm = xgmtime(&timer); +#endif if (tm == NULL) goto err; j = jday(tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year); if (j < 0) goto err; diff --git a/resources/3rdparty/glpk-4.57/src/glpmpl06.c b/resources/3rdparty/glpk-4.65/src/mpl/mpl6.c similarity index 97% rename from resources/3rdparty/glpk-4.57/src/glpmpl06.c rename to resources/3rdparty/glpk-4.65/src/mpl/mpl6.c index 67c5aa05e..ac2a03930 100644 --- a/resources/3rdparty/glpk-4.57/src/glpmpl06.c +++ b/resources/3rdparty/glpk-4.65/src/mpl/mpl6.c @@ -1,10 +1,9 @@ -/* glpmpl06.c */ +/* mpl6.c */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2003-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,8 +21,8 @@ * along with GLPK. If not, see . ***********************************************************************/ -#include "glpmpl.h" -#include "glpsql.h" +#include "mpl.h" +#include "mplsql.h" /**********************************************************************/ @@ -79,7 +78,11 @@ static void read_char(struct csv *csv) loop: c = fgetc(csv->fp); if (ferror(csv->fp)) { xprintf("%s:%d: read error - %s\n", csv->fname, csv->count, +#if 0 /* 29/I-2017 */ strerror(errno)); +#else + xstrerr(errno)); +#endif longjmp(csv->jump, 0); } if (feof(csv->fp)) @@ -238,7 +241,11 @@ static struct csv *csv_open_file(TABDCA *dca, int mode) csv->fp = fopen(csv->fname, "r"); if (csv->fp == NULL) { xprintf("csv_driver: unable to open %s - %s\n", +#if 0 /* 29/I-2017 */ csv->fname, strerror(errno)); +#else + csv->fname, xstrerr(errno)); +#endif longjmp(csv->jump, 0); } #if 1 /* 01/VI-2010 */ @@ -282,7 +289,11 @@ static struct csv *csv_open_file(TABDCA *dca, int mode) csv->fp = fopen(csv->fname, "w"); if (csv->fp == NULL) { xprintf("csv_driver: unable to create %s - %s\n", +#if 0 /* 29/I-2017 */ csv->fname, strerror(errno)); +#else + csv->fname, xstrerr(errno)); +#endif longjmp(csv->jump, 0); } /* write field names */ @@ -394,7 +405,11 @@ static int csv_write_record(TABDCA *dca, struct csv *csv) csv->count++; if (ferror(csv->fp)) { xprintf("%s:%d: write error - %s\n", csv->fname, csv->count, +#if 0 /* 29/I-2017 */ strerror(errno)); +#else + xstrerr(errno)); +#endif ret = 1; } return ret; @@ -408,7 +423,11 @@ static int csv_close_file(TABDCA *dca, struct csv *csv) { fflush(csv->fp); if (ferror(csv->fp)) { xprintf("%s:%d: write error - %s\n", csv->fname, +#if 0 /* 29/I-2017 */ csv->count, strerror(errno)); +#else + csv->count, xstrerr(errno)); +#endif ret = 1; } } @@ -460,7 +479,11 @@ static int read_byte(struct dbf *dbf) b = fgetc(dbf->fp); if (ferror(dbf->fp)) { xprintf("%s:0x%X: read error - %s\n", dbf->fname, +#if 0 /* 29/I-2017 */ dbf->offset, strerror(errno)); +#else + dbf->offset, xstrerr(errno)); +#endif longjmp(dbf->jump, 0); } if (feof(dbf->fp)) @@ -707,7 +730,11 @@ static struct dbf *dbf_open_file(TABDCA *dca, int mode) dbf->fp = fopen(dbf->fname, "rb"); if (dbf->fp == NULL) { xprintf("xBASE driver: unable to open %s - %s\n", +#if 0 /* 29/I-2017 */ dbf->fname, strerror(errno)); +#else + dbf->fname, xstrerr(errno)); +#endif longjmp(dbf->jump, 0); } read_header(dca, dbf); @@ -722,7 +749,11 @@ static struct dbf *dbf_open_file(TABDCA *dca, int mode) dbf->fp = fopen(dbf->fname, "wb"); if (dbf->fp == NULL) { xprintf("xBASE driver: unable to create %s - %s\n", +#if 0 /* 29/I-2017 */ dbf->fname, strerror(errno)); +#else + dbf->fname, xstrerr(errno)); +#endif longjmp(dbf->jump, 0); } write_header(dca, dbf); @@ -862,7 +893,11 @@ static int dbf_close_file(TABDCA *dca, struct dbf *dbf) dbf->offset = 4; if (fseek(dbf->fp, dbf->offset, SEEK_SET)) { xprintf("%s:0x%X: seek error - %s\n", dbf->fname, +#if 0 /* 29/I-2017 */ dbf->offset, strerror(errno)); +#else + dbf->offset, xstrerr(errno)); +#endif longjmp(dbf->jump, 0); } write_byte(dbf, dbf->count); @@ -872,7 +907,11 @@ static int dbf_close_file(TABDCA *dca, struct dbf *dbf) fflush(dbf->fp); if (ferror(dbf->fp)) { xprintf("%s:0x%X: write error - %s\n", dbf->fname, +#if 0 /* 29/I-2017 */ dbf->offset, strerror(errno)); +#else + dbf->offset, xstrerr(errno)); +#endif longjmp(dbf->jump, 0); } skip: ; diff --git a/resources/3rdparty/glpk-4.57/src/glpsql.c b/resources/3rdparty/glpk-4.65/src/mpl/mplsql.c similarity index 98% rename from resources/3rdparty/glpk-4.57/src/glpsql.c rename to resources/3rdparty/glpk-4.65/src/mpl/mplsql.c index 9c664dbc5..fcd2afa65 100644 --- a/resources/3rdparty/glpk-4.57/src/glpsql.c +++ b/resources/3rdparty/glpk-4.65/src/mpl/mplsql.c @@ -1,12 +1,11 @@ -/* glpsql.c */ +/* mplsql.c */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * * Author: Heinrich Schuchardt . * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2003-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -28,8 +27,8 @@ #include #endif -#include "glpmpl.h" -#include "glpsql.h" +#include "mpl.h" +#include "mplsql.h" #ifdef ODBC_DLNAME #define HAVE_ODBC @@ -654,7 +653,7 @@ static int is_numeric( * * SYNOPSIS * -* #include "glpsql.h" +* #include "mplsql.h" * void *db_iodbc_open(TABDCA *dca, int mode); * * DESCRIPTION @@ -964,8 +963,13 @@ int db_iodbc_write(TABDCA *dca, void *link) } query = xmalloc( (len + 1 ) * sizeof(char) ); query[0] = 0x00; +#if 0 /* 29/I-2017 */ for (k = 1, part = strtok (template, "?"); (part != NULL); part = strtok (NULL, "?"), k++) +#else + for (k = 1, part = xstrtok (template, "?"); (part != NULL); + part = xstrtok (NULL, "?"), k++) +#endif { if (k > nf) break; strcat( query, part ); @@ -1269,7 +1273,7 @@ MYSQL_RES * STDCALL dl_mysql_use_result(MYSQL *mysql) * * SYNOPSIS * -* #include "glpsql.h" +* #include "mplsql.h" * void *db_mysql_open(TABDCA *dca, int mode); * * DESCRIPTION @@ -1356,10 +1360,19 @@ static void *db_mysql_open_int(TABDCA *dca, int mode, const char arg = xmalloc(i * sizeof(char)); strcpy(arg, dsn); /*tokenize connection string*/ +#if 0 /* 29/I-2017 */ for (i = 1, keyword = strtok (arg, "="); (keyword != NULL); keyword = strtok (NULL, "="), i++) +#else + for (i = 1, keyword = xstrtok (arg, "="); (keyword != NULL); + keyword = xstrtok (NULL, "="), i++) +#endif { +#if 0 /* 29/I-2017 */ value = strtok (NULL, ";"); +#else + value = xstrtok (NULL, ";"); +#endif if (value==NULL) { xprintf("db_mysql_open: Missing value for keyword %s\n", @@ -1582,8 +1595,13 @@ int db_mysql_write(TABDCA *dca, void *link) } query = xmalloc( (len + 1 ) * sizeof(char) ); query[0] = 0x00; +#if 0 /* 29/I-2017 */ for (k = 1, part = strtok (template, "?"); (part != NULL); part = strtok (NULL, "?"), k++) +#else + for (k = 1, part = xstrtok (template, "?"); (part != NULL); + part = xstrtok (NULL, "?"), k++) +#endif { if (k > nf) break; strcat( query, part ); diff --git a/resources/3rdparty/glpk-4.57/src/glpsql.h b/resources/3rdparty/glpk-4.65/src/mpl/mplsql.h similarity index 91% rename from resources/3rdparty/glpk-4.57/src/glpsql.h rename to resources/3rdparty/glpk-4.65/src/mpl/mplsql.h index 2a1650561..11d438bbd 100644 --- a/resources/3rdparty/glpk-4.57/src/glpsql.h +++ b/resources/3rdparty/glpk-4.65/src/mpl/mplsql.h @@ -1,12 +1,11 @@ -/* glpsql.h */ +/* mplsql.h */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * * Author: Heinrich Schuchardt . * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2003-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -24,8 +23,8 @@ * along with GLPK. If not, see . ***********************************************************************/ -#ifndef GLPSQL_H -#define GLPSQL_H +#ifndef MPLSQL_H +#define MPLSQL_H #define db_iodbc_open _glp_db_iodbc_open void *db_iodbc_open(TABDCA *dca, int mode); diff --git a/resources/3rdparty/glpk-4.57/src/glpnpp.h b/resources/3rdparty/glpk-4.65/src/npp/npp.h similarity index 98% rename from resources/3rdparty/glpk-4.57/src/glpnpp.h rename to resources/3rdparty/glpk-4.65/src/npp/npp.h index 6aaebe8d4..428cb23c6 100644 --- a/resources/3rdparty/glpk-4.57/src/glpnpp.h +++ b/resources/3rdparty/glpk-4.65/src/npp/npp.h @@ -1,10 +1,9 @@ -/* glpnpp.h (LP/MIP preprocessor) */ +/* npp.h (LP/MIP preprocessor) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2009-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,19 +21,27 @@ * along with GLPK. If not, see . ***********************************************************************/ -#ifndef GLPNPP_H -#define GLPNPP_H +#ifndef NPP_H +#define NPP_H #include "prob.h" +#if 0 /* 20/XI-2017 */ typedef struct NPP NPP; +#else +typedef struct glp_prep NPP; +#endif typedef struct NPPROW NPPROW; typedef struct NPPCOL NPPCOL; typedef struct NPPAIJ NPPAIJ; typedef struct NPPTSE NPPTSE; typedef struct NPPLFE NPPLFE; +#if 0 /* 20/XI-2017 */ struct NPP +#else +struct glp_prep +#endif { /* LP/MIP preprocessor workspace */ /*--------------------------------------------------------------*/ /* original problem segment */ diff --git a/resources/3rdparty/glpk-4.57/src/glpnpp01.c b/resources/3rdparty/glpk-4.65/src/npp/npp1.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpnpp01.c rename to resources/3rdparty/glpk-4.65/src/npp/npp1.c index 9eb59f28e..51758bad3 100644 --- a/resources/3rdparty/glpk-4.57/src/glpnpp01.c +++ b/resources/3rdparty/glpk-4.65/src/npp/npp1.c @@ -1,10 +1,9 @@ -/* glpnpp01.c */ +/* npp1.c */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2009-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +22,7 @@ ***********************************************************************/ #include "env.h" -#include "glpnpp.h" +#include "npp.h" NPP *npp_create_wksp(void) { /* create LP/MIP preprocessor workspace */ diff --git a/resources/3rdparty/glpk-4.57/src/glpnpp02.c b/resources/3rdparty/glpk-4.65/src/npp/npp2.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpnpp02.c rename to resources/3rdparty/glpk-4.65/src/npp/npp2.c index ec4a455b4..4efcf1d17 100644 --- a/resources/3rdparty/glpk-4.57/src/glpnpp02.c +++ b/resources/3rdparty/glpk-4.65/src/npp/npp2.c @@ -1,10 +1,9 @@ -/* glpnpp02.c */ +/* npp2.c */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2009-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +22,7 @@ ***********************************************************************/ #include "env.h" -#include "glpnpp.h" +#include "npp.h" /*********************************************************************** * NAME diff --git a/resources/3rdparty/glpk-4.57/src/glpnpp03.c b/resources/3rdparty/glpk-4.65/src/npp/npp3.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpnpp03.c rename to resources/3rdparty/glpk-4.65/src/npp/npp3.c index 0c869ee39..883af1277 100644 --- a/resources/3rdparty/glpk-4.57/src/glpnpp03.c +++ b/resources/3rdparty/glpk-4.65/src/npp/npp3.c @@ -1,10 +1,9 @@ -/* glpnpp03.c */ +/* npp3.c */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2009-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +22,7 @@ ***********************************************************************/ #include "env.h" -#include "glpnpp.h" +#include "npp.h" /*********************************************************************** * NAME diff --git a/resources/3rdparty/glpk-4.57/src/glpnpp04.c b/resources/3rdparty/glpk-4.65/src/npp/npp4.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpnpp04.c rename to resources/3rdparty/glpk-4.65/src/npp/npp4.c index 925b1ba0f..d7dd0e868 100644 --- a/resources/3rdparty/glpk-4.57/src/glpnpp04.c +++ b/resources/3rdparty/glpk-4.65/src/npp/npp4.c @@ -1,10 +1,9 @@ -/* glpnpp04.c */ +/* npp4.c */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2009-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +22,7 @@ ***********************************************************************/ #include "env.h" -#include "glpnpp.h" +#include "npp.h" /*********************************************************************** * NAME diff --git a/resources/3rdparty/glpk-4.57/src/glpnpp05.c b/resources/3rdparty/glpk-4.65/src/npp/npp5.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpnpp05.c rename to resources/3rdparty/glpk-4.65/src/npp/npp5.c index 8c8818508..2fad496de 100644 --- a/resources/3rdparty/glpk-4.57/src/glpnpp05.c +++ b/resources/3rdparty/glpk-4.65/src/npp/npp5.c @@ -1,10 +1,9 @@ -/* glpnpp05.c */ +/* npp5.c */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2009-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +22,7 @@ ***********************************************************************/ #include "env.h" -#include "glpnpp.h" +#include "npp.h" /*********************************************************************** * NAME diff --git a/resources/3rdparty/glpk-4.57/src/glpnpp06.c b/resources/3rdparty/glpk-4.65/src/npp/npp6.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/glpnpp06.c rename to resources/3rdparty/glpk-4.65/src/npp/npp6.c index 57d283ec9..b57f86154 100644 --- a/resources/3rdparty/glpk-4.57/src/glpnpp06.c +++ b/resources/3rdparty/glpk-4.65/src/npp/npp6.c @@ -1,10 +1,9 @@ -/* glpnpp06.c (translate feasibility problem to CNF-SAT) */ +/* npp6.c (translate feasibility problem to CNF-SAT) */ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -* 2009, 2010, 2011, 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2011-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -23,7 +22,7 @@ ***********************************************************************/ #include "env.h" -#include "glpnpp.h" +#include "npp.h" /*********************************************************************** * npp_sat_free_row - process free (unbounded) row diff --git a/resources/3rdparty/glpk-4.57/src/proxy/main.c b/resources/3rdparty/glpk-4.65/src/proxy/main.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/proxy/main.c rename to resources/3rdparty/glpk-4.65/src/proxy/main.c diff --git a/resources/3rdparty/glpk-4.57/src/proxy/proxy.c b/resources/3rdparty/glpk-4.65/src/proxy/proxy.c similarity index 99% rename from resources/3rdparty/glpk-4.57/src/proxy/proxy.c rename to resources/3rdparty/glpk-4.65/src/proxy/proxy.c index 31502a7f7..7d8900031 100644 --- a/resources/3rdparty/glpk-4.57/src/proxy/proxy.c +++ b/resources/3rdparty/glpk-4.65/src/proxy/proxy.c @@ -5,7 +5,7 @@ * * Author: Giorgio Sartor <0gioker0@gmail.com>. * -* Copyright (C) 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2013, 2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -1013,6 +1013,18 @@ static int do_refine(struct csa *csa, glp_prob *lp_ref, int ncols, else { status = glp_get_status(lp_ref); } + +#if 1 /* 29/II-2016 by mao as reported by Chris */ + switch (status) + { case GLP_OPT: + case GLP_FEAS: + break; + default: + status = GLP_UNDEF; + break; + } +#endif + #ifdef PROXY_DEBUG xprintf("STATUS REFINING = %d\n",status); #endif diff --git a/resources/3rdparty/glpk-4.57/src/proxy/proxy.h b/resources/3rdparty/glpk-4.65/src/proxy/proxy.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/proxy/proxy.h rename to resources/3rdparty/glpk-4.65/src/proxy/proxy.h diff --git a/resources/3rdparty/glpk-4.57/src/proxy/proxy1.c b/resources/3rdparty/glpk-4.65/src/proxy/proxy1.c similarity index 61% rename from resources/3rdparty/glpk-4.57/src/proxy/proxy1.c rename to resources/3rdparty/glpk-4.65/src/proxy/proxy1.c index b05fe8e4f..5f9850d42 100644 --- a/resources/3rdparty/glpk-4.57/src/proxy/proxy1.c +++ b/resources/3rdparty/glpk-4.65/src/proxy/proxy1.c @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2013 Andrew Makhorin, Department for Applied +* Copyright (C) 2013, 2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -22,7 +22,7 @@ ***********************************************************************/ #include "env.h" -#include "glpios.h" +#include "ios.h" #include "proxy.h" void ios_proxy_heur(glp_tree *T) @@ -49,7 +49,37 @@ void ios_proxy_heur(glp_tree *T) xfree(xinit); } if (status == 0) +#if 0 /* 17/III-2016 */ glp_ios_heur_sol(T, xstar); +#else + { /* sometimes the proxy heuristic reports a wrong solution, so + * make sure that the solution is really integer feasible */ + int i, feas1, feas2, ae_ind, re_ind; + double ae_max, re_max; + glp_copy_prob(prob, T->mip, 0); + for (j = 1; j <= prob->n; j++) + prob->col[j]->mipx = xstar[j]; + for (i = 1; i <= prob->m; i++) + { GLPROW *row; + GLPAIJ *aij; + row = prob->row[i]; + row->mipx = 0.0; + for (aij = row->ptr; aij != NULL; aij = aij->r_next) + row->mipx += aij->val * aij->col->mipx; + } + glp_check_kkt(prob, GLP_MIP, GLP_KKT_PE, &ae_max, &ae_ind, + &re_max, &re_ind); + feas1 = (re_max <= 1e-6); + glp_check_kkt(prob, GLP_MIP, GLP_KKT_PB, &ae_max, &ae_ind, + &re_max, &re_ind); + feas2 = (re_max <= 1e-6); + if (feas1 && feas2) + glp_ios_heur_sol(T, xstar); + else + xprintf("WARNING: PROXY HEURISTIC REPORTED WRONG SOLUTION; " + "SOLUTION REJECTED\n"); + } +#endif xfree(xstar); glp_delete_prob(prob); done: return; diff --git a/resources/3rdparty/glpk-4.57/src/simplex/simplex.h b/resources/3rdparty/glpk-4.65/src/simplex/simplex.h similarity index 93% rename from resources/3rdparty/glpk-4.57/src/simplex/simplex.h rename to resources/3rdparty/glpk-4.65/src/simplex/simplex.h index 48205881d..9a5acdb20 100644 --- a/resources/3rdparty/glpk-4.57/src/simplex/simplex.h +++ b/resources/3rdparty/glpk-4.65/src/simplex/simplex.h @@ -28,11 +28,11 @@ #define spx_primal _glp_spx_primal int spx_primal(glp_prob *P, const glp_smcp *parm); -/* driver to primal simplex method */ +/* driver to the primal simplex method */ #define spy_dual _glp_spy_dual int spy_dual(glp_prob *P, const glp_smcp *parm); -/* driver to dual simplex method */ +/* driver to the dual simplex method */ #endif diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxat.c b/resources/3rdparty/glpk-4.65/src/simplex/spxat.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/simplex/spxat.c rename to resources/3rdparty/glpk-4.65/src/simplex/spxat.c diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxat.h b/resources/3rdparty/glpk-4.65/src/simplex/spxat.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/simplex/spxat.h rename to resources/3rdparty/glpk-4.65/src/simplex/spxat.h diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxchuzc.c b/resources/3rdparty/glpk-4.65/src/simplex/spxchuzc.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/simplex/spxchuzc.c rename to resources/3rdparty/glpk-4.65/src/simplex/spxchuzc.c diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxchuzc.h b/resources/3rdparty/glpk-4.65/src/simplex/spxchuzc.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/simplex/spxchuzc.h rename to resources/3rdparty/glpk-4.65/src/simplex/spxchuzc.h diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxchuzr.c b/resources/3rdparty/glpk-4.65/src/simplex/spxchuzr.c similarity index 64% rename from resources/3rdparty/glpk-4.57/src/simplex/spxchuzr.c rename to resources/3rdparty/glpk-4.65/src/simplex/spxchuzr.c index 49db8bd14..8bef77ba2 100644 --- a/resources/3rdparty/glpk-4.57/src/simplex/spxchuzr.c +++ b/resources/3rdparty/glpk-4.65/src/simplex/spxchuzr.c @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2015 Andrew Makhorin, Department for Applied +* Copyright (C) 2015-2018 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -385,4 +385,210 @@ int spx_chuzr_harris(SPXLP *lp, int phase, const double beta[/*1+m*/], done: return p; } +#if 1 /* 22/VI-2017 */ +/*********************************************************************** +* spx_ls_eval_bp - determine penalty function break points +* +* This routine determines break points of the penalty function (which +* is the sum of primal infeasibilities). +* +* The parameters lp, beta, q, dq, tcol, and tol_piv have the same +* meaning as for the routine spx_chuzr_std (see above). +* +* The routine stores the break-points determined to the array elements +* bp[1], ..., bp[nbp] in *arbitrary* order, where 0 <= nbp <= 2*m+1 is +* the number of break-points returned by the routine on exit. */ + +int spx_ls_eval_bp(SPXLP *lp, const double beta[/*1+m*/], + int q, double dq, const double tcol[/*1+m*/], double tol_piv, + SPXBP bp[/*1+2*m+1*/]) +{ int m = lp->m; + int n = lp->n; + double *c = lp->c; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + int i, k, nbp; + double s, alfa; + xassert(1 <= q && q <= n-m); + xassert(dq != 0.0); + s = (dq < 0.0 ? +1.0 : -1.0); + nbp = 0; + /* if chosen non-basic variable xN[q] is double-bounded, include + * it in the list, because it can cross its opposite bound */ + k = head[m+q]; /* x[k] = xN[q] */ + if (l[k] != -DBL_MAX && u[k] != +DBL_MAX) + { nbp++; + bp[nbp].i = 0; + xassert(l[k] < u[k]); /* xN[q] cannot be fixed */ + bp[nbp].teta = u[k] - l[k]; + bp[nbp].dc = s; + } + /* build the list of all basic variables xB[i] that can cross + * their bound(s) for the ray parameter 0 <= teta < teta_max */ + for (i = 1; i <= m; i++) + { k = head[i]; /* x[k] = xB[i] */ + xassert(l[k] <= u[k]); + /* determine alfa such that (delta xB[i]) = alfa * teta */ + alfa = s * tcol[i]; + if (alfa >= +tol_piv) + { /* xB[i] increases on increasing teta */ + if (l[k] == u[k]) + { /* xB[i] is fixed at lB[i] = uB[i] */ + if (c[k] <= 0.0) + { /* increasing xB[i] can cross its fixed value lB[i], + * because currently xB[i] <= lB[i] */ + nbp++; + bp[nbp].i = +i; + bp[nbp].teta = (l[k] - beta[i]) / alfa; + /* if xB[i] > lB[i] then cB[i] = +1 */ + bp[nbp].dc = +1.0 - c[k]; + } + } + else + { if (l[k] != -DBL_MAX && c[k] < 0.0) + { /* increasing xB[i] can cross its lower bound lB[i], + * because currently xB[i] < lB[i] */ + nbp++; + bp[nbp].i = +i; + bp[nbp].teta = (l[k] - beta[i]) / alfa; + bp[nbp].dc = +1.0; + } + if (u[k] != +DBL_MAX && c[k] <= 0.0) + { /* increasing xB[i] can cross its upper bound uB[i], + * because currently xB[i] does not violate it */ + nbp++; + bp[nbp].i = -i; + bp[nbp].teta = (u[k] - beta[i]) / alfa; + bp[nbp].dc = +1.0; + } + } + } + else if (alfa <= -tol_piv) + { /* xB[i] decreases on increasing teta */ + if (l[k] == u[k]) + { /* xB[i] is fixed at lB[i] = uB[i] */ + if (c[k] >= 0.0) + { /* decreasing xB[i] can cross its fixed value lB[i], + * because currently xB[i] >= lB[i] */ + nbp++; + bp[nbp].i = +i; + bp[nbp].teta = (l[k] - beta[i]) / alfa; + /* if xB[i] < lB[i] then cB[i] = -1 */ + bp[nbp].dc = -1.0 - c[k]; + } + } + else + { if (l[k] != -DBL_MAX && c[k] >= 0.0) + { /* decreasing xB[i] can cross its lower bound lB[i], + * because currently xB[i] does not violate it */ + nbp++; + bp[nbp].i = +i; + bp[nbp].teta = (l[k] - beta[i]) / alfa; + bp[nbp].dc = -1.0; + } + if (u[k] != +DBL_MAX && c[k] > 0.0) + { /* decreasing xB[i] can cross its upper bound uB[i], + * because currently xB[i] > uB[i] */ + nbp++; + bp[nbp].i = -i; + bp[nbp].teta = (u[k] - beta[i]) / alfa; + bp[nbp].dc = -1.0; + } + } + } + else + { /* xB[i] does not depend on teta within a tolerance */ + continue; + } + /* teta < 0 may happen only due to round-off errors when the + * current value of xB[i] is *close* to its (lower or upper) + * bound; in this case we replace teta by exact zero */ + if (bp[nbp].teta < 0.0) + bp[nbp].teta = 0.0; + } + xassert(nbp <= 2*m+1); + return nbp; +} +#endif + +#if 1 /* 22/VI-2017 */ +/*********************************************************************** +* spx_ls_select_bp - select and process penalty function break points +* +* This routine selects a next portion of the penalty function break +* points and processes them. +* +* On entry to the routine it is assumed that break points bp[1], ..., +* bp[num] are already processed, and slope is the penalty function +* slope to the right of the last processed break point bp[num]. +* (Initially, when num = 0, slope should be specified as -fabs(d[q]), +* where d[q] is the reduced cost of chosen non-basic variable xN[q].) +* +* The routine selects break points among bp[num+1], ..., bp[nbp], for +* which teta <= teta_lim, and moves these break points to the array +* elements bp[num+1], ..., bp[num1], where num <= num1 <= 2*m+1 is the +* new number of processed break points returned by the routine on +* exit. Then the routine sorts the break points by ascending teta and +* computes the change of the penalty function relative to its value at +* teta = 0. +* +* On exit the routine also replaces the parameter slope with a new +* value that corresponds to the new last break-point bp[num1]. */ + +static int CDECL fcmp(const void *v1, const void *v2) +{ const SPXBP *p1 = v1, *p2 = v2; + if (p1->teta < p2->teta) + return -1; + else if (p1->teta > p2->teta) + return +1; + else + return 0; +} + +int spx_ls_select_bp(SPXLP *lp, const double tcol[/*1+m*/], + int nbp, SPXBP bp[/*1+m+m+1*/], int num, double *slope, double + teta_lim) +{ int m = lp->m; + int i, t, num1; + double teta, dz; + xassert(0 <= num && num <= nbp && nbp <= m+m+1); + /* select a new portion of break points */ + num1 = num; + for (t = num+1; t <= nbp; t++) + { if (bp[t].teta <= teta_lim) + { /* move break point to the beginning of the new portion */ + num1++; + i = bp[num1].i, teta = bp[num1].teta, dz = bp[num1].dc; + bp[num1].i = bp[t].i, bp[num1].teta = bp[t].teta, + bp[num1].dc = bp[t].dc; + bp[t].i = i, bp[t].teta = teta, bp[t].dc = dz; + } + } + /* sort new break points bp[num+1], ..., bp[num1] by ascending + * the ray parameter teta */ + if (num1 - num > 1) + qsort(&bp[num+1], num1 - num, sizeof(SPXBP), fcmp); + /* calculate the penalty function change at the new break points + * selected */ + for (t = num+1; t <= num1; t++) + { /* calculate the penalty function change relative to its value + * at break point bp[t-1] */ + dz = (*slope) * (bp[t].teta - (t == 1 ? 0.0 : bp[t-1].teta)); + /* calculate the penalty function change relative to its value + * at teta = 0 */ + bp[t].dz = (t == 1 ? 0.0 : bp[t-1].dz) + dz; + /* calculate a new slope of the penalty function to the right + * of the current break point bp[t] */ + i = (bp[t].i >= 0 ? bp[t].i : -bp[t].i); + xassert(0 <= i && i <= m); + if (i == 0) + *slope += fabs(1.0 * bp[t].dc); + else + *slope += fabs(tcol[i] * bp[t].dc); + } + return num1; +} +#endif + /* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxchuzr.h b/resources/3rdparty/glpk-4.65/src/simplex/spxchuzr.h similarity index 55% rename from resources/3rdparty/glpk-4.57/src/simplex/spxchuzr.h rename to resources/3rdparty/glpk-4.65/src/simplex/spxchuzr.h index 74f6e444a..3ec900503 100644 --- a/resources/3rdparty/glpk-4.57/src/simplex/spxchuzr.h +++ b/resources/3rdparty/glpk-4.65/src/simplex/spxchuzr.h @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2015 Andrew Makhorin, Department for Applied +* Copyright (C) 2015-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -38,6 +38,40 @@ int spx_chuzr_harris(SPXLP *lp, int phase, const double beta[/*1+m*/], double tol_piv, double tol, double tol1); /* choose basic variable (Harris' ratio test) */ +#if 1 /* 22/VI-2017 */ +typedef struct SPXBP SPXBP; + +struct SPXBP +{ /* penalty function (sum of infeasibilities) break point */ + int i; + /* basic variable xB[i], 1 <= i <= m, that intersects its bound + * at this break point + * i > 0 if xB[i] intersects its lower bound (or fixed value) + * i < 0 if xB[i] intersects its upper bound + * i = 0 if xN[q] intersects its opposite bound */ + double teta; + /* ray parameter value, teta >= 0, at this break point */ + double dc; + /* increment of the penalty function coefficient cB[i] at this + * break point */ + double dz; + /* increment, z[t] - z[0], of the penalty function at this break + * point */ +}; + +#define spx_ls_eval_bp _glp_spx_ls_eval_bp +int spx_ls_eval_bp(SPXLP *lp, const double beta[/*1+m*/], + int q, double dq, const double tcol[/*1+m*/], double tol_piv, + SPXBP bp[/*1+2*m+1*/]); +/* determine penalty function break points */ + +#define spx_ls_select_bp _glp_spx_ls_select_bp +int spx_ls_select_bp(SPXLP *lp, const double tcol[/*1+m*/], + int nbp, SPXBP bp[/*1+m+m+1*/], int num, double *slope, double + teta_lim); +/* select and process penalty function break points */ +#endif + #endif /* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxlp.c b/resources/3rdparty/glpk-4.65/src/simplex/spxlp.c similarity index 83% rename from resources/3rdparty/glpk-4.57/src/simplex/spxlp.c rename to resources/3rdparty/glpk-4.65/src/simplex/spxlp.c index fe788d84d..90ce26363 100644 --- a/resources/3rdparty/glpk-4.57/src/simplex/spxlp.c +++ b/resources/3rdparty/glpk-4.65/src/simplex/spxlp.c @@ -314,6 +314,22 @@ void spx_eval_rho(SPXLP *lp, int i, double rho[/*1+m*/]) return; } +#if 1 /* 31/III-2016 */ +void spx_eval_rho_s(SPXLP *lp, int i, FVS *rho) +{ /* sparse version of spx_eval_rho */ + int m = lp->m; + xassert(1 <= i && i <= m); + /* compute rho = inv(B') * e[i] */ + xassert(rho->n == m); + fvs_clear_vec(rho); + rho->nnz = 1; + rho->ind[1] = i; + rho->vec[i] = 1.0; + bfd_btran_s(lp->bfd, rho); + return; +} +#endif + /*********************************************************************** * spx_eval_tij - compute element T[i,j] of simplex table * @@ -514,6 +530,93 @@ void spx_update_beta(SPXLP *lp, double beta[/*1+m*/], int p, return; } +#if 1 /* 30/III-2016 */ +void spx_update_beta_s(SPXLP *lp, double beta[/*1+m*/], int p, + int p_flag, int q, const FVS *tcol) +{ /* sparse version of spx_update_beta */ + int m = lp->m; + int n = lp->n; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + char *flag = lp->flag; + int nnz = tcol->nnz; + int *ind = tcol->ind; + double *vec = tcol->vec; + int i, k; + double delta_p, delta_q; + xassert(tcol->n == m); + if (p < 0) + { /* special case: xN[q] goes to its opposite bound */ +#if 0 /* 11/VI-2017 */ + /* FIXME: not tested yet */ + xassert(0); +#endif + xassert(1 <= q && q <= n-m); + /* xN[q] should be double-bounded variable */ + k = head[m+q]; /* x[k] = xN[q] */ + xassert(l[k] != -DBL_MAX && u[k] != +DBL_MAX && l[k] != u[k]); + /* determine delta xN[q] */ + if (flag[q]) + { /* xN[q] goes from its upper bound to its lower bound */ + delta_q = l[k] - u[k]; + } + else + { /* xN[q] goes from its lower bound to its upper bound */ + delta_q = u[k] - l[k]; + } + } + else + { /* xB[p] leaves the basis, xN[q] enters the basis */ + xassert(1 <= p && p <= m); + xassert(1 <= q && q <= n-m); + /* determine delta xB[p] */ + k = head[p]; /* x[k] = xB[p] */ + if (p_flag) + { /* xB[p] goes to its upper bound */ + xassert(l[k] != u[k] && u[k] != +DBL_MAX); + delta_p = u[k] - beta[p]; + } + else if (l[k] == -DBL_MAX) + { /* unbounded xB[p] becomes non-basic (unusual case) */ + xassert(u[k] == +DBL_MAX); + delta_p = 0.0 - beta[p]; + } + else + { /* xB[p] goes to its lower bound or becomes fixed */ + delta_p = l[k] - beta[p]; + } + /* determine delta xN[q] */ + delta_q = delta_p / vec[p]; + /* compute new beta[p], which is the value of xN[q] in the + * adjacent basis */ + k = head[m+q]; /* x[k] = xN[q] */ + if (flag[q]) + { /* xN[q] has its upper bound active */ + xassert(l[k] != u[k] && u[k] != +DBL_MAX); + beta[p] = u[k] + delta_q; + } + else if (l[k] == -DBL_MAX) + { /* xN[q] is non-basic unbounded variable */ + xassert(u[k] == +DBL_MAX); + beta[p] = 0.0 + delta_q; + } + else + { /* xN[q] has its lower bound active or is fixed (latter + * case is unusual) */ + beta[p] = l[k] + delta_q; + } + } + /* compute new beta[i] for all i != p */ + for (k = 1; k <= nnz; k++) + { i = ind[k]; + if (i != p) + beta[i] += vec[i] * delta_q; + } + return; +} +#endif + /*********************************************************************** * spx_update_d - update reduced costs of non-basic variables * @@ -594,6 +697,48 @@ double spx_update_d(SPXLP *lp, double d[/*1+n-m*/], int p, int q, return e; } +#if 1 /* 30/III-2016 */ +double spx_update_d_s(SPXLP *lp, double d[/*1+n-m*/], int p, int q, + const FVS *trow, const FVS *tcol) +{ /* sparse version of spx_update_d */ + int m = lp->m; + int n = lp->n; + double *c = lp->c; + int *head = lp->head; + int trow_nnz = trow->nnz; + int *trow_ind = trow->ind; + double *trow_vec = trow->vec; + int tcol_nnz = tcol->nnz; + int *tcol_ind = tcol->ind; + double *tcol_vec = tcol->vec; + int i, j, k; + double dq, e; + xassert(1 <= p && p <= m); + xassert(1 <= q && q <= n); + xassert(trow->n == n-m); + xassert(tcol->n == m); + /* compute d[q] in current basis more accurately */ + k = head[m+q]; /* x[k] = xN[q] */ + dq = c[k]; + for (k = 1; k <= tcol_nnz; k++) + { i = tcol_ind[k]; + dq += tcol_vec[i] * c[head[i]]; + } + /* compute relative error in d[q] */ + e = fabs(dq - d[q]) / (1.0 + fabs(dq)); + /* compute new d[q], which is the reduced cost of xB[p] in the + * adjacent basis */ + d[q] = (dq /= tcol_vec[p]); + /* compute new d[j] for all j != q */ + for (k = 1; k <= trow_nnz; k++) + { j = trow_ind[k]; + if (j != q) + d[j] -= trow_vec[j] * dq; + } + return e; +} +#endif + /*********************************************************************** * spx_change_basis - change current basis to adjacent one * diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxlp.h b/resources/3rdparty/glpk-4.65/src/simplex/spxlp.h similarity index 93% rename from resources/3rdparty/glpk-4.57/src/simplex/spxlp.h rename to resources/3rdparty/glpk-4.65/src/simplex/spxlp.h index e13528c4c..29a135fec 100644 --- a/resources/3rdparty/glpk-4.57/src/simplex/spxlp.h +++ b/resources/3rdparty/glpk-4.65/src/simplex/spxlp.h @@ -182,6 +182,12 @@ void spx_eval_tcol(SPXLP *lp, int j, double tcol[/*1+m*/]); void spx_eval_rho(SPXLP *lp, int i, double rho[/*1+m*/]); /* compute i-th row of basis matrix inverse */ +#if 1 /* 31/III-2016 */ +#define spx_eval_rho_s _glp_spx_eval_rho_s +void spx_eval_rho_s(SPXLP *lp, int i, FVS *rho); +/* sparse version of spx_eval_rho */ +#endif + #define spx_eval_tij _glp_spx_eval_tij double spx_eval_tij(SPXLP *lp, const double rho[/*1+m*/], int j); /* compute element T[i,j] of simplex table */ @@ -196,11 +202,25 @@ void spx_update_beta(SPXLP *lp, double beta[/*1+m*/], int p, int p_flag, int q, const double tcol[/*1+m*/]); /* update values of basic variables */ +#if 1 /* 30/III-2016 */ +#define spx_update_beta_s _glp_spx_update_beta_s +void spx_update_beta_s(SPXLP *lp, double beta[/*1+m*/], int p, + int p_flag, int q, const FVS *tcol); +/* sparse version of spx_update_beta */ +#endif + #define spx_update_d _glp_spx_update_d double spx_update_d(SPXLP *lp, double d[/*1+n-m*/], int p, int q, const double trow[/*1+n-m*/], const double tcol[/*1+m*/]); /* update reduced costs of non-basic variables */ +#if 1 /* 30/III-2016 */ +#define spx_update_d_s _glp_spx_update_d_s +double spx_update_d_s(SPXLP *lp, double d[/*1+n-m*/], int p, int q, + const FVS *trow, const FVS *tcol); +/* sparse version of spx_update_d */ +#endif + #define spx_change_basis _glp_spx_change_basis void spx_change_basis(SPXLP *lp, int p, int p_flag, int q); /* change current basis to adjacent one */ diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxnt.c b/resources/3rdparty/glpk-4.65/src/simplex/spxnt.c similarity index 87% rename from resources/3rdparty/glpk-4.57/src/simplex/spxnt.c rename to resources/3rdparty/glpk-4.65/src/simplex/spxnt.c index cf3e1f2be..7eaac8529 100644 --- a/resources/3rdparty/glpk-4.57/src/simplex/spxnt.c +++ b/resources/3rdparty/glpk-4.65/src/simplex/spxnt.c @@ -242,6 +242,49 @@ void spx_nt_prod(SPXLP *lp, SPXNT *nt, double y[/*1+n-m*/], int ign, return; } +#if 1 /* 31/III-2016 */ +void spx_nt_prod_s(SPXLP *lp, SPXNT *nt, FVS *y, int ign, double s, + const FVS *x, double eps) +{ /* sparse version of spx_nt_prod */ + int *NT_ptr = nt->ptr; + int *NT_len = nt->len; + int *NT_ind = nt->ind; + double *NT_val = nt->val; + int *x_ind = x->ind; + double *x_vec = x->vec; + int *y_ind = y->ind; + double *y_vec = y->vec; + int i, j, k, nnz, ptr, end; + double t; + xassert(x->n == lp->m); + xassert(y->n == lp->n-lp->m); + if (ign) + { /* y := 0 */ + fvs_clear_vec(y); + } + nnz = y->nnz; + for (k = x->nnz; k >= 1; k--) + { i = x_ind[k]; + /* y := y + s * (i-th row of N) * x[i] */ + t = s * x_vec[i]; + ptr = NT_ptr[i]; + end = ptr + NT_len[i]; + for (; ptr < end; ptr++) + { j = NT_ind[ptr]; + if (y_vec[j] == 0.0) + y_ind[++nnz] = j; + y_vec[j] += NT_val[ptr] * t; + /* don't forget about numeric cancellation */ + if (y_vec[j] == 0.0) + y_vec[j] = DBL_MIN; + } + } + y->nnz = nnz; + fvs_adjust_vec(y, eps); + return; +} +#endif + /*********************************************************************** * spx_free_nt - deallocate matrix N in sparse row-wise format * diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxnt.h b/resources/3rdparty/glpk-4.65/src/simplex/spxnt.h similarity index 93% rename from resources/3rdparty/glpk-4.57/src/simplex/spxnt.h rename to resources/3rdparty/glpk-4.65/src/simplex/spxnt.h index d2622404c..857917b8d 100644 --- a/resources/3rdparty/glpk-4.57/src/simplex/spxnt.h +++ b/resources/3rdparty/glpk-4.65/src/simplex/spxnt.h @@ -80,6 +80,13 @@ void spx_nt_prod(SPXLP *lp, SPXNT *nt, double y[/*1+n-m*/], int ign, double s, const double x[/*1+m*/]); /* compute product y := y + s * N'* x */ +#if 1 /* 31/III-2016 */ +#define spx_nt_prod_s _glp_spx_nt_prod_s +void spx_nt_prod_s(SPXLP *lp, SPXNT *nt, FVS *y, int ign, double s, + const FVS *x, double eps); +/* sparse version of spx_nt_prod */ +#endif + #define spx_free_nt _glp_spx_free_nt void spx_free_nt(SPXLP *lp, SPXNT *nt); /* deallocate matrix N in sparse row-wise format */ diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxprim.c b/resources/3rdparty/glpk-4.65/src/simplex/spxprim.c similarity index 59% rename from resources/3rdparty/glpk-4.57/src/simplex/spxprim.c rename to resources/3rdparty/glpk-4.65/src/simplex/spxprim.c index b22133ff0..e1cdfb5ab 100644 --- a/resources/3rdparty/glpk-4.57/src/simplex/spxprim.c +++ b/resources/3rdparty/glpk-4.65/src/simplex/spxprim.c @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2015 Andrew Makhorin, Department for Applied +* Copyright (C) 2015-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -21,6 +21,10 @@ * along with GLPK. If not, see . ***********************************************************************/ +#if 1 /* 18/VII-2017 */ +#define SCALE_Z 1 +#endif + #include "env.h" #include "simplex.h" #include "spxat.h" @@ -29,18 +33,6 @@ #include "spxchuzr.h" #include "spxprob.h" -#define USE_AT 0 -/* 1 - use A in row-wise format - * 0 - use N in row-wise format */ - -#define EXCL 1 -/* 1 - exclude fixed non-basic variables - * 0 - don't exclude variables */ - -#define SHIFT 1 -/* 1 - shift bounds of variables toward zero - * 0 - don't shift bounds of variables */ - #define CHECK_ACCURACY 0 /* (for debugging) */ @@ -53,8 +45,16 @@ struct csa /* original optimization direction: * +1 - minimization * -1 - maximization */ - double *c; /* double c[1+n]; */ +#if SCALE_Z + double fz; + /* factor used to scale original objective */ +#endif + double *orig_c; /* double orig_c[1+n]; */ /* copy of original objective coefficients */ + double *orig_l; /* double orig_l[1+n]; */ + /* copy of original lower bounds */ + double *orig_u; /* double orig_u[1+n]; */ + /* copy of original upper bounds */ SPXAT *at; /* mxn-matrix A of constraint coefficients, in sparse row-wise * format (NULL if not used) */ @@ -67,14 +67,14 @@ struct csa * 1 - searching for primal feasible solution * 2 - searching for optimal solution */ double *beta; /* double beta[1+m]; */ - /* beta[i] is primal value of basic variable xB[i] */ + /* beta[i] is a primal value of basic variable xB[i] */ int beta_st; /* status of the vector beta: * 0 - undefined * 1 - just computed * 2 - updated */ double *d; /* double d[1+n-m]; */ - /* d[j] is reduced cost of non-basic variable xN[j] */ + /* d[j] is a reduced cost of non-basic variable xN[j] */ int d_st; /* status of the vector d: * 0 - undefined @@ -90,8 +90,16 @@ struct csa * variables xN[j] */ int q; /* xN[q] is a non-basic variable chosen to enter the basis */ +#if 0 /* 11/VI-2017 */ double *tcol; /* double tcol[1+m]; */ +#else + FVS tcol; /* FVS tcol[1:m]; */ +#endif /* q-th (pivot) column of the simplex table */ +#if 1 /* 23/VI-2017 */ + SPXBP *bp; /* SPXBP bp[1+2*m+1]; */ + /* penalty function break points */ +#endif int p; /* xB[p] is a basic variable chosen to leave the basis; * p = 0 means that no basic variable reaches its bound; @@ -100,20 +108,37 @@ struct csa int p_flag; /* if this flag is set, the active bound of xB[p] in the adjacent * basis should be set to the upper bound */ +#if 0 /* 11/VI-2017 */ double *trow; /* double trow[1+n-m]; */ +#else + FVS trow; /* FVS trow[1:n-m]; */ +#endif /* p-th (pivot) row of the simplex table */ +#if 0 /* 09/VII-2017 */ double *work; /* double work[1+m]; */ /* working array */ +#else + FVS work; /* FVS work[1:m]; */ + /* working vector */ +#endif int p_stat, d_stat; /* primal and dual solution statuses */ /*--------------------------------------------------------------*/ /* control parameters (see struct glp_smcp) */ int msg_lev; /* message level */ +#if 0 /* 23/VI-2017 */ int harris; /* ratio test technique: * 0 - textbook ratio test * 1 - Harris' two pass ratio test */ +#else + int r_test; + /* ratio test technique: + * GLP_RT_STD - textbook ratio test + * GLP_RT_HAR - Harris' two pass ratio test + * GLP_RT_FLIP - long-step ratio test (only for phase I) */ +#endif double tol_bnd, tol_bnd1; /* primal feasibility tolerances */ double tol_dj, tol_dj1; @@ -125,7 +150,11 @@ struct csa int tm_lim; /* time limit, milliseconds */ int out_frq; +#if 0 /* 15/VII-2017 */ /* display output frequency, iterations */ +#else + /* display output frequency, milliseconds */ +#endif int out_dly; /* display output delay, milliseconds */ /*--------------------------------------------------------------*/ @@ -140,8 +169,21 @@ struct csa * jumps to its opposite bound) */ int it_dpy; /* simplex iteration count at most recent display output */ +#if 1 /* 15/VII-2017 */ + double tm_dpy; + /* time value at most recent display output */ +#endif int inv_cnt; /* basis factorization count since most recent display output */ +#if 1 /* 01/VII-2017 */ + int degen; + /* count of successive degenerate iterations; this count is used + * to detect stalling */ +#endif +#if 1 /* 23/VI-2017 */ + int ns_cnt, ls_cnt; + /* normal and long-step iteration counts */ +#endif }; /*********************************************************************** @@ -325,6 +367,7 @@ static int check_feas(struct csa *csa, int phase, double tol, double * The routine returns the number of objective coefficients which were * set to zero. */ +#if 0 static int adjust_penalty(struct csa *csa, double tol, double tol1) { SPXLP *lp = csa->lp; int m = lp->m; @@ -360,6 +403,48 @@ static int adjust_penalty(struct csa *csa, double tol, double tol1) } return count; } +#else +static int adjust_penalty(struct csa *csa, int num, const int + ind[/*1+num*/], double tol, double tol1) +{ SPXLP *lp = csa->lp; + int m = lp->m; + double *c = lp->c; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + double *beta = csa->beta; + int i, k, t, cnt = 0; + double lk, uk, eps; + xassert(csa->phase == 1); + /* walk thru the specified list of basic variables */ + for (t = 1; t <= num; t++) + { i = ind[t]; + xassert(1 <= i && i <= m); + k = head[i]; /* x[k] = xB[i] */ + if (c[k] < 0.0) + { /* x[k] violates its original lower bound */ + lk = l[k]; + xassert(lk != -DBL_MAX); + eps = tol + tol1 * (lk >= 0.0 ? +lk : -lk); + if (beta[i] >= lk - eps) + { /* however, violation is close to zero */ + c[k] = 0.0, cnt++; + } + } + else if (c[k] > 0.0) + { /* x[k] violates its original upper bound */ + uk = u[k]; + xassert(uk != +DBL_MAX); + eps = tol + tol1 * (uk >= 0.0 ? +uk : -uk); + if (beta[i] <= uk + eps) + { /* however, violation is close to zero */ + c[k] = 0.0, cnt++; + } + } + } + return cnt; +} +#endif #if CHECK_ACCURACY /*********************************************************************** @@ -493,7 +578,10 @@ static void check_accuracy(struct csa *csa) * the routine attempts to choose another xN[q] and xB[p] in order to * avoid badly conditioned adjacent bases. */ -static void choose_pivot(struct csa *csa) +#if 1 /* 17/III-2016 */ +#define MIN_RATIO 0.0001 + +static int choose_pivot(struct csa *csa) { SPXLP *lp = csa->lp; int m = lp->m; int n = lp->n; @@ -501,13 +589,33 @@ static void choose_pivot(struct csa *csa) double *d = csa->d; SPXSE *se = csa->se; int *list = csa->list; - int nnn, try, q, t, p_flag, p; +#if 0 /* 09/VII-2017 */ double *tcol = csa->work; - /* initial number of eligible non-basic variables */ +#else + double *tcol = csa->work.vec; +#endif + double tol_piv = csa->tol_piv; + int try, nnn, /*i,*/ p, p_flag, q, t; + double big, /*temp,*/ best_ratio; +#if 1 /* 23/VI-2017 */ + double *c = lp->c; + int *head = lp->head; + SPXBP *bp = csa->bp; + int nbp, t_best, ret, k; + double dz_best; +#endif + xassert(csa->beta_st); + xassert(csa->d_st); +more: /* initial number of eligible non-basic variables */ nnn = csa->num; /* nothing has been chosen so far */ csa->q = 0; + best_ratio = 0.0; +#if 0 /* 23/VI-2017 */ try = 0; +#else + try = ret = 0; +#endif try: /* choose non-basic variable xN[q] */ xassert(nnn > 0); try++; @@ -522,34 +630,162 @@ try: /* choose non-basic variable xN[q] */ xassert(1 <= q && q <= n-m); /* compute q-th column of the simplex table */ spx_eval_tcol(lp, q, tcol); +#if 0 + /* big := max(1, |tcol[1]|, ..., |tcol[m]|) */ + big = 1.0; + for (i = 1; i <= m; i++) + { temp = tcol[i]; + if (temp < 0.0) + temp = - temp; + if (big < temp) + big = temp; + } +#else + /* this still puzzles me */ + big = 1.0; +#endif /* choose basic variable xB[p] */ +#if 1 /* 23/VI-2017 */ + if (csa->phase == 1 && csa->r_test == GLP_RT_FLIP && try <= 2) + { /* long-step ratio test */ + int t, num, num1; + double slope, teta_lim; + /* determine penalty function break points */ + nbp = spx_ls_eval_bp(lp, beta, q, d[q], tcol, tol_piv, bp); + if (nbp < 2) + goto skip; + /* set initial slope */ + slope = - fabs(d[q]); + /* estimate initial teta_lim */ + teta_lim = DBL_MAX; + for (t = 1; t <= nbp; t++) + { if (teta_lim > bp[t].teta) + teta_lim = bp[t].teta; + } + xassert(teta_lim >= 0.0); + if (teta_lim < 1e-3) + teta_lim = 1e-3; + /* nothing has been chosen so far */ + t_best = 0, dz_best = 0.0, num = 0; + /* choose appropriate break point */ + while (num < nbp) + { /* select and process a new portion of break points */ + num1 = spx_ls_select_bp(lp, tcol, nbp, bp, num, &slope, + teta_lim); + for (t = num+1; t <= num1; t++) + { int i = (bp[t].i >= 0 ? bp[t].i : -bp[t].i); + xassert(0 <= i && i <= m); + if (i == 0 || fabs(tcol[i]) / big >= MIN_RATIO) + { if (dz_best > bp[t].dz) + t_best = t, dz_best = bp[t].dz; + } +#if 0 + if (i == 0) + { /* do not consider further break points beyond this + * point, where xN[q] reaches its opposite bound; + * in principle (see spx_ls_eval_bp), this break + * point should be the last one, however, due to + * round-off errors there may be other break points + * with the same teta beyond this one */ + slope = +1.0; + } +#endif + } + if (slope > 0.0) + { /* penalty function starts increasing */ + break; + } + /* penalty function continues decreasing */ + num = num1; + teta_lim += teta_lim; + } + if (dz_best == 0.0) + goto skip; + /* the choice has been made */ + xassert(1 <= t_best && t_best <= num1); + if (t_best == 1) + { /* the very first break point was chosen; it is reasonable + * to use the short-step ratio test */ + goto skip; + } + csa->q = q; + memcpy(&csa->tcol.vec[1], &tcol[1], m * sizeof(double)); + fvs_gather_vec(&csa->tcol, DBL_EPSILON); + if (bp[t_best].i == 0) + { /* xN[q] goes to its opposite bound */ + csa->p = -1; + csa->p_flag = 0; + best_ratio = 1.0; + } + else if (bp[t_best].i > 0) + { /* xB[p] leaves the basis and goes to its lower bound */ + csa->p = + bp[t_best].i; + xassert(1 <= csa->p && csa->p <= m); + csa->p_flag = 0; + best_ratio = fabs(tcol[csa->p]) / big; + } + else + { /* xB[p] leaves the basis and goes to its upper bound */ + csa->p = - bp[t_best].i; + xassert(1 <= csa->p && csa->p <= m); + csa->p_flag = 1; + best_ratio = fabs(tcol[csa->p]) / big; + } +#if 0 + xprintf("num1 = %d; t_best = %d; dz = %g\n", num1, t_best, + bp[t_best].dz); +#endif + ret = 1; + goto done; +skip: ; + } +#endif +#if 0 /* 23/VI-2017 */ if (!csa->harris) +#else + if (csa->r_test == GLP_RT_STD) +#endif { /* textbook ratio test */ p = spx_chuzr_std(lp, csa->phase, beta, q, - d[q] < 0.0 ? +1. : -1., tcol, &p_flag, csa->tol_piv, + d[q] < 0.0 ? +1. : -1., tcol, &p_flag, tol_piv, .30 * csa->tol_bnd, .30 * csa->tol_bnd1); } else { /* Harris' two-pass ratio test */ p = spx_chuzr_harris(lp, csa->phase, beta, q, - d[q] < 0.0 ? +1. : -1., tcol, &p_flag , csa->tol_piv, + d[q] < 0.0 ? +1. : -1., tcol, &p_flag , tol_piv, .50 * csa->tol_bnd, .50 * csa->tol_bnd1); } + if (p <= 0) + { /* primal unboundedness or special case */ + csa->q = q; +#if 0 /* 11/VI-2017 */ + memcpy(&csa->tcol[1], &tcol[1], m * sizeof(double)); +#else + memcpy(&csa->tcol.vec[1], &tcol[1], m * sizeof(double)); + fvs_gather_vec(&csa->tcol, DBL_EPSILON); +#endif + csa->p = p; + csa->p_flag = p_flag; + best_ratio = 1.0; + goto done; + } /* either keep previous choice or accept new choice depending on * which one is better */ - if (csa->q == 0 || p <= 0 || - fabs(tcol[p]) > fabs(csa->tcol[csa->p])) + if (best_ratio < fabs(tcol[p]) / big) { csa->q = q; +#if 0 /* 11/VI-2017 */ memcpy(&csa->tcol[1], &tcol[1], m * sizeof(double)); +#else + memcpy(&csa->tcol.vec[1], &tcol[1], m * sizeof(double)); + fvs_gather_vec(&csa->tcol, DBL_EPSILON); +#endif csa->p = p; csa->p_flag = p_flag; + best_ratio = fabs(tcol[p]) / big; } - /* check if current choice is acceptable */ - if (csa->p <= 0 || fabs(csa->tcol[csa->p]) >= 0.001) - goto done; - if (nnn == 1) - goto done; - if (try == 5) + /* check if the current choice is acceptable */ + if (best_ratio >= MIN_RATIO || nnn == 1 || try == 5) goto done; /* try to choose other xN[q] and xB[p] */ /* find xN[q] in the list */ @@ -563,6 +799,182 @@ try: /* choose non-basic variable xN[q] */ /* repeat the choice */ goto try; done: /* the choice has been made */ +#if 1 /* FIXME: currently just to avoid badly conditioned basis */ + if (best_ratio < .001 * MIN_RATIO) + { /* looks like this helps */ + if (bfd_get_count(lp->bfd) > 0) + return -1; + /* didn't help; last chance to improve the choice */ + if (tol_piv == csa->tol_piv) + { tol_piv *= 1000.; + goto more; + } + } +#endif +#if 0 /* 23/VI-2017 */ + return 0; +#else /* FIXME */ + if (ret) + { /* invalidate dual basic solution components */ + csa->d_st = 0; + /* change penalty function coefficients at basic variables for + * all break points preceding the chosen one */ + for (t = 1; t < t_best; t++) + { int i = (bp[t].i >= 0 ? bp[t].i : -bp[t].i); + xassert(0 <= i && i <= m); + if (i == 0) + { /* xN[q] crosses its opposite bound */ + xassert(1 <= csa->q && csa->q <= n-m); + k = head[m+csa->q]; + } + else + { /* xB[i] crosses its (lower or upper) bound */ + k = head[i]; /* x[k] = xB[i] */ + } + c[k] += bp[t].dc; + xassert(c[k] == 0.0 || c[k] == +1.0 || c[k] == -1.0); + } + } + return ret; +#endif +} +#endif + +/*********************************************************************** +* play_bounds - play bounds of primal variables +* +* This routine is called after the primal values of basic variables +* beta[i] were updated and the basis was changed to the adjacent one. +* +* It is assumed that before updating all the primal values beta[i] +* were strongly feasible, so in the adjacent basis beta[i] remain +* feasible within a tolerance, i.e. if some beta[i] violates its lower +* or upper bound, the violation is insignificant. +* +* If some beta[i] violates its lower or upper bound, this routine +* changes (perturbs) the bound to remove such violation, i.e. to make +* all beta[i] strongly feasible. Otherwise, if beta[i] has a feasible +* value, this routine attempts to reduce (or remove) perturbation of +* corresponding lower/upper bound keeping strong feasibility. */ + +/* FIXME: what to do if l[k] = u[k]? */ + +/* FIXME: reduce/remove perturbation if x[k] becomes non-basic? */ + +static void play_bounds(struct csa *csa, int all) +{ SPXLP *lp = csa->lp; + int m = lp->m; + double *c = lp->c; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + double *orig_l = csa->orig_l; + double *orig_u = csa->orig_u; + double *beta = csa->beta; +#if 0 /* 11/VI-2017 */ + const double *tcol = csa->tcol; /* was used to update beta */ +#else + const double *tcol = csa->tcol.vec; +#endif + int i, k; + xassert(csa->phase == 1 || csa->phase == 2); + /* primal values beta = (beta[i]) should be valid */ + xassert(csa->beta_st); + /* walk thru the list of basic variables xB = (xB[i]) */ + for (i = 1; i <= m; i++) + { if (all || tcol[i] != 0.0) + { /* beta[i] has changed in the adjacent basis */ + k = head[i]; /* x[k] = xB[i] */ + if (csa->phase == 1 && c[k] < 0.0) + { /* -inf < xB[i] <= lB[i] (artificial bounds) */ + if (beta[i] < l[k] - 1e-9) + continue; + /* restore actual bounds */ + c[k] = 0.0; + csa->d_st = 0; /* since c[k] = cB[i] has changed */ + } + if (csa->phase == 1 && c[k] > 0.0) + { /* uB[i] <= xB[i] < +inf (artificial bounds) */ + if (beta[i] > u[k] + 1e-9) + continue; + /* restore actual bounds */ + c[k] = 0.0; + csa->d_st = 0; /* since c[k] = cB[i] has changed */ + } + /* lB[i] <= xB[i] <= uB[i] */ + if (csa->phase == 1) + xassert(c[k] == 0.0); + if (l[k] != -DBL_MAX) + { /* xB[i] has lower bound */ + if (beta[i] < l[k]) + { /* strong feasibility means xB[i] >= lB[i] */ +#if 0 /* 11/VI-2017 */ + l[k] = beta[i]; +#else + l[k] = beta[i] - 1e-9; +#endif + } + else if (l[k] < orig_l[k]) + { /* remove/reduce perturbation of lB[i] */ + if (beta[i] >= orig_l[k]) + l[k] = orig_l[k]; + else + l[k] = beta[i]; + } + } + if (u[k] != +DBL_MAX) + { /* xB[i] has upper bound */ + if (beta[i] > u[k]) + { /* strong feasibility means xB[i] <= uB[i] */ +#if 0 /* 11/VI-2017 */ + u[k] = beta[i]; +#else + u[k] = beta[i] + 1e-9; +#endif + } + else if (u[k] > orig_u[k]) + { /* remove/reduce perturbation of uB[i] */ + if (beta[i] <= orig_u[k]) + u[k] = orig_u[k]; + else + u[k] = beta[i]; + } + } + } + } + return; +} + +static void remove_perturb(struct csa *csa) +{ /* remove perturbation */ + SPXLP *lp = csa->lp; + int m = lp->m; + int n = lp->n; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + char *flag = lp->flag; + double *orig_l = csa->orig_l; + double *orig_u = csa->orig_u; + int j, k; + /* restore original bounds of variables */ + memcpy(l, orig_l, (1+n) * sizeof(double)); + memcpy(u, orig_u, (1+n) * sizeof(double)); + /* adjust flags of fixed non-basic variables, because in the + * perturbed problem such variables might be changed to double- + * bounded type */ + for (j = 1; j <= n-m; j++) + { k = head[m+j]; /* x[k] = xN[j] */ + if (l[k] == u[k]) + flag[j] = 0; + } + /* removing perturbation changes primal solution components */ + csa->phase = csa->beta_st = 0; +#if 1 + if (csa->msg_lev >= GLP_MSG_ALL) + xprintf("Removing LP perturbation [%d]...\n", + csa->it_cnt); +#endif return; } @@ -609,21 +1021,50 @@ static double sum_infeas(SPXLP *lp, const double beta[/*1+m*/]) static void display(struct csa *csa, int spec) { int nnn, k; - double obj, sum, *save; + double obj, sum, *save, *save1; +#if 1 /* 15/VII-2017 */ + double tm_cur; +#endif /* check if the display output should be skipped */ if (csa->msg_lev < GLP_MSG_ON) goto skip; +#if 1 /* 15/VII-2017 */ + tm_cur = xtime(); +#endif if (csa->out_dly > 0 && +#if 0 /* 15/VII-2017 */ 1000.0 * xdifftime(xtime(), csa->tm_beg) < csa->out_dly) +#else + 1000.0 * xdifftime(tm_cur, csa->tm_beg) < csa->out_dly) +#endif goto skip; if (csa->it_cnt == csa->it_dpy) goto skip; +#if 0 /* 15/VII-2017 */ if (!spec && csa->it_cnt % csa->out_frq != 0) goto skip; +#else + if (!spec && + 1000.0 * xdifftime(tm_cur, csa->tm_dpy) < csa->out_frq) + goto skip; +#endif /* compute original objective value */ save = csa->lp->c; - csa->lp->c = csa->c; + csa->lp->c = csa->orig_c; obj = csa->dir * spx_eval_obj(csa->lp, csa->beta); csa->lp->c = save; +#if SCALE_Z + obj *= csa->fz; +#endif /* compute sum of (scaled) primal infeasibilities */ +#if 1 /* 01/VII-2017 */ + save = csa->lp->l; + save1 = csa->lp->u; + csa->lp->l = csa->orig_l; + csa->lp->u = csa->orig_u; +#endif sum = sum_infeas(csa->lp, csa->beta); +#if 1 /* 01/VII-2017 */ + csa->lp->l = save; + csa->lp->u = save1; +#endif /* compute number of infeasibilities/non-optimalities */ switch (csa->phase) { case 1: @@ -647,13 +1088,25 @@ static void display(struct csa *csa, int spec) xprintf(" %d", csa->inv_cnt); csa->inv_cnt = 0; } +#if 1 /* 23/VI-2017 */ + if (csa->phase == 1 && csa->r_test == GLP_RT_FLIP) + { /*xprintf(" %d,%d", csa->ns_cnt, csa->ls_cnt);*/ + if (csa->ns_cnt + csa->ls_cnt) + xprintf(" %d%%", + (100 * csa->ls_cnt) / (csa->ns_cnt + csa->ls_cnt)); + csa->ns_cnt = csa->ls_cnt = 0; + } +#endif xprintf("\n"); csa->it_dpy = csa->it_cnt; +#if 1 /* 15/VII-2017 */ + csa->tm_dpy = tm_cur; +#endif skip: return; } /*********************************************************************** -* spx_primal - driver to primal simplex method +* spx_primal - driver to the primal simplex method * * This routine is a driver to the two-phase primal simplex method. * @@ -683,15 +1136,26 @@ static int primal_simplex(struct csa *csa) double *d = csa->d; SPXSE *se = csa->se; int *list = csa->list; +#if 0 /* 11/VI-2017 */ double *tcol = csa->tcol; double *trow = csa->trow; +#endif +#if 0 /* 09/VII-2017 */ double *pi = csa->work; double *rho = csa->work; +#else + double *pi = csa->work.vec; + double *rho = csa->work.vec; +#endif int msg_lev = csa->msg_lev; double tol_bnd = csa->tol_bnd; double tol_bnd1 = csa->tol_bnd1; double tol_dj = csa->tol_dj; double tol_dj1 = csa->tol_dj1; + int perturb = -1; + /* -1 = perturbation is not used, but enabled + * 0 = perturbation is not used and disabled + * +1 = perturbation is being used */ int j, refct, ret; loop: /* main loop starts here */ /* compute factorization of the basis matrix */ @@ -740,7 +1204,7 @@ loop: /* main loop starts here */ { /* current basic solution is primal feasible */ /* start to minimize the original objective function */ csa->phase = 2; - memcpy(c, csa->c, (1+n) * sizeof(double)); + memcpy(c, csa->orig_c, (1+n) * sizeof(double)); } /* working objective coefficients have been changed, so * invalidate reduced costs */ @@ -748,27 +1212,45 @@ loop: /* main loop starts here */ } /* make sure that the current basic solution remains primal * feasible (or pseudo-feasible on phase I) */ - if (check_feas(csa, csa->phase, tol_bnd, tol_bnd1)) - { /* excessive bound violations due to round-off errors */ - if (msg_lev >= GLP_MSG_ERR) - xprintf("Warning: numerical instability (primal simplex," - " phase %s)\n", csa->phase == 1 ? "I" : "II"); - /* restart the search */ - lp->valid = 0; - csa->phase = 0; - goto loop; + if (perturb <= 0) + { if (check_feas(csa, csa->phase, tol_bnd, tol_bnd1)) + { /* excessive bound violations due to round-off errors */ +#if 1 /* 01/VII-2017 */ + if (perturb < 0) + { if (msg_lev >= GLP_MSG_ALL) + xprintf("Perturbing LP to avoid instability [%d].." + ".\n", csa->it_cnt); + perturb = 1; + goto loop; + } +#endif + if (msg_lev >= GLP_MSG_ERR) + xprintf("Warning: numerical instability (primal simpl" + "ex, phase %s)\n", csa->phase == 1 ? "I" : "II"); + /* restart the search */ + lp->valid = 0; + csa->phase = 0; + goto loop; + } + if (csa->phase == 1) + { int i, cnt; + for (i = 1; i <= m; i++) + csa->tcol.ind[i] = i; + cnt = adjust_penalty(csa, m, csa->tcol.ind, + 0.99 * tol_bnd, 0.99 * tol_bnd1); + if (cnt) + { /*xprintf("*** cnt = %d\n", cnt);*/ + csa->d_st = 0; + } + } + } + else + { /* FIXME */ + play_bounds(csa, 1); } } /* at this point the search phase is determined */ xassert(csa->phase == 1 || csa->phase == 2); - if (csa->phase == 1) - { /* adjust penalty function coefficients */ - if (adjust_penalty(csa, tol_bnd, tol_bnd1)) - { /* some coefficients were changed, so invalidate reduced - * costs of non-basic variables */ - csa->d_st = 0; - } - } /* compute reduced costs of non-basic variables d = (d[j]) */ if (!csa->d_st) { spx_eval_pi(lp, pi); @@ -789,7 +1271,12 @@ loop: /* main loop starts here */ #endif /* check if the iteration limit has been exhausted */ if (csa->it_cnt - csa->it_beg >= csa->it_lim) - { if (csa->beta_st != 1) + { if (perturb > 0) + { /* remove perturbation */ + remove_perturb(csa); + perturb = 0; + } + if (csa->beta_st != 1) csa->beta_st = 0; if (csa->d_st != 1) csa->d_st = 0; @@ -805,7 +1292,12 @@ loop: /* main loop starts here */ } /* check if the time limit has been exhausted */ if (1000.0 * xdifftime(xtime(), csa->tm_beg) >= csa->tm_lim) - { if (csa->beta_st != 1) + { if (perturb > 0) + { /* remove perturbation */ + remove_perturb(csa); + perturb = 0; + } + if (csa->beta_st != 1) csa->beta_st = 0; if (csa->d_st != 1) csa->d_st = 0; @@ -834,7 +1326,12 @@ loop: /* main loop starts here */ } /* check for optimality */ if (csa->num == 0) - { if (csa->beta_st != 1) + { if (perturb > 0 && csa->phase == 2) + { /* remove perturbation */ + remove_perturb(csa); + perturb = 0; + } + if (csa->beta_st != 1) csa->beta_st = 0; if (csa->d_st != 1) csa->d_st = 0; @@ -847,12 +1344,15 @@ loop: /* main loop starts here */ /* check for primal feasibility */ if (!check_feas(csa, 2, tol_bnd, tol_bnd1)) { /* feasible solution found; switch to phase II */ - memcpy(c, csa->c, (1+n) * sizeof(double)); + memcpy(c, csa->orig_c, (1+n) * sizeof(double)); csa->phase = 2; csa->d_st = 0; goto loop; } /* no feasible solution exists */ +#if 1 /* 09/VII-2017 */ + /* FIXME: remove perturbation */ +#endif if (msg_lev >= GLP_MSG_ALL) xprintf("LP HAS NO PRIMAL FEASIBLE SOLUTION\n"); csa->p_stat = GLP_NOFEAS; @@ -871,10 +1371,34 @@ loop: /* main loop starts here */ } } /* choose xN[q] and xB[p] */ +#if 0 /* 23/VI-2017 */ +#if 0 /* 17/III-2016 */ choose_pivot(csa); +#else + if (choose_pivot(csa) < 0) + { lp->valid = 0; + goto loop; + } +#endif +#else + ret = choose_pivot(csa); + if (ret < 0) + { lp->valid = 0; + goto loop; + } + if (ret == 0) + csa->ns_cnt++; + else + csa->ls_cnt++; +#endif /* check for unboundedness */ if (csa->p == 0) - { if (csa->beta_st != 1) + { if (perturb > 0) + { /* remove perturbation */ + remove_perturb(csa); + perturb = 0; + } + if (csa->beta_st != 1) csa->beta_st = 0; if (csa->d_st != 1) csa->d_st = 0; @@ -901,8 +1425,52 @@ loop: /* main loop starts here */ xassert(csa != csa); } } +#if 1 /* 01/VII-2017 */ + /* check for stalling */ + if (csa->p > 0) + { int k; + xassert(1 <= csa->p && csa->p <= m); + k = head[csa->p]; /* x[k] = xB[p] */ + if (lp->l[k] != lp->u[k]) + { if (csa->p_flag) + { /* xB[p] goes to its upper bound */ + xassert(lp->u[k] != +DBL_MAX); + if (fabs(beta[csa->p] - lp->u[k]) >= 1e-6) + { csa->degen = 0; + goto skip1; + } + } + else if (lp->l[k] == -DBL_MAX) + { /* unusual case */ + goto skip1; + } + else + { /* xB[p] goes to its lower bound */ + xassert(lp->l[k] != -DBL_MAX); + if (fabs(beta[csa->p] - lp->l[k]) >= 1e-6) + { csa->degen = 0; + goto skip1; + } + } + /* degenerate iteration has been detected */ + csa->degen++; + if (perturb < 0 && csa->degen >= 200) + { if (msg_lev >= GLP_MSG_ALL) + xprintf("Perturbing LP to avoid stalling [%d]...\n", + csa->it_cnt); + perturb = 1; + } +skip1: ; + } + } +#endif /* update values of basic variables for adjacent basis */ +#if 0 /* 11/VI-2017 */ spx_update_beta(lp, beta, csa->p, csa->p_flag, csa->q, tcol); +#else + spx_update_beta_s(lp, beta, csa->p, csa->p_flag, csa->q, + &csa->tcol); +#endif csa->beta_st = 2; /* p < 0 means that xN[q] jumps to its opposite bound */ if (csa->p < 0) @@ -911,15 +1479,42 @@ loop: /* main loop starts here */ /* compute p-th row of inv(B) */ spx_eval_rho(lp, csa->p, rho); /* compute p-th (pivot) row of the simplex table */ +#if 0 /* 11/VI-2017 */ if (at != NULL) spx_eval_trow1(lp, at, rho, trow); else spx_nt_prod(lp, nt, trow, 1, -1.0, rho); +#else + if (at != NULL) + spx_eval_trow1(lp, at, rho, csa->trow.vec); + else + spx_nt_prod(lp, nt, csa->trow.vec, 1, -1.0, rho); + fvs_gather_vec(&csa->trow, DBL_EPSILON); +#endif /* FIXME: tcol[p] and trow[q] should be close to each other */ +#if 0 /* 26/V-2017 by cmatraki */ xassert(trow[csa->q] != 0.0); +#else + if (csa->trow.vec[csa->q] == 0.0) + { if (msg_lev >= GLP_MSG_ERR) + xprintf("Error: trow[q] = 0.0\n"); + csa->p_stat = csa->d_stat = GLP_UNDEF; + ret = GLP_EFAIL; + goto fini; + } +#endif /* update reduced costs of non-basic variables for adjacent * basis */ +#if 1 /* 23/VI-2017 */ + /* dual solution may be invalidated due to long step */ + if (csa->d_st) +#endif +#if 0 /* 11/VI-2017 */ if (spx_update_d(lp, d, csa->p, csa->q, trow, tcol) <= 1e-9) +#else + if (spx_update_d_s(lp, d, csa->p, csa->q, &csa->trow, &csa->tcol) + <= 1e-9) +#endif { /* successful updating */ csa->d_st = 2; if (csa->phase == 1) @@ -940,8 +1535,13 @@ loop: /* main loop starts here */ /* update steepest edge weights for adjacent basis, if used */ if (se != NULL) { if (refct > 0) +#if 0 /* 11/VI-2017 */ { if (spx_update_gamma(lp, se, csa->p, csa->q, trow, tcol) <= 1e-3) +#else /* FIXME: spx_update_gamma_s */ + { if (spx_update_gamma(lp, se, csa->p, csa->q, csa->trow.vec, + csa->tcol.vec) <= 1e-3) +#endif { /* successful updating */ refct--; } @@ -963,11 +1563,31 @@ skip: /* change current basis header to adjacent one */ /* and update factorization of the basis matrix */ if (csa->p > 0) spx_update_invb(lp, csa->p, head[csa->p]); +#if 1 + if (perturb <= 0) + { if (csa->phase == 1) + { int cnt; + /* adjust penalty function coefficients */ + cnt = adjust_penalty(csa, csa->tcol.nnz, csa->tcol.ind, + 0.99 * tol_bnd, 0.99 * tol_bnd1); + if (cnt) + { /* some coefficients were changed, so invalidate reduced + * costs of non-basic variables */ + /*xprintf("... cnt = %d\n", cnt);*/ + csa->d_st = 0; + } + } + } + else + { /* FIXME */ + play_bounds(csa, 0); + } +#endif /* simplex iteration complete */ csa->it_cnt++; goto loop; fini: /* restore original objective function */ - memcpy(c, csa->c, (1+n) * sizeof(double)); + memcpy(c, csa->orig_c, (1+n) * sizeof(double)); /* compute reduced costs of non-basic variables and determine * solution dual status, if necessary */ if (csa->p_stat != GLP_UNDEF && csa->d_stat == GLP_UNDEF) @@ -982,23 +1602,23 @@ fini: /* restore original objective function */ } int spx_primal(glp_prob *P, const glp_smcp *parm) -{ /* driver to primal simplex method */ +{ /* driver to the primal simplex method */ struct csa csa_, *csa = &csa_; SPXLP lp; -#if USE_AT SPXAT at; -#else SPXNT nt; -#endif SPXSE se; int ret, *map, *daeh; +#if SCALE_Z + int i, j, k; +#endif /* build working LP and its initial basis */ memset(csa, 0, sizeof(struct csa)); csa->lp = &lp; - spx_init_lp(csa->lp, P, EXCL); + spx_init_lp(csa->lp, P, parm->excl); spx_alloc_lp(csa->lp); map = talloc(1+P->m+P->n, int); - spx_build_lp(csa->lp, P, EXCL, SHIFT, map); + spx_build_lp(csa->lp, P, parm->excl, parm->shift, map); spx_build_basis(csa->lp, P, map); switch (P->dir) { case GLP_MIN: @@ -1010,22 +1630,50 @@ int spx_primal(glp_prob *P, const glp_smcp *parm) default: xassert(P != P); } - csa->c = talloc(1+csa->lp->n, double); - memcpy(csa->c, csa->lp->c, (1+csa->lp->n) * sizeof(double)); -#if USE_AT - /* build matrix A in row-wise format */ - csa->at = &at; - csa->nt = NULL; - spx_alloc_at(csa->lp, csa->at); - spx_build_at(csa->lp, csa->at); +#if SCALE_Z + csa->fz = 0.0; + for (k = 1; k <= csa->lp->n; k++) + { double t = fabs(csa->lp->c[k]); + if (csa->fz < t) + csa->fz = t; + } + if (csa->fz <= 1000.0) + csa->fz = 1.0; + else + csa->fz /= 1000.0; + /*xprintf("csa->fz = %g\n", csa->fz);*/ + for (k = 0; k <= csa->lp->n; k++) + csa->lp->c[k] /= csa->fz; +#endif + csa->orig_c = talloc(1+csa->lp->n, double); + memcpy(csa->orig_c, csa->lp->c, (1+csa->lp->n) * sizeof(double)); +#if 1 /*PERTURB*/ + csa->orig_l = talloc(1+csa->lp->n, double); + memcpy(csa->orig_l, csa->lp->l, (1+csa->lp->n) * sizeof(double)); + csa->orig_u = talloc(1+csa->lp->n, double); + memcpy(csa->orig_u, csa->lp->u, (1+csa->lp->n) * sizeof(double)); #else - /* build matrix N in row-wise format for initial basis */ - csa->at = NULL; - csa->nt = &nt; - spx_alloc_nt(csa->lp, csa->nt); - spx_init_nt(csa->lp, csa->nt); - spx_build_nt(csa->lp, csa->nt); + csa->orig_l = csa->orig_u = NULL; #endif + switch (parm->aorn) + { case GLP_USE_AT: + /* build matrix A in row-wise format */ + csa->at = &at; + csa->nt = NULL; + spx_alloc_at(csa->lp, csa->at); + spx_build_at(csa->lp, csa->at); + break; + case GLP_USE_NT: + /* build matrix N in row-wise format for initial basis */ + csa->at = NULL; + csa->nt = &nt; + spx_alloc_nt(csa->lp, csa->nt); + spx_init_nt(csa->lp, csa->nt); + spx_build_nt(csa->lp, csa->nt); + break; + default: + xassert(parm != parm); + } /* allocate and initialize working components */ csa->phase = 0; csa->beta = talloc(1+csa->lp->m, double); @@ -1044,21 +1692,53 @@ int spx_primal(glp_prob *P, const glp_smcp *parm) xassert(parm != parm); } csa->list = talloc(1+csa->lp->n-csa->lp->m, int); +#if 0 /* 11/VI-2017 */ csa->tcol = talloc(1+csa->lp->m, double); csa->trow = talloc(1+csa->lp->n-csa->lp->m, double); +#else + fvs_alloc_vec(&csa->tcol, csa->lp->m); + fvs_alloc_vec(&csa->trow, csa->lp->n-csa->lp->m); +#endif +#if 1 /* 23/VI-2017 */ + csa->bp = NULL; +#endif +#if 0 /* 09/VII-2017 */ csa->work = talloc(1+csa->lp->m, double); +#else + fvs_alloc_vec(&csa->work, csa->lp->m); +#endif /* initialize control parameters */ csa->msg_lev = parm->msg_lev; +#if 0 /* 23/VI-2017 */ switch (parm->r_test) { case GLP_RT_STD: csa->harris = 0; break; case GLP_RT_HAR: +#if 1 /* 16/III-2016 */ + case GLP_RT_FLIP: + /* FIXME */ + /* currently for primal simplex GLP_RT_FLIP is equivalent + * to GLP_RT_HAR */ +#endif csa->harris = 1; break; default: xassert(parm != parm); } +#else + switch (parm->r_test) + { case GLP_RT_STD: + case GLP_RT_HAR: + break; + case GLP_RT_FLIP: + csa->bp = talloc(1+2*csa->lp->m+1, SPXBP); + break; + default: + xassert(parm != parm); + } + csa->r_test = parm->r_test; +#endif csa->tol_bnd = parm->tol_bnd; csa->tol_bnd1 = .001 * parm->tol_bnd; csa->tol_dj = parm->tol_dj; @@ -1072,7 +1752,16 @@ int spx_primal(glp_prob *P, const glp_smcp *parm) csa->tm_beg = xtime(); csa->it_beg = csa->it_cnt = P->it_cnt; csa->it_dpy = -1; +#if 1 /* 15/VII-2017 */ + csa->tm_dpy = 0.0; +#endif csa->inv_cnt = 0; +#if 1 /* 01/VII-2017 */ + csa->degen = 0; +#endif +#if 1 /* 23/VI-2017 */ + csa->ns_cnt = csa->ls_cnt = 0; +#endif /* try to solve working LP */ ret = primal_simplex(csa); /* return basis factorization back to problem object */ @@ -1091,11 +1780,26 @@ int spx_primal(glp_prob *P, const glp_smcp *parm) spx_store_basis(csa->lp, P, map, daeh); /* compute simplex multipliers for final basic solution found by * the solver */ +#if 0 /* 09/VII-2017 */ spx_eval_pi(csa->lp, csa->work); +#else + spx_eval_pi(csa->lp, csa->work.vec); +#endif /* convert working LP solution to original LP solution and store - * it to problem object */ + * it into the problem object */ +#if SCALE_Z + for (i = 1; i <= csa->lp->m; i++) + csa->work.vec[i] *= csa->fz; + for (j = 1; j <= csa->lp->n-csa->lp->m; j++) + csa->d[j] *= csa->fz; +#endif +#if 0 /* 09/VII-2017 */ spx_store_sol(csa->lp, P, SHIFT, map, daeh, csa->beta, csa->work, csa->d); +#else + spx_store_sol(csa->lp, P, parm->shift, map, daeh, csa->beta, + csa->work.vec, csa->d); +#endif tfree(daeh); /* save simplex iteration count */ P->it_cnt = csa->it_cnt; @@ -1119,7 +1823,11 @@ int spx_primal(glp_prob *P, const glp_smcp *parm) skip: /* deallocate working objects and arrays */ spx_free_lp(csa->lp); tfree(map); - tfree(csa->c); + tfree(csa->orig_c); +#if 1 /*PERTURB*/ + tfree(csa->orig_l); + tfree(csa->orig_u); +#endif if (csa->at != NULL) spx_free_at(csa->lp, csa->at); if (csa->nt != NULL) @@ -1129,9 +1837,22 @@ skip: /* deallocate working objects and arrays */ if (csa->se != NULL) spx_free_se(csa->lp, csa->se); tfree(csa->list); +#if 0 /* 11/VI-2017 */ tfree(csa->tcol); tfree(csa->trow); +#else + fvs_free_vec(&csa->tcol); + fvs_free_vec(&csa->trow); +#endif +#if 1 /* 23/VI-2017 */ + if (csa->bp != NULL) + tfree(csa->bp); +#endif +#if 0 /* 09/VII-2017 */ tfree(csa->work); +#else + fvs_free_vec(&csa->work); +#endif /* return to calling program */ return ret; } diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxprob.c b/resources/3rdparty/glpk-4.65/src/simplex/spxprob.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/simplex/spxprob.c rename to resources/3rdparty/glpk-4.65/src/simplex/spxprob.c diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spxprob.h b/resources/3rdparty/glpk-4.65/src/simplex/spxprob.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/simplex/spxprob.h rename to resources/3rdparty/glpk-4.65/src/simplex/spxprob.h diff --git a/resources/3rdparty/glpk-4.65/src/simplex/spychuzc.c b/resources/3rdparty/glpk-4.65/src/simplex/spychuzc.c new file mode 100644 index 000000000..b92212988 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/src/simplex/spychuzc.c @@ -0,0 +1,567 @@ +/* spychuzc.c */ + +/*********************************************************************** +* This code is part of GLPK (GNU Linear Programming Kit). +* +* Copyright (C) 2015-2018 Andrew Makhorin, Department for Applied +* Informatics, Moscow Aviation Institute, Moscow, Russia. All rights +* reserved. E-mail: . +* +* GLPK is free software: you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* GLPK is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +* License for more details. +* +* You should have received a copy of the GNU General Public License +* along with GLPK. If not, see . +***********************************************************************/ + +#include "env.h" +#include "spychuzc.h" + +/*********************************************************************** +* spy_chuzc_std - choose non-basic variable (dual textbook ratio test) +* +* This routine implements an improved dual textbook ratio test to +* choose non-basic variable xN[q]. +* +* Current reduced costs of non-basic variables should be placed in the +* array locations d[1], ..., d[n-m]. Note that d[j] is a value of dual +* basic variable lambdaN[j] in the current basis. +* +#if 0 (* 14/III-2016 *) +* The parameter s specifies the sign of bound violation for basic +* variable xB[p] chosen: s = +1.0 means that xB[p] violates its lower +* bound, so dual non-basic variable lambdaB[p] = lambda^+B[p] +* increases, and s = -1.0 means that xB[p] violates its upper bound, +* so dual non-basic variable lambdaB[p] = lambda^-B[p] decreases. +* (Thus, the dual ray parameter theta = s * lambdaB[p] >= 0.) +#else +* The parameter r specifies the bound violation for basic variable +* xB[p] chosen: +* +* r = lB[p] - beta[p] > 0 means that xB[p] violates its lower bound, +* so dual non-basic variable lambdaB[p] = lambda^+B[p] increases; and +* +* r = uB[p] - beta[p] < 0 means that xB[p] violates its upper bound, +* so dual non-basic variable lambdaB[p] = lambda^-B[p] decreases. +* +* (Note that r is the dual reduced cost of lambdaB[p].) +#endif +* +* Elements of p-th simplex table row t[p] = (t[p,j]) corresponding +* to basic variable xB[p] should be placed in the array locations +* trow[1], ..., trow[n-m]. +* +* The parameter tol_piv specifies a tolerance for elements of the +* simplex table row t[p]. If |t[p,j]| < tol_piv, dual basic variable +* lambdaN[j] is skipped, i.e. it is assumed that it does not depend on +* the dual ray parameter theta. +* +* The parameters tol and tol1 specify tolerances used to increase the +* choice freedom by simulating an artificial degeneracy as follows. +* If lambdaN[j] = lambda^+N[j] >= 0 and d[j] <= +delta[j], or if +* lambdaN[j] = lambda^-N[j] <= 0 and d[j] >= -delta[j], where +* delta[j] = tol + tol1 * |cN[j]|, cN[j] is objective coefficient at +* xN[j], then it is assumed that reduced cost d[j] is equal to zero. +* +* The routine determines the index 1 <= q <= n-m of non-basic variable +* xN[q], for which corresponding dual basic variable lambda^+N[j] or +* lambda^-N[j] reaches its zero bound first on increasing the dual ray +* parameter theta, and returns p on exit. And if theta may increase +* unlimitedly, the routine returns zero. */ + +int spy_chuzc_std(SPXLP *lp, const double d[/*1+n-m*/], +#if 0 /* 14/III-2016 */ + double s, const double trow[/*1+n-m*/], double tol_piv, +#else + double r, const double trow[/*1+n-m*/], double tol_piv, +#endif + double tol, double tol1) +{ int m = lp->m; + int n = lp->n; + double *c = lp->c; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + char *flag = lp->flag; + int j, k, q; + double alfa, biga, delta, teta, teta_min; +#if 0 /* 14/III-2016 */ + xassert(s == +1.0 || s == -1.0); +#else + double s; + xassert(r != 0.0); + s = (r > 0.0 ? +1.0 : -1.0); +#endif + /* nothing is chosen so far */ + q = 0, teta_min = DBL_MAX, biga = 0.0; + /* walk thru the list of non-basic variables */ + for (j = 1; j <= n-m; j++) + { k = head[m+j]; /* x[k] = xN[j] */ + /* if xN[j] is fixed variable, skip it */ + if (l[k] == u[k]) + continue; + alfa = s * trow[j]; + if (alfa >= +tol_piv && !flag[j]) + { /* xN[j] is either free or has its lower bound active, so + * lambdaN[j] = d[j] >= 0 decreases down to zero */ + delta = tol + tol1 * (c[k] >= 0.0 ? +c[k] : -c[k]); + /* determine theta on which lambdaN[j] reaches zero */ + teta = (d[j] < +delta ? 0.0 : d[j] / alfa); + } + else if (alfa <= -tol_piv && (l[k] == -DBL_MAX || flag[j])) + { /* xN[j] is either free or has its upper bound active, so + * lambdaN[j] = d[j] <= 0 increases up to zero */ + delta = tol + tol1 * (c[k] >= 0.0 ? +c[k] : -c[k]); + /* determine theta on which lambdaN[j] reaches zero */ + teta = (d[j] > -delta ? 0.0 : d[j] / alfa); + } + else + { /* lambdaN[j] cannot reach zero on increasing theta */ + continue; + } + /* choose non-basic variable xN[q] by corresponding dual basic + * variable lambdaN[q] for which theta is minimal */ + xassert(teta >= 0.0); + alfa = (alfa >= 0.0 ? +alfa : -alfa); + if (teta_min > teta || (teta_min == teta && biga < alfa)) + q = j, teta_min = teta, biga = alfa; + } + return q; +} + +/*********************************************************************** +* spy_chuzc_harris - choose non-basic var. (dual Harris' ratio test) +* +* This routine implements dual Harris' ratio test to choose non-basic +* variable xN[q]. +* +* All the parameters, except tol and tol1, as well as the returned +* value have the same meaning as for the routine spx_chuzr_std (see +* above). +* +* The parameters tol and tol1 specify tolerances on zero bound +* violations for reduced costs of non-basic variables. For reduced +* cost d[j] the tolerance is delta[j] = tol + tol1 |cN[j]|, where +* cN[j] is objective coefficient at non-basic variable xN[j]. */ + +int spy_chuzc_harris(SPXLP *lp, const double d[/*1+n-m*/], +#if 0 /* 14/III-2016 */ + double s, const double trow[/*1+n-m*/], double tol_piv, +#else + double r, const double trow[/*1+n-m*/], double tol_piv, +#endif + double tol, double tol1) +{ int m = lp->m; + int n = lp->n; + double *c = lp->c; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + char *flag = lp->flag; + int j, k, q; + double alfa, biga, delta, teta, teta_min; +#if 0 /* 14/III-2016 */ + xassert(s == +1.0 || s == -1.0); +#else + double s; + xassert(r != 0.0); + s = (r > 0.0 ? +1.0 : -1.0); +#endif + /*--------------------------------------------------------------*/ + /* first pass: determine teta_min for relaxed bounds */ + /*--------------------------------------------------------------*/ + teta_min = DBL_MAX; + /* walk thru the list of non-basic variables */ + for (j = 1; j <= n-m; j++) + { k = head[m+j]; /* x[k] = xN[j] */ + /* if xN[j] is fixed variable, skip it */ + if (l[k] == u[k]) + continue; + alfa = s * trow[j]; + if (alfa >= +tol_piv && !flag[j]) + { /* xN[j] is either free or has its lower bound active, so + * lambdaN[j] = d[j] >= 0 decreases down to zero */ + delta = tol + tol1 * (c[k] >= 0.0 ? +c[k] : -c[k]); + /* determine theta on which lambdaN[j] reaches -delta */ + teta = ((d[j] < 0.0 ? 0.0 : d[j]) + delta) / alfa; + } + else if (alfa <= -tol_piv && (l[k] == -DBL_MAX || flag[j])) + { /* xN[j] is either free or has its upper bound active, so + * lambdaN[j] = d[j] <= 0 increases up to zero */ + delta = tol + tol1 * (c[k] >= 0.0 ? +c[k] : -c[k]); + /* determine theta on which lambdaN[j] reaches +delta */ + teta = ((d[j] > 0.0 ? 0.0 : d[j]) - delta) / alfa; + } + else + { /* lambdaN[j] cannot reach zero on increasing theta */ + continue; + } + xassert(teta >= 0.0); + if (teta_min > teta) + teta_min = teta; + } + /*--------------------------------------------------------------*/ + /* second pass: choose non-basic variable xN[q] */ + /*--------------------------------------------------------------*/ + if (teta_min == DBL_MAX) + { /* theta may increase unlimitedly */ + q = 0; + goto done; + } + /* nothing is chosen so far */ + q = 0, biga = 0.0; + /* walk thru the list of non-basic variables */ + for (j = 1; j <= n-m; j++) + { k = head[m+j]; /* x[k] = xN[j] */ + /* if xN[j] is fixed variable, skip it */ + if (l[k] == u[k]) + continue; + alfa = s * trow[j]; + if (alfa >= +tol_piv && !flag[j]) + { /* xN[j] is either free or has its lower bound active, so + * lambdaN[j] = d[j] >= 0 decreases down to zero */ + /* determine theta on which lambdaN[j] reaches zero */ + teta = d[j] / alfa; + } + else if (alfa <= -tol_piv && (l[k] == -DBL_MAX || flag[j])) + { /* xN[j] is either free or has its upper bound active, so + * lambdaN[j] = d[j] <= 0 increases up to zero */ + /* determine theta on which lambdaN[j] reaches zero */ + teta = d[j] / alfa; + } + else + { /* lambdaN[j] cannot reach zero on increasing theta */ + continue; + } + /* choose non-basic variable for which theta is not greater + * than theta_min determined for relaxed bounds and which has + * best (largest in magnitude) pivot */ + alfa = (alfa >= 0.0 ? +alfa : -alfa); + if (teta <= teta_min && biga < alfa) + q = j, biga = alfa; + } + /* something must be chosen */ + xassert(1 <= q && q <= n-m); +done: return q; +} + +#if 0 /* 23/III-2016 */ +/*********************************************************************** +* spy_eval_bp - determine dual objective function break-points +* +* This routine determines the dual objective function break-points. +* +* The parameters lp, d, r, trow, and tol_piv have the same meaning as +* for the routine spx_chuzc_std (see above). +* +* On exit the routine stores the break-points determined to the array +* elements bp[1], ..., bp[num], where 0 <= num <= n-m is the number of +* break-points returned by the routine. +* +* The break-points stored in the array bp are ordered by ascending +* the ray parameter teta >= 0. The break-points numbered 1, ..., num-1 +* always correspond to non-basic non-fixed variables xN[j] of primal +* LP having both lower and upper bounds while the last break-point +* numbered num may correspond to a non-basic variable having only one +* lower or upper bound, if such variable prevents further increasing +* of the ray parameter teta. Besides, the routine includes in the +* array bp only the break-points that correspond to positive increment +* of the dual objective. */ + +static int CDECL fcmp(const void *v1, const void *v2) +{ const SPYBP *p1 = v1, *p2 = v2; + if (p1->teta < p2->teta) + return -1; + else if (p1->teta > p2->teta) + return +1; + else + return 0; +} + +int spy_eval_bp(SPXLP *lp, const double d[/*1+n-m*/], + double r, const double trow[/*1+n-m*/], double tol_piv, + SPYBP bp[/*1+n-m*/]) +{ int m = lp->m; + int n = lp->n; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + char *flag = lp->flag; + int j, j_max, k, t, nnn, num; + double s, alfa, teta, teta_max, dz, v; + xassert(r != 0.0); + s = (r > 0.0 ? +1.0 : -1.0); + /* build the list of all dual basic variables lambdaN[j] that + * can reach zero on increasing the ray parameter teta >= 0 */ + num = 0; + /* walk thru the list of non-basic variables */ + for (j = 1; j <= n-m; j++) + { k = head[m+j]; /* x[k] = xN[j] */ + /* if xN[j] is fixed variable, skip it */ + if (l[k] == u[k]) + continue; + alfa = s * trow[j]; + if (alfa >= +tol_piv && !flag[j]) + { /* xN[j] is either free or has its lower bound active, so + * lambdaN[j] = d[j] >= 0 decreases down to zero */ + /* determine teta[j] on which lambdaN[j] reaches zero */ + teta = (d[j] < 0.0 ? 0.0 : d[j] / alfa); + } + else if (alfa <= -tol_piv && (l[k] == -DBL_MAX || flag[j])) + { /* xN[j] is either free or has its upper bound active, so + * lambdaN[j] = d[j] <= 0 increases up to zero */ + /* determine teta[j] on which lambdaN[j] reaches zero */ + teta = (d[j] > 0.0 ? 0.0 : d[j] / alfa); + } + else + { /* lambdaN[j] cannot reach zero on increasing teta */ + continue; + } + /* add lambdaN[j] to the list */ + num++; + bp[num].j = j; + bp[num].teta = teta; + } + if (num == 0) + { /* dual unboundedness */ + goto done; + } + /* determine "blocking" dual basic variable lambdaN[j_max] that + * prevents increasing teta more than teta_max */ + j_max = 0, teta_max = DBL_MAX; + for (t = 1; t <= num; t++) + { j = bp[t].j; + k = head[m+j]; /* x[k] = xN[j] */ + if (l[k] == -DBL_MAX || u[k] == +DBL_MAX) + { /* lambdaN[j] cannot intersect zero */ + if (j_max == 0 + || teta_max > bp[t].teta + || (teta_max == bp[t].teta + && fabs(trow[j_max]) < fabs(trow[j]))) + j_max = j, teta_max = bp[t].teta; + } + } + /* keep in the list only dual basic variables lambdaN[j] that + * correspond to primal double-bounded variables xN[j] and whose + * teta[j] is not greater than teta_max */ + nnn = 0; + for (t = 1; t <= num; t++) + { j = bp[t].j; + k = head[m+j]; /* x[k] = xN[j] */ + if (l[k] != -DBL_MAX && u[k] != +DBL_MAX + && bp[t].teta <= teta_max) + { nnn++; + bp[nnn].j = j; + bp[nnn].teta = bp[t].teta; + } + } + num = nnn; + /* sort break-points by ascending teta[j] */ + qsort(&bp[1], num, sizeof(SPYBP), fcmp); + /* add lambdaN[j_max] to the end of the list */ + if (j_max != 0) + { xassert(num < n-m); + num++; + bp[num].j = j_max; + bp[num].teta = teta_max; + } + /* compute increments of the dual objective at all break-points + * (relative to its value at teta = 0) */ + dz = 0.0; /* dual objective increment */ + v = fabs(r); /* dual objective slope d zeta / d teta */ + for (t = 1; t <= num; t++) + { /* compute increment at current break-point */ + dz += v * (bp[t].teta - (t == 1 ? 0.0 : bp[t-1].teta)); + if (dz < 0.001) + { /* break-point with non-positive increment reached */ + num = t - 1; + break; + } + bp[t].dz = dz; + /* compute next slope on the right to current break-point */ + if (t < num) + { j = bp[t].j; + k = head[m+j]; /* x[k] = xN[j] */ + xassert(-DBL_MAX < l[k] && l[k] < u[k] && u[k] < +DBL_MAX); + v -= fabs(trow[j]) * (u[k] - l[k]); + } + } +done: return num; +} +#endif + +/*********************************************************************** +* spy_ls_eval_bp - determine dual objective function break-points +* +* This routine determines the dual objective function break-points. +* +* The parameters lp, d, r, trow, and tol_piv have the same meaning as +* for the routine spx_chuzc_std (see above). +* +* The routine stores the break-points determined to the array elements +* bp[1], ..., bp[nbp] in *arbitrary* order, where 0 <= nbp <= n-m is +* the number of break-points returned by the routine on exit. */ + +int spy_ls_eval_bp(SPXLP *lp, const double d[/*1+n-m*/], + double r, const double trow[/*1+n-m*/], double tol_piv, + SPYBP bp[/*1+n-m*/]) +{ int m = lp->m; + int n = lp->n; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + char *flag = lp->flag; + int j, k, t, nnn, nbp; + double s, alfa, teta, teta_max; + xassert(r != 0.0); + s = (r > 0.0 ? +1.0 : -1.0); + /* build the list of all dual basic variables lambdaN[j] that + * can reach zero on increasing the ray parameter teta >= 0 */ + nnn = 0, teta_max = DBL_MAX; + /* walk thru the list of non-basic variables */ + for (j = 1; j <= n-m; j++) + { k = head[m+j]; /* x[k] = xN[j] */ + /* if xN[j] is fixed variable, skip it */ + if (l[k] == u[k]) + continue; + alfa = s * trow[j]; + if (alfa >= +tol_piv && !flag[j]) + { /* xN[j] is either free or has its lower bound active, so + * lambdaN[j] = d[j] >= 0 decreases down to zero */ + /* determine teta[j] on which lambdaN[j] reaches zero */ + teta = (d[j] < 0.0 ? 0.0 : d[j] / alfa); + /* if xN[j] has no upper bound, lambdaN[j] cannot become + * negative and thereby blocks further increasing teta */ + if (u[k] == +DBL_MAX && teta_max > teta) + teta_max = teta; + } + else if (alfa <= -tol_piv && (l[k] == -DBL_MAX || flag[j])) + { /* xN[j] is either free or has its upper bound active, so + * lambdaN[j] = d[j] <= 0 increases up to zero */ + /* determine teta[j] on which lambdaN[j] reaches zero */ + teta = (d[j] > 0.0 ? 0.0 : d[j] / alfa); + /* if xN[j] has no lower bound, lambdaN[j] cannot become + * positive and thereby blocks further increasing teta */ + if (l[k] == -DBL_MAX && teta_max > teta) + teta_max = teta; + } + else + { /* lambdaN[j] cannot reach zero on increasing teta */ + continue; + } + /* add lambdaN[j] to the list */ + nnn++; + bp[nnn].j = j; + bp[nnn].teta = teta; + } + /* remove from the list all dual basic variables lambdaN[j], for + * which teta[j] > teta_max */ + nbp = 0; + for (t = 1; t <= nnn; t++) + { if (bp[t].teta <= teta_max + 1e-6) + { nbp++; + bp[nbp].j = bp[t].j; + bp[nbp].teta = bp[t].teta; + } + } + return nbp; +} + +/*********************************************************************** +* spy_ls_select_bp - select and process dual objective break-points +* +* This routine selects a next portion of the dual objective function +* break-points and processes them. +* +* On entry to the routine it is assumed that break-points bp[1], ..., +* bp[num] are already processed, and slope is the dual objective slope +* to the right of the last processed break-point bp[num]. (Initially, +* when num = 0, slope should be specified as fabs(r), where r has the +* same meaning as above.) +* +* The routine selects break-points among bp[num+1], ..., bp[nbp], for +* which teta <= teta_lim, and moves these break-points to the array +* elements bp[num+1], ..., bp[num1], where num <= num1 <= n-m is the +* new number of processed break-points returned by the routine on +* exit. Then the routine sorts these break-points by ascending teta +* and computes the change of the dual objective function relative to +* its value at teta = 0. +* +* On exit the routine also replaces the parameter slope with a new +* value that corresponds to the new last break-point bp[num1]. */ + +static int CDECL fcmp(const void *v1, const void *v2) +{ const SPYBP *p1 = v1, *p2 = v2; + if (p1->teta < p2->teta) + return -1; + else if (p1->teta > p2->teta) + return +1; + else + return 0; +} + +int spy_ls_select_bp(SPXLP *lp, const double trow[/*1+n-m*/], + int nbp, SPYBP bp[/*1+n-m*/], int num, double *slope, double + teta_lim) +{ int m = lp->m; + int n = lp->n; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + int j, k, t, num1; + double teta, dz; + xassert(0 <= num && num <= nbp && nbp <= n-m); + /* select a new portion of break-points */ + num1 = num; + for (t = num+1; t <= nbp; t++) + { if (bp[t].teta <= teta_lim) + { /* move break-point to the beginning of the new portion */ + num1++; + j = bp[num1].j, teta = bp[num1].teta; + bp[num1].j = bp[t].j, bp[num1].teta = bp[t].teta; + bp[t].j = j, bp[t].teta = teta; + } + } + /* sort new break-points bp[num+1], ..., bp[num1] by ascending + * the ray parameter teta */ + if (num1 - num > 1) + qsort(&bp[num+1], num1 - num, sizeof(SPYBP), fcmp); + /* calculate the dual objective change at the new break-points */ + for (t = num+1; t <= num1; t++) + { /* calculate the dual objective change relative to its value + * at break-point bp[t-1] */ + if (*slope == -DBL_MAX) + dz = -DBL_MAX; + else + dz = (*slope) * + (bp[t].teta - (t == 1 ? 0.0 : bp[t-1].teta)); + /* calculate the dual objective change relative to its value + * at teta = 0 */ + if (dz == -DBL_MAX) + bp[t].dz = -DBL_MAX; + else + bp[t].dz = (t == 1 ? 0.0 : bp[t-1].dz) + dz; + /* calculate a new slope of the dual objective to the right of + * the current break-point bp[t] */ + if (*slope != -DBL_MAX) + { j = bp[t].j; + k = head[m+j]; /* x[k] = xN[j] */ + if (l[k] == -DBL_MAX || u[k] == +DBL_MAX) + *slope = -DBL_MAX; /* blocking break-point reached */ + else + { xassert(l[k] < u[k]); + *slope -= fabs(trow[j]) * (u[k] - l[k]); + } + } + } + return num1; +} + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spychuzc.h b/resources/3rdparty/glpk-4.65/src/simplex/spychuzc.h similarity index 51% rename from resources/3rdparty/glpk-4.57/src/simplex/spychuzc.h rename to resources/3rdparty/glpk-4.65/src/simplex/spychuzc.h index 751e64dda..8aa45a072 100644 --- a/resources/3rdparty/glpk-4.57/src/simplex/spychuzc.h +++ b/resources/3rdparty/glpk-4.65/src/simplex/spychuzc.h @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2015 Andrew Makhorin, Department for Applied +* Copyright (C) 2015-2016 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -28,16 +28,58 @@ #define spy_chuzc_std _glp_spy_chuzc_std int spy_chuzc_std(SPXLP *lp, const double d[/*1+n-m*/], +#if 0 /* 14/III-2016 */ double s, const double trow[/*1+n-m*/], double tol_piv, +#else + double r, const double trow[/*1+n-m*/], double tol_piv, +#endif double tol, double tol1); /* choose non-basic variable (dual textbook ratio test) */ #define spy_chuzc_harris _glp_spy_chuzc_harris int spy_chuzc_harris(SPXLP *lp, const double d[/*1+n-m*/], +#if 0 /* 14/III-2016 */ double s, const double trow[/*1+n-m*/], double tol_piv, +#else + double r, const double trow[/*1+n-m*/], double tol_piv, +#endif double tol, double tol1); /* choose non-basic variable (dual Harris' ratio test) */ +typedef struct SPYBP SPYBP; + +struct SPYBP +{ /* dual objective function break point */ + int j; + /* dual basic variable lambdaN[j], 1 <= j <= n-m, that intersects + * zero at this break point */ + double teta; + /* ray parameter value, teta[j] >= 0, at this break point */ + double dz; + /* increment, zeta[j] - zeta[0], of the dual objective function + * at this break point */ +}; + +#if 0 /* 23/III-2016 */ +#define spy_eval_bp _glp_spy_eval_bp +int spy_eval_bp(SPXLP *lp, const double d[/*1+n-m*/], + double r, const double trow[/*1+n-m*/], double tol_piv, + SPYBP bp[/*1+n-m*/]); +/* determine dual objective function break-points */ +#endif + +#define spy_ls_eval_bp _glp_spy_ls_eval_bp +int spy_ls_eval_bp(SPXLP *lp, const double d[/*1+n-m*/], + double r, const double trow[/*1+n-m*/], double tol_piv, + SPYBP bp[/*1+n-m*/]); +/* determine dual objective function break-points */ + +#define spy_ls_select_bp _glp_spy_ls_select_bp +int spy_ls_select_bp(SPXLP *lp, const double trow[/*1+n-m*/], + int nbp, SPYBP bp[/*1+n-m*/], int num, double *slope, double + teta_lim); +/* select and process dual objective break-points */ + #endif /* eof */ diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spychuzr.c b/resources/3rdparty/glpk-4.65/src/simplex/spychuzr.c similarity index 84% rename from resources/3rdparty/glpk-4.57/src/simplex/spychuzr.c rename to resources/3rdparty/glpk-4.65/src/simplex/spychuzr.c index 756ce3e6a..63079c178 100644 --- a/resources/3rdparty/glpk-4.57/src/simplex/spychuzr.c +++ b/resources/3rdparty/glpk-4.65/src/simplex/spychuzr.c @@ -161,10 +161,21 @@ int spy_chuzr_std(SPXLP *lp, const double beta[/*1+m*/], int num, void spy_alloc_se(SPXLP *lp, SPYSE *se) { int m = lp->m; int n = lp->n; +#if 1 /* 30/III-2016 */ + int i; +#endif se->valid = 0; se->refsp = talloc(1+n, char); se->gamma = talloc(1+m, double); se->work = talloc(1+m, double); +#if 1 /* 30/III-2016 */ + se->u.n = m; + se->u.nnz = 0; + se->u.ind = talloc(1+m, int); + se->u.vec = talloc(1+m, double); + for (i = 1; i <= m; i++) + se->u.vec[i] = 0.0; +#endif return; } @@ -389,6 +400,68 @@ double spy_update_gamma(SPXLP *lp, SPYSE *se, int p, int q, return e; } +#if 1 /* 30/III-2016 */ +double spy_update_gamma_s(SPXLP *lp, SPYSE *se, int p, int q, + const FVS *trow, const FVS *tcol) +{ /* sparse version of spy_update_gamma */ + int m = lp->m; + int n = lp->n; + int *head = lp->head; + char *refsp = se->refsp; + double *gamma = se->gamma; + double *u = se->work; + int trow_nnz = trow->nnz; + int *trow_ind = trow->ind; + double *trow_vec = trow->vec; + int tcol_nnz = tcol->nnz; + int *tcol_ind = tcol->ind; + double *tcol_vec = tcol->vec; + int i, j, k, t, ptr, end; + double gamma_p, delta_p, e, r, t1, t2; + xassert(se->valid); + xassert(1 <= p && p <= m); + xassert(1 <= q && q <= n-m); + /* compute gamma[p] in current basis more accurately; also + * compute auxiliary vector u */ + k = head[p]; /* x[k] = xB[p] */ + gamma_p = delta_p = (refsp[k] ? 1.0 : 0.0); + for (i = 1; i <= m; i++) + u[i] = 0.0; + for (t = 1; t <= trow_nnz; t++) + { j = trow_ind[t]; + k = head[m+j]; /* x[k] = xN[j] */ + if (refsp[k]) + { gamma_p += trow_vec[j] * trow_vec[j]; + /* u := u + T[p,j] * N[j], where N[j] = A[k] is constraint + * matrix column corresponding to xN[j] */ + ptr = lp->A_ptr[k]; + end = lp->A_ptr[k+1]; + for (; ptr < end; ptr++) + u[lp->A_ind[ptr]] += trow_vec[j] * lp->A_val[ptr]; + } + } + bfd_ftran(lp->bfd, u); + /* compute relative error in gamma[p] */ + e = fabs(gamma_p - gamma[p]) / (1.0 + gamma_p); + /* compute new gamma[p] */ + gamma[p] = gamma_p / (tcol_vec[p] * tcol_vec[p]); + /* compute new gamma[i] for all i != p */ + for (t = 1; t <= tcol_nnz; t++) + { i = tcol_ind[t]; + if (i == p) + continue; + /* compute r[i] = T[i,q] / T[p,q] */ + r = tcol_vec[i] / tcol_vec[p]; + /* compute new gamma[i] */ + t1 = gamma[i] + r * (r * gamma_p + u[i] + u[i]); + k = head[i]; /* x[k] = xB[i] */ + t2 = (refsp[k] ? 1.0 : 0.0) + delta_p * r * r; + gamma[i] = (t1 >= t2 ? t1 : t2); + } + return e; +} +#endif + /*********************************************************************** * spy_free_se - deallocate dual pricing data block * @@ -400,6 +473,10 @@ void spy_free_se(SPXLP *lp, SPYSE *se) tfree(se->refsp); tfree(se->gamma); tfree(se->work); +#if 1 /* 30/III-2016 */ + tfree(se->u.ind); + tfree(se->u.vec); +#endif return; } diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spychuzr.h b/resources/3rdparty/glpk-4.65/src/simplex/spychuzr.h similarity index 90% rename from resources/3rdparty/glpk-4.57/src/simplex/spychuzr.h rename to resources/3rdparty/glpk-4.65/src/simplex/spychuzr.h index 5be8192ef..31f01b78a 100644 --- a/resources/3rdparty/glpk-4.57/src/simplex/spychuzr.h +++ b/resources/3rdparty/glpk-4.65/src/simplex/spychuzr.h @@ -53,6 +53,10 @@ struct SPYSE * (r[i] is bound violation for basic variable xB[i]) */ double *work; /* double work[1+m]; */ /* working array */ +#if 1 /* 30/III-2016 */ + FVS u; /* FVS u[1:m]; */ + /* working vector */ +#endif }; #define spy_alloc_se _glp_spy_alloc_se @@ -77,6 +81,13 @@ double spy_update_gamma(SPXLP *lp, SPYSE *se, int p, int q, const double trow[/*1+n-m*/], const double tcol[/*1+m*/]); /* update dual projected steepest edge weights exactly */ +#if 1 /* 30/III-2016 */ +#define spy_update_gamma_s _glp_spy_update_gamma_s +double spy_update_gamma_s(SPXLP *lp, SPYSE *se, int p, int q, + const FVS *trow, const FVS *tcol); +/* sparse version of spy_update_gamma */ +#endif + #define spy_free_se _glp_spy_free_se void spy_free_se(SPXLP *lp, SPYSE *se); /* deallocate dual pricing data block */ diff --git a/resources/3rdparty/glpk-4.57/src/simplex/spydual.c b/resources/3rdparty/glpk-4.65/src/simplex/spydual.c similarity index 54% rename from resources/3rdparty/glpk-4.57/src/simplex/spydual.c rename to resources/3rdparty/glpk-4.65/src/simplex/spydual.c index 9d08fbdc9..89d98db9b 100644 --- a/resources/3rdparty/glpk-4.57/src/simplex/spydual.c +++ b/resources/3rdparty/glpk-4.65/src/simplex/spydual.c @@ -3,7 +3,7 @@ /*********************************************************************** * This code is part of GLPK (GNU Linear Programming Kit). * -* Copyright (C) 2015 Andrew Makhorin, Department for Applied +* Copyright (C) 2015-2017 Andrew Makhorin, Department for Applied * Informatics, Moscow Aviation Institute, Moscow, Russia. All rights * reserved. E-mail: . * @@ -21,6 +21,10 @@ * along with GLPK. If not, see . ***********************************************************************/ +#if 1 /* 18/VII-2017 */ +#define SCALE_Z 1 +#endif + #include "env.h" #include "simplex.h" #include "spxat.h" @@ -28,19 +32,11 @@ #include "spxprob.h" #include "spychuzc.h" #include "spychuzr.h" - -#define USE_AT 1 -/* 1 - use A in row-wise format - * 0 - use N in row-wise format */ -/* (Looks like using A' provide more accuracy for dual simplex.) */ - -#define EXCL 1 -/* 1 - exclude fixed non-basic variables - * 0 - don't exclude variables */ - -#define SHIFT 1 -/* 1 - shift bounds of variables toward zero - * 0 - don't shift bounds of variables */ +#if 0 /* 11/VI-2017 */ +#if 1 /* 29/III-2016 */ +#include "fvs.h" +#endif +#endif #define CHECK_ACCURACY 0 /* (for debugging) */ @@ -54,11 +50,17 @@ struct csa /* original optimization direction: * +1 - minimization * -1 - maximization */ - double *b; /* double b[1+m]; */ +#if SCALE_Z + double fz; + /* factor used to scale original objective */ +#endif + double *orig_b; /* double orig_b[1+m]; */ /* copy of original right-hand sides */ - double *l; /* double l[1+n]; */ + double *orig_c; /* double orig_c[1+n]; */ + /* copy of original objective coefficients */ + double *orig_l; /* double orig_l[1+n]; */ /* copy of original lower bounds */ - double *u; /* double u[1+n]; */ + double *orig_u; /* double orig_u[1+n]; */ /* copy of original upper bounds */ SPXAT *at; /* mxn-matrix A of constraint coefficients, in sparse row-wise @@ -88,23 +90,49 @@ struct csa SPYSE *se; /* dual projected steepest edge and Devex pricing data block * (NULL if not used) */ +#if 0 /* 30/III-2016 */ int num; /* number of eligible basic variables */ int *list; /* int list[1+m]; */ /* list[1], ..., list[num] are indices i of eligible basic * variables xB[i] */ +#else + FVS r; /* FVS r[1:m]; */ + /* vector of primal infeasibilities */ + /* r->nnz = num; r->ind = list */ + /* vector r has the same status as vector beta (see above) */ +#endif int p; /* xB[p] is a basic variable chosen to leave the basis */ +#if 0 /* 29/III-2016 */ double *trow; /* double trow[1+n-m]; */ +#else + FVS trow; /* FVS trow[1:n-m]; */ +#endif /* p-th (pivot) row of the simplex table */ +#if 1 /* 16/III-2016 */ + SPYBP *bp; /* SPYBP bp[1+n-m]; */ + /* dual objective break-points */ +#endif int q; /* xN[q] is a non-basic variable chosen to enter the basis */ +#if 0 /* 29/III-2016 */ double *tcol; /* double tcol[1+m]; */ +#else + FVS tcol; /* FVS tcol[1:m]; */ +#endif /* q-th (pivot) column of the simplex table */ double *work; /* double work[1+m]; */ /* working array */ double *work1; /* double work1[1+n-m]; */ /* another working array */ +#if 0 /* 11/VI-2017 */ +#if 1 /* 31/III-2016 */ + FVS wrow; /* FVS wrow[1:n-m]; */ + FVS wcol; /* FVS wcol[1:m]; */ + /* working sparse vectors */ +#endif +#endif int p_stat, d_stat; /* primal and dual solution statuses */ /*--------------------------------------------------------------*/ @@ -113,10 +141,18 @@ struct csa /* message level */ int dualp; /* if this flag is set, report failure in case of instability */ +#if 0 /* 16/III-2016 */ int harris; /* dual ratio test technique: * 0 - textbook ratio test * 1 - Harris' two pass ratio test */ +#else + int r_test; + /* dual ratio test technique: + * GLP_RT_STD - textbook ratio test + * GLP_RT_HAR - Harris' two pass ratio test + * GLP_RT_FLIP - long-step (flip-flop) ratio test */ +#endif double tol_bnd, tol_bnd1; /* primal feasibility tolerances */ double tol_dj, tol_dj1; @@ -130,7 +166,11 @@ struct csa int tm_lim; /* time limit, milliseconds */ int out_frq; +#if 0 /* 15/VII-2017 */ /* display output frequency, iterations */ +#else + /* display output frequency, milliseconds */ +#endif int out_dly; /* display output delay, milliseconds */ /*--------------------------------------------------------------*/ @@ -144,8 +184,21 @@ struct csa * basis changes */ int it_dpy; /* simplex iteration count at most recent display output */ +#if 1 /* 15/VII-2017 */ + double tm_dpy; + /* time value at most recent display output */ +#endif int inv_cnt; /* basis factorization count since most recent display output */ +#if 1 /* 11/VII-2017 */ + int degen; + /* count of successive degenerate iterations; this count is used + * to detect stalling */ +#endif +#if 1 /* 23/III-2016 */ + int ns_cnt, ls_cnt; + /* normal and long-step iteration count */ +#endif }; /*********************************************************************** @@ -201,22 +254,24 @@ static void set_art_bounds(struct csa *csa) char *flag = lp->flag; double *d = csa->d; int i, j, k; +#if 1 /* 31/III-2016: FIXME */ /* set artificial right-hand sides */ for (i = 1; i <= m; i++) b[i] = 0.0; /* set artificial bounds depending on types of variables */ for (k = 1; k <= n; k++) - { if (csa->l[k] == -DBL_MAX && csa->u[k] == +DBL_MAX) + { if (csa->orig_l[k] == -DBL_MAX && csa->orig_u[k] == +DBL_MAX) { /* force free variables to enter the basis */ l[k] = -1e3, u[k] = +1e3; } - else if (csa->l[k] != -DBL_MAX && csa->u[k] == +DBL_MAX) + else if (csa->orig_l[k] != -DBL_MAX && csa->orig_u[k] == +DBL_MAX) l[k] = 0.0, u[k] = +1.0; - else if (csa->l[k] == -DBL_MAX && csa->u[k] != +DBL_MAX) + else if (csa->orig_l[k] == -DBL_MAX && csa->orig_u[k] != +DBL_MAX) l[k] = -1.0, u[k] = 0.0; else l[k] = u[k] = 0.0; } +#endif /* set active artificial bounds for non-basic variables */ xassert(csa->d_st == 1); for (j = 1; j <= n-m; j++) @@ -238,7 +293,7 @@ static void set_art_bounds(struct csa *csa) * reduced costs d = (d[j]) are used to decide which bound (lower or * upper) should be made active. */ -void set_orig_bounds(struct csa *csa) +static void set_orig_bounds(struct csa *csa) { SPXLP *lp = csa->lp; int m = lp->m; int n = lp->n; @@ -250,10 +305,10 @@ void set_orig_bounds(struct csa *csa) double *d = csa->d; int j, k; /* restore original right-hand sides */ - memcpy(b, csa->b, (1+m) * sizeof(double)); + memcpy(b, csa->orig_b, (1+m) * sizeof(double)); /* restore original bounds of all variables */ - memcpy(l, csa->l, (1+n) * sizeof(double)); - memcpy(u, csa->u, (1+n) * sizeof(double)); + memcpy(l, csa->orig_l, (1+n) * sizeof(double)); + memcpy(u, csa->orig_u, (1+n) * sizeof(double)); /* set active original bounds for non-basic variables */ xassert(csa->d_st == 1); for (j = 1; j <= n-m; j++) @@ -383,7 +438,7 @@ static int check_feas(struct csa *csa, double tol, double tol1, * * err_max = max |x[i] - y[i]| / (1 + |x[i]|). * -* NOTE: This routine is intended only for debugginig purposes. */ +* NOTE: This routine is intended only for debugging purposes. */ static double err_in_vec(int n, const double x[], const double y[]) { int i; @@ -405,7 +460,7 @@ static double err_in_vec(int n, const double x[], const double y[]) * This routine computes and returns maximal relative error in vector * of values of basic variables beta = (beta[i]). * -* NOTE: This routine is intended only for debugginig purposes. */ +* NOTE: This routine is intended only for debugging purposes. */ static double err_in_beta(struct csa *csa) { SPXLP *lp = csa->lp; @@ -419,6 +474,33 @@ static double err_in_beta(struct csa *csa) } #endif +#if CHECK_ACCURACY +static double err_in_r(struct csa *csa) +{ SPXLP *lp = csa->lp; + int m = lp->m; + int i, k; + double err, *r; + r = talloc(1+m, double); + for (i = 1; i <= m; i++) + { k = lp->head[i]; + if (csa->beta[i] < lp->l[k]) + r[i] = lp->l[k] - csa->beta[i]; + else if (csa->beta[i] > lp->u[k]) + r[i] = lp->u[k] - csa->beta[i]; + else + r[i] = 0.0; + +if (fabs(r[i] - csa->r.vec[i]) > 1e-6) +printf("i = %d; r = %g; csa->r = %g\n", i, r[i], csa->r.vec[i]); + + + } + err = err_in_vec(m, r, csa->r.vec); + tfree(r); + return err; +} +#endif + #if CHECK_ACCURACY /*********************************************************************** * err_in_d - compute maximal relative error in vector d @@ -426,7 +508,7 @@ static double err_in_beta(struct csa *csa) * This routine computes and returns maximal relative error in vector * of reduced costs of non-basic variables d = (d[j]). * -* NOTE: This routine is intended only for debugginig purposes. */ +* NOTE: This routine is intended only for debugging purposes. */ static double err_in_d(struct csa *csa) { SPXLP *lp = csa->lp; @@ -453,7 +535,7 @@ static double err_in_d(struct csa *csa) * This routine computes and returns maximal relative error in vector * of projected steepest edge weights gamma = (gamma[j]). * -* NOTE: This routine is intended only for debugginig purposes. */ +* NOTE: This routine is intended only for debugging purposes. */ static double err_in_gamma(struct csa *csa) { SPXLP *lp = csa->lp; @@ -478,23 +560,74 @@ gamma = talloc(1+m, double); * * This routine checks accuracy of current basic solution components. * -* NOTE: This routine is intended only for debugginig purposes. */ +* NOTE: This routine is intended only for debugging purposes. */ static void check_accuracy(struct csa *csa) -{ double e_beta, e_d, e_gamma; +{ double e_beta, e_r, e_d, e_gamma; e_beta = err_in_beta(csa); + e_r = err_in_r(csa); e_d = err_in_d(csa); if (csa->se == NULL) e_gamma = 0.; else e_gamma = err_in_gamma(csa); - xprintf("e_beta = %10.3e; e_d = %10.3e; e_gamma = %10.3e\n", - e_beta, e_d, e_gamma); + xprintf("e_beta = %10.3e; e_r = %10.3e; e_d = %10.3e; e_gamma = %" + "10.3e\n", e_beta, e_r, e_d, e_gamma); xassert(e_beta <= 1e-5 && e_d <= 1e-5 && e_gamma <= 1e-3); return; } #endif +#if 1 /* 30/III-2016 */ +static +void spy_eval_r(SPXLP *lp, const double beta[/*1+m*/], double tol, + double tol1, FVS *r) +{ /* this routine computes the vector of primal infeasibilities: + * + * ( lB[i] - beta[i] > 0, if beta[i] < lb[i] + * r[i] = { 0, if lb[i] <= beta[i] <= ub[i] + * ( ub[i] - beta[i] < 0, if beta[i] > ub[i] + * + * (this routine replaces spy_chuzr_sel) */ + int m = lp->m; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + int *ind = r->ind; + double *vec = r->vec; + int i, k, nnz = 0; + double lk, uk, eps; + xassert(r->n == m); + /* walk thru the list of basic variables */ + for (i = 1; i <= m; i++) + { vec[i] = 0.0; + k = head[i]; /* x[k] = xB[i] */ + lk = l[k], uk = u[k]; + /* check primal feasibility */ + if (beta[i] < lk) + { /* determine absolute tolerance eps1[i] */ + eps = tol + tol1 * (lk >= 0.0 ? +lk : -lk); + if (beta[i] < lk - eps) + { /* lower bound is violated */ + ind[++nnz] = i; + vec[i] = lk - beta[i]; + } + } + else if (beta[i] > uk) + { /* determine absolute tolerance eps2[i] */ + eps = tol + tol1 * (uk >= 0.0 ? +uk : -uk); + if (beta[i] > uk + eps) + { /* upper bound is violated */ + ind[++nnz] = i; + vec[i] = uk - beta[i]; + } + } + } + r->nnz = nnz; + return; +} +#endif + /*********************************************************************** * choose_pivot - choose xB[p] and xN[q] * @@ -504,30 +637,54 @@ static void check_accuracy(struct csa *csa) * computes p-th row T[p,*] of the simplex table T[i,j] and chooses * non-basic variable xN[q]. If the pivot T[p,q] is small in magnitude, * the routine attempts to choose another xB[p] and xN[q] in order to -* avoid badly conditioned adjacent bases. */ +* avoid badly conditioned adjacent bases. +* +* If the normal choice was made, the routine returns zero. Otherwise, +* if the long-step choice was made, the routine returns non-zero. */ + +#ifdef TIMING /* 31/III-2016 */ + +#include "choose_pivot.c" + +#else + +#define MIN_RATIO 0.0001 -static void choose_pivot(struct csa *csa) +static int choose_pivot(struct csa *csa) { SPXLP *lp = csa->lp; int m = lp->m; int n = lp->n; double *l = lp->l; + double *u = lp->u; int *head = lp->head; SPXAT *at = csa->at; SPXNT *nt = csa->nt; double *beta = csa->beta; double *d = csa->d; SPYSE *se = csa->se; +#if 0 /* 30/III-2016 */ int *list = csa->list; +#else + int *list = csa->r.ind; +#endif double *rho = csa->work; double *trow = csa->work1; - int nnn, try, k, p, q, t; + SPYBP *bp = csa->bp; + double tol_piv = csa->tol_piv; + int try, nnn, j, k, p, q, t, t_best, nbp, ret; + double big, temp, r, best_ratio, dz_best; xassert(csa->beta_st); xassert(csa->d_st); - /* initial number of eligible basic variables */ +more: /* initial number of eligible basic variables */ +#if 0 /* 30/III-2016 */ nnn = csa->num; +#else + nnn = csa->r.nnz; +#endif /* nothing has been chosen so far */ csa->p = 0; - try = 0; + best_ratio = 0.0; + try = ret = 0; try: /* choose basic variable xB[p] */ xassert(nnn > 0); try++; @@ -547,28 +704,140 @@ try: /* choose basic variable xB[p] */ spx_eval_trow1(lp, at, rho, trow); else spx_nt_prod(lp, nt, trow, 1, -1.0, rho); +#if 1 /* 23/III-2016 */ + /* big := max(1, |trow[1]|, ..., |trow[n-m]|) */ + big = 1.0; + for (j = 1; j <= n-m; j++) + { temp = trow[j]; + if (temp < 0.0) + temp = - temp; + if (big < temp) + big = temp; + } +#else + /* this still puzzles me */ + big = 1.0; +#endif /* choose non-basic variable xN[q] */ k = head[p]; /* x[k] = xB[p] */ - if (!csa->harris) - q = spy_chuzc_std(lp, d, beta[p] < l[k] ? +1. : -1., trow, - csa->tol_piv, .30 * csa->tol_dj, .30 * csa->tol_dj1); + xassert(beta[p] < l[k] || beta[p] > u[k]); + r = beta[p] < l[k] ? l[k] - beta[p] : u[k] - beta[p]; + if (csa->r_test == GLP_RT_FLIP && try <= 2) + { /* long-step ratio test */ +#if 0 /* 23/III-2016 */ + /* determine dual objective break-points */ + nbp = spy_eval_bp(lp, d, r, trow, tol_piv, bp); + if (nbp <= 1) + goto skip; + /* choose appropriate break-point */ + t_best = 0, dz_best = -DBL_MAX; + for (t = 1; t <= nbp; t++) + { if (fabs(trow[bp[t].j]) / big >= MIN_RATIO) + { if (dz_best < bp[t].dz) + t_best = t, dz_best = bp[t].dz; + } + } + if (t_best == 0) + goto skip; +#else + int t, num, num1; + double slope, teta_lim; + /* determine dual objective break-points */ + nbp = spy_ls_eval_bp(lp, d, r, trow, tol_piv, bp); + if (nbp < 2) + goto skip; + /* set initial slope */ + slope = fabs(r); + /* estimate initial teta_lim */ + teta_lim = DBL_MAX; + for (t = 1; t <= nbp; t++) + { if (teta_lim > bp[t].teta) + teta_lim = bp[t].teta; + } + xassert(teta_lim >= 0.0); + if (teta_lim < 1e-6) + teta_lim = 1e-6; + /* nothing has been chosen so far */ + t_best = 0, dz_best = 0.0, num = 0; + /* choose appropriate break-point */ + while (num < nbp) + { /* select and process a new portion of break-points */ + num1 = spy_ls_select_bp(lp, trow, nbp, bp, num, &slope, + teta_lim); + for (t = num+1; t <= num1; t++) + { if (fabs(trow[bp[t].j]) / big >= MIN_RATIO) + { if (dz_best < bp[t].dz) + t_best = t, dz_best = bp[t].dz; + } + } + if (slope < 0.0) + { /* the dual objective starts decreasing */ + break; + } + /* the dual objective continues increasing */ + num = num1; + teta_lim += teta_lim; + } + if (dz_best == 0.0) + goto skip; + xassert(1 <= t_best && t_best <= num1); +#endif + /* the choice has been made */ + csa->p = p; +#if 0 /* 29/III-2016 */ + memcpy(&csa->trow[1], &trow[1], (n-m) * sizeof(double)); +#else + memcpy(&csa->trow.vec[1], &trow[1], (n-m) * sizeof(double)); + fvs_gather_vec(&csa->trow, DBL_EPSILON); +#endif + csa->q = bp[t_best].j; + best_ratio = fabs(trow[bp[t_best].j]) / big; +#if 0 + xprintf("num = %d; t_best = %d; dz = %g\n", num, t_best, + bp[t_best].dz); +#endif + ret = 1; + goto done; +skip: ; + } + if (csa->r_test == GLP_RT_STD) + { /* textbook dual ratio test */ + q = spy_chuzc_std(lp, d, r, trow, tol_piv, + .30 * csa->tol_dj, .30 * csa->tol_dj1); + } else - q = spy_chuzc_harris(lp, d, beta[p] < l[k] ? +1. : -1., trow, - csa->tol_piv, .35 * csa->tol_dj, .35 * csa->tol_dj1); + { /* Harris' two-pass dual ratio test */ + q = spy_chuzc_harris(lp, d, r, trow, tol_piv, + .35 * csa->tol_dj, .35 * csa->tol_dj1); + } + if (q == 0) + { /* dual unboundedness */ + csa->p = p; +#if 0 /* 29/III-2016 */ + memcpy(&csa->trow[1], &trow[1], (n-m) * sizeof(double)); +#else + memcpy(&csa->trow.vec[1], &trow[1], (n-m) * sizeof(double)); + fvs_gather_vec(&csa->trow, DBL_EPSILON); +#endif + csa->q = q; + best_ratio = 1.0; + goto done; + } /* either keep previous choice or accept new choice depending on * which one is better */ - if (csa->p == 0 || q == 0 || - fabs(trow[q]) > fabs(csa->trow[csa->q])) + if (best_ratio < fabs(trow[q]) / big) { csa->p = p; +#if 0 /* 29/III-2016 */ memcpy(&csa->trow[1], &trow[1], (n-m) * sizeof(double)); +#else + memcpy(&csa->trow.vec[1], &trow[1], (n-m) * sizeof(double)); + fvs_gather_vec(&csa->trow, DBL_EPSILON); +#endif csa->q = q; + best_ratio = fabs(trow[q]) / big; } - /* check if current choice is acceptable */ - if (csa->q == 0 || fabs(csa->trow[csa->q]) >= 0.001) - goto done; - if (nnn == 1) - goto done; - if (try == 5) + /* check if the current choice is acceptable */ + if (best_ratio >= MIN_RATIO || nnn == 1 || try == 5) goto done; /* try to choose other xB[p] and xN[q] */ /* find xB[p] in the list */ @@ -582,8 +851,136 @@ try: /* choose basic variable xB[p] */ /* repeat the choice */ goto try; done: /* the choice has been made */ +#if 1 /* FIXME: currently just to avoid badly conditioned basis */ + if (best_ratio < .001 * MIN_RATIO) + { /* looks like this helps */ + if (bfd_get_count(lp->bfd) > 0) + return -1; + /* didn't help; last chance to improve the choice */ + if (tol_piv == csa->tol_piv) + { tol_piv *= 1000.; + goto more; + } + } +#endif +#if 1 /* FIXME */ + if (ret) + { /* invalidate basic solution components */ +#if 0 /* 28/III-2016 */ + csa->beta_st = csa->d_st = 0; +#else + /* dual solution remains valid */ + csa->beta_st = 0; +#endif + /* set double-bounded non-basic variables to opposite bounds + * for all break-points preceding the chosen one */ + for (t = 1; t < t_best; t++) + { k = head[m + bp[t].j]; + xassert(-DBL_MAX < l[k] && l[k] < u[k] && u[k] < +DBL_MAX); + lp->flag[bp[t].j] = !(lp->flag[bp[t].j]); + } + } +#endif + return ret; +} + +#endif + +/*********************************************************************** +* play_coef - play objective coefficients +* +* This routine is called after the reduced costs d[j] was updated and +* the basis was changed to the adjacent one. +* +* It is assumed that before updating all the reduced costs d[j] were +* strongly feasible, so in the adjacent basis d[j] remain feasible +* within a tolerance, i.e. if some d[j] violates its zero bound, the +* violation is insignificant. +* +* If some d[j] violates its zero bound, the routine changes (perturbs) +* objective coefficient cN[j] to provide d[j] = 0, i.e. to make all +* d[j] strongly feasible. Otherwise, if d[j] has a feasible value, the +* routine attempts to reduce (or remove) perturbation in cN[j] by +* shifting d[j] to its zero bound keeping strong feasibility. */ + +static void play_coef(struct csa *csa, int all) +{ SPXLP *lp = csa->lp; + int m = lp->m; + int n = lp->n; + double *c = lp->c; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + char *flag = lp->flag; + double *orig_c = csa->orig_c; + double *d = csa->d; + const double *trow = csa->trow.vec; + /* this vector was used to update d = (d[j]) */ + int j, k; + static const double eps = 1e-9; + /* reduced costs d = (d[j]) should be valid */ + xassert(csa->d_st); + /* walk thru the list of non-basic variables xN = (xN[j]) */ + for (j = 1; j <= n-m; j++) + { if (all || trow[j] != 0.0) + { /* d[j] has changed in the adjacent basis */ + k = head[m+j]; /* x[k] = xN[j] */ + if (l[k] == u[k]) + { /* xN[j] is fixed variable */ + /* d[j] may have any sign */ + } + else if (l[k] == -DBL_MAX && u[k] == +DBL_MAX) + { /* xN[j] is free (unbounded) variable */ + /* strong feasibility means d[j] = 0 */ + c[k] -= d[j], d[j] = 0.0; + /* in this case dual degeneracy is not critical, since + * if xN[j] enters the basis, it never leaves it */ + } + else if (!flag[j]) + { /* xN[j] has its lower bound active */ + xassert(l[k] != -DBL_MAX); + /* first, we remove current perturbation to provide + * c[k] = orig_c[k] */ + d[j] -= c[k] - orig_c[k], c[k] = orig_c[k]; + /* strong feasibility means d[j] >= 0, but we provide + * d[j] >= +eps to prevent dual degeneracy */ + if (d[j] < +eps) + c[k] -= d[j] - eps, d[j] = +eps; + } + else + { /* xN[j] has its upper bound active */ + xassert(u[k] != +DBL_MAX); + /* similarly, we remove current perturbation to provide + * c[k] = orig_c[k] */ + d[j] -= c[k] - orig_c[k], c[k] = orig_c[k]; + /* strong feasibility means d[j] <= 0, but we provide + * d[j] <= -eps to prevent dual degeneracy */ + if (d[j] > -eps) + c[k] -= d[j] + eps, d[j] = -eps; + } + } + } + return; +} + +#if 1 /* 11/VII-2017 */ +static void remove_perturb(struct csa *csa) +{ /* remove perturbation */ + SPXLP *lp = csa->lp; + int n = lp->n; + double *c = lp->c; + double *orig_c = csa->orig_c; + memcpy(c, orig_c, (1+n) * sizeof(double)); + /* removing perturbation changes dual solution components */ + csa->phase = csa->d_st = 0; +#if 1 + if (csa->msg_lev >= GLP_MSG_ALL) + xprintf("Removing LP perturbation [%d]...\n", + csa->it_cnt); +#endif return; } +#endif /*********************************************************************** * display - display search progress @@ -610,19 +1007,35 @@ static void display(struct csa *csa, int spec) int n = lp->n; int *head = lp->head; char *flag = lp->flag; - double *l = csa->l; /* original lower bounds */ - double *u = csa->u; /* original upper bounds */ + double *l = csa->orig_l; /* original lower bounds */ + double *u = csa->orig_u; /* original upper bounds */ double *beta = csa->beta; double *d = csa->d; int j, k, nnn; double sum; +#if 1 /* 15/VII-2017 */ + double tm_cur; +#endif /* check if the display output should be skipped */ if (csa->msg_lev < GLP_MSG_ON) goto skip; +#if 1 /* 15/VII-2017 */ + tm_cur = xtime(); +#endif if (csa->out_dly > 0 && +#if 0 /* 15/VII-2017 */ 1000.0 * xdifftime(xtime(), csa->tm_beg) < csa->out_dly) +#else + 1000.0 * xdifftime(tm_cur, csa->tm_beg) < csa->out_dly) +#endif goto skip; if (csa->it_cnt == csa->it_dpy) goto skip; +#if 0 /* 15/VII-2017 */ if (!spec && csa->it_cnt % csa->out_frq != 0) goto skip; +#else + if (!spec && + 1000.0 * xdifftime(tm_cur, csa->tm_dpy) < csa->out_frq) + goto skip; +#endif /* display search progress depending on search phase */ switch (csa->phase) { case 1: @@ -651,8 +1064,14 @@ static void display(struct csa *csa, int spec) /* on phase I variables have artificial bounds which are * meaningless for original LP, so corresponding objective * function value is also meaningless */ +#if 0 /* 27/III-2016 */ xprintf(" %6d: %23s inf = %11.3e (%d)", csa->it_cnt, "", sum, nnn); +#else + xprintf(" %6d: sum = %17.9e inf = %11.3e (%d)", + csa->it_cnt, lp->c[0] - spx_eval_obj(lp, beta), + sum, nnn); +#endif break; case 2: /* compute sum of (scaled) dual infeasibilities */ @@ -674,7 +1093,12 @@ static void display(struct csa *csa, int spec) nnn = spy_chuzr_sel(lp, beta, csa->tol_bnd, csa->tol_bnd1, NULL); xprintf("#%6d: obj = %17.9e inf = %11.3e (%d)", +#if SCALE_Z + csa->it_cnt, + (double)csa->dir * csa->fz * spx_eval_obj(lp, beta), +#else csa->it_cnt, (double)csa->dir * spx_eval_obj(lp, beta), +#endif sum, nnn); break; default: @@ -685,13 +1109,91 @@ static void display(struct csa *csa, int spec) xprintf(" %d", csa->inv_cnt); csa->inv_cnt = 0; } +#if 1 /* 23/III-2016 */ + if (csa->r_test == GLP_RT_FLIP) + { /*xprintf(" %d,%d", csa->ns_cnt, csa->ls_cnt);*/ + if (csa->ns_cnt + csa->ls_cnt) + xprintf(" %d%%", + (100 * csa->ls_cnt) / (csa->ns_cnt + csa->ls_cnt)); + csa->ns_cnt = csa->ls_cnt = 0; + } +#endif xprintf("\n"); csa->it_dpy = csa->it_cnt; +#if 1 /* 15/VII-2017 */ + csa->tm_dpy = tm_cur; +#endif skip: return; } +#if 1 /* 31/III-2016 */ +static +void spy_update_r(SPXLP *lp, int p, int q, const double beta[/*1+m*/], + const FVS *tcol, double tol, double tol1, FVS *r) +{ /* update vector r of primal infeasibilities */ + /* it is assumed that xB[p] leaves the basis, xN[q] enters the + * basis, and beta corresponds to the adjacent basis (i.e. this + * routine should be called after spx_update_beta) */ + int m = lp->m; + int n = lp->n; + double *l = lp->l; + double *u = lp->u; + int *head = lp->head; + int *tcol_ind = tcol->ind; + int *ind = r->ind; + double *vec = r->vec; + int i, k, t, nnz; + double lk, uk, ri, eps; + xassert(1 <= p && p <= m); + xassert(1 <= q && q <= n-m); + nnz = r->nnz; + for (t = tcol->nnz; t >= 1; t--) + { i = tcol_ind[t]; + /* xB[i] changes in the adjacent basis to beta[i], so only + * r[i] should be updated */ + if (i == p) + k = head[m+q]; /* x[k] = new xB[p] = old xN[q] */ + else + k = head[i]; /* x[k] = new xB[i] = old xB[i] */ + lk = l[k], uk = u[k]; + /* determine new value of r[i]; see spy_eval_r */ + ri = 0.0; + if (beta[i] < lk) + { /* determine absolute tolerance eps1[i] */ + eps = tol + tol1 * (lk >= 0.0 ? +lk : -lk); + if (beta[i] < lk - eps) + { /* lower bound is violated */ + ri = lk - beta[i]; + } + } + else if (beta[i] > uk) + { /* determine absolute tolerance eps2[i] */ + eps = tol + tol1 * (uk >= 0.0 ? +uk : -uk); + if (beta[i] > uk + eps) + { /* upper bound is violated */ + ri = uk - beta[i]; + } + } + if (ri == 0.0) + { if (vec[i] != 0.0) + vec[i] = DBL_MIN; /* will be removed */ + } + else + { if (vec[i] == 0.0) + ind[++nnz] = i; + vec[i] = ri; + } + + } + r->nnz = nnz; + /* remove zero elements */ + fvs_adjust_vec(r, DBL_MIN + DBL_MIN); + return; +} +#endif + /*********************************************************************** -* spy_dual - driver to dual simplex method +* spy_dual - driver to the dual simplex method * * This routine is a driver to the two-phase dual simplex method. * @@ -726,9 +1228,13 @@ static int dual_simplex(struct csa *csa) double *beta = csa->beta; double *d = csa->d; SPYSE *se = csa->se; +#if 0 /* 30/III-2016 */ int *list = csa->list; +#endif +#if 0 /* 31/III-2016 */ double *trow = csa->trow; double *tcol = csa->tcol; +#endif double *pi = csa->work; int msg_lev = csa->msg_lev; double tol_bnd = csa->tol_bnd; @@ -736,12 +1242,37 @@ static int dual_simplex(struct csa *csa) double tol_dj = csa->tol_dj; double tol_dj1 = csa->tol_dj1; int j, k, p_flag, refct, ret; + int perturb = -1; + /* -1 = perturbation is not used, but enabled + * 0 = perturbation is not used and disabled + * +1 = perturbation is being used */ +#if 1 /* 27/III-2016 */ + int instab = 0; /* instability count */ +#endif +#ifdef TIMING + double t_total = timer(); /* total time */ + double t_fact = 0.0; /* computing factorization */ + double t_rtest = 0.0; /* performing ratio test */ + double t_pivcol = 0.0; /* computing pivot column */ + double t_upd1 = 0.0; /* updating primal values */ + double t_upd2 = 0.0; /* updating dual values */ + double t_upd3 = 0.0; /* updating se weights */ + double t_upd4 = 0.0; /* updating matrix N */ + double t_upd5 = 0.0; /* updating factorization */ + double t_start; +#endif check_flags(csa); loop: /* main loop starts here */ /* compute factorization of the basis matrix */ if (!lp->valid) { double cond; +#ifdef TIMING + t_start = timer(); +#endif ret = spx_factorize(lp); +#ifdef TIMING + t_fact += timer() - t_start; +#endif csa->inv_cnt++; if (ret != 0) { if (msg_lev >= GLP_MSG_ERR) @@ -795,41 +1326,67 @@ loop: /* main loop starts here */ } } /* make sure that current basic solution is dual feasible */ - j = check_feas(csa, tol_dj, tol_dj1, 0); - if (j) - { /* dual feasibility is broken due to excessive round-off - * errors */ - if (bfd_get_count(lp->bfd)) - { /* try to provide more accuracy */ - lp->valid = 0; - goto loop; - } - if (msg_lev >= GLP_MSG_ERR) - xprintf("Warning: numerical instability (dual simplex, p" - "hase %s)\n", csa->phase == 1 ? "I" : "II"); - if (csa->dualp) - { /* do not continue the search; report failure */ - csa->p_stat = csa->d_stat = GLP_UNDEF; - ret = -1; /* special case of GLP_EFAIL */ - goto fini; - } - /* try to recover dual feasibility */ - j = check_feas(csa, 0.97 * tol_dj, 0.97 * tol_dj1, 1); - if (j > 0) - { /* dual feasibility cannot be recovered (this may happen - * only on phase II) */ - xassert(csa->phase == 2); - /* restart to search for dual feasible solution */ - set_art_bounds(csa); - csa->phase = 1; +#if 1 /* 11/VII-2017 */ + if (perturb <= 0) + { if (check_feas(csa, tol_dj, tol_dj1, 0)) + { /* dual feasibility is broken due to excessive round-off + * errors */ + if (perturb < 0) + { if (msg_lev >= GLP_MSG_ALL) + xprintf("Perturbing LP to avoid instability [%d].." + ".\n", csa->it_cnt); + perturb = 1; + goto loop; + } + if (msg_lev >= GLP_MSG_ERR) + xprintf("Warning: numerical instability (dual simplex" + ", phase %s)\n", csa->phase == 1 ? "I" : "II"); + instab++; + if (csa->dualp && instab >= 10) + { /* do not continue the search; report failure */ + if (msg_lev >= GLP_MSG_ERR) + xprintf("Warning: dual simplex failed due to exces" + "sive numerical instability\n"); + csa->p_stat = csa->d_stat = GLP_UNDEF; + ret = -1; /* special case of GLP_EFAIL */ + goto fini; + } + /* try to recover dual feasibility */ + j = check_feas(csa, 0.97 * tol_dj, 0.97 * tol_dj1, 1); + if (j > 0) + { /* dual feasibility cannot be recovered (this may + * happen only on phase II) */ + xassert(csa->phase == 2); + /* restart to search for dual feasible solution */ + set_art_bounds(csa); + csa->phase = 1; + } } } + else + { /* FIXME */ + play_coef(csa, 1); + } } +#endif /* at this point the search phase is determined */ xassert(csa->phase == 1 || csa->phase == 2); /* compute values of basic variables beta = (beta[i]) */ if (!csa->beta_st) { spx_eval_beta(lp, beta); +#if 1 /* 31/III-2016 */ + /* also compute vector r of primal infeasibilities */ + switch (csa->phase) + { case 1: + spy_eval_r(lp, beta, 1e-8, 0.0, &csa->r); + break; + case 2: + spy_eval_r(lp, beta, tol_bnd, tol_bnd1, &csa->r); + break; + default: + xassert(csa != csa); + } +#endif csa->beta_st = 1; /* just computed */ } /* reset the dual reference space, if necessary */ @@ -838,7 +1395,9 @@ loop: /* main loop starts here */ /* at this point the basis factorization and all basic solution * components are valid */ xassert(lp->valid && csa->beta_st && csa->d_st); +#ifdef GLP_DEBUG check_flags(csa); +#endif #if CHECK_ACCURACY /* check accuracy of current basic solution components (only for * debugging) */ @@ -847,7 +1406,20 @@ loop: /* main loop starts here */ /* check if the objective limit has been reached */ if (csa->phase == 2 && csa->obj_lim != DBL_MAX && spx_eval_obj(lp, beta) >= csa->obj_lim) - { if (csa->beta_st != 1) + { +#if 1 /* 26/V-2017 by mao */ + if (perturb > 0) + { /* remove perturbation */ + /* [Should note that perturbing of objective coefficients + * implemented in play_coef is equivalent to *relaxing* of + * (zero) bounds of dual variables, so the perturbed + * objective is always better (*greater*) that the original + * one at the same basic point.] */ + remove_perturb(csa); + perturb = 0; + } +#endif + if (csa->beta_st != 1) csa->beta_st = 0; if (csa->d_st != 1) csa->d_st = 0; @@ -857,15 +1429,25 @@ loop: /* main loop starts here */ if (msg_lev >= GLP_MSG_ALL) xprintf("OBJECTIVE %s LIMIT REACHED; SEARCH TERMINATED\n", csa->dir > 0 ? "UPPER" : "LOWER"); +#if 0 /* 30/III-2016 */ csa->num = spy_chuzr_sel(lp, beta, tol_bnd, tol_bnd1, list); csa->p_stat = (csa->num == 0 ? GLP_FEAS : GLP_INFEAS); +#else + spy_eval_r(lp, beta, tol_bnd, tol_bnd1, &csa->r); + csa->p_stat = (csa->r.nnz == 0 ? GLP_FEAS : GLP_INFEAS); +#endif csa->d_stat = GLP_FEAS; ret = (csa->dir > 0 ? GLP_EOBJUL : GLP_EOBJLL); goto fini; } /* check if the iteration limit has been exhausted */ if (csa->it_cnt - csa->it_beg >= csa->it_lim) - { if (csa->beta_st != 1) + { if (perturb > 0) + { /* remove perturbation */ + remove_perturb(csa); + perturb = 0; + } + if (csa->beta_st != 1) csa->beta_st = 0; if (csa->d_st != 1) csa->d_st = 0; @@ -879,15 +1461,25 @@ loop: /* main loop starts here */ check_flags(csa); spx_eval_beta(lp, beta); } +#if 0 /* 30/III-2016 */ csa->num = spy_chuzr_sel(lp, beta, tol_bnd, tol_bnd1, list); csa->p_stat = (csa->num == 0 ? GLP_FEAS : GLP_INFEAS); +#else + spy_eval_r(lp, beta, tol_bnd, tol_bnd1, &csa->r); + csa->p_stat = (csa->r.nnz == 0 ? GLP_FEAS : GLP_INFEAS); +#endif csa->d_stat = (csa->phase == 1 ? GLP_INFEAS : GLP_FEAS); ret = GLP_EITLIM; goto fini; } /* check if the time limit has been exhausted */ if (1000.0 * xdifftime(xtime(), csa->tm_beg) >= csa->tm_lim) - { if (csa->beta_st != 1) + { if (perturb > 0) + { /* remove perturbation */ + remove_perturb(csa); + perturb = 0; + } + if (csa->beta_st != 1) csa->beta_st = 0; if (csa->d_st != 1) csa->d_st = 0; @@ -901,28 +1493,52 @@ loop: /* main loop starts here */ check_flags(csa); spx_eval_beta(lp, beta); } +#if 0 /* 30/III-2016 */ csa->num = spy_chuzr_sel(lp, beta, tol_bnd, tol_bnd1, list); csa->p_stat = (csa->num == 0 ? GLP_FEAS : GLP_INFEAS); +#else + spy_eval_r(lp, beta, tol_bnd, tol_bnd1, &csa->r); + csa->p_stat = (csa->r.nnz == 0 ? GLP_FEAS : GLP_INFEAS); +#endif csa->d_stat = (csa->phase == 1 ? GLP_INFEAS : GLP_FEAS); - ret = GLP_EITLIM; + ret = GLP_ETMLIM; goto fini; } /* display the search progress */ display(csa, 0); /* select eligible basic variables */ +#if 0 /* 31/III-2016; not needed because r is valid */ switch (csa->phase) { case 1: +#if 0 /* 30/III-2016 */ csa->num = spy_chuzr_sel(lp, beta, 1e-8, 0.0, list); +#else + spy_eval_r(lp, beta, 1e-8, 0.0, &csa->r); +#endif break; case 2: +#if 0 /* 30/III-2016 */ csa->num = spy_chuzr_sel(lp, beta, tol_bnd, tol_bnd1, list); +#else + spy_eval_r(lp, beta, tol_bnd, tol_bnd1, &csa->r); +#endif break; default: xassert(csa != csa); } +#endif /* check for optimality */ +#if 0 /* 30/III-2016 */ if (csa->num == 0) - { if (csa->beta_st != 1) +#else + if (csa->r.nnz == 0) +#endif + { if (perturb > 0 && csa->phase == 2) + { /* remove perturbation */ + remove_perturb(csa); + perturb = 0; + } + if (csa->beta_st != 1) csa->beta_st = 0; if (csa->d_st != 1) csa->d_st = 0; @@ -941,13 +1557,26 @@ loop: /* main loop starts here */ xassert(!csa->beta_st); goto loop; } +#if 1 /* 26/V-2017 by cmatraki */ + if (perturb > 0) + { /* remove perturbation */ + remove_perturb(csa); + perturb = 0; + goto loop; + } +#endif /* no dual feasible solution exists */ if (msg_lev >= GLP_MSG_ALL) xprintf("LP HAS NO DUAL FEASIBLE SOLUTION\n"); spx_eval_beta(lp, beta); +#if 0 /* 30/III-2016 */ csa->num = spy_chuzr_sel(lp, beta, tol_bnd, tol_bnd1, list); csa->p_stat = (csa->num == 0 ? GLP_FEAS : GLP_INFEAS); +#else + spy_eval_r(lp, beta, tol_bnd, tol_bnd1, &csa->r); + csa->p_stat = (csa->r.nnz == 0 ? GLP_FEAS : GLP_INFEAS); +#endif csa->d_stat = GLP_NOFEAS; ret = 0; goto fini; @@ -963,10 +1592,35 @@ loop: /* main loop starts here */ } } /* choose xB[p] and xN[q] */ +#if 0 /* 23/III-2016 */ choose_pivot(csa); +#else +#ifdef TIMING + t_start = timer(); +#endif +#if 1 /* 31/III-2016 */ + ret = choose_pivot(csa); +#endif +#ifdef TIMING + t_rtest += timer() - t_start; +#endif + if (ret < 0) + { lp->valid = 0; + goto loop; + } + if (ret == 0) + csa->ns_cnt++; + else + csa->ls_cnt++; +#endif /* check for dual unboundedness */ if (csa->q == 0) - { if (csa->beta_st != 1) + { if (perturb > 0) + { /* remove perturbation */ + remove_perturb(csa); + perturb = 0; + } + if (csa->beta_st != 1) csa->beta_st = 0; if (csa->d_st != 1) csa->d_st = 0; @@ -994,17 +1648,107 @@ loop: /* main loop starts here */ } } /* compute q-th column of the simplex table */ +#ifdef TIMING + t_start = timer(); +#endif +#if 0 /* 31/III-2016 */ spx_eval_tcol(lp, csa->q, tcol); +#else + spx_eval_tcol(lp, csa->q, csa->tcol.vec); + fvs_gather_vec(&csa->tcol, DBL_EPSILON); +#endif +#ifdef TIMING + t_pivcol += timer() - t_start; +#endif /* FIXME: tcol[p] and trow[q] should be close to each other */ - xassert(tcol[csa->p] != 0.0); +#if 0 /* 26/V-2017 by cmatraki */ + xassert(csa->tcol.vec[csa->p] != 0.0); +#else + if (csa->tcol.vec[csa->p] == 0.0) + { if (msg_lev >= GLP_MSG_ERR) + xprintf("Error: tcol[p] = 0.0\n"); + csa->p_stat = csa->d_stat = GLP_UNDEF; + ret = GLP_EFAIL; + goto fini; + } +#endif /* update values of basic variables for adjacent basis */ k = head[csa->p]; /* x[k] = xB[p] */ p_flag = (l[k] != u[k] && beta[csa->p] > u[k]); +#if 0 /* 16/III-2016 */ spx_update_beta(lp, beta, csa->p, p_flag, csa->q, tcol); csa->beta_st = 2; +#else + /* primal solution may be invalidated due to long step */ +#ifdef TIMING + t_start = timer(); +#endif + if (csa->beta_st) +#if 0 /* 30/III-2016 */ + { spx_update_beta(lp, beta, csa->p, p_flag, csa->q, tcol); +#else + { spx_update_beta_s(lp, beta, csa->p, p_flag, csa->q, + &csa->tcol); + /* also update vector r of primal infeasibilities */ + /*fvs_check_vec(&csa->r);*/ + switch (csa->phase) + { case 1: + spy_update_r(lp, csa->p, csa->q, beta, &csa->tcol, + 1e-8, 0.0, &csa->r); + break; + case 2: + spy_update_r(lp, csa->p, csa->q, beta, &csa->tcol, + tol_bnd, tol_bnd1, &csa->r); + break; + default: + xassert(csa != csa); + } + /*fvs_check_vec(&csa->r);*/ +#endif + csa->beta_st = 2; + } +#ifdef TIMING + t_upd1 += timer() - t_start; +#endif +#endif +#if 1 /* 11/VII-2017 */ + /* check for stalling */ + { int k; + xassert(1 <= csa->p && csa->p <= m); + xassert(1 <= csa->q && csa->q <= n-m); + /* FIXME: recompute d[q]; see spx_update_d */ + k = head[m+csa->q]; /* x[k] = xN[q] */ + if (!(lp->l[k] == -DBL_MAX && lp->u[k] == +DBL_MAX)) + { if (fabs(d[csa->q]) >= 1e-6) + { csa->degen = 0; + goto skip1; + } + /* degenerate iteration has been detected */ + csa->degen++; + if (perturb < 0 && csa->degen >= 200) + { if (msg_lev >= GLP_MSG_ALL) + xprintf("Perturbing LP to avoid stalling [%d]...\n", + csa->it_cnt); + perturb = 1; + } +skip1: ; + } + } +#endif /* update reduced costs of non-basic variables for adjacent * basis */ +#if 1 /* 28/III-2016 */ + xassert(csa->d_st); +#endif +#ifdef TIMING + t_start = timer(); +#endif +#if 0 /* 30/III-2016 */ if (spx_update_d(lp, d, csa->p, csa->q, trow, tcol) <= 1e-9) +#else + if (spx_update_d_s(lp, d, csa->p, csa->q, &csa->trow, &csa->tcol) + <= 1e-9) +#endif { /* successful updating */ csa->d_st = 2; } @@ -1012,11 +1756,22 @@ loop: /* main loop starts here */ { /* new reduced costs are inaccurate */ csa->d_st = 0; } +#ifdef TIMING + t_upd2 += timer() - t_start; +#endif /* update steepest edge weights for adjacent basis, if used */ +#ifdef TIMING + t_start = timer(); +#endif if (se != NULL) { if (refct > 0) +#if 0 /* 30/III-2016 */ { if (spy_update_gamma(lp, se, csa->p, csa->q, trow, tcol) <= 1e-3) +#else + { if (spy_update_gamma_s(lp, se, csa->p, csa->q, &csa->trow, + &csa->tcol) <= 1e-3) +#endif { /* successful updating */ refct--; } @@ -1030,38 +1785,70 @@ loop: /* main loop starts here */ se->valid = 0; } } +#ifdef TIMING + t_upd3 += timer() - t_start; +#endif +#ifdef TIMING + t_start = timer(); +#endif /* update matrix N for adjacent basis, if used */ if (nt != NULL) spx_update_nt(lp, nt, csa->p, csa->q); +#ifdef TIMING + t_upd4 += timer() - t_start; +#endif /* change current basis header to adjacent one */ spx_change_basis(lp, csa->p, p_flag, csa->q); /* and update factorization of the basis matrix */ +#ifdef TIMING + t_start = timer(); +#endif +#if 0 /* 16/III-2016 */ if (csa->p > 0) +#endif spx_update_invb(lp, csa->p, head[csa->p]); +#ifdef TIMING + t_upd5 += timer() - t_start; +#endif + if (perturb > 0 && csa->d_st) + play_coef(csa, 0); /* dual simplex iteration complete */ csa->it_cnt++; goto loop; -fini: return ret; +fini: +#ifdef TIMING + t_total = timer() - t_total; + xprintf("Total time = %10.3f\n", t_total); + xprintf("Factorization = %10.3f\n", t_fact); + xprintf("Ratio test = %10.3f\n", t_rtest); + xprintf("Pivot column = %10.3f\n", t_pivcol); + xprintf("Updating beta = %10.3f\n", t_upd1); + xprintf("Updating d = %10.3f\n", t_upd2); + xprintf("Updating gamma = %10.3f\n", t_upd3); + xprintf("Updating N = %10.3f\n", t_upd4); + xprintf("Updating inv(B) = %10.3f\n", t_upd5); +#endif + return ret; } int spy_dual(glp_prob *P, const glp_smcp *parm) -{ /* driver to dual simplex method */ +{ /* driver to the dual simplex method */ struct csa csa_, *csa = &csa_; SPXLP lp; -#if USE_AT SPXAT at; -#else SPXNT nt; -#endif SPYSE se; int ret, *map, *daeh; +#if SCALE_Z + int i, j, k; +#endif /* build working LP and its initial basis */ memset(csa, 0, sizeof(struct csa)); csa->lp = &lp; - spx_init_lp(csa->lp, P, EXCL); + spx_init_lp(csa->lp, P, parm->excl); spx_alloc_lp(csa->lp); map = talloc(1+P->m+P->n, int); - spx_build_lp(csa->lp, P, EXCL, SHIFT, map); + spx_build_lp(csa->lp, P, parm->excl, parm->shift, map); spx_build_basis(csa->lp, P, map); switch (P->dir) { case GLP_MIN: @@ -1073,26 +1860,48 @@ int spy_dual(glp_prob *P, const glp_smcp *parm) default: xassert(P != P); } - csa->b = talloc(1+csa->lp->m, double); - memcpy(csa->b, csa->lp->b, (1+csa->lp->m) * sizeof(double)); - csa->l = talloc(1+csa->lp->n, double); - memcpy(csa->l, csa->lp->l, (1+csa->lp->n) * sizeof(double)); - csa->u = talloc(1+csa->lp->n, double); - memcpy(csa->u, csa->lp->u, (1+csa->lp->n) * sizeof(double)); -#if USE_AT - /* build matrix A in row-wise format */ - csa->at = &at; - csa->nt = NULL; - spx_alloc_at(csa->lp, csa->at); - spx_build_at(csa->lp, csa->at); -#else - /* build matrix N in row-wise format for initial basis */ - csa->at = NULL; - csa->nt = &nt; - spx_alloc_nt(csa->lp, csa->nt); - spx_init_nt(csa->lp, csa->nt); - spx_build_nt(csa->lp, csa->nt); +#if SCALE_Z + csa->fz = 0.0; + for (k = 1; k <= csa->lp->n; k++) + { double t = fabs(csa->lp->c[k]); + if (csa->fz < t) + csa->fz = t; + } + if (csa->fz <= 1000.0) + csa->fz = 1.0; + else + csa->fz /= 1000.0; + /*xprintf("csa->fz = %g\n", csa->fz);*/ + for (k = 0; k <= csa->lp->n; k++) + csa->lp->c[k] /= csa->fz; #endif + csa->orig_b = talloc(1+csa->lp->m, double); + memcpy(csa->orig_b, csa->lp->b, (1+csa->lp->m) * sizeof(double)); + csa->orig_c = talloc(1+csa->lp->n, double); + memcpy(csa->orig_c, csa->lp->c, (1+csa->lp->n) * sizeof(double)); + csa->orig_l = talloc(1+csa->lp->n, double); + memcpy(csa->orig_l, csa->lp->l, (1+csa->lp->n) * sizeof(double)); + csa->orig_u = talloc(1+csa->lp->n, double); + memcpy(csa->orig_u, csa->lp->u, (1+csa->lp->n) * sizeof(double)); + switch (parm->aorn) + { case GLP_USE_AT: + /* build matrix A in row-wise format */ + csa->at = &at; + csa->nt = NULL; + spx_alloc_at(csa->lp, csa->at); + spx_build_at(csa->lp, csa->at); + break; + case GLP_USE_NT: + /* build matrix N in row-wise format for initial basis */ + csa->at = NULL; + csa->nt = &nt; + spx_alloc_nt(csa->lp, csa->nt); + spx_init_nt(csa->lp, csa->nt); + spx_build_nt(csa->lp, csa->nt); + break; + default: + xassert(parm != parm); + } /* allocate and initialize working components */ csa->phase = 0; csa->beta = talloc(1+csa->lp->m, double); @@ -1110,14 +1919,30 @@ int spy_dual(glp_prob *P, const glp_smcp *parm) default: xassert(parm != parm); } +#if 0 /* 30/III-2016 */ csa->list = talloc(1+csa->lp->m, int); csa->trow = talloc(1+csa->lp->n-csa->lp->m, double); csa->tcol = talloc(1+csa->lp->m, double); +#else + fvs_alloc_vec(&csa->r, csa->lp->m); + fvs_alloc_vec(&csa->trow, csa->lp->n-csa->lp->m); + fvs_alloc_vec(&csa->tcol, csa->lp->m); +#endif +#if 1 /* 16/III-2016 */ + csa->bp = NULL; +#endif csa->work = talloc(1+csa->lp->m, double); csa->work1 = talloc(1+csa->lp->n-csa->lp->m, double); +#if 0 /* 11/VI-2017 */ +#if 1 /* 31/III-2016 */ + fvs_alloc_vec(&csa->wrow, csa->lp->n-csa->lp->m); + fvs_alloc_vec(&csa->wcol, csa->lp->m); +#endif +#endif /* initialize control parameters */ csa->msg_lev = parm->msg_lev; csa->dualp = (parm->meth == GLP_DUALP); +#if 0 /* 16/III-2016 */ switch (parm->r_test) { case GLP_RT_STD: csa->harris = 0; @@ -1128,10 +1953,26 @@ int spy_dual(glp_prob *P, const glp_smcp *parm) default: xassert(parm != parm); } +#else + switch (parm->r_test) + { case GLP_RT_STD: + case GLP_RT_HAR: + break; + case GLP_RT_FLIP: + csa->bp = talloc(1+csa->lp->n-csa->lp->m, SPYBP); + break; + default: + xassert(parm != parm); + } + csa->r_test = parm->r_test; +#endif csa->tol_bnd = parm->tol_bnd; csa->tol_bnd1 = .001 * parm->tol_bnd; csa->tol_dj = parm->tol_dj; csa->tol_dj1 = .001 * parm->tol_dj; +#if 0 + csa->tol_dj1 = 1e-9 * parm->tol_dj; +#endif csa->tol_piv = parm->tol_piv; switch (P->dir) { case GLP_MIN: @@ -1143,6 +1984,10 @@ int spy_dual(glp_prob *P, const glp_smcp *parm) default: xassert(parm != parm); } +#if SCALE_Z + if (csa->obj_lim != DBL_MAX) + csa->obj_lim /= csa->fz; +#endif csa->it_lim = parm->it_lim; csa->tm_lim = parm->tm_lim; csa->out_frq = parm->out_frq; @@ -1151,7 +1996,16 @@ int spy_dual(glp_prob *P, const glp_smcp *parm) csa->tm_beg = xtime(); csa->it_beg = csa->it_cnt = P->it_cnt; csa->it_dpy = -1; +#if 1 /* 15/VII-2017 */ + csa->tm_dpy = 0.0; +#endif csa->inv_cnt = 0; +#if 1 /* 11/VII-2017 */ + csa->degen = 0; +#endif +#if 1 /* 23/III-2016 */ + csa->ns_cnt = csa->ls_cnt = 0; +#endif /* try to solve working LP */ ret = dual_simplex(csa); /* return basis factorization back to problem object */ @@ -1173,8 +2027,14 @@ int spy_dual(glp_prob *P, const glp_smcp *parm) spx_eval_pi(csa->lp, csa->work); /* convert working LP solution to original LP solution and store * it to problem object */ - spx_store_sol(csa->lp, P, SHIFT, map, daeh, csa->beta, csa->work, - csa->d); +#if SCALE_Z + for (i = 1; i <= csa->lp->m; i++) + csa->work[i] *= csa->fz; + for (j = 1; j <= csa->lp->n-csa->lp->m; j++) + csa->d[j] *= csa->fz; +#endif + spx_store_sol(csa->lp, P, parm->shift, map, daeh, csa->beta, + csa->work, csa->d); tfree(daeh); /* save simplex iteration count */ P->it_cnt = csa->it_cnt; @@ -1198,9 +2058,10 @@ int spy_dual(glp_prob *P, const glp_smcp *parm) skip: /* deallocate working objects and arrays */ spx_free_lp(csa->lp); tfree(map); - tfree(csa->b); - tfree(csa->l); - tfree(csa->u); + tfree(csa->orig_b); + tfree(csa->orig_c); + tfree(csa->orig_l); + tfree(csa->orig_u); if (csa->at != NULL) spx_free_at(csa->lp, csa->at); if (csa->nt != NULL) @@ -1209,11 +2070,30 @@ skip: /* deallocate working objects and arrays */ tfree(csa->d); if (csa->se != NULL) spy_free_se(csa->lp, csa->se); +#if 0 /* 30/III-2016 */ tfree(csa->list); tfree(csa->trow); +#else + fvs_free_vec(&csa->r); + fvs_free_vec(&csa->trow); +#endif +#if 1 /* 16/III-2016 */ + if (csa->bp != NULL) + tfree(csa->bp); +#endif +#if 0 /* 29/III-2016 */ tfree(csa->tcol); +#else + fvs_free_vec(&csa->tcol); +#endif tfree(csa->work); tfree(csa->work1); +#if 0 /* 11/VI-2017 */ +#if 1 /* 31/III-2016 */ + fvs_free_vec(&csa->wrow); + fvs_free_vec(&csa->wcol); +#endif +#endif /* return to calling program */ return ret >= 0 ? ret : GLP_EFAIL; } diff --git a/resources/3rdparty/glpk-4.57/src/zlib/README b/resources/3rdparty/glpk-4.65/src/zlib/README similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/README rename to resources/3rdparty/glpk-4.65/src/zlib/README diff --git a/resources/3rdparty/glpk-4.57/src/zlib/adler32.c b/resources/3rdparty/glpk-4.65/src/zlib/adler32.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/adler32.c rename to resources/3rdparty/glpk-4.65/src/zlib/adler32.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/compress.c b/resources/3rdparty/glpk-4.65/src/zlib/compress.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/compress.c rename to resources/3rdparty/glpk-4.65/src/zlib/compress.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/crc32.c b/resources/3rdparty/glpk-4.65/src/zlib/crc32.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/crc32.c rename to resources/3rdparty/glpk-4.65/src/zlib/crc32.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/crc32.h b/resources/3rdparty/glpk-4.65/src/zlib/crc32.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/crc32.h rename to resources/3rdparty/glpk-4.65/src/zlib/crc32.h diff --git a/resources/3rdparty/glpk-4.57/src/zlib/deflate.c b/resources/3rdparty/glpk-4.65/src/zlib/deflate.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/deflate.c rename to resources/3rdparty/glpk-4.65/src/zlib/deflate.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/deflate.h b/resources/3rdparty/glpk-4.65/src/zlib/deflate.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/deflate.h rename to resources/3rdparty/glpk-4.65/src/zlib/deflate.h diff --git a/resources/3rdparty/glpk-4.57/src/zlib/gzclose.c b/resources/3rdparty/glpk-4.65/src/zlib/gzclose.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/gzclose.c rename to resources/3rdparty/glpk-4.65/src/zlib/gzclose.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/gzguts.h b/resources/3rdparty/glpk-4.65/src/zlib/gzguts.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/gzguts.h rename to resources/3rdparty/glpk-4.65/src/zlib/gzguts.h diff --git a/resources/3rdparty/glpk-4.57/src/zlib/gzlib.c b/resources/3rdparty/glpk-4.65/src/zlib/gzlib.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/gzlib.c rename to resources/3rdparty/glpk-4.65/src/zlib/gzlib.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/gzread.c b/resources/3rdparty/glpk-4.65/src/zlib/gzread.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/gzread.c rename to resources/3rdparty/glpk-4.65/src/zlib/gzread.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/gzwrite.c b/resources/3rdparty/glpk-4.65/src/zlib/gzwrite.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/gzwrite.c rename to resources/3rdparty/glpk-4.65/src/zlib/gzwrite.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/inffast.c b/resources/3rdparty/glpk-4.65/src/zlib/inffast.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/inffast.c rename to resources/3rdparty/glpk-4.65/src/zlib/inffast.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/inffast.h b/resources/3rdparty/glpk-4.65/src/zlib/inffast.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/inffast.h rename to resources/3rdparty/glpk-4.65/src/zlib/inffast.h diff --git a/resources/3rdparty/glpk-4.57/src/zlib/inffixed.h b/resources/3rdparty/glpk-4.65/src/zlib/inffixed.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/inffixed.h rename to resources/3rdparty/glpk-4.65/src/zlib/inffixed.h diff --git a/resources/3rdparty/glpk-4.57/src/zlib/inflate.c b/resources/3rdparty/glpk-4.65/src/zlib/inflate.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/inflate.c rename to resources/3rdparty/glpk-4.65/src/zlib/inflate.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/inflate.h b/resources/3rdparty/glpk-4.65/src/zlib/inflate.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/inflate.h rename to resources/3rdparty/glpk-4.65/src/zlib/inflate.h diff --git a/resources/3rdparty/glpk-4.57/src/zlib/inftrees.c b/resources/3rdparty/glpk-4.65/src/zlib/inftrees.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/inftrees.c rename to resources/3rdparty/glpk-4.65/src/zlib/inftrees.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/inftrees.h b/resources/3rdparty/glpk-4.65/src/zlib/inftrees.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/inftrees.h rename to resources/3rdparty/glpk-4.65/src/zlib/inftrees.h diff --git a/resources/3rdparty/glpk-4.57/src/zlib/trees.c b/resources/3rdparty/glpk-4.65/src/zlib/trees.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/trees.c rename to resources/3rdparty/glpk-4.65/src/zlib/trees.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/trees.h b/resources/3rdparty/glpk-4.65/src/zlib/trees.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/trees.h rename to resources/3rdparty/glpk-4.65/src/zlib/trees.h diff --git a/resources/3rdparty/glpk-4.57/src/zlib/uncompr.c b/resources/3rdparty/glpk-4.65/src/zlib/uncompr.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/uncompr.c rename to resources/3rdparty/glpk-4.65/src/zlib/uncompr.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/zconf.h b/resources/3rdparty/glpk-4.65/src/zlib/zconf.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/zconf.h rename to resources/3rdparty/glpk-4.65/src/zlib/zconf.h diff --git a/resources/3rdparty/glpk-4.57/src/zlib/zio.c b/resources/3rdparty/glpk-4.65/src/zlib/zio.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/zio.c rename to resources/3rdparty/glpk-4.65/src/zlib/zio.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/zio.h b/resources/3rdparty/glpk-4.65/src/zlib/zio.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/zio.h rename to resources/3rdparty/glpk-4.65/src/zlib/zio.h diff --git a/resources/3rdparty/glpk-4.57/src/zlib/zlib.h b/resources/3rdparty/glpk-4.65/src/zlib/zlib.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/zlib.h rename to resources/3rdparty/glpk-4.65/src/zlib/zlib.h diff --git a/resources/3rdparty/glpk-4.57/src/zlib/zutil.c b/resources/3rdparty/glpk-4.65/src/zlib/zutil.c similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/zutil.c rename to resources/3rdparty/glpk-4.65/src/zlib/zutil.c diff --git a/resources/3rdparty/glpk-4.57/src/zlib/zutil.h b/resources/3rdparty/glpk-4.65/src/zlib/zutil.h similarity index 100% rename from resources/3rdparty/glpk-4.57/src/zlib/zutil.h rename to resources/3rdparty/glpk-4.65/src/zlib/zutil.h diff --git a/resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC10.bat b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC10.bat similarity index 96% rename from resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC10.bat rename to resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC10.bat index b0f693446..d175ab840 100755 --- a/resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC10.bat +++ b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC10.bat @@ -1,11 +1,11 @@ -rem Build GLPK with Microsoft Visual Studio Express 2010 - -rem NOTE: Make sure that HOME variable specifies correct path -set HOME="C:\Program Files\Microsoft Visual Studio 10.0\VC" - -call %HOME%\vcvarsall.bat x86 -copy config_VC config.h -%HOME%\bin\nmake.exe /f Makefile_VC -%HOME%\bin\nmake.exe /f Makefile_VC check - -pause +rem Build GLPK with Microsoft Visual Studio Express 2010 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files\Microsoft Visual Studio 10.0\VC" + +call %HOME%\vcvarsall.bat x86 +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC +%HOME%\bin\nmake.exe /f Makefile_VC check + +pause diff --git a/resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC10_DLL.bat b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC10_DLL.bat similarity index 96% rename from resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC10_DLL.bat rename to resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC10_DLL.bat index e66f5cb39..a2876ee65 100755 --- a/resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC10_DLL.bat +++ b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC10_DLL.bat @@ -1,11 +1,11 @@ -rem Build GLPK DLL with Microsoft Visual Studio Express 2010 - -rem NOTE: Make sure that HOME variable specifies correct path -set HOME="C:\Program Files\Microsoft Visual Studio 10.0\VC" - -call %HOME%\vcvarsall.bat x86 -copy config_VC config.h -%HOME%\bin\nmake.exe /f Makefile_VC_DLL -%HOME%\bin\nmake.exe /f Makefile_VC_DLL check - -pause +rem Build GLPK DLL with Microsoft Visual Studio Express 2010 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files\Microsoft Visual Studio 10.0\VC" + +call %HOME%\vcvarsall.bat x86 +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC_DLL +%HOME%\bin\nmake.exe /f Makefile_VC_DLL check + +pause diff --git a/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC10_stdcall_DLL.bat b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC10_stdcall_DLL.bat new file mode 100755 index 000000000..95de3aa15 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC10_stdcall_DLL.bat @@ -0,0 +1,11 @@ +rem Build GLPK DLL with Microsoft Visual Studio Express 2010 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files\Microsoft Visual Studio 10.0\VC" + +call %HOME%\vcvarsall.bat x86 +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC_stdcall_DLL +%HOME%\bin\nmake.exe /f Makefile_VC_stdcall_DLL check + +pause diff --git a/resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC14.bat b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC14.bat similarity index 96% rename from resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC14.bat rename to resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC14.bat index 02bb9add3..aa4532f91 100755 --- a/resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC14.bat +++ b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC14.bat @@ -1,11 +1,11 @@ -rem Build GLPK with Microsoft Visual Studio Community 2015 - -rem NOTE: Make sure that HOME variable specifies correct path -set HOME="C:\Program Files\Microsoft Visual Studio 14.0\VC" - -call %HOME%\vcvarsall.bat x86 -copy config_VC config.h -%HOME%\bin\nmake.exe /f Makefile_VC -%HOME%\bin\nmake.exe /f Makefile_VC check - -pause +rem Build GLPK with Microsoft Visual Studio Community 2015 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files\Microsoft Visual Studio 14.0\VC" + +call %HOME%\vcvarsall.bat x86 +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC +%HOME%\bin\nmake.exe /f Makefile_VC check + +pause diff --git a/resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC14_DLL.bat b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC14_DLL.bat similarity index 96% rename from resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC14_DLL.bat rename to resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC14_DLL.bat index baf4b112b..28174657d 100755 --- a/resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC14_DLL.bat +++ b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC14_DLL.bat @@ -1,11 +1,11 @@ -rem Build GLPK DLL with Microsoft Visual Studio Community 2015 - -rem NOTE: Make sure that HOME variable specifies correct path -set HOME="C:\Program Files\Microsoft Visual Studio 14.0\VC" - -call %HOME%\vcvarsall.bat x86 -copy config_VC config.h -%HOME%\bin\nmake.exe /f Makefile_VC_DLL -%HOME%\bin\nmake.exe /f Makefile_VC_DLL check - -pause +rem Build GLPK DLL with Microsoft Visual Studio Community 2015 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files\Microsoft Visual Studio 14.0\VC" + +call %HOME%\vcvarsall.bat x86 +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC_DLL +%HOME%\bin\nmake.exe /f Makefile_VC_DLL check + +pause diff --git a/resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC9.bat b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC9.bat similarity index 96% rename from resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC9.bat rename to resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC9.bat index 9c5e8f83d..1298a7c8b 100755 --- a/resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC9.bat +++ b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC9.bat @@ -1,11 +1,11 @@ -rem Build GLPK with Microsoft Visual Studio Express 2008 - -rem NOTE: Make sure that HOME variable specifies correct path -set HOME="C:\Program Files\Microsoft Visual Studio 9.0\VC" - -call %HOME%\bin\vcvars32.bat -copy config_VC config.h -%HOME%\bin\nmake.exe /f Makefile_VC -%HOME%\bin\nmake.exe /f Makefile_VC check - -pause +rem Build GLPK with Microsoft Visual Studio Express 2008 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files\Microsoft Visual Studio 9.0\VC" + +call %HOME%\bin\vcvars32.bat +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC +%HOME%\bin\nmake.exe /f Makefile_VC check + +pause diff --git a/resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC9_DLL.bat b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC9_DLL.bat similarity index 96% rename from resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC9_DLL.bat rename to resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC9_DLL.bat index f334c04af..c054308fc 100755 --- a/resources/3rdparty/glpk-4.57/w32/Build_GLPK_with_VC9_DLL.bat +++ b/resources/3rdparty/glpk-4.65/w32/Build_GLPK_with_VC9_DLL.bat @@ -1,11 +1,11 @@ -rem Build GLPK DLL with Microsoft Visual Studio Express 2008 - -rem NOTE: Make sure that HOME variable specifies correct path -set HOME="C:\Program Files\Microsoft Visual Studio 9.0\VC" - -call %HOME%\bin\vcvars32.bat -copy config_VC config.h -%HOME%\bin\nmake.exe /f Makefile_VC_DLL -%HOME%\bin\nmake.exe /f Makefile_VC_DLL check - -pause +rem Build GLPK DLL with Microsoft Visual Studio Express 2008 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files\Microsoft Visual Studio 9.0\VC" + +call %HOME%\bin\vcvars32.bat +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC_DLL +%HOME%\bin\nmake.exe /f Makefile_VC_DLL check + +pause diff --git a/resources/3rdparty/glpk-4.65/w32/Makefile_VC b/resources/3rdparty/glpk-4.65/w32/Makefile_VC new file mode 100644 index 000000000..207338243 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/w32/Makefile_VC @@ -0,0 +1,251 @@ +## Build GLPK with Microsoft Visual Studio Express ## + +CFLAGS = \ +/I. \ +/I..\src \ +/I..\src\amd \ +/I..\src\api \ +/I..\src\bflib \ +/I..\src\colamd \ +/I..\src\draft \ +/I..\src\env \ +/I..\src\intopt \ +/I..\src\minisat \ +/I..\src\misc \ +/I..\src\mpl \ +/I..\src\npp \ +/I..\src\proxy \ +/I..\src\simplex \ +/I..\src\zlib \ +/DHAVE_CONFIG_H=1 \ +/D_CRT_SECURE_NO_WARNINGS=1 \ +/nologo \ +/W3 \ +/O2 \ +/Zi + +OBJSET = \ +..\src\amd\amd_1.obj \ +..\src\amd\amd_2.obj \ +..\src\amd\amd_aat.obj \ +..\src\amd\amd_control.obj \ +..\src\amd\amd_defaults.obj \ +..\src\amd\amd_dump.obj \ +..\src\amd\amd_info.obj \ +..\src\amd\amd_order.obj \ +..\src\amd\amd_post_tree.obj \ +..\src\amd\amd_postorder.obj \ +..\src\amd\amd_preprocess.obj \ +..\src\amd\amd_valid.obj \ +..\src\api\advbas.obj \ +..\src\api\asnhall.obj \ +..\src\api\asnlp.obj \ +..\src\api\asnokalg.obj \ +..\src\api\ckasn.obj \ +..\src\api\ckcnf.obj \ +..\src\api\cplex.obj \ +..\src\api\cpp.obj \ +..\src\api\cpxbas.obj \ +..\src\api\graph.obj \ +..\src\api\gridgen.obj \ +..\src\api\intfeas1.obj \ +..\src\api\maxffalg.obj \ +..\src\api\maxflp.obj \ +..\src\api\mcflp.obj \ +..\src\api\mcfokalg.obj \ +..\src\api\mcfrelax.obj \ +..\src\api\minisat1.obj \ +..\src\api\mpl.obj \ +..\src\api\mps.obj \ +..\src\api\netgen.obj \ +..\src\api\npp.obj \ +..\src\api\pript.obj \ +..\src\api\prmip.obj \ +..\src\api\prob1.obj \ +..\src\api\prob2.obj \ +..\src\api\prob3.obj \ +..\src\api\prob4.obj \ +..\src\api\prob5.obj \ +..\src\api\prrngs.obj \ +..\src\api\prsol.obj \ +..\src\api\rdasn.obj \ +..\src\api\rdcc.obj \ +..\src\api\rdcnf.obj \ +..\src\api\rdipt.obj \ +..\src\api\rdmaxf.obj \ +..\src\api\rdmcf.obj \ +..\src\api\rdmip.obj \ +..\src\api\rdprob.obj \ +..\src\api\rdsol.obj \ +..\src\api\rmfgen.obj \ +..\src\api\strong.obj \ +..\src\api\topsort.obj \ +..\src\api\weak.obj \ +..\src\api\wcliqex.obj \ +..\src\api\wrasn.obj \ +..\src\api\wrcc.obj \ +..\src\api\wrcnf.obj \ +..\src\api\wript.obj \ +..\src\api\wrmaxf.obj \ +..\src\api\wrmcf.obj \ +..\src\api\wrmip.obj \ +..\src\api\wrprob.obj \ +..\src\api\wrsol.obj \ +..\src\bflib\btf.obj \ +..\src\bflib\btfint.obj \ +..\src\bflib\fhv.obj \ +..\src\bflib\fhvint.obj \ +..\src\bflib\ifu.obj \ +..\src\bflib\luf.obj \ +..\src\bflib\lufint.obj \ +..\src\bflib\scf.obj \ +..\src\bflib\scfint.obj \ +..\src\bflib\sgf.obj \ +..\src\bflib\sva.obj \ +..\src\colamd\colamd.obj \ +..\src\draft\bfd.obj \ +..\src\draft\bfx.obj \ +..\src\draft\glpapi06.obj \ +..\src\draft\glpapi07.obj \ +..\src\draft\glpapi08.obj \ +..\src\draft\glpapi09.obj \ +..\src\draft\glpapi10.obj \ +..\src\draft\glpapi12.obj \ +..\src\draft\glpapi13.obj \ +..\src\draft\glphbm.obj \ +..\src\draft\glpios01.obj \ +..\src\draft\glpios02.obj \ +..\src\draft\glpios03.obj \ +..\src\draft\glpios07.obj \ +..\src\draft\glpios09.obj \ +..\src\draft\glpios11.obj \ +..\src\draft\glpios12.obj \ +..\src\draft\glpipm.obj \ +..\src\draft\glpmat.obj \ +..\src\draft\glprgr.obj \ +..\src\draft\glpscl.obj \ +..\src\draft\glpspm.obj \ +..\src\draft\glpssx01.obj \ +..\src\draft\glpssx02.obj \ +..\src\draft\lux.obj \ +..\src\env\alloc.obj \ +..\src\env\dlsup.obj \ +..\src\env\env.obj \ +..\src\env\error.obj \ +..\src\env\stdc.obj \ +..\src\env\stdout.obj \ +..\src\env\stream.obj \ +..\src\env\time.obj \ +..\src\env\tls.obj \ +..\src\intopt\cfg.obj \ +..\src\intopt\cfg1.obj \ +..\src\intopt\cfg2.obj \ +..\src\intopt\clqcut.obj \ +..\src\intopt\covgen.obj \ +..\src\intopt\fpump.obj \ +..\src\intopt\gmicut.obj \ +..\src\intopt\gmigen.obj \ +..\src\intopt\mirgen.obj \ +..\src\intopt\spv.obj \ +..\src\minisat\minisat.obj \ +..\src\misc\avl.obj \ +..\src\misc\bignum.obj \ +..\src\misc\dimacs.obj \ +..\src\misc\dmp.obj \ +..\src\misc\ffalg.obj \ +..\src\misc\fp2rat.obj \ +..\src\misc\fvs.obj \ +..\src\misc\gcd.obj \ +..\src\misc\jd.obj \ +..\src\misc\keller.obj \ +..\src\misc\ks.obj \ +..\src\misc\mc13d.obj \ +..\src\misc\mc21a.obj \ +..\src\misc\mt1.obj \ +..\src\misc\mygmp.obj \ +..\src\misc\okalg.obj \ +..\src\misc\qmd.obj \ +..\src\misc\relax4.obj \ +..\src\misc\rng.obj \ +..\src\misc\rng1.obj \ +..\src\misc\round2n.obj \ +..\src\misc\str2int.obj \ +..\src\misc\str2num.obj \ +..\src\misc\strspx.obj \ +..\src\misc\strtrim.obj \ +..\src\misc\triang.obj \ +..\src\misc\wclique.obj \ +..\src\misc\wclique1.obj \ +..\src\mpl\mpl1.obj \ +..\src\mpl\mpl2.obj \ +..\src\mpl\mpl3.obj \ +..\src\mpl\mpl4.obj \ +..\src\mpl\mpl5.obj \ +..\src\mpl\mpl6.obj \ +..\src\mpl\mplsql.obj \ +..\src\npp\npp1.obj \ +..\src\npp\npp2.obj \ +..\src\npp\npp3.obj \ +..\src\npp\npp4.obj \ +..\src\npp\npp5.obj \ +..\src\npp\npp6.obj \ +..\src\proxy\proxy.obj \ +..\src\proxy\proxy1.obj \ +..\src\simplex\spxat.obj \ +..\src\simplex\spxchuzc.obj \ +..\src\simplex\spxchuzr.obj \ +..\src\simplex\spxlp.obj \ +..\src\simplex\spxnt.obj \ +..\src\simplex\spxprim.obj \ +..\src\simplex\spxprob.obj \ +..\src\simplex\spychuzc.obj \ +..\src\simplex\spychuzr.obj \ +..\src\simplex\spydual.obj \ +..\src\zlib\adler32.obj \ +..\src\zlib\compress.obj \ +..\src\zlib\crc32.obj \ +..\src\zlib\deflate.obj \ +..\src\zlib\gzclose.obj \ +..\src\zlib\gzlib.obj \ +..\src\zlib\gzread.obj \ +..\src\zlib\gzwrite.obj \ +..\src\zlib\inffast.obj \ +..\src\zlib\inflate.obj \ +..\src\zlib\inftrees.obj \ +..\src\zlib\trees.obj \ +..\src\zlib\uncompr.obj \ +..\src\zlib\zio.obj \ +..\src\zlib\zutil.obj + +.c.obj: + cl.exe $(CFLAGS) /Fo$*.obj /c $*.c + +all: glpk.lib glpsol.exe + +glpk.lib: $(OBJSET) + lib.exe /out:glpk.lib \ + ..\src\*.obj \ + ..\src\amd\*.obj \ + ..\src\api\*.obj \ + ..\src\bflib\*.obj \ + ..\src\colamd\*.obj \ + ..\src\draft\*.obj \ + ..\src\env\*.obj \ + ..\src\intopt\*.obj \ + ..\src\minisat\*.obj \ + ..\src\misc\*.obj \ + ..\src\mpl\*.obj \ + ..\src\npp\*.obj \ + ..\src\proxy\*.obj \ + ..\src\simplex\*.obj \ + ..\src\zlib\*.obj + +glpsol.exe: ..\examples\glpsol.obj glpk.lib + cl.exe $(CFLAGS) /Feglpsol.exe \ + ..\examples\glpsol.obj glpk.lib + +check: glpsol.exe + .\glpsol.exe --version + .\glpsol.exe --mps ..\examples\murtagh.mps --max + +## eof ## diff --git a/resources/3rdparty/glpk-4.65/w32/Makefile_VC_DLL b/resources/3rdparty/glpk-4.65/w32/Makefile_VC_DLL new file mode 100644 index 000000000..5ca94d36c --- /dev/null +++ b/resources/3rdparty/glpk-4.65/w32/Makefile_VC_DLL @@ -0,0 +1,252 @@ +## Build GLPK DLL with Microsoft Visual Studio Express ## + +CFLAGS = \ +/I. \ +/I..\src \ +/I..\src\amd \ +/I..\src\api \ +/I..\src\bflib \ +/I..\src\colamd \ +/I..\src\draft \ +/I..\src\env \ +/I..\src\intopt \ +/I..\src\minisat \ +/I..\src\misc \ +/I..\src\mpl \ +/I..\src\npp \ +/I..\src\proxy \ +/I..\src\simplex \ +/I..\src\zlib \ +/DHAVE_CONFIG_H=1 \ +/D_CRT_SECURE_NO_WARNINGS=1 \ +/nologo \ +/W3 \ +/O2 \ +/Zi + +OBJSET = \ +..\src\amd\amd_1.obj \ +..\src\amd\amd_2.obj \ +..\src\amd\amd_aat.obj \ +..\src\amd\amd_control.obj \ +..\src\amd\amd_defaults.obj \ +..\src\amd\amd_dump.obj \ +..\src\amd\amd_info.obj \ +..\src\amd\amd_order.obj \ +..\src\amd\amd_post_tree.obj \ +..\src\amd\amd_postorder.obj \ +..\src\amd\amd_preprocess.obj \ +..\src\amd\amd_valid.obj \ +..\src\api\advbas.obj \ +..\src\api\asnhall.obj \ +..\src\api\asnlp.obj \ +..\src\api\asnokalg.obj \ +..\src\api\ckasn.obj \ +..\src\api\ckcnf.obj \ +..\src\api\cplex.obj \ +..\src\api\cpp.obj \ +..\src\api\cpxbas.obj \ +..\src\api\graph.obj \ +..\src\api\gridgen.obj \ +..\src\api\intfeas1.obj \ +..\src\api\maxffalg.obj \ +..\src\api\maxflp.obj \ +..\src\api\mcflp.obj \ +..\src\api\mcfokalg.obj \ +..\src\api\mcfrelax.obj \ +..\src\api\minisat1.obj \ +..\src\api\mpl.obj \ +..\src\api\mps.obj \ +..\src\api\netgen.obj \ +..\src\api\npp.obj \ +..\src\api\pript.obj \ +..\src\api\prmip.obj \ +..\src\api\prob1.obj \ +..\src\api\prob2.obj \ +..\src\api\prob3.obj \ +..\src\api\prob4.obj \ +..\src\api\prob5.obj \ +..\src\api\prrngs.obj \ +..\src\api\prsol.obj \ +..\src\api\rdasn.obj \ +..\src\api\rdcc.obj \ +..\src\api\rdcnf.obj \ +..\src\api\rdipt.obj \ +..\src\api\rdmaxf.obj \ +..\src\api\rdmcf.obj \ +..\src\api\rdmip.obj \ +..\src\api\rdprob.obj \ +..\src\api\rdsol.obj \ +..\src\api\rmfgen.obj \ +..\src\api\strong.obj \ +..\src\api\topsort.obj \ +..\src\api\weak.obj \ +..\src\api\wcliqex.obj \ +..\src\api\wrasn.obj \ +..\src\api\wrcc.obj \ +..\src\api\wrcnf.obj \ +..\src\api\wript.obj \ +..\src\api\wrmaxf.obj \ +..\src\api\wrmcf.obj \ +..\src\api\wrmip.obj \ +..\src\api\wrprob.obj \ +..\src\api\wrsol.obj \ +..\src\bflib\btf.obj \ +..\src\bflib\btfint.obj \ +..\src\bflib\fhv.obj \ +..\src\bflib\fhvint.obj \ +..\src\bflib\ifu.obj \ +..\src\bflib\luf.obj \ +..\src\bflib\lufint.obj \ +..\src\bflib\scf.obj \ +..\src\bflib\scfint.obj \ +..\src\bflib\sgf.obj \ +..\src\bflib\sva.obj \ +..\src\colamd\colamd.obj \ +..\src\draft\bfd.obj \ +..\src\draft\bfx.obj \ +..\src\draft\glpapi06.obj \ +..\src\draft\glpapi07.obj \ +..\src\draft\glpapi08.obj \ +..\src\draft\glpapi09.obj \ +..\src\draft\glpapi10.obj \ +..\src\draft\glpapi12.obj \ +..\src\draft\glpapi13.obj \ +..\src\draft\glphbm.obj \ +..\src\draft\glpios01.obj \ +..\src\draft\glpios02.obj \ +..\src\draft\glpios03.obj \ +..\src\draft\glpios07.obj \ +..\src\draft\glpios09.obj \ +..\src\draft\glpios11.obj \ +..\src\draft\glpios12.obj \ +..\src\draft\glpipm.obj \ +..\src\draft\glpmat.obj \ +..\src\draft\glprgr.obj \ +..\src\draft\glpscl.obj \ +..\src\draft\glpspm.obj \ +..\src\draft\glpssx01.obj \ +..\src\draft\glpssx02.obj \ +..\src\draft\lux.obj \ +..\src\env\alloc.obj \ +..\src\env\dlsup.obj \ +..\src\env\env.obj \ +..\src\env\error.obj \ +..\src\env\stdc.obj \ +..\src\env\stdout.obj \ +..\src\env\stream.obj \ +..\src\env\time.obj \ +..\src\env\tls.obj \ +..\src\intopt\cfg.obj \ +..\src\intopt\cfg1.obj \ +..\src\intopt\cfg2.obj \ +..\src\intopt\clqcut.obj \ +..\src\intopt\covgen.obj \ +..\src\intopt\fpump.obj \ +..\src\intopt\gmicut.obj \ +..\src\intopt\gmigen.obj \ +..\src\intopt\mirgen.obj \ +..\src\intopt\spv.obj \ +..\src\minisat\minisat.obj \ +..\src\misc\avl.obj \ +..\src\misc\bignum.obj \ +..\src\misc\dimacs.obj \ +..\src\misc\dmp.obj \ +..\src\misc\ffalg.obj \ +..\src\misc\fp2rat.obj \ +..\src\misc\fvs.obj \ +..\src\misc\gcd.obj \ +..\src\misc\jd.obj \ +..\src\misc\keller.obj \ +..\src\misc\ks.obj \ +..\src\misc\mc13d.obj \ +..\src\misc\mc21a.obj \ +..\src\misc\mt1.obj \ +..\src\misc\mygmp.obj \ +..\src\misc\okalg.obj \ +..\src\misc\qmd.obj \ +..\src\misc\relax4.obj \ +..\src\misc\rng.obj \ +..\src\misc\rng1.obj \ +..\src\misc\round2n.obj \ +..\src\misc\str2int.obj \ +..\src\misc\str2num.obj \ +..\src\misc\strspx.obj \ +..\src\misc\strtrim.obj \ +..\src\misc\triang.obj \ +..\src\misc\wclique.obj \ +..\src\misc\wclique1.obj \ +..\src\mpl\mpl1.obj \ +..\src\mpl\mpl2.obj \ +..\src\mpl\mpl3.obj \ +..\src\mpl\mpl4.obj \ +..\src\mpl\mpl5.obj \ +..\src\mpl\mpl6.obj \ +..\src\mpl\mplsql.obj \ +..\src\npp\npp1.obj \ +..\src\npp\npp2.obj \ +..\src\npp\npp3.obj \ +..\src\npp\npp4.obj \ +..\src\npp\npp5.obj \ +..\src\npp\npp6.obj \ +..\src\proxy\proxy.obj \ +..\src\proxy\proxy1.obj \ +..\src\simplex\spxat.obj \ +..\src\simplex\spxchuzc.obj \ +..\src\simplex\spxchuzr.obj \ +..\src\simplex\spxlp.obj \ +..\src\simplex\spxnt.obj \ +..\src\simplex\spxprim.obj \ +..\src\simplex\spxprob.obj \ +..\src\simplex\spychuzc.obj \ +..\src\simplex\spychuzr.obj \ +..\src\simplex\spydual.obj \ +..\src\zlib\adler32.obj \ +..\src\zlib\compress.obj \ +..\src\zlib\crc32.obj \ +..\src\zlib\deflate.obj \ +..\src\zlib\gzclose.obj \ +..\src\zlib\gzlib.obj \ +..\src\zlib\gzread.obj \ +..\src\zlib\gzwrite.obj \ +..\src\zlib\inffast.obj \ +..\src\zlib\inflate.obj \ +..\src\zlib\inftrees.obj \ +..\src\zlib\trees.obj \ +..\src\zlib\uncompr.obj \ +..\src\zlib\zio.obj \ +..\src\zlib\zutil.obj + +.c.obj: + cl.exe $(CFLAGS) /Fo$*.obj /c $*.c + +all: glpk_4_65.dll glpsol.exe + +glpk_4_65.dll: $(OBJSET) + cl.exe $(CFLAGS) /LD /Feglpk_4_65.dll \ + ..\src\*.obj \ + ..\src\amd\*.obj \ + ..\src\api\*.obj \ + ..\src\bflib\*.obj \ + ..\src\colamd\*.obj \ + ..\src\draft\*.obj \ + ..\src\env\*.obj \ + ..\src\intopt\*.obj \ + ..\src\minisat\*.obj \ + ..\src\misc\*.obj \ + ..\src\mpl\*.obj \ + ..\src\npp\*.obj \ + ..\src\proxy\*.obj \ + ..\src\simplex\*.obj \ + ..\src\zlib\*.obj \ + glpk_4_65.def + +glpsol.exe: ..\examples\glpsol.obj glpk_4_65.dll + cl.exe $(CFLAGS) /Feglpsol.exe \ + ..\examples\glpsol.obj glpk_4_65.lib + +check: glpsol.exe + .\glpsol.exe --version + .\glpsol.exe --mps ..\examples\murtagh.mps --max + +## eof ## diff --git a/resources/3rdparty/glpk-4.65/w32/Makefile_VC_stdcall_DLL b/resources/3rdparty/glpk-4.65/w32/Makefile_VC_stdcall_DLL new file mode 100644 index 000000000..8875f803b --- /dev/null +++ b/resources/3rdparty/glpk-4.65/w32/Makefile_VC_stdcall_DLL @@ -0,0 +1,253 @@ +## Build GLPK DLL with Microsoft Visual Studio Express ## + +CFLAGS = \ +/I. \ +/I..\src \ +/I..\src\amd \ +/I..\src\api \ +/I..\src\bflib \ +/I..\src\colamd \ +/I..\src\draft \ +/I..\src\env \ +/I..\src\intopt \ +/I..\src\minisat \ +/I..\src\misc \ +/I..\src\mpl \ +/I..\src\npp \ +/I..\src\proxy \ +/I..\src\simplex \ +/I..\src\zlib \ +/DHAVE_CONFIG_H=1 \ +/D_CRT_SECURE_NO_WARNINGS=1 \ +/nologo \ +/W3 \ +/O2 \ +/Zi \ +/Gz + +OBJSET = \ +..\src\amd\amd_1.obj \ +..\src\amd\amd_2.obj \ +..\src\amd\amd_aat.obj \ +..\src\amd\amd_control.obj \ +..\src\amd\amd_defaults.obj \ +..\src\amd\amd_dump.obj \ +..\src\amd\amd_info.obj \ +..\src\amd\amd_order.obj \ +..\src\amd\amd_post_tree.obj \ +..\src\amd\amd_postorder.obj \ +..\src\amd\amd_preprocess.obj \ +..\src\amd\amd_valid.obj \ +..\src\api\advbas.obj \ +..\src\api\asnhall.obj \ +..\src\api\asnlp.obj \ +..\src\api\asnokalg.obj \ +..\src\api\ckasn.obj \ +..\src\api\ckcnf.obj \ +..\src\api\cplex.obj \ +..\src\api\cpp.obj \ +..\src\api\cpxbas.obj \ +..\src\api\graph.obj \ +..\src\api\gridgen.obj \ +..\src\api\intfeas1.obj \ +..\src\api\maxffalg.obj \ +..\src\api\maxflp.obj \ +..\src\api\mcflp.obj \ +..\src\api\mcfokalg.obj \ +..\src\api\mcfrelax.obj \ +..\src\api\minisat1.obj \ +..\src\api\mpl.obj \ +..\src\api\mps.obj \ +..\src\api\netgen.obj \ +..\src\api\npp.obj \ +..\src\api\pript.obj \ +..\src\api\prmip.obj \ +..\src\api\prob1.obj \ +..\src\api\prob2.obj \ +..\src\api\prob3.obj \ +..\src\api\prob4.obj \ +..\src\api\prob5.obj \ +..\src\api\prrngs.obj \ +..\src\api\prsol.obj \ +..\src\api\rdasn.obj \ +..\src\api\rdcc.obj \ +..\src\api\rdcnf.obj \ +..\src\api\rdipt.obj \ +..\src\api\rdmaxf.obj \ +..\src\api\rdmcf.obj \ +..\src\api\rdmip.obj \ +..\src\api\rdprob.obj \ +..\src\api\rdsol.obj \ +..\src\api\rmfgen.obj \ +..\src\api\strong.obj \ +..\src\api\topsort.obj \ +..\src\api\weak.obj \ +..\src\api\wcliqex.obj \ +..\src\api\wrasn.obj \ +..\src\api\wrcc.obj \ +..\src\api\wrcnf.obj \ +..\src\api\wript.obj \ +..\src\api\wrmaxf.obj \ +..\src\api\wrmcf.obj \ +..\src\api\wrmip.obj \ +..\src\api\wrprob.obj \ +..\src\api\wrsol.obj \ +..\src\bflib\btf.obj \ +..\src\bflib\btfint.obj \ +..\src\bflib\fhv.obj \ +..\src\bflib\fhvint.obj \ +..\src\bflib\ifu.obj \ +..\src\bflib\luf.obj \ +..\src\bflib\lufint.obj \ +..\src\bflib\scf.obj \ +..\src\bflib\scfint.obj \ +..\src\bflib\sgf.obj \ +..\src\bflib\sva.obj \ +..\src\colamd\colamd.obj \ +..\src\draft\bfd.obj \ +..\src\draft\bfx.obj \ +..\src\draft\glpapi06.obj \ +..\src\draft\glpapi07.obj \ +..\src\draft\glpapi08.obj \ +..\src\draft\glpapi09.obj \ +..\src\draft\glpapi10.obj \ +..\src\draft\glpapi12.obj \ +..\src\draft\glpapi13.obj \ +..\src\draft\glphbm.obj \ +..\src\draft\glpios01.obj \ +..\src\draft\glpios02.obj \ +..\src\draft\glpios03.obj \ +..\src\draft\glpios07.obj \ +..\src\draft\glpios09.obj \ +..\src\draft\glpios11.obj \ +..\src\draft\glpios12.obj \ +..\src\draft\glpipm.obj \ +..\src\draft\glpmat.obj \ +..\src\draft\glprgr.obj \ +..\src\draft\glpscl.obj \ +..\src\draft\glpspm.obj \ +..\src\draft\glpssx01.obj \ +..\src\draft\glpssx02.obj \ +..\src\draft\lux.obj \ +..\src\env\alloc.obj \ +..\src\env\dlsup.obj \ +..\src\env\env.obj \ +..\src\env\error.obj \ +..\src\env\stdc.obj \ +..\src\env\stdout.obj \ +..\src\env\stream.obj \ +..\src\env\time.obj \ +..\src\env\tls.obj \ +..\src\intopt\cfg.obj \ +..\src\intopt\cfg1.obj \ +..\src\intopt\cfg2.obj \ +..\src\intopt\clqcut.obj \ +..\src\intopt\covgen.obj \ +..\src\intopt\fpump.obj \ +..\src\intopt\gmicut.obj \ +..\src\intopt\gmigen.obj \ +..\src\intopt\mirgen.obj \ +..\src\intopt\spv.obj \ +..\src\minisat\minisat.obj \ +..\src\misc\avl.obj \ +..\src\misc\bignum.obj \ +..\src\misc\dimacs.obj \ +..\src\misc\dmp.obj \ +..\src\misc\ffalg.obj \ +..\src\misc\fp2rat.obj \ +..\src\misc\fvs.obj \ +..\src\misc\gcd.obj \ +..\src\misc\jd.obj \ +..\src\misc\keller.obj \ +..\src\misc\ks.obj \ +..\src\misc\mc13d.obj \ +..\src\misc\mc21a.obj \ +..\src\misc\mt1.obj \ +..\src\misc\mygmp.obj \ +..\src\misc\okalg.obj \ +..\src\misc\qmd.obj \ +..\src\misc\relax4.obj \ +..\src\misc\rng.obj \ +..\src\misc\rng1.obj \ +..\src\misc\round2n.obj \ +..\src\misc\str2int.obj \ +..\src\misc\str2num.obj \ +..\src\misc\strspx.obj \ +..\src\misc\strtrim.obj \ +..\src\misc\triang.obj \ +..\src\misc\wclique.obj \ +..\src\misc\wclique1.obj \ +..\src\mpl\mpl1.obj \ +..\src\mpl\mpl2.obj \ +..\src\mpl\mpl3.obj \ +..\src\mpl\mpl4.obj \ +..\src\mpl\mpl5.obj \ +..\src\mpl\mpl6.obj \ +..\src\mpl\mplsql.obj \ +..\src\npp\npp1.obj \ +..\src\npp\npp2.obj \ +..\src\npp\npp3.obj \ +..\src\npp\npp4.obj \ +..\src\npp\npp5.obj \ +..\src\npp\npp6.obj \ +..\src\proxy\proxy.obj \ +..\src\proxy\proxy1.obj \ +..\src\simplex\spxat.obj \ +..\src\simplex\spxchuzc.obj \ +..\src\simplex\spxchuzr.obj \ +..\src\simplex\spxlp.obj \ +..\src\simplex\spxnt.obj \ +..\src\simplex\spxprim.obj \ +..\src\simplex\spxprob.obj \ +..\src\simplex\spychuzc.obj \ +..\src\simplex\spychuzr.obj \ +..\src\simplex\spydual.obj \ +..\src\zlib\adler32.obj \ +..\src\zlib\compress.obj \ +..\src\zlib\crc32.obj \ +..\src\zlib\deflate.obj \ +..\src\zlib\gzclose.obj \ +..\src\zlib\gzlib.obj \ +..\src\zlib\gzread.obj \ +..\src\zlib\gzwrite.obj \ +..\src\zlib\inffast.obj \ +..\src\zlib\inflate.obj \ +..\src\zlib\inftrees.obj \ +..\src\zlib\trees.obj \ +..\src\zlib\uncompr.obj \ +..\src\zlib\zio.obj \ +..\src\zlib\zutil.obj + +.c.obj: + cl.exe $(CFLAGS) /Fo$*.obj /c $*.c + +all: glpk_4_65_stdcall.dll glpsol.exe + +glpk_4_65_stdcall.dll: $(OBJSET) + cl.exe $(CFLAGS) /LD /Feglpk_4_65_stdcall.dll \ + ..\src\*.obj \ + ..\src\amd\*.obj \ + ..\src\api\*.obj \ + ..\src\bflib\*.obj \ + ..\src\colamd\*.obj \ + ..\src\draft\*.obj \ + ..\src\env\*.obj \ + ..\src\intopt\*.obj \ + ..\src\minisat\*.obj \ + ..\src\misc\*.obj \ + ..\src\mpl\*.obj \ + ..\src\npp\*.obj \ + ..\src\proxy\*.obj \ + ..\src\simplex\*.obj \ + ..\src\zlib\*.obj \ + glpk_4_65_stdcall.def + +glpsol.exe: ..\examples\glpsol.obj glpk_4_65_stdcall.dll + cl.exe $(CFLAGS) /Feglpsol.exe \ + ..\examples\glpsol.obj glpk_4_65_stdcall.lib + +check: glpsol.exe + .\glpsol.exe --version + .\glpsol.exe --mps ..\examples\murtagh.mps --max + +## eof ## diff --git a/resources/3rdparty/glpk-4.57/w64/config_VC b/resources/3rdparty/glpk-4.65/w32/config_VC similarity index 73% rename from resources/3rdparty/glpk-4.57/w64/config_VC rename to resources/3rdparty/glpk-4.65/w32/config_VC index 581ab6e6e..c8986d34f 100644 --- a/resources/3rdparty/glpk-4.57/w64/config_VC +++ b/resources/3rdparty/glpk-4.65/w32/config_VC @@ -1,13 +1,16 @@ -/* GLPK configuration file (Microsoft Visual Studio Express) */ - -#define __WOE__ 1 - -#define ODBC_DLNAME "odbc32.dll" -/* ODBC shared library name if this feature is enabled */ - -#if 0 -#define MYSQL_DLNAME "libmysql.dll" -/* MySQL shared library name if this feature is enabled */ -#endif - -/* eof */ +/* GLPK configuration file (Microsoft Visual Studio Express) */ + +#define __WOE__ 1 + +#define TLS __declspec(thread) +/* thread local storage-class specifier for reentrancy */ + +#define ODBC_DLNAME "odbc32.dll" +/* ODBC shared library name if this feature is enabled */ + +#if 0 +#define MYSQL_DLNAME "libmysql.dll" +/* MySQL shared library name if this feature is enabled */ +#endif + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/w64/glpk_4_57.def b/resources/3rdparty/glpk-4.65/w32/glpk_4_65.def similarity index 88% rename from resources/3rdparty/glpk-4.57/w64/glpk_4_57.def rename to resources/3rdparty/glpk-4.65/w32/glpk_4_65.def index 61076961c..45fecb189 100644 --- a/resources/3rdparty/glpk-4.57/w64/glpk_4_57.def +++ b/resources/3rdparty/glpk-4.65/w32/glpk_4_65.def @@ -1,223 +1,234 @@ -LIBRARY glpk_4_57 -VERSION 4.57 -DESCRIPTION "GNU Linear Programming Kit" -EXPORTS -glp_create_prob -glp_set_prob_name -glp_set_obj_name -glp_set_obj_dir -glp_add_rows -glp_add_cols -glp_set_row_name -glp_set_col_name -glp_set_row_bnds -glp_set_col_bnds -glp_set_obj_coef -glp_set_mat_row -glp_set_mat_col -glp_load_matrix -glp_check_dup -glp_sort_matrix -glp_del_rows -glp_del_cols -glp_copy_prob -glp_erase_prob -glp_delete_prob -glp_get_prob_name -glp_get_obj_name -glp_get_obj_dir -glp_get_num_rows -glp_get_num_cols -glp_get_row_name -glp_get_col_name -glp_get_row_type -glp_get_row_lb -glp_get_row_ub -glp_get_col_type -glp_get_col_lb -glp_get_col_ub -glp_get_obj_coef -glp_get_num_nz -glp_get_mat_row -glp_get_mat_col -glp_create_index -glp_find_row -glp_find_col -glp_delete_index -glp_set_rii -glp_set_sjj -glp_get_rii -glp_get_sjj -glp_scale_prob -glp_unscale_prob -glp_set_row_stat -glp_set_col_stat -glp_std_basis -glp_adv_basis -glp_cpx_basis -glp_simplex -glp_exact -glp_init_smcp -glp_get_status -glp_get_prim_stat -glp_get_dual_stat -glp_get_obj_val -glp_get_row_stat -glp_get_row_prim -glp_get_row_dual -glp_get_col_stat -glp_get_col_prim -glp_get_col_dual -glp_get_unbnd_ray -glp_get_it_cnt -glp_set_it_cnt -glp_interior -glp_init_iptcp -glp_ipt_status -glp_ipt_obj_val -glp_ipt_row_prim -glp_ipt_row_dual -glp_ipt_col_prim -glp_ipt_col_dual -glp_set_col_kind -glp_get_col_kind -glp_get_num_int -glp_get_num_bin -glp_intopt -glp_init_iocp -glp_mip_status -glp_mip_obj_val -glp_mip_row_val -glp_mip_col_val -glp_check_kkt -glp_print_sol -glp_read_sol -glp_write_sol -glp_print_ranges -glp_print_ipt -glp_read_ipt -glp_write_ipt -glp_print_mip -glp_read_mip -glp_write_mip -glp_bf_exists -glp_factorize -glp_bf_updated -glp_get_bfcp -glp_set_bfcp -glp_get_bhead -glp_get_row_bind -glp_get_col_bind -glp_ftran -glp_btran -glp_warm_up -glp_eval_tab_row -glp_eval_tab_col -glp_transform_row -glp_transform_col -glp_prim_rtest -glp_dual_rtest -glp_analyze_bound -glp_analyze_coef -glp_ios_reason -glp_ios_get_prob -glp_ios_tree_size -glp_ios_curr_node -glp_ios_next_node -glp_ios_prev_node -glp_ios_up_node -glp_ios_node_level -glp_ios_node_bound -glp_ios_best_node -glp_ios_mip_gap -glp_ios_node_data -glp_ios_row_attr -glp_ios_pool_size -glp_ios_add_row -glp_ios_del_row -glp_ios_clear_pool -glp_ios_can_branch -glp_ios_branch_upon -glp_ios_select_node -glp_ios_heur_sol -glp_ios_terminate -glp_init_mpscp -glp_read_mps -glp_write_mps -glp_init_cpxcp -glp_read_lp -glp_write_lp -glp_read_prob -glp_write_prob -glp_mpl_alloc_wksp -glp_mpl_read_model -glp_mpl_read_data -glp_mpl_generate -glp_mpl_build_prob -glp_mpl_postsolve -glp_mpl_free_wksp -glp_main -glp_read_cnfsat -glp_check_cnfsat -glp_write_cnfsat -glp_minisat1 -glp_intfeas1 -glp_init_env -glp_version -glp_free_env -glp_puts -glp_printf -glp_vprintf -glp_term_out -glp_term_hook -glp_open_tee -glp_close_tee -glp_error_ -glp_assert_ -glp_error_hook -glp_alloc -glp_realloc -glp_free -glp_mem_limit -glp_mem_usage -glp_create_graph -glp_set_graph_name -glp_add_vertices -glp_set_vertex_name -glp_add_arc -glp_del_vertices -glp_del_arc -glp_erase_graph -glp_delete_graph -glp_create_v_index -glp_find_vertex -glp_delete_v_index -glp_read_graph -glp_write_graph -glp_mincost_lp -glp_mincost_okalg -glp_mincost_relax4 -glp_maxflow_lp -glp_maxflow_ffalg -glp_check_asnprob -glp_asnprob_lp -glp_asnprob_okalg -glp_asnprob_hall -glp_cpp -glp_read_mincost -glp_write_mincost -glp_read_maxflow -glp_write_maxflow -glp_read_asnprob -glp_write_asnprob -glp_read_ccdata -glp_write_ccdata -glp_netgen -glp_netgen_prob -glp_gridgen -glp_rmfgen -glp_weak_comp -glp_strong_comp -glp_top_sort -glp_wclique_exact -;; end of file ;; +LIBRARY glpk_4_65 +VERSION 4.65 +DESCRIPTION "GNU Linear Programming Kit" +EXPORTS +glp_create_prob +glp_set_prob_name +glp_set_obj_name +glp_set_obj_dir +glp_add_rows +glp_add_cols +glp_set_row_name +glp_set_col_name +glp_set_row_bnds +glp_set_col_bnds +glp_set_obj_coef +glp_set_mat_row +glp_set_mat_col +glp_load_matrix +glp_check_dup +glp_sort_matrix +glp_del_rows +glp_del_cols +glp_copy_prob +glp_erase_prob +glp_delete_prob +glp_get_prob_name +glp_get_obj_name +glp_get_obj_dir +glp_get_num_rows +glp_get_num_cols +glp_get_row_name +glp_get_col_name +glp_get_row_type +glp_get_row_lb +glp_get_row_ub +glp_get_col_type +glp_get_col_lb +glp_get_col_ub +glp_get_obj_coef +glp_get_num_nz +glp_get_mat_row +glp_get_mat_col +glp_create_index +glp_find_row +glp_find_col +glp_delete_index +glp_set_rii +glp_set_sjj +glp_get_rii +glp_get_sjj +glp_scale_prob +glp_unscale_prob +glp_set_row_stat +glp_set_col_stat +glp_std_basis +glp_adv_basis +glp_cpx_basis +glp_simplex +glp_exact +glp_init_smcp +glp_get_status +glp_get_prim_stat +glp_get_dual_stat +glp_get_obj_val +glp_get_row_stat +glp_get_row_prim +glp_get_row_dual +glp_get_col_stat +glp_get_col_prim +glp_get_col_dual +glp_get_unbnd_ray +glp_get_it_cnt +glp_set_it_cnt +glp_interior +glp_init_iptcp +glp_ipt_status +glp_ipt_obj_val +glp_ipt_row_prim +glp_ipt_row_dual +glp_ipt_col_prim +glp_ipt_col_dual +glp_set_col_kind +glp_get_col_kind +glp_get_num_int +glp_get_num_bin +glp_intopt +glp_init_iocp +glp_mip_status +glp_mip_obj_val +glp_mip_row_val +glp_mip_col_val +glp_check_kkt +glp_print_sol +glp_read_sol +glp_write_sol +glp_print_ranges +glp_print_ipt +glp_read_ipt +glp_write_ipt +glp_print_mip +glp_read_mip +glp_write_mip +glp_bf_exists +glp_factorize +glp_bf_updated +glp_get_bfcp +glp_set_bfcp +glp_get_bhead +glp_get_row_bind +glp_get_col_bind +glp_ftran +glp_btran +glp_warm_up +glp_eval_tab_row +glp_eval_tab_col +glp_transform_row +glp_transform_col +glp_prim_rtest +glp_dual_rtest +glp_analyze_bound +glp_analyze_coef +glp_npp_alloc_wksp +glp_npp_load_prob +glp_npp_preprocess1 +glp_npp_build_prob +glp_npp_postprocess +glp_npp_obtain_sol +glp_npp_free_wksp +glp_ios_reason +glp_ios_get_prob +glp_ios_tree_size +glp_ios_curr_node +glp_ios_next_node +glp_ios_prev_node +glp_ios_up_node +glp_ios_node_level +glp_ios_node_bound +glp_ios_best_node +glp_ios_mip_gap +glp_ios_node_data +glp_ios_row_attr +glp_ios_pool_size +glp_ios_add_row +glp_ios_del_row +glp_ios_clear_pool +glp_ios_can_branch +glp_ios_branch_upon +glp_ios_select_node +glp_ios_heur_sol +glp_ios_terminate +glp_init_mpscp +glp_read_mps +glp_write_mps +glp_init_cpxcp +glp_read_lp +glp_write_lp +glp_read_prob +glp_write_prob +glp_mpl_alloc_wksp +glp_mpl_init_rand +glp_mpl_read_model +glp_mpl_read_data +glp_mpl_generate +glp_mpl_build_prob +glp_mpl_postsolve +glp_mpl_free_wksp +glp_read_cnfsat +glp_check_cnfsat +glp_write_cnfsat +glp_minisat1 +glp_intfeas1 +glp_init_env +glp_version +glp_config +glp_free_env +glp_puts +glp_printf +glp_vprintf +glp_term_out +glp_term_hook +glp_open_tee +glp_close_tee +glp_error_ +glp_at_error +glp_assert_ +glp_error_hook +glp_alloc +glp_realloc +glp_free +glp_mem_limit +glp_mem_usage +glp_time +glp_difftime +glp_create_graph +glp_set_graph_name +glp_add_vertices +glp_set_vertex_name +glp_add_arc +glp_del_vertices +glp_del_arc +glp_erase_graph +glp_delete_graph +glp_create_v_index +glp_find_vertex +glp_delete_v_index +glp_read_graph +glp_write_graph +glp_mincost_lp +glp_mincost_okalg +glp_mincost_relax4 +glp_maxflow_lp +glp_maxflow_ffalg +glp_check_asnprob +glp_asnprob_lp +glp_asnprob_okalg +glp_asnprob_hall +glp_cpp +glp_read_mincost +glp_write_mincost +glp_read_maxflow +glp_write_maxflow +glp_read_asnprob +glp_write_asnprob +glp_read_ccdata +glp_write_ccdata +glp_netgen +glp_netgen_prob +glp_gridgen +glp_rmfgen +glp_weak_comp +glp_strong_comp +glp_top_sort +glp_wclique_exact +;; end of file ;; diff --git a/resources/3rdparty/glpk-4.65/w32/glpk_4_65_stdcall.def b/resources/3rdparty/glpk-4.65/w32/glpk_4_65_stdcall.def new file mode 100644 index 000000000..8f4ab5907 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/w32/glpk_4_65_stdcall.def @@ -0,0 +1,234 @@ +LIBRARY glpk_4_65_stdcall +VERSION 4.65 +DESCRIPTION "GNU Linear Programming Kit" +EXPORTS +glp_create_prob +glp_set_prob_name +glp_set_obj_name +glp_set_obj_dir +glp_add_rows +glp_add_cols +glp_set_row_name +glp_set_col_name +glp_set_row_bnds +glp_set_col_bnds +glp_set_obj_coef +glp_set_mat_row +glp_set_mat_col +glp_load_matrix +glp_check_dup +glp_sort_matrix +glp_del_rows +glp_del_cols +glp_copy_prob +glp_erase_prob +glp_delete_prob +glp_get_prob_name +glp_get_obj_name +glp_get_obj_dir +glp_get_num_rows +glp_get_num_cols +glp_get_row_name +glp_get_col_name +glp_get_row_type +glp_get_row_lb +glp_get_row_ub +glp_get_col_type +glp_get_col_lb +glp_get_col_ub +glp_get_obj_coef +glp_get_num_nz +glp_get_mat_row +glp_get_mat_col +glp_create_index +glp_find_row +glp_find_col +glp_delete_index +glp_set_rii +glp_set_sjj +glp_get_rii +glp_get_sjj +glp_scale_prob +glp_unscale_prob +glp_set_row_stat +glp_set_col_stat +glp_std_basis +glp_adv_basis +glp_cpx_basis +glp_simplex +glp_exact +glp_init_smcp +glp_get_status +glp_get_prim_stat +glp_get_dual_stat +glp_get_obj_val +glp_get_row_stat +glp_get_row_prim +glp_get_row_dual +glp_get_col_stat +glp_get_col_prim +glp_get_col_dual +glp_get_unbnd_ray +glp_get_it_cnt +glp_set_it_cnt +glp_interior +glp_init_iptcp +glp_ipt_status +glp_ipt_obj_val +glp_ipt_row_prim +glp_ipt_row_dual +glp_ipt_col_prim +glp_ipt_col_dual +glp_set_col_kind +glp_get_col_kind +glp_get_num_int +glp_get_num_bin +glp_intopt +glp_init_iocp +glp_mip_status +glp_mip_obj_val +glp_mip_row_val +glp_mip_col_val +glp_check_kkt +glp_print_sol +glp_read_sol +glp_write_sol +glp_print_ranges +glp_print_ipt +glp_read_ipt +glp_write_ipt +glp_print_mip +glp_read_mip +glp_write_mip +glp_bf_exists +glp_factorize +glp_bf_updated +glp_get_bfcp +glp_set_bfcp +glp_get_bhead +glp_get_row_bind +glp_get_col_bind +glp_ftran +glp_btran +glp_warm_up +glp_eval_tab_row +glp_eval_tab_col +glp_transform_row +glp_transform_col +glp_prim_rtest +glp_dual_rtest +glp_analyze_bound +glp_analyze_coef +glp_npp_alloc_wksp +glp_npp_load_prob +glp_npp_preprocess1 +glp_npp_build_prob +glp_npp_postprocess +glp_npp_obtain_sol +glp_npp_free_wksp +glp_ios_reason +glp_ios_get_prob +glp_ios_tree_size +glp_ios_curr_node +glp_ios_next_node +glp_ios_prev_node +glp_ios_up_node +glp_ios_node_level +glp_ios_node_bound +glp_ios_best_node +glp_ios_mip_gap +glp_ios_node_data +glp_ios_row_attr +glp_ios_pool_size +glp_ios_add_row +glp_ios_del_row +glp_ios_clear_pool +glp_ios_can_branch +glp_ios_branch_upon +glp_ios_select_node +glp_ios_heur_sol +glp_ios_terminate +glp_init_mpscp +glp_read_mps +glp_write_mps +glp_init_cpxcp +glp_read_lp +glp_write_lp +glp_read_prob +glp_write_prob +glp_mpl_alloc_wksp +glp_mpl_init_rand +glp_mpl_read_model +glp_mpl_read_data +glp_mpl_generate +glp_mpl_build_prob +glp_mpl_postsolve +glp_mpl_free_wksp +glp_read_cnfsat +glp_check_cnfsat +glp_write_cnfsat +glp_minisat1 +glp_intfeas1 +glp_init_env +glp_version +glp_config +glp_free_env +glp_puts +glp_printf +glp_vprintf +glp_term_out +glp_term_hook +glp_open_tee +glp_close_tee +glp_error_ +glp_at_error +glp_assert_ +glp_error_hook +glp_alloc +glp_realloc +glp_free +glp_mem_limit +glp_mem_usage +glp_time +glp_difftime +glp_create_graph +glp_set_graph_name +glp_add_vertices +glp_set_vertex_name +glp_add_arc +glp_del_vertices +glp_del_arc +glp_erase_graph +glp_delete_graph +glp_create_v_index +glp_find_vertex +glp_delete_v_index +glp_read_graph +glp_write_graph +glp_mincost_lp +glp_mincost_okalg +glp_mincost_relax4 +glp_maxflow_lp +glp_maxflow_ffalg +glp_check_asnprob +glp_asnprob_lp +glp_asnprob_okalg +glp_asnprob_hall +glp_cpp +glp_read_mincost +glp_write_mincost +glp_read_maxflow +glp_write_maxflow +glp_read_asnprob +glp_write_asnprob +glp_read_ccdata +glp_write_ccdata +glp_netgen +glp_netgen_prob +glp_gridgen +glp_rmfgen +glp_weak_comp +glp_strong_comp +glp_top_sort +glp_wclique_exact +;; end of file ;; diff --git a/resources/3rdparty/glpk-4.57/w32/readme.txt b/resources/3rdparty/glpk-4.65/w32/readme.txt similarity index 97% rename from resources/3rdparty/glpk-4.57/w32/readme.txt rename to resources/3rdparty/glpk-4.65/w32/readme.txt index 10daeda4b..e563fb4f1 100644 --- a/resources/3rdparty/glpk-4.57/w32/readme.txt +++ b/resources/3rdparty/glpk-4.65/w32/readme.txt @@ -1,24 +1,24 @@ -This directory contains batch files and other stuff which you can use -to build GLPK for 32-bit Windows with the native C/C++ compilers. - -Before running the batch file do the following: - -1. Make sure that you have installed the compiler you are going to use - to build GLPK. - -2. Look into corresponding batch file (just right-click it and choose - 'Edit' in the popup menu; DO NOT choose 'Open'). Make sure that HOME - variable specifies correct path to the compiler directory; if not, - make necessary changes. - -To run the batch file just double-click it and wait a bit while the -Make utility does its job. The message 'OPTIMAL SOLUTION FOUND' in the -MS-DOS window means that all is OK. If you do not see it, something is -wrong. - -Once GLPK has been successfully built, there must appear two files in -this directory: - -glpk.lib, which is the GLPK object library, and - -glpsol.exe, which is the stand-alone GLPK LP/MIP solver. +This directory contains batch files and other stuff which you can use +to build GLPK for 32-bit Windows with the native C/C++ compilers. + +Before running the batch file do the following: + +1. Make sure that you have installed the compiler you are going to use + to build GLPK. + +2. Look into corresponding batch file (just right-click it and choose + 'Edit' in the popup menu; DO NOT choose 'Open'). Make sure that HOME + variable specifies correct path to the compiler directory; if not, + make necessary changes. + +To run the batch file just double-click it and wait a bit while the +Make utility does its job. The message 'OPTIMAL SOLUTION FOUND' in the +MS-DOS window means that all is OK. If you do not see it, something is +wrong. + +Once GLPK has been successfully built, there must appear two files in +this directory: + +glpk.lib, which is the GLPK object library, and + +glpsol.exe, which is the stand-alone GLPK LP/MIP solver. diff --git a/resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC10.bat b/resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC10.bat similarity index 96% rename from resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC10.bat rename to resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC10.bat index 8e8a3e1e7..350704ac6 100755 --- a/resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC10.bat +++ b/resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC10.bat @@ -1,11 +1,11 @@ -rem Build GLPK with Microsoft Visual Studio Express 2010 - -rem NOTE: Make sure that HOME variable specifies correct path -set HOME="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC" - -call %HOME%\vcvarsall.bat x64 -copy config_VC config.h -%HOME%\bin\nmake.exe /f Makefile_VC -%HOME%\bin\nmake.exe /f Makefile_VC check - -pause +rem Build GLPK with Microsoft Visual Studio Express 2010 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC" + +call %HOME%\vcvarsall.bat x64 +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC +%HOME%\bin\nmake.exe /f Makefile_VC check + +pause diff --git a/resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC10_DLL.bat b/resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC10_DLL.bat similarity index 96% rename from resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC10_DLL.bat rename to resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC10_DLL.bat index 0bbe697b3..5ba14dcc1 100755 --- a/resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC10_DLL.bat +++ b/resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC10_DLL.bat @@ -1,11 +1,11 @@ -rem Build GLPK DLL with Microsoft Visual Studio Express 2010 - -rem NOTE: Make sure that HOME variable specifies correct path -set HOME="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC" - -call %HOME%\vcvarsall.bat x64 -copy config_VC config.h -%HOME%\bin\nmake.exe /f Makefile_VC_DLL -%HOME%\bin\nmake.exe /f Makefile_VC_DLL check - -pause +rem Build GLPK DLL with Microsoft Visual Studio Express 2010 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC" + +call %HOME%\vcvarsall.bat x64 +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC_DLL +%HOME%\bin\nmake.exe /f Makefile_VC_DLL check + +pause diff --git a/resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC14.bat b/resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC14.bat similarity index 96% rename from resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC14.bat rename to resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC14.bat index 33bdaeaa2..864b0a8c1 100755 --- a/resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC14.bat +++ b/resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC14.bat @@ -1,11 +1,11 @@ -rem Build GLPK with Microsoft Visual Studio Community 2015 - -rem NOTE: Make sure that HOME variable specifies correct path -set HOME="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC" - -call %HOME%\vcvarsall.bat x64 -copy config_VC config.h -%HOME%\bin\nmake.exe /f Makefile_VC -%HOME%\bin\nmake.exe /f Makefile_VC check - -pause +rem Build GLPK with Microsoft Visual Studio Community 2015 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC" + +call %HOME%\vcvarsall.bat x64 +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC +%HOME%\bin\nmake.exe /f Makefile_VC check + +pause diff --git a/resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC14_DLL.bat b/resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC14_DLL.bat similarity index 96% rename from resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC14_DLL.bat rename to resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC14_DLL.bat index 25a6a87d8..2f5430971 100755 --- a/resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC14_DLL.bat +++ b/resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC14_DLL.bat @@ -1,11 +1,11 @@ -rem Build GLPK DLL with Microsoft Visual Studio Community 2015 - -rem NOTE: Make sure that HOME variable specifies correct path -set HOME="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC" - -call %HOME%\vcvarsall.bat x64 -copy config_VC config.h -%HOME%\bin\nmake.exe /f Makefile_VC_DLL -%HOME%\bin\nmake.exe /f Makefile_VC_DLL check - -pause +rem Build GLPK DLL with Microsoft Visual Studio Community 2015 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC" + +call %HOME%\vcvarsall.bat x64 +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC_DLL +%HOME%\bin\nmake.exe /f Makefile_VC_DLL check + +pause diff --git a/resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC9.bat b/resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC9.bat similarity index 96% rename from resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC9.bat rename to resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC9.bat index 9a32ef850..432c4c1be 100755 --- a/resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC9.bat +++ b/resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC9.bat @@ -1,11 +1,11 @@ -rem Build GLPK with Microsoft Visual Studio Express 2008 - -rem NOTE: Make sure that HOME variable specifies correct path -set HOME="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC" - -call %HOME%\bin\vcvars64.bat -copy config_VC config.h -%HOME%\bin\nmake.exe /f Makefile_VC -%HOME%\bin\nmake.exe /f Makefile_VC check - -pause +rem Build GLPK with Microsoft Visual Studio Express 2008 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC" + +call %HOME%\bin\vcvars64.bat +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC +%HOME%\bin\nmake.exe /f Makefile_VC check + +pause diff --git a/resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC9_DLL.bat b/resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC9_DLL.bat similarity index 96% rename from resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC9_DLL.bat rename to resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC9_DLL.bat index 4d7c19719..2cff0932f 100755 --- a/resources/3rdparty/glpk-4.57/w64/Build_GLPK_with_VC9_DLL.bat +++ b/resources/3rdparty/glpk-4.65/w64/Build_GLPK_with_VC9_DLL.bat @@ -1,11 +1,11 @@ -rem Build GLPK DLL with Microsoft Visual Studio Express 2008 - -rem NOTE: Make sure that HOME variable specifies correct path -set HOME="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC" - -call %HOME%\bin\vcvars64.bat -copy config_VC config.h -%HOME%\bin\nmake.exe /f Makefile_VC_DLL -%HOME%\bin\nmake.exe /f Makefile_VC_DLL check - -pause +rem Build GLPK DLL with Microsoft Visual Studio Express 2008 + +rem NOTE: Make sure that HOME variable specifies correct path +set HOME="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC" + +call %HOME%\bin\vcvars64.bat +copy config_VC config.h +%HOME%\bin\nmake.exe /f Makefile_VC_DLL +%HOME%\bin\nmake.exe /f Makefile_VC_DLL check + +pause diff --git a/resources/3rdparty/glpk-4.57/w32/config_VC b/resources/3rdparty/glpk-4.65/w64/config_VC similarity index 73% rename from resources/3rdparty/glpk-4.57/w32/config_VC rename to resources/3rdparty/glpk-4.65/w64/config_VC index 581ab6e6e..c8986d34f 100644 --- a/resources/3rdparty/glpk-4.57/w32/config_VC +++ b/resources/3rdparty/glpk-4.65/w64/config_VC @@ -1,13 +1,16 @@ -/* GLPK configuration file (Microsoft Visual Studio Express) */ - -#define __WOE__ 1 - -#define ODBC_DLNAME "odbc32.dll" -/* ODBC shared library name if this feature is enabled */ - -#if 0 -#define MYSQL_DLNAME "libmysql.dll" -/* MySQL shared library name if this feature is enabled */ -#endif - -/* eof */ +/* GLPK configuration file (Microsoft Visual Studio Express) */ + +#define __WOE__ 1 + +#define TLS __declspec(thread) +/* thread local storage-class specifier for reentrancy */ + +#define ODBC_DLNAME "odbc32.dll" +/* ODBC shared library name if this feature is enabled */ + +#if 0 +#define MYSQL_DLNAME "libmysql.dll" +/* MySQL shared library name if this feature is enabled */ +#endif + +/* eof */ diff --git a/resources/3rdparty/glpk-4.57/w32/glpk_4_57.def b/resources/3rdparty/glpk-4.65/w64/glpk_4_65.def similarity index 88% rename from resources/3rdparty/glpk-4.57/w32/glpk_4_57.def rename to resources/3rdparty/glpk-4.65/w64/glpk_4_65.def index 61076961c..45fecb189 100644 --- a/resources/3rdparty/glpk-4.57/w32/glpk_4_57.def +++ b/resources/3rdparty/glpk-4.65/w64/glpk_4_65.def @@ -1,223 +1,234 @@ -LIBRARY glpk_4_57 -VERSION 4.57 -DESCRIPTION "GNU Linear Programming Kit" -EXPORTS -glp_create_prob -glp_set_prob_name -glp_set_obj_name -glp_set_obj_dir -glp_add_rows -glp_add_cols -glp_set_row_name -glp_set_col_name -glp_set_row_bnds -glp_set_col_bnds -glp_set_obj_coef -glp_set_mat_row -glp_set_mat_col -glp_load_matrix -glp_check_dup -glp_sort_matrix -glp_del_rows -glp_del_cols -glp_copy_prob -glp_erase_prob -glp_delete_prob -glp_get_prob_name -glp_get_obj_name -glp_get_obj_dir -glp_get_num_rows -glp_get_num_cols -glp_get_row_name -glp_get_col_name -glp_get_row_type -glp_get_row_lb -glp_get_row_ub -glp_get_col_type -glp_get_col_lb -glp_get_col_ub -glp_get_obj_coef -glp_get_num_nz -glp_get_mat_row -glp_get_mat_col -glp_create_index -glp_find_row -glp_find_col -glp_delete_index -glp_set_rii -glp_set_sjj -glp_get_rii -glp_get_sjj -glp_scale_prob -glp_unscale_prob -glp_set_row_stat -glp_set_col_stat -glp_std_basis -glp_adv_basis -glp_cpx_basis -glp_simplex -glp_exact -glp_init_smcp -glp_get_status -glp_get_prim_stat -glp_get_dual_stat -glp_get_obj_val -glp_get_row_stat -glp_get_row_prim -glp_get_row_dual -glp_get_col_stat -glp_get_col_prim -glp_get_col_dual -glp_get_unbnd_ray -glp_get_it_cnt -glp_set_it_cnt -glp_interior -glp_init_iptcp -glp_ipt_status -glp_ipt_obj_val -glp_ipt_row_prim -glp_ipt_row_dual -glp_ipt_col_prim -glp_ipt_col_dual -glp_set_col_kind -glp_get_col_kind -glp_get_num_int -glp_get_num_bin -glp_intopt -glp_init_iocp -glp_mip_status -glp_mip_obj_val -glp_mip_row_val -glp_mip_col_val -glp_check_kkt -glp_print_sol -glp_read_sol -glp_write_sol -glp_print_ranges -glp_print_ipt -glp_read_ipt -glp_write_ipt -glp_print_mip -glp_read_mip -glp_write_mip -glp_bf_exists -glp_factorize -glp_bf_updated -glp_get_bfcp -glp_set_bfcp -glp_get_bhead -glp_get_row_bind -glp_get_col_bind -glp_ftran -glp_btran -glp_warm_up -glp_eval_tab_row -glp_eval_tab_col -glp_transform_row -glp_transform_col -glp_prim_rtest -glp_dual_rtest -glp_analyze_bound -glp_analyze_coef -glp_ios_reason -glp_ios_get_prob -glp_ios_tree_size -glp_ios_curr_node -glp_ios_next_node -glp_ios_prev_node -glp_ios_up_node -glp_ios_node_level -glp_ios_node_bound -glp_ios_best_node -glp_ios_mip_gap -glp_ios_node_data -glp_ios_row_attr -glp_ios_pool_size -glp_ios_add_row -glp_ios_del_row -glp_ios_clear_pool -glp_ios_can_branch -glp_ios_branch_upon -glp_ios_select_node -glp_ios_heur_sol -glp_ios_terminate -glp_init_mpscp -glp_read_mps -glp_write_mps -glp_init_cpxcp -glp_read_lp -glp_write_lp -glp_read_prob -glp_write_prob -glp_mpl_alloc_wksp -glp_mpl_read_model -glp_mpl_read_data -glp_mpl_generate -glp_mpl_build_prob -glp_mpl_postsolve -glp_mpl_free_wksp -glp_main -glp_read_cnfsat -glp_check_cnfsat -glp_write_cnfsat -glp_minisat1 -glp_intfeas1 -glp_init_env -glp_version -glp_free_env -glp_puts -glp_printf -glp_vprintf -glp_term_out -glp_term_hook -glp_open_tee -glp_close_tee -glp_error_ -glp_assert_ -glp_error_hook -glp_alloc -glp_realloc -glp_free -glp_mem_limit -glp_mem_usage -glp_create_graph -glp_set_graph_name -glp_add_vertices -glp_set_vertex_name -glp_add_arc -glp_del_vertices -glp_del_arc -glp_erase_graph -glp_delete_graph -glp_create_v_index -glp_find_vertex -glp_delete_v_index -glp_read_graph -glp_write_graph -glp_mincost_lp -glp_mincost_okalg -glp_mincost_relax4 -glp_maxflow_lp -glp_maxflow_ffalg -glp_check_asnprob -glp_asnprob_lp -glp_asnprob_okalg -glp_asnprob_hall -glp_cpp -glp_read_mincost -glp_write_mincost -glp_read_maxflow -glp_write_maxflow -glp_read_asnprob -glp_write_asnprob -glp_read_ccdata -glp_write_ccdata -glp_netgen -glp_netgen_prob -glp_gridgen -glp_rmfgen -glp_weak_comp -glp_strong_comp -glp_top_sort -glp_wclique_exact -;; end of file ;; +LIBRARY glpk_4_65 +VERSION 4.65 +DESCRIPTION "GNU Linear Programming Kit" +EXPORTS +glp_create_prob +glp_set_prob_name +glp_set_obj_name +glp_set_obj_dir +glp_add_rows +glp_add_cols +glp_set_row_name +glp_set_col_name +glp_set_row_bnds +glp_set_col_bnds +glp_set_obj_coef +glp_set_mat_row +glp_set_mat_col +glp_load_matrix +glp_check_dup +glp_sort_matrix +glp_del_rows +glp_del_cols +glp_copy_prob +glp_erase_prob +glp_delete_prob +glp_get_prob_name +glp_get_obj_name +glp_get_obj_dir +glp_get_num_rows +glp_get_num_cols +glp_get_row_name +glp_get_col_name +glp_get_row_type +glp_get_row_lb +glp_get_row_ub +glp_get_col_type +glp_get_col_lb +glp_get_col_ub +glp_get_obj_coef +glp_get_num_nz +glp_get_mat_row +glp_get_mat_col +glp_create_index +glp_find_row +glp_find_col +glp_delete_index +glp_set_rii +glp_set_sjj +glp_get_rii +glp_get_sjj +glp_scale_prob +glp_unscale_prob +glp_set_row_stat +glp_set_col_stat +glp_std_basis +glp_adv_basis +glp_cpx_basis +glp_simplex +glp_exact +glp_init_smcp +glp_get_status +glp_get_prim_stat +glp_get_dual_stat +glp_get_obj_val +glp_get_row_stat +glp_get_row_prim +glp_get_row_dual +glp_get_col_stat +glp_get_col_prim +glp_get_col_dual +glp_get_unbnd_ray +glp_get_it_cnt +glp_set_it_cnt +glp_interior +glp_init_iptcp +glp_ipt_status +glp_ipt_obj_val +glp_ipt_row_prim +glp_ipt_row_dual +glp_ipt_col_prim +glp_ipt_col_dual +glp_set_col_kind +glp_get_col_kind +glp_get_num_int +glp_get_num_bin +glp_intopt +glp_init_iocp +glp_mip_status +glp_mip_obj_val +glp_mip_row_val +glp_mip_col_val +glp_check_kkt +glp_print_sol +glp_read_sol +glp_write_sol +glp_print_ranges +glp_print_ipt +glp_read_ipt +glp_write_ipt +glp_print_mip +glp_read_mip +glp_write_mip +glp_bf_exists +glp_factorize +glp_bf_updated +glp_get_bfcp +glp_set_bfcp +glp_get_bhead +glp_get_row_bind +glp_get_col_bind +glp_ftran +glp_btran +glp_warm_up +glp_eval_tab_row +glp_eval_tab_col +glp_transform_row +glp_transform_col +glp_prim_rtest +glp_dual_rtest +glp_analyze_bound +glp_analyze_coef +glp_npp_alloc_wksp +glp_npp_load_prob +glp_npp_preprocess1 +glp_npp_build_prob +glp_npp_postprocess +glp_npp_obtain_sol +glp_npp_free_wksp +glp_ios_reason +glp_ios_get_prob +glp_ios_tree_size +glp_ios_curr_node +glp_ios_next_node +glp_ios_prev_node +glp_ios_up_node +glp_ios_node_level +glp_ios_node_bound +glp_ios_best_node +glp_ios_mip_gap +glp_ios_node_data +glp_ios_row_attr +glp_ios_pool_size +glp_ios_add_row +glp_ios_del_row +glp_ios_clear_pool +glp_ios_can_branch +glp_ios_branch_upon +glp_ios_select_node +glp_ios_heur_sol +glp_ios_terminate +glp_init_mpscp +glp_read_mps +glp_write_mps +glp_init_cpxcp +glp_read_lp +glp_write_lp +glp_read_prob +glp_write_prob +glp_mpl_alloc_wksp +glp_mpl_init_rand +glp_mpl_read_model +glp_mpl_read_data +glp_mpl_generate +glp_mpl_build_prob +glp_mpl_postsolve +glp_mpl_free_wksp +glp_read_cnfsat +glp_check_cnfsat +glp_write_cnfsat +glp_minisat1 +glp_intfeas1 +glp_init_env +glp_version +glp_config +glp_free_env +glp_puts +glp_printf +glp_vprintf +glp_term_out +glp_term_hook +glp_open_tee +glp_close_tee +glp_error_ +glp_at_error +glp_assert_ +glp_error_hook +glp_alloc +glp_realloc +glp_free +glp_mem_limit +glp_mem_usage +glp_time +glp_difftime +glp_create_graph +glp_set_graph_name +glp_add_vertices +glp_set_vertex_name +glp_add_arc +glp_del_vertices +glp_del_arc +glp_erase_graph +glp_delete_graph +glp_create_v_index +glp_find_vertex +glp_delete_v_index +glp_read_graph +glp_write_graph +glp_mincost_lp +glp_mincost_okalg +glp_mincost_relax4 +glp_maxflow_lp +glp_maxflow_ffalg +glp_check_asnprob +glp_asnprob_lp +glp_asnprob_okalg +glp_asnprob_hall +glp_cpp +glp_read_mincost +glp_write_mincost +glp_read_maxflow +glp_write_maxflow +glp_read_asnprob +glp_write_asnprob +glp_read_ccdata +glp_write_ccdata +glp_netgen +glp_netgen_prob +glp_gridgen +glp_rmfgen +glp_weak_comp +glp_strong_comp +glp_top_sort +glp_wclique_exact +;; end of file ;; diff --git a/resources/3rdparty/glpk-4.65/w64/makefile_VC b/resources/3rdparty/glpk-4.65/w64/makefile_VC new file mode 100644 index 000000000..207338243 --- /dev/null +++ b/resources/3rdparty/glpk-4.65/w64/makefile_VC @@ -0,0 +1,251 @@ +## Build GLPK with Microsoft Visual Studio Express ## + +CFLAGS = \ +/I. \ +/I..\src \ +/I..\src\amd \ +/I..\src\api \ +/I..\src\bflib \ +/I..\src\colamd \ +/I..\src\draft \ +/I..\src\env \ +/I..\src\intopt \ +/I..\src\minisat \ +/I..\src\misc \ +/I..\src\mpl \ +/I..\src\npp \ +/I..\src\proxy \ +/I..\src\simplex \ +/I..\src\zlib \ +/DHAVE_CONFIG_H=1 \ +/D_CRT_SECURE_NO_WARNINGS=1 \ +/nologo \ +/W3 \ +/O2 \ +/Zi + +OBJSET = \ +..\src\amd\amd_1.obj \ +..\src\amd\amd_2.obj \ +..\src\amd\amd_aat.obj \ +..\src\amd\amd_control.obj \ +..\src\amd\amd_defaults.obj \ +..\src\amd\amd_dump.obj \ +..\src\amd\amd_info.obj \ +..\src\amd\amd_order.obj \ +..\src\amd\amd_post_tree.obj \ +..\src\amd\amd_postorder.obj \ +..\src\amd\amd_preprocess.obj \ +..\src\amd\amd_valid.obj \ +..\src\api\advbas.obj \ +..\src\api\asnhall.obj \ +..\src\api\asnlp.obj \ +..\src\api\asnokalg.obj \ +..\src\api\ckasn.obj \ +..\src\api\ckcnf.obj \ +..\src\api\cplex.obj \ +..\src\api\cpp.obj \ +..\src\api\cpxbas.obj \ +..\src\api\graph.obj \ +..\src\api\gridgen.obj \ +..\src\api\intfeas1.obj \ +..\src\api\maxffalg.obj \ +..\src\api\maxflp.obj \ +..\src\api\mcflp.obj \ +..\src\api\mcfokalg.obj \ +..\src\api\mcfrelax.obj \ +..\src\api\minisat1.obj \ +..\src\api\mpl.obj \ +..\src\api\mps.obj \ +..\src\api\netgen.obj \ +..\src\api\npp.obj \ +..\src\api\pript.obj \ +..\src\api\prmip.obj \ +..\src\api\prob1.obj \ +..\src\api\prob2.obj \ +..\src\api\prob3.obj \ +..\src\api\prob4.obj \ +..\src\api\prob5.obj \ +..\src\api\prrngs.obj \ +..\src\api\prsol.obj \ +..\src\api\rdasn.obj \ +..\src\api\rdcc.obj \ +..\src\api\rdcnf.obj \ +..\src\api\rdipt.obj \ +..\src\api\rdmaxf.obj \ +..\src\api\rdmcf.obj \ +..\src\api\rdmip.obj \ +..\src\api\rdprob.obj \ +..\src\api\rdsol.obj \ +..\src\api\rmfgen.obj \ +..\src\api\strong.obj \ +..\src\api\topsort.obj \ +..\src\api\weak.obj \ +..\src\api\wcliqex.obj \ +..\src\api\wrasn.obj \ +..\src\api\wrcc.obj \ +..\src\api\wrcnf.obj \ +..\src\api\wript.obj \ +..\src\api\wrmaxf.obj \ +..\src\api\wrmcf.obj \ +..\src\api\wrmip.obj \ +..\src\api\wrprob.obj \ +..\src\api\wrsol.obj \ +..\src\bflib\btf.obj \ +..\src\bflib\btfint.obj \ +..\src\bflib\fhv.obj \ +..\src\bflib\fhvint.obj \ +..\src\bflib\ifu.obj \ +..\src\bflib\luf.obj \ +..\src\bflib\lufint.obj \ +..\src\bflib\scf.obj \ +..\src\bflib\scfint.obj \ +..\src\bflib\sgf.obj \ +..\src\bflib\sva.obj \ +..\src\colamd\colamd.obj \ +..\src\draft\bfd.obj \ +..\src\draft\bfx.obj \ +..\src\draft\glpapi06.obj \ +..\src\draft\glpapi07.obj \ +..\src\draft\glpapi08.obj \ +..\src\draft\glpapi09.obj \ +..\src\draft\glpapi10.obj \ +..\src\draft\glpapi12.obj \ +..\src\draft\glpapi13.obj \ +..\src\draft\glphbm.obj \ +..\src\draft\glpios01.obj \ +..\src\draft\glpios02.obj \ +..\src\draft\glpios03.obj \ +..\src\draft\glpios07.obj \ +..\src\draft\glpios09.obj \ +..\src\draft\glpios11.obj \ +..\src\draft\glpios12.obj \ +..\src\draft\glpipm.obj \ +..\src\draft\glpmat.obj \ +..\src\draft\glprgr.obj \ +..\src\draft\glpscl.obj \ +..\src\draft\glpspm.obj \ +..\src\draft\glpssx01.obj \ +..\src\draft\glpssx02.obj \ +..\src\draft\lux.obj \ +..\src\env\alloc.obj \ +..\src\env\dlsup.obj \ +..\src\env\env.obj \ +..\src\env\error.obj \ +..\src\env\stdc.obj \ +..\src\env\stdout.obj \ +..\src\env\stream.obj \ +..\src\env\time.obj \ +..\src\env\tls.obj \ +..\src\intopt\cfg.obj \ +..\src\intopt\cfg1.obj \ +..\src\intopt\cfg2.obj \ +..\src\intopt\clqcut.obj \ +..\src\intopt\covgen.obj \ +..\src\intopt\fpump.obj \ +..\src\intopt\gmicut.obj \ +..\src\intopt\gmigen.obj \ +..\src\intopt\mirgen.obj \ +..\src\intopt\spv.obj \ +..\src\minisat\minisat.obj \ +..\src\misc\avl.obj \ +..\src\misc\bignum.obj \ +..\src\misc\dimacs.obj \ +..\src\misc\dmp.obj \ +..\src\misc\ffalg.obj \ +..\src\misc\fp2rat.obj \ +..\src\misc\fvs.obj \ +..\src\misc\gcd.obj \ +..\src\misc\jd.obj \ +..\src\misc\keller.obj \ +..\src\misc\ks.obj \ +..\src\misc\mc13d.obj \ +..\src\misc\mc21a.obj \ +..\src\misc\mt1.obj \ +..\src\misc\mygmp.obj \ +..\src\misc\okalg.obj \ +..\src\misc\qmd.obj \ +..\src\misc\relax4.obj \ +..\src\misc\rng.obj \ +..\src\misc\rng1.obj \ +..\src\misc\round2n.obj \ +..\src\misc\str2int.obj \ +..\src\misc\str2num.obj \ +..\src\misc\strspx.obj \ +..\src\misc\strtrim.obj \ +..\src\misc\triang.obj \ +..\src\misc\wclique.obj \ +..\src\misc\wclique1.obj \ +..\src\mpl\mpl1.obj \ +..\src\mpl\mpl2.obj \ +..\src\mpl\mpl3.obj \ +..\src\mpl\mpl4.obj \ +..\src\mpl\mpl5.obj \ +..\src\mpl\mpl6.obj \ +..\src\mpl\mplsql.obj \ +..\src\npp\npp1.obj \ +..\src\npp\npp2.obj \ +..\src\npp\npp3.obj \ +..\src\npp\npp4.obj \ +..\src\npp\npp5.obj \ +..\src\npp\npp6.obj \ +..\src\proxy\proxy.obj \ +..\src\proxy\proxy1.obj \ +..\src\simplex\spxat.obj \ +..\src\simplex\spxchuzc.obj \ +..\src\simplex\spxchuzr.obj \ +..\src\simplex\spxlp.obj \ +..\src\simplex\spxnt.obj \ +..\src\simplex\spxprim.obj \ +..\src\simplex\spxprob.obj \ +..\src\simplex\spychuzc.obj \ +..\src\simplex\spychuzr.obj \ +..\src\simplex\spydual.obj \ +..\src\zlib\adler32.obj \ +..\src\zlib\compress.obj \ +..\src\zlib\crc32.obj \ +..\src\zlib\deflate.obj \ +..\src\zlib\gzclose.obj \ +..\src\zlib\gzlib.obj \ +..\src\zlib\gzread.obj \ +..\src\zlib\gzwrite.obj \ +..\src\zlib\inffast.obj \ +..\src\zlib\inflate.obj \ +..\src\zlib\inftrees.obj \ +..\src\zlib\trees.obj \ +..\src\zlib\uncompr.obj \ +..\src\zlib\zio.obj \ +..\src\zlib\zutil.obj + +.c.obj: + cl.exe $(CFLAGS) /Fo$*.obj /c $*.c + +all: glpk.lib glpsol.exe + +glpk.lib: $(OBJSET) + lib.exe /out:glpk.lib \ + ..\src\*.obj \ + ..\src\amd\*.obj \ + ..\src\api\*.obj \ + ..\src\bflib\*.obj \ + ..\src\colamd\*.obj \ + ..\src\draft\*.obj \ + ..\src\env\*.obj \ + ..\src\intopt\*.obj \ + ..\src\minisat\*.obj \ + ..\src\misc\*.obj \ + ..\src\mpl\*.obj \ + ..\src\npp\*.obj \ + ..\src\proxy\*.obj \ + ..\src\simplex\*.obj \ + ..\src\zlib\*.obj + +glpsol.exe: ..\examples\glpsol.obj glpk.lib + cl.exe $(CFLAGS) /Feglpsol.exe \ + ..\examples\glpsol.obj glpk.lib + +check: glpsol.exe + .\glpsol.exe --version + .\glpsol.exe --mps ..\examples\murtagh.mps --max + +## eof ## diff --git a/resources/3rdparty/glpk-4.65/w64/makefile_VC_DLL b/resources/3rdparty/glpk-4.65/w64/makefile_VC_DLL new file mode 100644 index 000000000..5ca94d36c --- /dev/null +++ b/resources/3rdparty/glpk-4.65/w64/makefile_VC_DLL @@ -0,0 +1,252 @@ +## Build GLPK DLL with Microsoft Visual Studio Express ## + +CFLAGS = \ +/I. \ +/I..\src \ +/I..\src\amd \ +/I..\src\api \ +/I..\src\bflib \ +/I..\src\colamd \ +/I..\src\draft \ +/I..\src\env \ +/I..\src\intopt \ +/I..\src\minisat \ +/I..\src\misc \ +/I..\src\mpl \ +/I..\src\npp \ +/I..\src\proxy \ +/I..\src\simplex \ +/I..\src\zlib \ +/DHAVE_CONFIG_H=1 \ +/D_CRT_SECURE_NO_WARNINGS=1 \ +/nologo \ +/W3 \ +/O2 \ +/Zi + +OBJSET = \ +..\src\amd\amd_1.obj \ +..\src\amd\amd_2.obj \ +..\src\amd\amd_aat.obj \ +..\src\amd\amd_control.obj \ +..\src\amd\amd_defaults.obj \ +..\src\amd\amd_dump.obj \ +..\src\amd\amd_info.obj \ +..\src\amd\amd_order.obj \ +..\src\amd\amd_post_tree.obj \ +..\src\amd\amd_postorder.obj \ +..\src\amd\amd_preprocess.obj \ +..\src\amd\amd_valid.obj \ +..\src\api\advbas.obj \ +..\src\api\asnhall.obj \ +..\src\api\asnlp.obj \ +..\src\api\asnokalg.obj \ +..\src\api\ckasn.obj \ +..\src\api\ckcnf.obj \ +..\src\api\cplex.obj \ +..\src\api\cpp.obj \ +..\src\api\cpxbas.obj \ +..\src\api\graph.obj \ +..\src\api\gridgen.obj \ +..\src\api\intfeas1.obj \ +..\src\api\maxffalg.obj \ +..\src\api\maxflp.obj \ +..\src\api\mcflp.obj \ +..\src\api\mcfokalg.obj \ +..\src\api\mcfrelax.obj \ +..\src\api\minisat1.obj \ +..\src\api\mpl.obj \ +..\src\api\mps.obj \ +..\src\api\netgen.obj \ +..\src\api\npp.obj \ +..\src\api\pript.obj \ +..\src\api\prmip.obj \ +..\src\api\prob1.obj \ +..\src\api\prob2.obj \ +..\src\api\prob3.obj \ +..\src\api\prob4.obj \ +..\src\api\prob5.obj \ +..\src\api\prrngs.obj \ +..\src\api\prsol.obj \ +..\src\api\rdasn.obj \ +..\src\api\rdcc.obj \ +..\src\api\rdcnf.obj \ +..\src\api\rdipt.obj \ +..\src\api\rdmaxf.obj \ +..\src\api\rdmcf.obj \ +..\src\api\rdmip.obj \ +..\src\api\rdprob.obj \ +..\src\api\rdsol.obj \ +..\src\api\rmfgen.obj \ +..\src\api\strong.obj \ +..\src\api\topsort.obj \ +..\src\api\weak.obj \ +..\src\api\wcliqex.obj \ +..\src\api\wrasn.obj \ +..\src\api\wrcc.obj \ +..\src\api\wrcnf.obj \ +..\src\api\wript.obj \ +..\src\api\wrmaxf.obj \ +..\src\api\wrmcf.obj \ +..\src\api\wrmip.obj \ +..\src\api\wrprob.obj \ +..\src\api\wrsol.obj \ +..\src\bflib\btf.obj \ +..\src\bflib\btfint.obj \ +..\src\bflib\fhv.obj \ +..\src\bflib\fhvint.obj \ +..\src\bflib\ifu.obj \ +..\src\bflib\luf.obj \ +..\src\bflib\lufint.obj \ +..\src\bflib\scf.obj \ +..\src\bflib\scfint.obj \ +..\src\bflib\sgf.obj \ +..\src\bflib\sva.obj \ +..\src\colamd\colamd.obj \ +..\src\draft\bfd.obj \ +..\src\draft\bfx.obj \ +..\src\draft\glpapi06.obj \ +..\src\draft\glpapi07.obj \ +..\src\draft\glpapi08.obj \ +..\src\draft\glpapi09.obj \ +..\src\draft\glpapi10.obj \ +..\src\draft\glpapi12.obj \ +..\src\draft\glpapi13.obj \ +..\src\draft\glphbm.obj \ +..\src\draft\glpios01.obj \ +..\src\draft\glpios02.obj \ +..\src\draft\glpios03.obj \ +..\src\draft\glpios07.obj \ +..\src\draft\glpios09.obj \ +..\src\draft\glpios11.obj \ +..\src\draft\glpios12.obj \ +..\src\draft\glpipm.obj \ +..\src\draft\glpmat.obj \ +..\src\draft\glprgr.obj \ +..\src\draft\glpscl.obj \ +..\src\draft\glpspm.obj \ +..\src\draft\glpssx01.obj \ +..\src\draft\glpssx02.obj \ +..\src\draft\lux.obj \ +..\src\env\alloc.obj \ +..\src\env\dlsup.obj \ +..\src\env\env.obj \ +..\src\env\error.obj \ +..\src\env\stdc.obj \ +..\src\env\stdout.obj \ +..\src\env\stream.obj \ +..\src\env\time.obj \ +..\src\env\tls.obj \ +..\src\intopt\cfg.obj \ +..\src\intopt\cfg1.obj \ +..\src\intopt\cfg2.obj \ +..\src\intopt\clqcut.obj \ +..\src\intopt\covgen.obj \ +..\src\intopt\fpump.obj \ +..\src\intopt\gmicut.obj \ +..\src\intopt\gmigen.obj \ +..\src\intopt\mirgen.obj \ +..\src\intopt\spv.obj \ +..\src\minisat\minisat.obj \ +..\src\misc\avl.obj \ +..\src\misc\bignum.obj \ +..\src\misc\dimacs.obj \ +..\src\misc\dmp.obj \ +..\src\misc\ffalg.obj \ +..\src\misc\fp2rat.obj \ +..\src\misc\fvs.obj \ +..\src\misc\gcd.obj \ +..\src\misc\jd.obj \ +..\src\misc\keller.obj \ +..\src\misc\ks.obj \ +..\src\misc\mc13d.obj \ +..\src\misc\mc21a.obj \ +..\src\misc\mt1.obj \ +..\src\misc\mygmp.obj \ +..\src\misc\okalg.obj \ +..\src\misc\qmd.obj \ +..\src\misc\relax4.obj \ +..\src\misc\rng.obj \ +..\src\misc\rng1.obj \ +..\src\misc\round2n.obj \ +..\src\misc\str2int.obj \ +..\src\misc\str2num.obj \ +..\src\misc\strspx.obj \ +..\src\misc\strtrim.obj \ +..\src\misc\triang.obj \ +..\src\misc\wclique.obj \ +..\src\misc\wclique1.obj \ +..\src\mpl\mpl1.obj \ +..\src\mpl\mpl2.obj \ +..\src\mpl\mpl3.obj \ +..\src\mpl\mpl4.obj \ +..\src\mpl\mpl5.obj \ +..\src\mpl\mpl6.obj \ +..\src\mpl\mplsql.obj \ +..\src\npp\npp1.obj \ +..\src\npp\npp2.obj \ +..\src\npp\npp3.obj \ +..\src\npp\npp4.obj \ +..\src\npp\npp5.obj \ +..\src\npp\npp6.obj \ +..\src\proxy\proxy.obj \ +..\src\proxy\proxy1.obj \ +..\src\simplex\spxat.obj \ +..\src\simplex\spxchuzc.obj \ +..\src\simplex\spxchuzr.obj \ +..\src\simplex\spxlp.obj \ +..\src\simplex\spxnt.obj \ +..\src\simplex\spxprim.obj \ +..\src\simplex\spxprob.obj \ +..\src\simplex\spychuzc.obj \ +..\src\simplex\spychuzr.obj \ +..\src\simplex\spydual.obj \ +..\src\zlib\adler32.obj \ +..\src\zlib\compress.obj \ +..\src\zlib\crc32.obj \ +..\src\zlib\deflate.obj \ +..\src\zlib\gzclose.obj \ +..\src\zlib\gzlib.obj \ +..\src\zlib\gzread.obj \ +..\src\zlib\gzwrite.obj \ +..\src\zlib\inffast.obj \ +..\src\zlib\inflate.obj \ +..\src\zlib\inftrees.obj \ +..\src\zlib\trees.obj \ +..\src\zlib\uncompr.obj \ +..\src\zlib\zio.obj \ +..\src\zlib\zutil.obj + +.c.obj: + cl.exe $(CFLAGS) /Fo$*.obj /c $*.c + +all: glpk_4_65.dll glpsol.exe + +glpk_4_65.dll: $(OBJSET) + cl.exe $(CFLAGS) /LD /Feglpk_4_65.dll \ + ..\src\*.obj \ + ..\src\amd\*.obj \ + ..\src\api\*.obj \ + ..\src\bflib\*.obj \ + ..\src\colamd\*.obj \ + ..\src\draft\*.obj \ + ..\src\env\*.obj \ + ..\src\intopt\*.obj \ + ..\src\minisat\*.obj \ + ..\src\misc\*.obj \ + ..\src\mpl\*.obj \ + ..\src\npp\*.obj \ + ..\src\proxy\*.obj \ + ..\src\simplex\*.obj \ + ..\src\zlib\*.obj \ + glpk_4_65.def + +glpsol.exe: ..\examples\glpsol.obj glpk_4_65.dll + cl.exe $(CFLAGS) /Feglpsol.exe \ + ..\examples\glpsol.obj glpk_4_65.lib + +check: glpsol.exe + .\glpsol.exe --version + .\glpsol.exe --mps ..\examples\murtagh.mps --max + +## eof ## diff --git a/resources/3rdparty/glpk-4.57/w64/readme.txt b/resources/3rdparty/glpk-4.65/w64/readme.txt similarity index 97% rename from resources/3rdparty/glpk-4.57/w64/readme.txt rename to resources/3rdparty/glpk-4.65/w64/readme.txt index d5742d964..0e0df14d2 100644 --- a/resources/3rdparty/glpk-4.57/w64/readme.txt +++ b/resources/3rdparty/glpk-4.65/w64/readme.txt @@ -1,24 +1,24 @@ -This directory contains batch files and other stuff which you can use -to build GLPK for 64-bit Windows with the native C/C++ compilers. - -Before running the batch file do the following: - -1. Make sure that you have installed the compiler you are going to use - to build GLPK. - -2. Look into corresponding batch file (just right-click it and choose - 'Edit' in the popup menu; DO NOT choose 'Open'). Make sure that HOME - variable specifies correct path to the compiler directory; if not, - make necessary changes. - -To run the batch file just double-click it and wait a bit while the -Make utility does its job. The message 'OPTIMAL SOLUTION FOUND' in the -MS-DOS window means that all is OK. If you do not see it, something is -wrong. - -Once GLPK has been successfully built, there must appear two files in -this directory: - -glpk.lib, which is the GLPK object library, and - -glpsol.exe, which is the stand-alone GLPK LP/MIP solver. +This directory contains batch files and other stuff which you can use +to build GLPK for 64-bit Windows with the native C/C++ compilers. + +Before running the batch file do the following: + +1. Make sure that you have installed the compiler you are going to use + to build GLPK. + +2. Look into corresponding batch file (just right-click it and choose + 'Edit' in the popup menu; DO NOT choose 'Open'). Make sure that HOME + variable specifies correct path to the compiler directory; if not, + make necessary changes. + +To run the batch file just double-click it and wait a bit while the +Make utility does its job. The message 'OPTIMAL SOLUTION FOUND' in the +MS-DOS window means that all is OK. If you do not see it, something is +wrong. + +Once GLPK has been successfully built, there must appear two files in +this directory: + +glpk.lib, which is the GLPK object library, and + +glpsol.exe, which is the stand-alone GLPK LP/MIP solver. From d67f1b489862045d4de01b74ae7e32a70384cdd8 Mon Sep 17 00:00:00 2001 From: Tim Quatmann Date: Mon, 4 Nov 2019 15:46:22 +0100 Subject: [PATCH 2/4] cmake: Fixed compilation of shipped glpk under mac os --- resources/3rdparty/include_cudd.cmake | 2 +- resources/3rdparty/include_glpk.cmake | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/resources/3rdparty/include_cudd.cmake b/resources/3rdparty/include_cudd.cmake index 9aafb98b4..1f02462b2 100644 --- a/resources/3rdparty/include_cudd.cmake +++ b/resources/3rdparty/include_cudd.cmake @@ -28,7 +28,7 @@ if (NOT STORM_PORTABLE) set(STORM_CUDD_FLAGS "${STORM_CUDD_FLAGS} -march=native") endif() -# Set sysroot to circumvent problems in macOS "Mojave" where the header files are no longer in /usr/include +# Set sysroot to circumvent problems in macOS "Mojave" (or higher) where the header files are no longer in /usr/include set(CUDD_INCLUDE_FLAGS "") if (CMAKE_OSX_SYSROOT) set(CUDD_INCLUDE_FLAGS "CPPFLAGS=--sysroot=${CMAKE_OSX_SYSROOT}") diff --git a/resources/3rdparty/include_glpk.cmake b/resources/3rdparty/include_glpk.cmake index e7dc55149..87c3ebcfa 100644 --- a/resources/3rdparty/include_glpk.cmake +++ b/resources/3rdparty/include_glpk.cmake @@ -3,13 +3,20 @@ if(GLPK_FOUND) message (STATUS "Storm - Using system version of glpk.") else() message (STATUS "Storm - Using shipped version of glpk.") - set(GLPK_LIB_DIR ${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57/lib) + set(GLPK_LIB_DIR ${STORM_3RDPARTY_BINARY_DIR}/glpk-4.65/lib) + + # Set sysroot to circumvent problems in macOS "Mojave" (or higher) where the header files are no longer in /usr/include + set(GLPK_INCLUDE_FLAGS "") + if (CMAKE_OSX_SYSROOT) + set(GLPK_INCLUDE_FLAGS "CPPFLAGS=--sysroot=${CMAKE_OSX_SYSROOT}") + endif() + ExternalProject_Add(glpk_ext DOWNLOAD_COMMAND "" - PREFIX ${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57 - SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57 - CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57/configure --prefix=${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57 --libdir=${GLPK_LIB_DIR} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} - BUILD_COMMAND make "CFLAGS=-O2 -w" + PREFIX ${STORM_3RDPARTY_BINARY_DIR}/glpk-4.65 + SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.65 + CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.65/configure --prefix=${STORM_3RDPARTY_BINARY_DIR}/glpk-4.65 --libdir=${GLPK_LIB_DIR} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} ${GLPK_INCLUDE_FLAGS} + BUILD_COMMAND make "CFLAGS=-O3 -w" INSTALL_COMMAND make install BUILD_IN_SOURCE 0 LOG_CONFIGURE ON @@ -18,8 +25,8 @@ else() BUILD_BYPRODUCTS ${GLPK_LIB_DIR}/libglpk${DYNAMIC_EXT} ${GLPK_LIB_DIR}/libglpk${STATIC_EXT} ) set(GLPK_LIBRARIES ${GLPK_LIB_DIR}/libglpk${DYNAMIC_EXT}) - set(GLPK_INCLUDE_DIR ${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57/include) - set(GLPK_VERSION_STRING 4.57) + set(GLPK_INCLUDE_DIR ${STORM_3RDPARTY_BINARY_DIR}/glpk-4.65/include) + set(GLPK_VERSION_STRING 4.65) add_dependencies(resources glpk_ext) endif() From afda2eb2a0b4ce383b6d0141e5cbe18baecd8073 Mon Sep 17 00:00:00 2001 From: Tim Quatmann Date: Mon, 4 Nov 2019 15:47:44 +0100 Subject: [PATCH 3/4] .gitignore: added files in l3pp/.git --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 98a24b25d..71a15cc93 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ ##Third-Party libs resources/3rdparty/log4cplus-1.1.3-rc1/ +resources/3rdparty/l3pp/.git/ resources/3rdparty/gtest-1.7.0/ resources/3rdparty/eigen/ resources/3rdparty/gmm-5.2/ From fb22c3fe689f9c25741ec5dde893f3365d894555 Mon Sep 17 00:00:00 2001 From: Tim Quatmann Date: Mon, 4 Nov 2019 15:50:07 +0100 Subject: [PATCH 4/4] Tests: Illegal synchronized writes are now detected already during parsing. The corresponding test case has thus been moved. --- src/test/storm/builder/DdJaniModelBuilderTest.cpp | 14 -------------- .../storm/builder/ExplicitJaniModelBuilderTest.cpp | 11 ----------- .../builder/ExplicitJitJaniModelBuilderTest.cpp | 10 ---------- src/test/storm/parser/PrismParserTest.cpp | 5 +++++ 4 files changed, 5 insertions(+), 35 deletions(-) diff --git a/src/test/storm/builder/DdJaniModelBuilderTest.cpp b/src/test/storm/builder/DdJaniModelBuilderTest.cpp index 6cce536b4..7f2afa3d6 100644 --- a/src/test/storm/builder/DdJaniModelBuilderTest.cpp +++ b/src/test/storm/builder/DdJaniModelBuilderTest.cpp @@ -292,20 +292,6 @@ TEST(DdJaniModelBuilderTest_Cudd, Mdp) { EXPECT_EQ(59ul, mdp->getNumberOfChoices()); } -TEST(DdJaniModelBuilderTest_Cudd, IllegalSynchronizingWrites) { - storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/mdp/coin2-2-illegalSynchronizingWrite.nm"); - storm::jani::Model janiModel = modelDescription.toJani(true).preprocess().asJaniModel(); - storm::builder::DdJaniModelBuilder builder; - EXPECT_THROW(std::shared_ptr> model = builder.build(janiModel), storm::exceptions::WrongFormatException); -} - -TEST(DdJaniModelBuilderTest_Sylvan, IllegalSynchronizingWrites) { - storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/mdp/coin2-2-illegalSynchronizingWrite.nm"); - storm::jani::Model janiModel = modelDescription.toJani(true).preprocess().asJaniModel(); - storm::builder::DdJaniModelBuilder builder; - EXPECT_THROW(std::shared_ptr> model = builder.build(janiModel), storm::exceptions::WrongFormatException); -} - TEST(DdJaniModelBuilderTest_Cudd, SynchronizationVectors) { storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/mdp/SmallPrismTest.nm"); storm::jani::Model janiModel = modelDescription.toJani(true).preprocess().asJaniModel(); diff --git a/src/test/storm/builder/ExplicitJaniModelBuilderTest.cpp b/src/test/storm/builder/ExplicitJaniModelBuilderTest.cpp index f98834a20..e6dfffcd7 100644 --- a/src/test/storm/builder/ExplicitJaniModelBuilderTest.cpp +++ b/src/test/storm/builder/ExplicitJaniModelBuilderTest.cpp @@ -147,14 +147,3 @@ TEST(ExplicitJaniModelBuilderTest, FailComposition) { ASSERT_THROW(storm::builder::ExplicitModelBuilder(janiModel).build(), storm::exceptions::WrongFormatException); } - -TEST(ExplicitJaniModelBuilderTest, IllegalSynchronizingWrites) { - storm::prism::Program program = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/mdp/coin2-2-illegalSynchronizingWrite.nm"); - storm::jani::Model janiModel = program.toJani().substituteConstantsFunctions(); - storm::generator::NextStateGeneratorOptions options; - options.setExplorationChecks(true); - std::shared_ptr> nextStateGenerator = std::make_shared>(janiModel, options); - - ASSERT_THROW(storm::builder::ExplicitModelBuilder(nextStateGenerator).build(), storm::exceptions::WrongFormatException); -} - diff --git a/src/test/storm/builder/ExplicitJitJaniModelBuilderTest.cpp b/src/test/storm/builder/ExplicitJitJaniModelBuilderTest.cpp index d8a0c403d..0e6cf08c9 100644 --- a/src/test/storm/builder/ExplicitJitJaniModelBuilderTest.cpp +++ b/src/test/storm/builder/ExplicitJitJaniModelBuilderTest.cpp @@ -148,13 +148,3 @@ TEST(ExplicitJitJaniModelBuilderTest, FailComposition) { ASSERT_THROW(storm::builder::jit::ExplicitJitJaniModelBuilder(janiModel).build();, storm::exceptions::WrongFormatException); } - -TEST(ExplicitJitJaniModelBuilderTest, IllegalSynchronizingWrites) { - storm::prism::Program program = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/mdp/coin2-2-illegalSynchronizingWrite.nm"); - storm::jani::Model janiModel = program.toJani().substituteConstantsFunctions(); - storm::builder::BuilderOptions options; - options.setExplorationChecks(true); - - ASSERT_THROW(storm::builder::jit::ExplicitJitJaniModelBuilder(janiModel, options).build(), storm::exceptions::WrongFormatException); -} - diff --git a/src/test/storm/parser/PrismParserTest.cpp b/src/test/storm/parser/PrismParserTest.cpp index 4fe5735f5..62c970ba1 100644 --- a/src/test/storm/parser/PrismParserTest.cpp +++ b/src/test/storm/parser/PrismParserTest.cpp @@ -219,3 +219,8 @@ TEST(PrismParser, IllegalInputTest) { EXPECT_THROW(result = storm::parser::PrismParser::parseFromString(testInput, "testfile"), storm::exceptions::WrongFormatException); } + +TEST(PrismParser, IllegalSynchronizedWriteTest) { + EXPECT_THROW(storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/mdp/coin2-2-illegalSynchronizingWrite.nm"), storm::exceptions::WrongFormatException); +} +

mx(GZv1 z`PlHJeN#NWCRMXij+W#{(e?_Us zZ-!+!Fx&NkY({K2a3}A1twJl;LXsJAUj&tp zM<6-y(G93|!Xj(otNVspK~jvYZ31oQ05z|lZSZafc$<;p4*Yn%f$k8W+=mR^y;L6v z)N?)5(ff=%(O-@KA}jTqYREu{cwu{?nG8+##udRg$B?BSa68}8wn z_q*CUdJZE7mJtlwkY@O&{`|jE1Z@*Fwu+=}==Jc;Y!ykl3de1LX_XOgK1L(PG2-xOa z7n4Sh>{_d8s4VWAs%j`DE;T;0vh_@l+5`SxmrHN+S8ggW)B(i*q&bd^%YriZ)X-IY z*&HPYEajakJ?T@opeDN2KjMOR$gRCq2bA-#zhwu!6WjXe_myxq`{wStfj0Y=?%I22 z<69TUpnRy^tDA%ZiQOK*fjK;$ Wk5e>dfbpSN7}%jmNk!$wp#Bf>MW{Xi delta 80365 zcmYhCV{qL5`1xU+oE=RJY+&3sWMhToL5UE9Z+{}Vgo(%cKsv>vTf$qkaIT7<>ulGX!|5HW ze|I(S^!M&g?oYgcdw_)Ih3+zH0&Y-jLA2=*n-XTQp!n9b4B_C|7d%=lNB2wd4tTj*yuGPjI{13+N&u{PtM>95aA(DTd5jb_ErATWt*u9XjPeXN z*G8#gbf!8B;zv&EYMk2SwRzZ+uN<2_C@n{uO&mV>i|a9yn|^Ayfz%dMY;7ro01Z!; z%r||ut*eptlF~sw7c=M4u-DM4xYcv`?hxDH?mchdDgCm1FebLf|6j0)Z7Ko?FnA&# zFeQNL|JET|ZQOB_6S4c0#yzNl6k@NYkU3mgGs_YAn3V-GEr?VUHQz5z=l#>UuwSem zfxdGh`X*GDAS1?CjQHS=q=4C94}ZDzY?|HECs8b5)T$?@g@>`Wp((-x-zF2V{*s4Y z$tt`4IqQ}y!9D32pLEqW25=&O-N|CyM)-TFFp;(%KN5}K^F=tB%@&EK{ZoG7*Ic36 zpbiJjpi_9Yd>kd&Od$LxreCk?4e*J?g07lX%D)eo!fO1qdH$)Bpg!RxojoWBJ4j+| zUhVD~H#4bSNGqMU^!pkW!&i7b38U35MMNZmKJ|t!Pa=yLh(wDR2auMa5N0;LlcJ;K zWi>66)`<8ex? zka<Tq&J}+<5 z3~qL2*qZsV84$gpo+rm%fjGHBOY5YY01BSqaQ9S@aSf-VIvJz!Te`6;V;1EoTk_8~Ci)Z7ok_-afnUz0xY;u1H;){so zq~0)1;Lv;mA&yqn0YG);0>O?de_l0vdP|fwgw4aX0{J782pBWt{LQjXb}~eg(q-f zRMC&dKbm=<%JEk*-DW-s7h{2e9xUPx}z-ABGS%&S)5gEM;b$1d226IT$P` zVkv`+5>>RW;m~mka!qJ9PjA=k)5!S<_GhJELo#RWvCnRWcxAg0ZzdCTO@Jo)Iswzv zkQ`E(=}1@V(UKsER0`QsF|N^n_6BN34Kzf@Mx6eoV{y8^tf>$TQ%S5e$v)%dCFwTP zdycU-Dm*v9wu&!#+jyq$H||8iRK>JuI}t`258$3sFfm#1*n$zxhRxZ6Qjf87q2>fq5xHteMS(_Mzl7+(hfZVl%^7f2;C?FFmf{CKMZMyyfXkNS$ zZ+_EAH>JZxF0XEB5mJ7m!nL=UD^QQ>JjAs-=*|EFxZn z@(zI1y#6kFWwZY?$y@8N}{t(Vx188?t!Bve1xlI7d`M&7gfjUA=#m5|9#G~tf?rH$Vfk54{J{$>^>~Lah~)_ zr(kQ@4$K$bawG)I`6=!)@N)`)YEwnrxNPSpT zHun8q2wwNh(Azk1%crr)pZc5>4zGQ2mxW7h%B<$kdv{bd|P6+n6oF7#F_` z&fq;7y#Vj6!N6*Enbl>;_)xj-^}A*Jq!m@thVMU279Ce%Vq%{6K#^Gr5ED;EVsedl z<9=crE+4q`8iqxdjR7h9M54p&O#qOl8%&fk$=7DdV%@qI&kwpj5f9U{v(>jlcwPb>okuWQ!aV>ThV-Z@A?5_3Mbk1$ofDIW=$nx~jPb}E zs~+hLY$kTk_YLG$f@=3X9X?rN7c{J+Ar^T~r3j%{By}I?PTJREg_MF1_R){G=J{B( z3^0e1DJ-tTI8V(qta7%eb&rT-*TJPAeG1nybubl;a*5rou(AxV-dB*(LGG53 zyDZgksdh5#g-!E&v=X8dbM0O<*J$WE4wq-CirzTi%-%%aO16UAP1U*|J}GxIbv1^M zf98)@@)>=lOxy~ocZ_%b3|tm3m-=)IK|M2RFqzGlQ}?mrP9m&?-vD4)C1Oiw*b< zZD#EHD_|!vEgQFgE+@ggUD4xV2afIU2i)gIOb#pCY`h7tEd9S;V@ zhPE;MZk#yB?*A2VT>-!RDL2w2Nz_j-X@1`1nU?Dh(MXi5$WSDv41xV$IE4xbZw0Ij?w9BfL%7 zMzUo_cr*+oKO)jQo{ec{N5hno5)XeODkCM#(1_Fx(Y=u|R0F7kcL!nO>hL|DJOgC2 z%KB$V%eIG7uue=a^!%Z##D!mOt?H@&*8cdG>vbkFWYPD@?J?AoEBj)V;@S=JbH{Ua z6Z5w!Rt!2&z*dxywYyG-JVl9)lf=hTfUNVWkw4y19DLnB2!(FeUadYq9>C#Yvhwts zn`+uL1jRL*4+Px8<8xH)hhdv2EeaE*X?q68B;5Tx%o=2JCSG)eDBDAt>RlN!?}FMw zG#@>eF)`-)h}ou#S)O%@>_jnEZU^|KX1+X5dpc7{(fzg92k$XWqo0)s(!u8oXPo|? z(<>cJpB!N8kZUu)n`Z9v2-4r6SPgNtkMIz|hmXc)ZU=PcoXV_u()7q=v^wC+ZP_7?gw3Li9i1ky~FpEug<-gAtb4H8_X|w+z&If)pw|997{VpIDK2HqqV!1wk04- z+xLewBnK>THblb|2tA+~DgGnCQD>@Crd8ZG5mk9(rs&6@NZ*Ji5r^r9i~<*7F|?Mqssn=OjW(EYhgdW^*3WXY zW!-q8GEkr18PXAt*r>tW2D)_2#R=;}oa`HO*cN9SEx9Z>JaIsMZb{_+*a5Pf~Kp6eBfrnauT|NJH_o;#xzN+B@bYxwAfwQ`DEO@*?Z8qD!7~+G%M_=Qjf`g9n zr=}a_VX@b4G`}I%lUR@%d8w>vQ^zARdHhC#ZUAK^n_#Ez)+osxo)rrxw1}(O>k2Eb zl8IFQKC6jsmJ>+AKGHF}eQ`OcvsM%gb_%f}(RnT6Bowx7X>#hZFy4X znL$uerBFdQ0i6GLgO65+)<8L3$-&Huk}|SMXKzXim%daI+iIqFu~D=t7DkIOM_M;# z14A^1CK60Q5k`IyTL+^_UPh~mu=4t6h2iMy9h_E~u zfQlyndAC?hNKE7lG(zS*T-uMMkX0lTw7;e>2-h6$;vEXT$3vbH>nzj!@bifB$Z{}pKY=!- zWr@L>tI<vkPB$Y&Fk36U4R&ED)L5hlOWe$4jRz? zd6xkx1a0#tUH-oba8dA1G31jD@Vlm!b}BvK#o=l?zBy#0@Y-0Y>M*6o3J527YSAtj z#=xZyk7UUCdNi;M(?n4 zB`0#HDxXjr3S%G+Q!zvbw478jF+q2CmL-^@jb9T@dRL)X4cGl^OX!gUb1K7Jj9$o{ ztpb@4UL#Y}iJG~(@W1pXq5SM!;1faLbA~>RahDALNGI*x?Y9O2t}R8;T7N*R>m2(I zbmm>91KbqJy4{0kCqPJw9M@+U?K*Ue#%K8-1Os-|o zj&IE5a?e95aVN}(MaU^h^nGmi*t7X5d51rTu!HF~6U;)1$6EhMRSH=0fAQO=?rPmf z09grluU7AyV}^48>OPdCI;e$^C?o*L^7p~%YGaT*M;IE{6awF16MkO3=AV}!MI!pn z=E7MUm_|z(t{H#+b^|-=W26#q8nClb#x|@lbVM<-mvB_ghAn9MY9-lW2G?kOT_5b~K2tuTdG5XhBY%pPR zB_|Om11FAusW)~=dqr*8pypuenCNlxUS(q!^vM&< zSS!=vA_8d#5N>LlS*ozld8e$dy0NMgK->^_)tNJOF{*`yq(%t$Fs}V!=Q9pu;-KKs zDGUeVOZACoQQHduHovqjg81G!+j31OUxf>SoOc{2 z+kF3er_^$4t>~^zq-$D%V8XI-NHzux)xpPhr)>xBcPChJLUby|70k6}Aj~d>K!0=G zs_Kz^x_P(%QHS<33RA!_?bKcLfuVOglO-n7kSs|+;SD)t)P!^lDGwr(56~jS^~fEy z_Lf-z1b`s=c1aOXj(vJJ+J+amlHDGNTIAxy9Kt?>drW|Z>Bx@EDd{5l{gE4yEIps) z-KTaIV zC(aoP{8<=O5B~3{le~4Yvq0Pb8)_&QHmv6mGR^$}or#GTGO>)bEf#C+YlM zs9E}WDR+8+YL=Zc8Dpj2=}7X1!x4ZzlBpyUV>$MLrOHwNo^oWz34F*XyTK9fNzI4~ zI8P!?n_j_T2}WzcwaSrwr*klJ;o9M{h-v%w6_GcCIbCqZmFn0NFP}BeKh~!kW7zN! zH)zSQ;kJ@FUI3-$_I=fOU{yrvqXQ0<_J3ctI|M%7Qq04Ricwn$T7;;DlIDI45%(k$LQ~D7vTO4J>rE)!xD0heHJxcr< zEHM$cCs$kTcs?z%JqRJ7QbG_Dg0X*u$h30SLYbUyNSGcCYubV2TBuq3{>#U@XvcTO zA7JY)si+OW=DUK+YVX~WM0nNfI*)RsuY_o3a=8@j=7o|F1|4YhF?ufwWQt)2JbAZ0 zYBm0OeZH-QUPoBo`#IE~yq`&~?p+~Ge623shSSq;FT|zLPcB?_))+iQMK9fb^HV!> zN~A}Y_t(JBFmgtly?--a??~R+U^}AnAFIzoMkg;2t@;dRU!t_MNkY9GYW6O0vB4vo zr%`{%Og7sW9oh6xwlGx&UhA_2)T^j?myR(MCE5B5Cu-`n6bz4EAZ-0%rVFn^(HHwS zmvfYe)7d~@nl)WET`fyLQz03kV0&Rb=z6TJv4U$)+qeYfk#yk%7t++E2}5$sF)<+7 z8}ctYH9-ys$8T_)gMOcN0)zgsCtKmvnEf6Pm$+X}JlHv6_u;!ba4)=Afr zpAr>x`1tSM!Pr5QWrXtBu(}1(4nSy8;N0tnjoP{|&O1Y>JOw-Nbhm1N7d&rh zv|256Mb9p7LVpL3SP>9uCOPi_ff;_p@E=M8oV`6UYLiNrWuEJG^g@@om#C)Ejf67z z{S?Gi6=qG1yVQfk2;_!l$k6eT2mj9jsLuD6Og)j^Ex=?STzUw>9U9~jHrm9X_=|=;z$68 zA1pbG|J$`l*nf~OG-?vKugfaJ620Is$8P+PvzkG{!S1exC{}^dutiY1$E9NgJ;!$z&#Xw zL|9x5`;Pf{GDT#Tl0tAU^4uXSydoyl%|8*&ZLEg}aJF=B7~Pw2h0`=0XGFv%(D{KL zQzCmz-@VuxLV##3)KGR1#ePin!nx!;Polsnx&hgY{l2<4#Y4-L0vej$do}qP_<6&v zpo0zYYZ~*A`0ThD)B^V198|ylu!teUbQNZ_-odYyj9DmkC_$0Sihr%@_>#{O=-T{w zxlbs9gU|XsF8svumGB%LIKf~(_yyDg(sk-1AI4P0Lp}792A#plA2{uV7}BNDX>){3 z6WhBd?YZTCYamalB=OVxQ6PNZ9-P`dF|Yt>?dC-8<+w-*aBQ5Vqe7AhWejy#)i}g9KC1mwfe1G1bP0K395m7Vpx!q4eUrEEIQ676qW#c zU;L&c?~EV<{`jWv2weebF|?TdeQOzMDH92+AiB1>TFxRw?luuf7@nlmJk{+ujjZQh zjV4Et_7=h-(upq6w&^1(!b33kZuSzUe6k7=fZV6)jU=A+KD*7Low6w5QYlgwp8LKj|LKaTqf<`N%wae@3~4zyp^Ypz z7+aOgaBZ2`HeWJ!UfMTahT#m(8wIVa#^96H#Dg8Z(Ctr_uJJxgN$K!Nr>XCQ%k^h!Q zMA?u@Y_W-#AHYOyA^vp{)^>E%eDO|UXE(?uV180TI-n%wo{gT;4h<83m*I{jHt!F6 zS~-@eV(HoMts@)Zygy6HB-{8Y6(@y;TBg*EX0V}by>fb_mE^mTJki|WZwWa5N3B}t zn5byBV#V^9?2w+Koz1i;Z0kysD67>yqg3?-JK3!90tl+oR8~5@;a-ZGqMr95Pb=028Q^k-l|B0tO#j-08AVlla#dLJq^BW#XQQ&v== z&6Xfj+$@)ol0M&hQsK8LferVNk0|V-w3~>1C+`Hw1_mDQfo`&o^{gTUy3TFoi~l7wkpk-(K!K;e1?(B58pm<@9HVT)4Y_VD7*f4NO-UXa zDIS=4bv`6?*NVrae;~qMO|=q&&c>NlzG)XROfu+)n~O!-|Kh{Zgozd2sn@_SYhFUB zP3)m@vSOYRS{qVefwjwx1)9{wyR@bJl{|J@fPoZ!8Wgyh`&PcQ)+Sxsm&e_~g3Qqv z1{kMW(KLk(Pw4eiyMv|(KnS>J1N>^xz4NPcpJIB_mh0lXc4D?2NOvMQ0w81j!FIxN zOFwO@yyg70PEt4)7mLPE12O_F%@eCk??}E1!F*ME!_otUsk&gK^ALXtJ*0%I#o+e^ z7@*+UTni@j2JPr{RR7x1hd`9|Do{TL?IReM$v9YQ_)e&n+uiBsm|%= zhq3lRdPK~+BL~f_S7sh=`vT{Je7?&-MRyUkmR`23<6y`|>9tnyYsa+Z3*>001&B+# z)p8}Y7Dbf5vEGjRXQl=Bx|{iRl7{&wG8mFB4h_7(@X+3Z4W~XGBS{d(PwpXebS~Gc z-QzSh5|iD&&hHRp_jvyB8}it!J9NoKtm64NVZazQ^22x(nTzVFzUrC)c&L~CI6@;7 z{p;OtfkjNH3>Tkm2p-3vD^S>J0PEqcG!T3JK-+S1dqHTp-1U|1S8e(9D9MTG9@V4B zQ~K*h1oo$p^U*7_Gx+V7*#;5}a$;8>db?hpy*?*AJvi$VwYNW#lkh~_zs-vnA^nc( zq_p5Dp&K-}M?UeJiAzcTYiL3=_rzWLBN#>AkQX(*F3@0tJdvFSaE3VT3S zCB#8g^96GFY`^(CmNvAlcyGA%u_0N2!};ieScKJjHW|1MrNywHFw2UKn0m~8R=M6r zlLrU4!SzUvm*5&{s_jWY#9NVs2BQP5DI|<{`45xIy6L?>MHZFH7CDjL_tp2 z-Z|?@mNF6i3m@$uS=hYfIsiG2qP8&ntgDXU5)`*vHt2m9eRE42L;I0WrQp!EHBu)5 zqQ|-k-FmO6UdK)~avT9FFSHx_AA)Uuy_f&-In-1d8W8r>C|h87fS59zf{H3?Pi*Vw zOZX)AnDW4e4pd~Hem@b&dbq;AzB+QelFKXq{hEWgpbc8-EF-#0f zWvX(ZfniiXVyB`K$>bdkLmCd%lr@b; ziCjB+9rK3eGZN(q8+K_&>#GDZX+tS$jM21e*b-hIpnw+6CFZPR{1%wuoit%NX|{1(x-mKx;Ugys6ADc| z(*sGE05qXLX;>7wkpw4}d=3!=b3AEWlX#eRf;^059l?HB0AIJ5tD}%M`s&#CKE`qD zm|f?tk1vcKV3-H35G@jo4klKKrgn8K)*$<^Hb7@fj01tE+ln-5Kmi3^S*9q>7d29! zSE@ic4ZwM7$VExFs{Siur^IXJ7Z7Cc50BB?ENouH?9 zEyiK*^k@fyAl>Nv`Q-RG4KRGjS!d0hDWjAwm(a_UL7{Z~7nLi+m-cLPuIU-#O2EJ5 zRt8w~@Khf%3{KeO-Vouzk-xnbXnB>U7G@mI(!k4>YqX3?Ir~zzQy@13w@F=f z_8xu$&~}W8M81Msl-F6W)6^2L6V}viS~(Y2$a#8q8bxw8;jwwx=i{+a6I@k!H$?{K zOM6?jvWnolp|hyaoJ)O5QC|edzWjPumToUEZj0H4_sO@15^0e(5pE+tN>XjtnH=|o z<~DbfomouE%*}Hxd!%a~ki6TELnn5$`TM2;F87I~dWeL4Fm&;io}fPE2sWoxnzCs7 z<1v%eGD>OkG$HkFYbgJ4J#JmQy|DQIxcLVDNAh)jHq|7h&~f||i+00x5p>Pub--xV z>zSGC;`og(kBkK!nGkw_2wq0(s*fFd*uJD4fM^Od3NL*mqQZzSCZP}rlRa`dYu?0dkSPz_ z2I08S`Gr;ig>Q-w&7$cdHS;(?j z{LHqA&a=X{fJaNUsOHwcO<$94Gwx2fU}YjE{aF4coPRkJD{c#a;d$VOma02CH=abldGp{En!2@nd@p=yK-Z^+Wn~BWVQSXf-9-Odywyr`j+(LDy6@k1pVU;? zdTb17Q{Y468uYF--3HIy9%#!sc7`4(7T^&7s;Tl-IB@5H%Yz9GB7JlF-zBUbM7gL* zhT=`6FBoOp=k#O`3O89du6(gie(IAmH-1WtQToa4H65qfuy#T}mv56;4c`Fo${`)Ft!k|EN2hqsMwwdYNCb-7CnvRh@~ zpvY_zi5s_w*aAY>vDKyiAs#Cs3B$C;T2!KDcY5~zMOQZ?$(Q#=)f347d!mg2f@t&O zV~aj`2Mc!foIc8b}Pl9wNRc|4NuNBf@N)B0);eZ|*i z+RVx)$33&n0*VZ+XU41vy5j8zXw=r>{eQ$t19PO}v4BtlobAu1+c>spZd$aBrLiS% zx?v{4*VjhC>pwD^q!+!8-xqLB)uS_d^_~Y{`+?`XWnO`d(w=4x|hfzs?JnF`G z`sw)z4%rT-QGMs)3Vla(@q(tbr&L+Cyo7B@*BqlI zZoY_nE_PP2^!p^GE!1TxTI$=J6a2$ACbKJ<2R!2y{ zRC}jjx8d4oest}%x~Kh{{K@Istx8~9&*Ueied7yo4zvoq+l|K=ht+1P-#z>{QfGl{ zfh2GT3w3bDK(DLuc3bfleSFFUlCBW)72BH4eRXf~RiW5`8iHkL@RWLK#R%xqHbhgBvkJ`?vwFjQ135lj5gQ9OWAp$+8y;{Or(8#AT@fk zvo!|bk%mXD0h;R~$sP*Q#ZZ{F=l8Ugk7De1!7c`j*!CT{*$|DP0rbC)%ufNI+1mV(q7|e^;Bpr~wO|e$RE0 zebFuB7la^EY~A4!VbodrdTDJ-XzWc4LfAnd*Q%N~86d<&8( zp;NE<>hLKJ(gT`F(qJC359~NJN&N&Zb*1B0YtRSUl|EdO-^EJl%MU9w9WE`wXj}$R zYxM?WQ|ULHg`rc;SH^<vkC)IQj zM}lCX?1IM$cK}FQzDASjT5lj@^p*_m3!y1**Oqtuq@QD1Sfq4B7&rh*I+hloz${GK z3w9&q605tt)=d4j`y+dorJ9*|U?81P{KWoz8#pQ(vMgs1FT@5voay%t)hm|w)p{^; z{cH4`fM1yVr2xpH3C0$x6zeeWM9#|`>T^h=?p58K1wufNoPkFEmeW3Bd6k6bCB!Z8w zg&yWW*lCGy+;c1zlAdH3uqYTl;l(%(wV1Ra7K}8ouL4oia(lpTDW)Ka8CCL$y*oH! zanqS`Il+}MO8`3N#=oE?z9_I!%v6$8kZ5I*1HM=;sPYh3Ant$`8ePBL5%l@(3F^c| zrFNM%w-e5UmIB>%i9fB9mS}PeLZ8?QPW53NR)~)T`S$3ll8%viZJekDU;&jWN5YB{ zP(gnk+OX9Z74s31mB88^MSl`Rh0Gn8P>&tK6uN3)=a50p{^|H_SgbGlN6XdTO@&@9 zO*v=Fl`LBp9Mu7)+={cKl_a6)%3&w3tX2_a*&F!DCxn9yRl=**joR$dWM4u~3wUOS z&98-8nCq5CDH!KQOIhn08k(9C{Aw?N&!B#5()2bA21|~h-dHppuwdw65)4)A-v|KH ziDZ9a37I0I+Gy!95?G$og>%4hxQ!tczv+^ErKdIvVQB%{@?AH+4wthm4|sjpC+|El zui9yxu>65s<0v?0x9?BFW4@eVsnRb$DlY8D)Y?XMI6ZybgQ+8Rxo8x7z*Ih^`F#Hk zfeSCHL8#?9d^J{TC%CDQV@61HsuZ!9f7dp!0oKCSE+ySV&Au4JWyMB_|6n=@ZHF7i z_n@ONbYuW6mNZ7(kLDbzQ=&7A(n^KDz}VQne%Qj~IZvXhYT4RrComu1uX?iRkiO!s zub@$2p66&U?<}mq4ixbHDAJ_q?s%C-jqL>TT24Su;B4#BCI%)q+Fgj)8F;(66+94A z-+Z|<{!B_w&@a5-CFWorg}sIqS4QD#<1Dr1;J8zx#@{o9%s;v zzBV>K+FjMtKbe^4u=bFbf}w(D>c7>D2x1Zq~#*fjf8FfgU12cz*7Z=nB`=HLMW zJtvC+geT{-64bW~=>#2zE8h?YWnN?N{R>_Ta-&HEB{aeI|fUGeorFK!tP5U4R>Mz zGp0~e8UuTz(Cm;da!N?&;Cyu?=k(9-Sf!2)i%PY^@cs*u1z~C7V*U6i_g?rK@C3+b z)|r_GdgQB8g9hLGPa@+yj<;9e9Xx;MTg4TD>pukNbX8h7&itN`GDhr7T5kX{8{ptm z<8~P{dYs(`{E(H|ts0#yArdd09p5%Z#C&Pa&I4oer!l95GG?2`iD=3g`hU!dX4T$h zbU+K!h~zPTW2SsNo*^NdBYfy(^U09XC$ZDw;c2lMD~X$ian!VCvKtLXmfrPt5B4;c z&u{;AJeT{}dqE0l+Yc^4j=cl$p>dhGXFV4(f{O4QNQKpq1~x(>52 z2pqrg>&I}rV|l|d;(!;;$Q`T+rws1;2*e9_vYuiS=hm7IF#~shvZDQ} z_gtu};NkuH)al4vjv-x7mk>i$>}cwyUu1OQ|D~UAj>w#JyrI3nD9{4zerjgY{#d)pPw}ReQiyu2L!^&0kv|lUuix7XUnk_bH zbv!c^GUH4@v3Ci%7w+TRjQBfdPP%EOvjwC*ClqqBexYm4ykOLdx*iD<#!|s2x=3P< ze#udKi!@Z0nbfBct~CHNct;(5N+Z2yy_)H)GrsbIG+G5M~c%Fm#H>6A;S-! z4p)T*jivjy^qR zUyB9lKu^gznW22eGwCMm-ca&`bw}Pad773wJuvgoaCqs$P+Y5#SWS9?XFm6w0V`H9ctlgZ39EFb`onotIZQ3nmS_^;xhnzTGj zXf`)k9V>w7V3gsH)~HNN<9qUO6t2P5&(KstEA8k`<>lt zMsWb(C2054ZJ1I+K|I$bng%6k8Vut!U1wn8%<2Q*fO=SFMsMu``>LjQr8!xEPnpbm z*bD+ECV%J4HL(oo`ETKE*t`L2#JBrm#`Aytl>a7E37wajX0=_t-CYZ1XZvaO?L_WC zu#;wL(|OQ}E7Mo1vk`q3aZSB)r@1vQc_085Nmu$8Wd4RU1xC+m0^zi@-kd2TGsm~? zIb>x)^s|z;f7XW08s%>}gsdgvkdUagwKs_Es13984*>YUJEO_Idk$GU0Xr25jwxkl z22pse`mcU##{g{R|pzwo1N?t?;Ak)8Ya`yn9 zbDg+P6m^?~wsLa6!pAC(${`G?DZQu*rtOLVhHj$26EXAFSwi4Nl6{T3$MF#_pqcvt zh8y1<7Z=}_{ZO8qO-YmQT6ED#fETH7x$sG_N!qzm3Ns>EaX@;@W7kpfy~_uSg5EFP zQa5`JgAX)r4%t2A9BGij?hHypjXvP!Py24|%=AI<^g^;<;0;lq5c?)dMS! ziWXcDbG8_uPzyLap=_Cy=G`GX))6WT)a^PI0`P?lZSPCpF#kg}t-tCcHH^)}S>N>DahMFJWf zMG3cjG9X`fA0J)N`|@qIJbYoz%&3e*qmGUk&K!s84TYLEF6I5NxP^QjL$bc0f)`da zM5g*N7eSCo+8KOq_hi9be?VE;rgdsQX$uL2a@4V<4aWsVfOsbXYKBWOl)q+PJxjr0%do%_2!J;OEc;a9$k)()^5eS-zCzx{nl1Ce z)Z4g_h)6ch?%YvwoERlmJv|LfyQlXf-)hUMt*ba0aP`4Zp04W+ltXstBHWnMA56h$s@U1Fj^(MPXF# z1Av~Hnd=PWrtqdbzC~`#;iPI~vIpp84Q2IKYJF7$bmG~=jQ;2#{dJ)jej8@1!5O(Lc7OJk>hm`LcjAZGSe zOwX5Qmv0g1x&+Mh9~`X4teFIY0O4W;`88pcdTJh_*5}m?N)ViOKxMbqmXPF>Bb6&q z(6j?hrWs;a%OAt8lC7jv+Vv9sfE7J91l?|ROT7skv1cPnY05{jsRpUAvZLX0#Jd`j z{v_7tO>#ZAorBuq;x_A{DXA2*^W>$*dBtODkz~hida1vl)G`rJ@NF34Vc6eb>pRPQ zz#)q`hCY+-OExzPH$28a2tVvP9*>^RXwPqJb5&z~vF`;$&We;p$tj-T0Q$rOvh%7C z*~4AbDP)t!UV6y0z@{Pf8W1gg$-jZFV!Z;+BLWlmVI0g-h~FL5P5N=GP!#5xd-uk= z!I1x~5Q|)^EpSG=F<;Ap0QVZCbhz{`bK&`|3C1vkGXv#&Vh2RuFj((wwpyMYI2gc6 z4bmmzbh;dj*5h(%B5Io+fU@4%Tdp2iS$S32zp6^C|RJ05z^69@#7{5|0y`n1< zcuurG{TB-cN28nt2&98tH!^B{SIS8gBBy{#QYKv^NDd+ek&T{6ge*98IgM6c!KGP! zM(G}eLZ0*u(=z99bVF(R)7=CDC{2+%Xhmw?q?Z!M@i6jX-8=O&fNmcZ0OrC4eUtWq z9-g6!l9t@X*xmS_x}Dd|5AET}w?r<*gr3z!UNDZDL3x_b+y;6*&~=6a0a(sqM2fqm zJ*Bk~^1Q1%DWClh`_@bx8w4lkwkynxB-)#fkz&gI5bSu%#NoSE3P1)s^7Q^&%QbFv z2+dsox#Kxx=5aP0Ag)~{H%I4SRQ&lAl*O(`YPs$=QVcGO}6^|>=5bCFRWpJr{T5bRrw_n-%(y()Ta@YWGJ5a+~PhSc8tSHI)u52W_ zf^Zpw-eq3^hfo-zGSZfS5M8=s%RO$^PbC+dT_k-0w-5sW7)gq0IStIRG+hadfe4Vx z^>5`od+?q=P%i4g*9w0#vzQ2tj0AE^)jVVMv5uz7Mt*%v_{^(%rH>5Ab(^J+h^qc* zF|T&}W#|bPC2E-3J|Fi*G349j#TVBkrLS%9ZikPBH`eKBGR?3X_=uOaq zrM*ocum=SJHIT2n#yGYNm>THqTYXAysMrPa9)->Zkyal6h{^*?C6n#cIm?Nv$1LxV zS?3IuoM1*;JaS83#HnnlvHiB%VKOW--}o%J;r1Yd;W zPw(%v#^(fmAJ+dl^~_hgRcnBUi4P*&(%-*46Z;47zU}xYw}sqc;nQM)>=)l0206lTJ*bn&Cd1!6+=h589@2A7889 zsli$0tFdTTH0lG=kbit6=e@}tIDj5*9evXPcn$Uc@^P~~)^1i<#>hMr9WpxY2TB(n zZ)K)y9gz$4EfS}+m@eHiZ-6Srw<>8EY*g;N{jl0{er~=Jm&zJfYfc?ezf0Y4B0Oj0 z!D|W*;4`|di=cUWUvIms0?JZFM0QOE7?-)0W;pZ^^WYIMtXnUpr zN~v>f{mJr0{KeGOW!EXqq!eX_^q;KhJM$`FY2Tip@2_vzpHgTODYSxdll6gwUlM}# zmb#_j*1h!BWc_8eb+4TIr&QQL)N0GE_KK-?QDua0m&c@Nmx3HB7@C)Va4-*hj>E6# zC3OmW6ph}S?MmHTS_R#E_u48`y@2R&G zF1IA;>GQwYns5Jw(#i==%{K;l>lR46f*RUI7Jf*=XJs z!>Jn5*H=oyC5(?Ku*AZ_JP!Xw36BQ~g-HG${dn$U(h{eP{jjGk2mkc_1Qp}HjImeq zt*5@RL0pF>E5iJ9EO&MAa*>e&fLw?24Vb-{z0^bN_QS1$ZGmlVzS|<#{@J|uMzIp~ zoGSfeqR`?aTB#?{+Cu?7TSj$ryoi%~%OJN|Vz-o<+U6d=zEe6^%yOO*QRj4@s;(ADhfXHwmeJ|`z;#_^Y-bS9N2P^Q6vgvwJJKsW?puvs*N zNn*v`NwWa=bCXP~|12PL77xBek1|~xUr2+i;787QGSBpe$9um3IgB_mCv=1_LRKW9 zPm3=cY?0yMXy}?!_7{%vNqv_rweYS(2cwQdPD|kr;I3rtZ<|0LNly^J$X-)9M(jx) zv3}>B8*F#v!`M=M_N_iT;5JUMOvy^vxc~11T_h_ic2iYlH}wtIMXJ|+E9Yb$<`fm| z7lj!5%4k5HVg}PW&4u1^%xY6uaW)d;-;MKI*63_-dkK*~jT6fx6N6dj##=3Vu;$G| zVmu@j&E_?uzoj993LJpXTwHkXyO@cWa%XuDNeZDBavLXjToda_0QQ|@IYzPUvX|8n zbAXAWQ#LgYtKm&7C+ltnZfNg-G-$vF1L5+^(gCA60N{p6B#bg1tG1ZKLmCC#{4bs-aLv`BO4C{M7*BI=-jT?21GL2kN z!k;_`?6>s7qz5YYionQCT!4>TObR~*3kMbT*ky0SJC@}?SY9X<$bgXuj1yWj7uLlZ z`!oI$WhatxhEGI>Gr}7rP~NMu6p{Y3Qo@ts0hc0euWSP3I2Qc1#7Y%c6>1{|8{ecA zL=OM7Z5xW2mz0?{5G7uW8H|Q}h=xp=#r}z+hb)~5hWq*gK2A=xPB0v^-CRDiH4qW+ z^S6lp{CD>8oTt8hN9SrW4*)sieH{2-?&3lPSPWn#1X=}&?yhr5@9GmhVHuhgQV#L! zCr9jaPBg@l?7{CDTu5)jHI3+tIf9c@fK$xKSux@mg8nI##0boE?=`1;OtM5u87KR9 zJpwVO_p$Bn%FoHRmdLL?r-~6MFgHC%BNp+-OOO4E^+Xq=YBrodU^^xx%-wB;-9I9Y$HI+2)@e>#32x!IuDj9tynX7gn-@7lmR z->wfwKz6{lDX~lU0q}i#sr^63T>1txFl;)f8n7au9|{Z9IWE;|(=h~dWByMhjw~0l zOGb7OkP4Bhj%J#j6n_JqR+8IyQuXJ3pqXR9Iut4>7A8*8a)*^K%jGwzqt9T_)9`SoVh#-Y?bVPD%EJxj?pDatDM(V(}^^IG1OsbS~fQ=(&+7MZKspfZ62+c(dOv1 zleWs|)lY8|Y>qF%-xIgt*r@I7Bb&AJvMcrUFI!tnJ6rRH6S_)HBXnzs(X!;M#aN1| z5tLlc-;0^wpO=;=)8jONDUG!@6(G(D@d}4rLvBmq70s4~E-hRUM#yFItol&y^47|eeAKYTdXtR-fKL>L&rgjXWE`39vO{h0Lht)7dqFC4i?C(*c^m!~g^oip$!^c`N&td8EK(H%Hjb zExjArF2bPnL#{Sh`|Kr9F1s5$J7Z4tdeG@}iMeRT&q1c51>hR4nu8a}E3z<%_@ZY9 zv6^zdC&3!ha{UWIUOK^TXlEIGJengK;yY!yuU_kw3D-aQ1?6cLb<* z5PBiSg1Eb}y(T81`B@>Ba3JRYPEV58N7ARXjm-K{uuakzgcJj$>P? zV-Un!JETC+*#YpE%CIrfM5A=jx~On!a&j15tXx$7wD zyc@sE{4|^)BH0HMEB3Yc`SijkoY1P6q9ED}^R|}n{ci@2gB<(Tx+glr50zD`-s0xa z=u0Eq=!~I-E75&Jk6^-{$Kh7nZwPa3NT;s+eNfwynG5daNK^WbHZU^~WICb_urBB) z9fw1@qYf|{VAKkq(r^cC{&0+=PXw#~>nV2Z38UwJn)$(Q~;zz0AQui%nj?>Co5C z-tWy8j=_)E7rJhmI1adt0_7f^Y2%SsBc{{{>5|?tz$yJV`W*V5=$R3DTj(hgCdq1? zZa*2{2X$^_>cLs`*0Kc?P1c9u;OIR7%)|BEh#aS$nfvF@M0-Zl{h`)_ny^90{=kSQ z50u7v|E86-%ynJ{BGwjUT6N4q6-*P6qgOYQuwC7X1eX-7)rZx-{+ScW0|CsA5b>=! z@Mu6Bz%E=qSF8_tE$Tk|E46$Tm+5mWd3tL>NbwK50*+TiI}gZ9b76C3Nr-`vjBX zwDNoWK)HIgt}<#sxD(F>Vb##JN&FCx#aG!N#vlj*@>^b*$Fl|;M(i1(sK3x!9v#Fh zfS$n+{r(lRk`7$J=^3YY!gK!*m2>G#tNYR9znhOzbVejSbOxL-OTz0bm}g-G-LO5( zx(o?fj+ml*sBS-}x9Kj2XFpK++D20>8Y%e*AM#I99Es zKh^)e0$xzuPgN&UoE#L~NPB7eqaUIw0mQAa?4PgQkK2^G;VQ6Mh}(Nfk|_IR=M~1R z*|?}MfN=DBsaPd@TK19$AtLRdzaM|*$Qx*N<1y-?^7j3K=JkNIW7J^*lloz=aCJ2N z3}h8mX7?e6+ObL40wny-Yo6O4+jXIN^(2w~`2%$pJo!te)+3$6(Ztn9@>uaWfaJ33 z-2~HN(m!tFnVu5IHV>L#h~VjK$)f+*ucKly67$};9vtc2p}LA*HIXo4W!@_8v9&k4 zrohzn(u~}*L|G1M0zESwt>Zy4pvW^>p?8d%fAEo$kry6T8hqFfOO|Y_k2JJs)r<>! z(6E(-;$%RVMEx0=BlWxU1WJ0(0kt6j14^l~T1pN7Bo)ND6b{dGTn?g;_2@OE8#kWu z^r-M0xqJ(Z0Mj}@xZrG1N6<=B2^uwLot_=rHcd!GZeGNCfFV`|WLoDlsRbG=Jz4;2 zrT8&MrNF!a;TgJ-Iuq!)`q*jh;=zlJxhGo^9jJb2&Y7pP4f?=Mq?ryEe13BzALmtC%X$@knw_3f75 z9RFo(SuGNMy`Y2dGcyq!U}!^FZ$h@b=O4c*OEu5Bsf5QoPq+CsW?eKp&LyYKc4-|a z#8#G#^Ab~ck0j9A_JAon9ll8;8^zIo$jBKI zA)xHk-a>$RsfT%*$!UzHx~+J%#i{J$-_YK?Cjvdf3eNwXo85-M;(-1v+60l#1y)9P z7h5tm+E%3;kstpC9Pf1@V7?xT3o5G1M)pmSM=|x*bEA22q*-^O$oZpkIGOnT=4T(Y zrkoHHsRc+6bQIym@0{$%M_tykyOciHHEKVQ(4kysJ-k7ux~oP#i+B|~a2T!8KS@*U zPA|=a2YMU$e}P}5pw*?ak>K?f#EbQEK1ZNpA!Z+W<7DnQq^cap7fAg56PvDQxY9t0kRT-GWN-9( zqx-Ir>T*FRj!m7sdrL-j zvS`@Uh9!Q=7one73sia)99VjV>D|z2F_AH0>Z{7j$t{n6cg|_$? zV@E!l!Q_`SLn<+b#s1X#5o))2j%V7m%tPGoP~`#oZ4o^)xgQJ2{vtNE6Q6^Ph=BC+ z7z{Z-KY!TO85)BKf1hh5ut4ddBJLkuVc2G%ot#@UH*!=AnPI-G@n`2#kH34*BAmA^5}SsIiS{*P@EFZTU_~&w05Si=l7Ka=$qa4INW$pA zD1u2dn&p*@H5&skw9QPMrZi_|33D;$(Wt1dCy5O3)haR`Af9 zZfBIqG@A~eb~XoVO41ssHs8kdFo$bO%iNAmWHO(&D^+2aYt?bDTg%e_O#n~=>`U1` zH+*@vvSUpQ9GSK)zBGU8dLW+lS3j@#5Bz#>b=F^v1nvO-3?F6xe#1lKM|ObdLEzzK z@!u@xd4lB;yv?neuT`s+zufMd2lk*$z=H4JVvmVLNNYx9G!P#$%lUn=5aEPfA>27-7RTE?> zA}a4BOMy+nRwHO~9Hv_eGAXjceFU0UvTaFTs6Igm-EakGd34_PEDiYZ0xt8ru)}ym z%xOSC>VC#`uV44nON}8ns3?^fuQu@z-nvE{1NX@w|2T}AwID>~M3bJK+?!aH%=*r} z5ocTa9W^mEn+NMRS96;{co8a<@la;#fRHD8I9o(xlVvnaBDpD27?ia-PHwxYPb0Y* zy=_roy~)UEGF?r0!uMq(>CZ1_y>T8Hn;st)7MLGsrN{l^P-1`zo@dCs1N_G z%P#t~(y(BU_zY|~*i(n>IzLS8sbP_KsUj;4+g0#s^ye0o_|#$*@nuH0b=hX z;)1gD51j6POQ=asOuIu78_@VNj0^DuMXqC9; zaH~S#e01#{_R$bZ0nGzwrw=I$)7a8=R35h`3}l2Xdb%C~6fWpcZVkqgV`)W3;YEgg z0y{?8RXtacThi@*m4K4k;;}Sk+-3dvIXNdxYY~)xBEH#;CvvC#U ztPf%AKBSg6?ib?Z_*6!5KLWGDMd>oNu2qkv-cP}; z2Xm80Vol{CgbyO3qvA@#?DTJzj$9+30pgdQVOQjYf+`$24i@AJ4_a5$ z1&p+3_;gy7jsdR!$&8gJ#G)i@d`@_^j{rDMV3^f5S`=et*Fe-CXpEMV7^3g|-F_pX z{WH8npJz_WlBR&22Gm_mWCTOB>qK@_!m#}z5(b9TxP9bEq#49E%v=+iZysl_XCnvo z$79vVgXGgwz6PADO2+o~nj)eK6FCum4&}Nl{5Ogc!vJHr5QG{@wh=01g2d-XNmQ%f z>9Ijtj6K`mK_Ay~+4pccQWB?&Wq*CW8GcDiKzs!(2$YJ)FkQ|1HLzn+siV_RRksNu zm@hvRtspli7HU<9T=^KiSpE*RaE9SGVTp`mqKrn zCwS~Wtq`qNYkETN8Ku-P!jCg?qE_X;A^-MD+zFyO?VFG#1W4IkHk;Dv!>>gAl$_H@ z`-#e+IGZ@Wb-IiBp4F=eyN$ok+wMo_JElYP^#Tw({@kG6>oMW0zc#5A-B8LCEiU37 z;~-%ZWFSMT7+J4$M(g82t?lawHYLR)v~l3|xxGPnKHMo95x#m`=J4nJJ(J&=Plg(f zvn9Q9BFzkVrxyDn@-*l5Pdr`u1O)Kt#z|1tk4IIK%&r7et7QTqr>7E%4$grEFHFQx zC&WS^S&X}fB`Y-H@={i1$DW-omHAZjII_7K*8m4uD2ftyzs$Cw{5`nUPog$ivYlhY zzXOhhJ-j=R5CL_FS^_mRZ{A%VAbJBgfyUqXda0}V;gY>mdB$JSr5(w3xAMJS=K#Vx z+rc}~ZDDa`AV`u1Q8Dr4_;K-OA`(XIBTFyr$lXbL7H1(%czFn4{ykr&3+(OCsS5*w zZ<(i18nm;0W?%H}XQ82_n2mbKoF#HEhG$pjI9!Au8DFpHwKoIB?(|3NM(_)s zU9_QoUEu42;RaK~Wp1@BMsdpIoeE@BJO5$W%S06XyLXZ$=QmdO`;JBaOFp%k*3bl8 zO+!e+V8g*JWv_m|eDboXM~!HqeAyQDb|BLsW6Wd(uK<@&Fm$domt z*x+|V?r@fBbB(>z!mhL{4x2wy9zuODc4%RF1jeztyEAA^#+)=)CgPu#7!I;A(E4v> zl=GRZnaK(g6QB-zR#;`fm+;caOB$sUchKX?jP3cp`0gYL0UYY{(XbD?QsuvWgCC`y zt-Mgzcq$d!3Bt!y1rtYVd228IZVGT^HK%+TxefG|T{cH1J!aYXRSMPc>6qC67;oX! z*;&w)e|&-yVVOYZ6Q9y=xv)hp%~C$6L2wDjb{CxwUI7znH7w28TiEm-H2+Y!H=Kzt zep80@|DLH+vJjy(x;gjGT1{amcyP!yQ^0gE-sP+FUOs9ks9iA;Z8Do7 zvDkd0%fIm7d#^nV1$UWO%YfC;);XB`{=Dxkqv#gU5~Fp8wmYD3MN0u`#cQJyG+r-w z+kx;%#|AvXb*kzS=jIPanb6Qgzow;+tawo#3DxW%BI@kxamRbxbXlXD#VSN9$br_K zn+Aa>voA%m@SEtV7zV9ULF>M;;khWq&bH0zl|&}EUVLw+Lhy$)2(lq6!{Ict!MS>m zPpzk>4jGVEfnCq27je=4d)1TMCH!7(Y02#a6$4ODBEIDkFi-lT_avk)1<@&v!(-0k z;9$>Pz`MqO`{PdDwi;B@#byz;B_=MZ+m#V|b*EK~U6_Z%6*m0bH{8yk7Y0>PPfbu$c}vsQID1^j zfz$n!JmV_K;<4w($cGAzEkzAKEFX%(-eQ2f>;P`~rR4G^v6S5pPHVKiU zoFdfAPG0`b4Mz8j!gXLKDRgPLuVe3ixd4P*y>C7>5B2Rf;@IBh35fB0r-s;r{@^|P z++f(eip~8f;@PU<#uT8nO#zESu}hS84)UJTrO6(+5&&cy z=KEf}-f)&Xz7n&TV?>NV%5uX!6(O1&%Gw>DH%TiV+(4487qArjAT`(CY~TW52$C znwCueLT+iV;q=_jy2W}s z`(S9)OR)8J!nK z4d=R#gQAU@(1P?<6C%$jqFUcTT1;9?l}~iC>dvjPR<uRF2FGUH|i#-Msrz|Ans@D&M?Y>vpU#%6oyr0?({UtKY zMb>D+iti`-&SI4z_~OF;3LviY+x314dra|$Yolc3^#s$US20Gz3!R|UtvG#lzY>pM zef-h&AbJuIdw-|kF)1Ed3)RBq{#6=9twA>1OcD_KuOOy*bjqru**A zS}7r049c+=L)EnM*EZ$2B3~5WU9!B~rFY@%t1=MMB(l@1jwWK@t4mQowBh^Ia81kl z=<^pgHxi%aTKYlitogV{Y++h#2H1D$7XjC>i`C)DJJ&!)hfmK%*yiu*wXJMzwa3C@qU*S*^%60w%3FPqWeA&wZcyb=WaE+!%zzYxy^v0IvEQBXbS?mt0hyH~7EO zGG?E}PtIRR|C$x|aYDtkHVm><83fO272tGiVA(g+LBTqMj+;^EOG@NC>Ki3yyQNG; z{?T{#3o0C$cOGL)tn7rs61h7u{nX=EQ;o$^z-6KlTuICBDN!4nFgK~PPQh+)#VeVI z_Kf44_FA_tIu3Z2m#TS0)N1u>Sw5DWbewBtrOzS9+sa=D+wPTK`+q0!&DZrc#&0|) z`S-wm(~^$t{{qcDN-+LUp`|7iI_qqFP!8{sg#+W(XKW|p0QLFuP z9W`HLgF$}}c+w`e>pa3y=0DCJz5kB8@G*{wH+{#)kpcKO+FuI*kMa%}GOo!FYK;E! z9rpP@mH%?%8Q{m~PGe4)B5Qfo8xFucVbFT|i)9f?jLS$)!)D^~P?#PZjxfx@dHD|n zjSx*KABJ|XpD!oOpHC0JrJT!t5pkKyXwx$Avrw46*hFS#25J2Dq37Z8@pqLT{bDs5 zymC1WGX*>`qlmDNSq#H89Ucj*mz9`@*+$4mB4EY({hV(_HKPVnvgl(XXQ5*-$c`+; zAz-q^HzYM=VNGt2uMe(|Mw~KZQpKpAii#5+S&h<;+K&2;y2OOWU|>aKPGQm9J7_Se zv#c`inpT@tn^aqLk3gE)8ip{jGqW?XAEC7#vH@CI+!@`O2eFW1GEFdLM>R(+riE6O z(-Pc#Z0AInUq+o`oXm->zJ`vvC_>~pS(!`@X9BLn|9ZY1^;b)1#``{4E*ED^D9ECN z%^-9#n@yz%II}DGSynzaz->!yKk?h;-@)SDRJ8x}j$vGjDd;=gGlmAAUp4s!(=PA( zL;-@`n>6Ncyko_I7x!-CJ1Fag zD_VZ2y|ZoVF=yU9;MtConxpi7+)n=HoGB54t_>O4#X8m@9||grUmt2K_<3!GKZ7DB zu>wsUf<8azcx}5~>w-m`xKozQHfSt~yaSM;AiYHEx%FE4fLs%R8Xv`*s<5e{6yzI3 zDW~PPcj)Yi`U31(oACMMKtI6mf;sNAO9=8DrnOcT_vc}7i$)Yd$ps*xGRI~ghY)E{ zI=tCYuWSw{L*RR*{yZZi&K)jIMG}lOM*W04#~a5JGi#>OZYBN+C1f6-!jCDD@C5{X z;d;*}yIGEMJ@aEk{`_u`o_o3mt2poaE$t}ze}z<`*v^Bn9lEy2f*K2}<{3z<3ui9r z%3`i7Jx_)M-|>btr0=!M+*qiQEc5e3{1H~;gnTH()G&tx+7ZVg2no#4lTB;A9rY^_?ct+*IlGA{p zt279#79idi4(TuZ1aLij)4=G71CF;%4VurOD92YMS&?(K>wxHpJOq(0{v;3RIzdCV zhY<&3O^1lUYb%3$+ZoBvN=M$K5vDaVlj8!#rY>%tI&r6{)D^gSC?-1o*e7djz1~4pe>0DtcZW75ZU)pj6+I zrB0gCgJ-0KkT9dSG2>*8#gyyrtQb)Eo~UfjKn`35JLF8%l_z-V1gM#* z4a20tH=rTfsc^QS%mChHz0x*I!KkeHDkYJ5YgEdMg@>(^M}Zk#ZwQnbK|j{dgK)#0 z&np@|1V9hp0~Q9wggpuIOUVYXr-{#~sc?j`0(|JQZAuPP6mIPxlxPlgN8)vAxHji~YaJpnPWSAv8P44DriI)S>(mRtwq{ zqafrCD$yKq6!%BoR8e*bhqd<@@oOz6vZ5U)X-Ru1oD35*Zx zE-r@7Br2eO0s&d8BBiaZajOAX>fL!Na2whE=4JhVR+02ciy~&>ytG6zdvS6WVanv- zzz0>0DRIciq^8cEl0eK+Ck3nPuWpv1a_MlUL@HFSRG%{r{^@d0Yp5$$a+n(BB>VSU z@j+4dnYwQJX7T8brP}XMY&}gmIs2074iog+&9a>9A_8K-qR`@w{Ls?Hbm+L_VVo~5 zXrJLbr-kMk7ED=h>MXzZvtU@03qSqYHXW?jCaWoDT;*^` zL4TLr2_W&{g}u5|#emOF`Lc;Ep)nVyZ<~gGm}zVnE3n`N^=rxsJ8Jh<`>q5JV8|RK zbZ=a_(tM$v#9h+oNjaCRkyBHjg2b~~yCC?(BS1WVpIevz3^VfLKkHaYhLc?lT7NS` z)A$4D*suGu)WoD>xl@X79y4Br&vxG|7QX>rLU&ufdonP5m*kBnj6K;~Kd~c4oE25y z77rA1ciB^U>o~nN=U}~3O7qwcWCy|F^(GLv&q3s&|GY|v$g}NImIQ39+tSy|Vn*<;0iLka#$8k;e+lCf z+Ob%PbI}XGxh^?!v?mtyu73WaAQU%v0$@3GumK}Wtqk+-UE|*xMYBfp?3q9vHQ+W} zK1(4~HInQ5!Z@;G^JGGp=h@*h^Jz(o9iJ!E^n>rt8WRJdj~=gJ84kiVSX_xfb>7;> zO4!V)wNAxpbEt_$vsOmlkb4(dFIXvZ`=)L6J_RYk$6 z;;KA`lW7HhP+7IDH!#Rkr=^k~0n`dtt!*E{L-ATd$)kKSQ`?#lp(QzDAK)z|M%l=% zvuQ={`h~B~<^Ro*s?+u~UEug77rR2e!!OLQX&=*;(B#dbf1YeBH74AAh4Eav7)cNX zD^#+$Loqq}98-GofbaScxBcKZPeS@&+@8yHsG~qv={ee(_T(FC0m=B(+aZq%mI_G&dBcQl4^YRo@$7bMk_n!%s0uugBPVEjv7;Hv zHqz31IoS)(ivAH9-{ws`&OyY)#0B=b#8UJCv6m53n#1o){c%J{fGw)vd}~0hc2BD> zO~$sYq)5KYyP?+@)OU!3dd1=q=uVfTX`PM4#lxyO zyE;2ZRYc-eO{{lPab}fD5ezt8t^_PPk*fcRe>yd%Z)tlH!LSEnvuab(>#*VT(ZIv# zOxWME@=){I0crym;Ldx{Nw%o;n=l{)?Ez$9pEdu$n>wJkXee~G)n3#5`l>1`XMGN* z3wBKufz(5V2x{nML01rP&Np*F5|7;@qE1Kb^=T4GPmS>m@erK2Gu!5VymgbqT6B9# z8F3yX5^IcbR9CrdCbe}jZpHKJA6HfRvm`-k+B z^-z|4%zb~mMMc2In*C(2QE7efFbNAwM*uW#24br0x#wAgts+KS83-yeiPcNQd#V;< z8XyMIyt=wJvH;T&McHHClb3M7H#9z4QZcf;?OT5#RIFZvb+_eKey-6OJrYIj`ksYj z;SP`g4}Liio?LWzJIWUNXWKWUt|bN--pRCfQhgb^(e- zo$%@Or0i7e_Wa*_dhb#=u$QF!i^WGw9;9c#EV2P`JyExnk}FfZ=2M=-H|*3uZAzhJ zZJpJv#Z?@q^V;6N(@i|%`8@X@Vpe>!Ae|+cT+iA{k!V4mc_==4I@io&J4Yd8*8p`^ zpXCyWcuWYQV+*Ut!*h)G=pVOnkMG{#hWpcXlwX%GeYQ!U=gOQMy#@!{(Hd-P={vjy zu#c=e^cfcrOCt8NkzT7G6>%2(bof-BY+0b~L)EDZe0wAK^Au($ZEI-z*Tl(Nb7=6a zzVZ&!D(0^Hd%m>e*sQ;jbM);FZ-C8ix4jrx13PZ~-gjUt-H*y=v-)7q27!O18xRoK zRX9^^ZfL4sQQwmYT~OrOjQiZN==f&ukA6To=p7tvDjAtlLDQA3+wh z1shzqEPj~c5aRdLo2q>f3MdL2fqQ@38phwp@X)2cU{}OHbE8!=meN-XX+kK?oH+4a zuPrdM{aWYOmcDHdi$tsh9}$1WU>d%#I+zOazB2d(Lu9zQsp@em@pf|0*=k2rw&VT} z0Ea+$zg_1Dr>US8=u|k7u?mmtI!eFpfATQ<2GOxWmM_)!3@0`p_T4=L_1E0-O(m)1 zR!EA-7mLnD*n~jL+D1Q?>BmC(jgGmr?voRT+JR`O$c)8UbWswPmSxIr7nZ4u@Xl^TOtlWH5Q47Sk$I;`JeZ^Mw+@e@o$U zc*~P5C^Y$XUk~nhYaRpm;bns4LlmF$nHGlqZA31t3 z{DABabA$e*PK^!Q_}fT6==)yqDpot4M4-syTj4+%#!?TPj&_XmPPjDDV-E-*Cyaf$ zGGII!n(|Mxco3GC@pl3gm;Z_aCx0?NJ_>Vma%Ev{3V7OGP_c@`Fbv)O6&iaS#Yu+J zAp}ZFxD4%;rlqrED>=i(Hi|Rk?;E?JLk9`;^q!jfMps;%pZnHzk)_=M_HuLCl zs7+@f&lv!}F7rlDGi(mZw)hpWUs6cg^su>?O+=c>xqlqcct}`L#Bu5CB54(lPDmtS zdSrQ$6p&X{!O*CW-l}Lj`6p;$rVBI6l3nDkXix=rZ*y`YTK2{lL`Pw{Hu(OMvo5G& zJOKylY|sj2Ze(+Ga%Ev{3YYwM0tuHai~>%7v^_v!EAvcLI6V{HFm_N_2*L=6IK&x< ziV-n!Tg5^_prjnjS4u$`w0%ltARyGGK=_(e2ODM@1|mTdGs0ZZ;czn|WPU80!7<)b z-fmgDKg*L`$@AxapZj`A!rPl5Nm7!To|$?uX=ifU;a#3RIu~2lr<`Ynd@#X>kUZmm z#mfZzM(+@UAY4)pe|yctrPn>&?uK`0AR#14k$<_~vR75WDHV$M!WD|BWKD6oHZNDr zv0>Re*vQz}7&#lIP{guHg(_`cwz7y#Q*vrmp^|ei1#E^UJ5R-xvtjXSjw_Cfh$t;B z4ObSHgln|92|MI$X&$F$535R4TAk{D6q}+c;@EU$p^Eh!9_~T1rm*-7r_!=%no}xm z5kZgwk_aOe?wSpR58+Eli9q5FVgo@FK3)V#coPSRZsH%Zg1qS!?KL5g^2UI5A6VeA zo#YFgAJWx!1Jt?40M(^u-au8nd<^Gh^;8gX3~ zx@JWId?dDZt!LQDS2F^%h^=%>JG9H-oY_)!0f!(u52XW&05ppH(3Xko9TzMXXrh`L znroO!$U0Vg7H`I^2B!j+0Op?KR200E`acyJ-LZF&m4+9UNR)L!Uq6{1O6KO;oxI`C#tH)T`RUr)MUHVI>}*g5{k z@SJrSW+=?z89EPAY`WFzX?PAd;4b{oHr2KAQ)@3=hPxGZMf(xh4g27KAVeB6bX!yO z`QUjQ9Q=^u8+S9qf&k4rrF6f^Qp}vpK3XCNDqq|WH{n)4Q1UUk?y?o8jFf?p}*_s#<>#gceM z)bX$CI=U`(j@-xs12cGkZ?^Yapq`Dz$H*XbPa^ik{x}f78D#MMxR&B&qCvDzSRgW% z)@B*XKCMlJN}zCx$fNCxdq{vrUft>=@2{Yfe+tlN=n1_rerPL}?#($WbN98YC#f%c zdmKYt&*@@KMYen;4T;dEXHQ?s;L-m1?cEClx4(yn)WgW>P&V#=P-0GRW#1)x_aFnq zr#sGAu1-C$ehyUMeC;+Fd{Cs+R~8m9L19V+{awpOvw6=7Ku(D0;@SXP?Xp%_gZ4!UR*E_~8@j+`F{sp(%^8%OgcLEfb zsE`6xe?n~7u|zbH7)6N1BlPAjV84 z<050h-hTRId;4il!6DIMem=etHg;Rb*-V{1+hL;3G<*BmHuD0#!~C{-2HCiHM)-OM zdPdL>0XA;ITm8HvqHXNv_(nv8yf$S@R8-Vt&%p4>!C^jcjGJf^=v&uW%J1o+B zf18bSa8QKJa?e0-n;xqt_xy7T4h-2D;T>k<61>ejEQngmy~0dp?0e7SmiFDqc=iwD z7$%D8&kSS+F@u>Q49^T@hA~!*H8Y%fg&E0=Vn#D#n6ZoQ_4 z;7;^j);rx|h(&#$!F_!DPU?HUUv$5dmJXIV{cZd288Bc#?0~xi*9|-|XvClge}h*H zE*RWBBzwql-i<#pbnwvhpi7vj5-<@HwHW(Ypf`{4{t#XiRTWkjQwo>>m*9Nf@#4oU&c+ry=-uHp zSPmpHHZCwQDk>x?95|{5jAE9ty;4TCn9K2T7t1%O!C#oSl*nNxaJy6$e~P!EGv{y- z*IiANDz;7cBXo2;hqk_>jO1ljl7JR?9<7fVWv9>@U2%w9)S*A`smP2>b&X9*Np*x+ z;K&q3OVd}MmlUA<%Ztb0A%_+=mx&cIAHQ_sT4QWYV{_Fz0<;BG1!Nz7r!%_>xCiZT zIw`?%t&^9E1d=GLq-0P-e>AsSoF!>ZID7~N9Q5`r9MaY-yN12c1#RV6jJJ3+gOMJa z!Im(}NLZZZaloiAX@vb;YfyuiXHbymlqYMjKhFN*t0w}y8}==kQh&Gp!?W-O_nFf< zq9kUsU0+*&C}wZN+ZEKJnxq38bK6=kLJn~Ez&TI}ff<|py+Zv$f7RaV1WlACL!Fih zsWjocbD&Z%MHCfAaS09SKTswY7vfa@k#W2@Pf@4I4iloO6A7{8QTGZf6&@rCB2%#q zy2sFb;4#$Gn2u+OObq79Wdc2JUdDkq$?!dz7gCALI~a^sa-1xd@&{7tp#*B-eYnut zSaJLa)Np&CFhS5ze+^0Ln_@O3y1^>&DA-t*s>{@60+#?uyOpG!-35u2LO$rUdHIFK z&F!~osA19^Cm2ckE4Rb4V!!vf&Z5KB&7t+%19wDkobiPN_QA=I?%@EmoOOr1tlSD7 zDJp-?WF8X33AEVPEbBlXeQ>ZG=i|S4_%Q42z7y4L#}0i2e-+T2SsUh^5fcm{oKJm3 z(_TYa`tpTU^^vA7siK`>A%(^bE##s>e8}smYhd7rk0KSwxIGEFuxxdKI-m1Y z>>yy?rqJf+e_bjo(C2&!rNH501>uNod`y6=E8&u-!Uk^9F~}3@ptvYEx2O~fp&f8i zF`AwGtjA&T9`*G)p1Cd;`-x`!dwWkEglpW>DeXi?tQX83FTk4m6<4X1{z$;p{Y6nMpzsjR9$FR#7 z4(`^kzaHjf=hpd!0G}Rt=V*P81+{2#(t!VxLOvLMrG6WRZ}SU*EF<f2KSSHLJ1{^8`w58;DRhY=ychgIMfQO6z7P&`6QL1N%sg^ zntp&fdTb&~?uaowa-`Lq#3?Mh4pW`)8L-AEf5XwVYyS&J$PabR=T*-|FL`_qJy`5r zMwrdZ{9Yrh(z2^F!HDZBaY+?=8D(eDR@Ao1yOO$Q@HLRNQ+U(K?dYP~d0V0yXRIo}rllYjzzSMq7csq>#b z$v+C80rvCUPZsEs^|ZRU8qn2J1D;YKeng!dg@eTr)XA3LoSe<#YP6%y@4!eh5&IKY zC2{@dFkXCwXvb8F?p={Icx^^3Ju1ny!r9cP zwOB);Ig*Uq?nvfSShmNu(~5`rUUQXgxZhLpW|HRw!4*r^Ylgzt+ zq~<)ZRdt!utgNGg8|d%Pf~Ql#7F~{f_r0DoiUu7j;9%!Hcvl(|*4S{8eVDgpe}0dS z`6*i_2&=IHM=EeS)Xgs@{iqJhpE#NW52HA!Cjrwa&UGc>ZvL845w5lY|K*EedEZeg zv>nYtBm{2_i;53O@}v-FSM2iXwj<#m0``TcWtWb0{^vMj5c|I;RCxiuC~56H;QxMj z7I1}-U#hhHNlv{zV#IP|kGIz)f6KzVhVjphiXdv4kBSIqI&->`QF`}8h)lO|neb~p`~j;v#C3lP_oligJ1LLO9UK4!bmv9 z^RdK-_@E83#Sr>qgSO}+kZy8;UjoY-z2EovH2oX+l+NZ`try!bU8y?_H{gt_Ve`S2 zg)T4_>=I|KcMkJgf30$qutQIazN7^^doT$*BzDz+AMp5w0$>07_ETgg-X^n^-4lBf zsQ6agc2eB9P1d4qYx5(6xJUA11o8$vMA1&XT*Bk4XFG5- zWs}^0@=4G`D|F=VCFT`#z5?#)e(Zl%4<)h6c#6B4lr*o^e<{Iq^!S6K#lu9P5*arV0CU9$x^_bt8~m9RT2O_$E$ zf=pfm+jeiFw-XH|4GonClt-azN9jfynd=FLNFyFJV6$~G$mAr?)Re>FQPwQ$NY}_-qchB_e0_R z;{!#I5w>_^(tW~zp<_4NpEbXlF%V*w(Dxm4Dvc1 zB<2amF7~kO?0x+7z8rJKWxQQ=<`pRBju}or5+1>we~ndSSXLxxDuAnktQsY{vK5dU zE2KiECOJv9!78k3{h{%+%16$fN@Pk{)V#4c?)bWWY0n~_>?~AQM;6651cN)Likw5t zgy}$(`%`d?rW~?pYeYh31f5QlW2Tk}xuDhN>kA6>MRj!_Y`PhLhVm`@kDotR!Z$AW ziL8#sf3k))+1=wZye5IgHcBe~IaU!xk|<5nqb%<>jsosR_gykUrMRwp3I{&?9Ii`{ zH$l96ouv=+9Q34@G(5U~OfZUK59)}oyhCM)UHo77m*Zdd*Fctx9J7*G5T^_r{(&IQ z`Zrjd$`Y&Rq!(^Nms@n|50VH`a#dF!qpZufe~aOBin8;s0#{~K1gM=LC3t~J4Mp37 zurDz^&Wd<;`;q`L$^2`h!e2cBy#4J=czmD5hJW_aN9i@CU|kCNps(UAN0@1PME}$% z{x_dnuFJUvoRM8maeP(Kd%{O2Q|Dcffelp<8S# ze__bW-3)Q255JM-)j06+pJ>v2i^b%Bayh%RQmetb8nSY8N^!pEX@ySRo;fk5yA`k} zJGX)}Eypyp^DCtQ_iV=t#ZX>%&2aYA5q+Lk3)!4LAwMl{v;(nTY*>A&z20!BIjni3 z5CqY&DJjx+{Pz!AipDepde!3$gX{pxf6+_Yqf~gDe=z?nv2`OB=?OEVzm8G+0`W7O$M=t6UF0xUFjmPv)hVf2-KD zxv)*y{e2r-R#8?_T6t{k$;897u!ZNhC_{aD(tWxhxx&U>UjE!35B}|=$IIL3(*ZyR zFIK{4SQWlKz++>QKfDFokH%F~Uo+F1#bM2|7P{%bB~3kF?9CS@LXr>z8clja>aLJQ zQ)oBZ0!}<~T8qPQSng?cI?cRBf1}o9X2!=t80UFlcU@IWQO8Zf=By#k3+Yb7k`dod z!Lc~C5xHF9_by4Aa%f2LiNrB`{2`m!ofTUeoT;K$#!M$RWaQ(SXstX69TkTR+&UJW zbIgsbODY^viXvT6yYKU!%iZIB==lMFgFjY62fSC^(s=50P7MX=_GrTvf9hI(S~I#e z;2Q>6Bh{JwKrXstC|{EUbxPQu`q`!q&o;NBl@be`IhqV2Hc#zw0!}#cysRV^(v;Ny z%(VE>C5t0H=#kMHeCd?3!A#exJyg|P(e!q;5nh0v^wqBCEb$?oRzDdr+#o~qXZMhk zW1u*ir;9l0^HlNd<5GiAe*ij7jyg6ec{fCITbrWyRyUWlxB9d#uqSeF!U?12sjiZr zoK ztIcosu4rHI0aeZRs+jOJmk3zJxqh?=m*H!-PJAZ7-IWbtg&ws_VLDy4wm`a8m7CB) zi#<Xb4EWFnd_bB z4_1ZG6-fP`AG6ZSEhCD@zQ<8gHsl!IB{#j|@(S?t_HOiRHND~@3&>(xeWy*;cgZB= z6R6*J-V}EiaRL?dkZd%F=S*_eqQyNbsenp4?BBF?tH1x&f2~dahYvS39TvzUlcX}J zh7xr(4LnV7w;j7V;f>|OE{M-g*6qovEQS4Cb7;*Dzp!xMm1hI5-1_?XQ$b9j`Muv$ zIv!H5%kefEcpUUYVSa)B6Nx&9s-s|gs9O)17uIH`C?O*)L#-xD$QUb8#r}Jws2BC0 z{2Zy_Y-wRhe^GTg_9OOIxha$qYPh5*h@ zV4X{(2TgJ>1#$dU>dy)IQ<7yjj-NYNz0>h8lKg)>e`bHFwZAMhCvfrgd-Lzv@V^$C zc$#A8@E&w2l-`ooV=(1lQy!D4#9_urGL#H^FbSuk!=1-;UK1Tz$&;agy>FV}s-n62 z@R4#OybsMGWxCEqnf2!& z{t>}eQ0TYWFKfAoF&Cw`R&#k1;Y*|C7@M4tf0>w?o*7)aJ%@sMAQ=y2s1jbm0XrMh z>(dQs*>E`da2R-UZ`ebm;10`5gCC_;YP7q5;d<;ZTu%p;rF$!^j`*GcO1Dnpz(P7e z;Ap5Js@&^p%d~Qj0-Z_bm`A|CM6+$VQgbnr8f9a_b9n+*Ik=`WVitu>A{G>!W7eYwTN(iNg z&at?ldysyYF1<$LdU-m1B_$i3J+dif?Z@YqW#xV#$qrJ-gO69dY3pb8??Svuc1F@G zq{xb}*kb;^^jgFfLfqA`o}M|)W~J<*SeKQS9}elD&P>&0&Lu0Y2!j>U*$DMpe-PsD z0fDBoIH`MJZgjRp@d{`H@+zNWIVHEH`km58i45lCmUF*gqYUpO@W`QcL6JW1O9>X; zsOx?~DhQU$tEiG(SEr|{)icIf*@&WEogJ|o}jrEf6B>A=AJ4=t?mNs+uvzAvrtNcG!H&9%Bm$eNfG<= zImOv|=cQ=*sWX1dgtkM9R%T|JCX;4jj};k$`=v~TQ;ULwTuqrc&!S8B==6lRp!5Xm z$j$!F3n2p%ATdX$-CqbToFTj_Fd#hAZ)3aX8Q~_JxJoG`rE1VD_MvbiZ_bvB%f#`# zo{|d4;VP0~mq7ldNF;C4#UULV*+}Hb_X_uv1N9mzb5c?>~aD%z0BE@#6 z8yN(gy}~k~P;}MfmdgA>1=*C#8ZA)P=YYO%UzFAK?I&26IaK!Tt?g?m_8Ia&=zJQq zm(kw>6qnPd0yhCLmkX!@9)ATFL_k2VTo4zmYy!%@mr}Z>&^>LFrp>;b@ORil}Q2u8qRs3<0$%YWQAN^tenQU4he z^$OD7jFWk)1qy_S3Uw&z_r* zng*KWF~@c{AeY&YnF#eo=N>fiNXGCw^73C^IcPS%m-D6TdDuMVKa% z#7|q8DH7!^cM{FQAbCRRdqJ*RK zh=Nh#D1xIWd>opXNK7CeA|??OF@=~)JVHE9OedZsW)icAXMc!iiTT6=;$*(%pb|{*mdJpj-NdKKukhR$AtSQ9E?qj{p&>Wq%D(ETn@a+XI3NXug?Bwj}?7hHF zAfG&!a1)Kag61HB0IsJT7WQZKul@k~$WXAhL(mLCSxtFR9+Xu8Syxe8NkK?z$#8D+ zl!Fw==QDP`PQiwzbuF)v-XdOIV)F(_AeX1H&&^uDtAF=H0i5kZtI-3UWGwRyyQc=N z3^7jyIY^3r;Mr>2-C!dFa(AhKhFqg6lYM09Lq07B0~p9Mk31l#0dJMrVs-hBcB5IX zdHwnzT!g*-wT-SFUAcYG0pW0EYoOD22F#>e1++j3Mm=3#`l@90E+F&h`XG+hd(hd@ zhzP!=!hhXut+0jht#-1i+*KyfLB3Hf+|Itvmv2!d(@LXm+w28EZYgYglY%BkqoWar z{jMT}{(h3v{T6CG$7L#*u{>WVwAU7cgkr_f?2{~)ozISc`qbjAXZiv-i`EQ@s~X``dy1%(;9I1%KO1<_kBcuHKNJ3S=y5hMzcBf8wI` z1H7if+MJxi!knDi!ltI$+9m;hm)%fQ3wArn8Ap;=4K z&+CGmC^8im#J_9*m^IrSb@TU~$+3wr8f`B2vk!uj%-%$olq;b`;RUl`-+s%!y0dlon_dWdlpv#40XXQU*9J%P4Szwf zmf~5^YqUy|6%Q@vp)Kf2D|=;h?4S{cbUuXkws4pqzvQB4KH@1;4eEtJmPSr?K^27t zqtRT9oN<4l;L@6t(>*^_|9Ba`A}=pL$HoZQFQUaGpRA_LPz?b?mBD2MTuviR%gF$1 z=DmeXt`4(hKg1zk^tGDRNl*XV41YG3V%M?Pc;&dMT9eX5o4|=XXtq^dK&^bVCi>6S zi*`<%JDnXz#SZQ$Y8jl_!Z~uCJ7^kQ!Lt|~DvSoBQK4A;0$=4%{D9>G$riFjY(87Y z&PU@|4w^}Q4j=Xm9Qg9nz;&>YZY3B5TF@B`YE_Qtl_hJItXo;S3CKAQAAd!&DL7Gs zp8Xb$J@ekp!(RaT-KiH?l7bZ4h^wshfE7a`5*qH{eYji)ThM`a4myrL;(Z+J$JfW=mI3}y2z9^8EkX*Rf&k>S_rrNz&SB+mjlJNg`QxH?SM zK3o`nG@2OBdVvBF=;=IzY=3w%bQXoJDj__RHBZQ#7)XyL%fzOn>2132qR?>^#gw*i z-bYbfrknX2&)H^n9Rsq`1Jy3AMNJjFMi*o)$cmYwlH;?TP)~)y4RwZE+Cf7(Xbl>J znjJHg#4nt_bmJz-hkuQ3=~0W(f%78w*0(pe=DABHTjfhv4Q&6Ix&c3&ulojfa^bJZ zeiupBa}&tskz{pL)_gi^Bw6|ILYuvRsGa}Mv%;iA*MbS`fsfH1zBST$6KSO}TvfR9 z8maK9BsQ8|1mw)<{|S6D_U9cVG5tJuxB+JO2SA2h!{b~^v48yNd@zDsJj5A#hyOft zmJSE)ZEul_=qeSgEO74)b;oSutofq8Z~D`pUn@9aiQc^6UHMebnS?Ge`D5tf&4Tg%Ts zxT)?{Ji&LfG3*$20tE{O5|5PqEtlV=I#ver$vN|9KCy!3hR`Gd)Y@uIc9RuL2^Lh1 zNrz7{;6(NMb*vbVjMj#S&ju!w*Z;-|{{A)ZmY)O?J%2bXe3K}+AZ#!5i^65rx#1#v zhFfLMa|xSZfc%e7{`l3EGdtN)0@$sWfR;3Z%8Q5CWU)qs;02t)eJz}K|G*ub$b7(a z@2hJ5#6sGfNCRfaf6dOVe}N^8KVtlMtTlA$QQErvtyol9LS{` z`mRzK7JsdtzOR`$ex%9o16l7J?gLHbCeXP#ujIr`Q7i5QJgp*GD=K=LuS(s=>J>(n5lTsUgiRYSS{m!lV6AdQ zs6h#8YMIGkDeX!9av7Q}I{og&AJO>M#-`ft+S3-F$puhNM(Qlc&Z76Er)A)1F$ZDN zwSUnLqs!Q0fLth7$kZx~wLjcS{3dgr=l3@^x3#}(i}OUzs3M&@t6GqsL+52>?jAlv ztZ*A`jwVAf1*M{Vy$*{0JqFEtLQJ3Jng0mM*>nGo}_7qAA{YC6!v zd|S22;&kC8>J%YnW{A`C9+w%*#PTFvISo7Tc#LHyv5&Kl%{;dJBPs}ot*75}CU;~V z`WH>6+3D%?^qSqS?oJfXcQoP*ts~a95Xy?^BJx$%%hO4~P*$3>ewQ>CyUg-qdw(f7 z+=`XyK+CEAt{x!Y_RrT+m~pj69gcI+aGWT;mvitmQe5I9_27%V;ZBL*Wp%zmZB!UR zLSkyFIAqo+1)xz0b;a}9kFlH8OCgh-F|g_~9?gm93G~SIjTfF1B*Lzo>^)@33p{%W z%r4IxZ}(T!1KHV-y@G<(S?m}|T7TBE#0>06g;@=kDLfn1m1l7zuV4$@eyu0O*>@S` ze92|vnMph;)`s$OX_=uEG-P3wqPnS}w&#uQU9YeYuyO2E_Tf1v7yf{ze)f~su61Z5 zJYvwQ7fxe2*jbV*^WHd3!M@gc+)qwt6CORa@Grl2#q+AqS}E|FS}M+v_7HC`n(=)k z*Mki?!l~>tu#1Xi%Gu;l^))811wHyjRfsci1HF5L%W#=Tcvqu??pwm}@6k0V+FIj( z&+d(LRR=0+F!9zywIoTe%zwn}AgYpA*EfZ_4YjI8s6C7(+lKz{{kI0CK#i7ytjNkg3)`w;Cym=|7kAj z8XV0FmRE}M^78Y<{(sWiaC5j>@ZwMm&)WoMcY`x%^JBW{-`%xkW*YmbO6kVl8tZ`B zR@rc~rx`Ct&H(JDpjcC^SE}=Ou%vXSGGCSj#pL$(%tJT3(4($fBM7vvOtLcTwawTc zXxw26>g@jT8C-I)Vtu%+@>>65X=q!s#797g~n`ShQ>!vl==zjG4X|DOMSfawzU(V_SC!`>xM z6x6w}F|Kggy?-`WKU!t4Yo|Yz!g6ee^|aC;H^@OjuI@=WiZ}Fz%1~EbpXbuwzqYHhK-Fh=(J`bMLVZqKbP zsM&2RfH|;rMX5-4BDr}7B!W0qC6Q#xR%2gvdw&j0_E6xx;Gs@z&nwhvcn)ZVY!k-P z$e3}^&;O4KtlG-nBi*SI86&{CQ#vI}v(|0>Z8`(JC<>?Z&d#0$!L8tr?`laL4qhpd z3d>i6{tm$hJ+iF-4j$NzEojDY0?f0QxczJ_Pc1ZPFf`?uAJsO!lWJ(fi+OwNEz7Kg z@_#K@w=sM7qIr%wUruA@5o|L_G#NdH9>2Nv{EO5U*p`u%s(f>2P5SLh3T3a~v62CQ zq>>|3c}~G|G&D3;Rdlp8IRZfT)Ml=}t$f18+p^MuTrRs}k61{v#fxL#q^Ln>zVPAF z|M|;17v5}bM-N)7oNZMX?G096+$x}rkJAD*Lz#&BoH?&i&c zS0QPuI9J`D(YpO#3;uQ`GZmqMYiQd02XQ=cC(sioxXc60I9{%?qzH=0a#vX>R2$ga zzjNP&bl4JT^v94ljUcpj%hh42@)1>MhRCF5a>BM1RUv z^z2?VpgniCGzAl-{U3kTOJ$$t&x|b9VmUVA)V1gYwo6}%iEl%9+MC~l8buZY&f6S*-N6VFEBaA`1d@;eQtViE|#TG2b8Od3JT=@BdwAR=!TWH2L-!|L4zt z;+K=y1o=jzKIOTWf!w6*@1o#%wi(yl=$)? zgG_#nm9S$si#m=9;CRFPEms_Y-<8UyzwQq=-ImG%Wu8Wo#FDZ^*h#X)HR%Dg@C5qo zs9^Y)OWzkLIRf9N8|a-IT=Y3Q#erUVo#_W>@=9=j*UaS9hq^P_US-XqKY@64kycSEY)cH9toWscyMauVwzlI| z*+ZT_Ts9e2@ZM{^|Il-$l$p%4M%D($Nb8g!)vC%2I`tmCM3b+{(|_jeV3+arWjhxy z2XeEb5BKmu;H~y+mHVt7Ea`XZ;cpB_fihnsPI*|e7Pgaf&t{(z?1lC~W20=7d~3?a zd|_HnBDT9bETwxZ!3Tb?+vWD*=CtHlm7*-^)-8SMZwbDK@2@wa(Ze409cKu6L(X^b zm|o$%d9talvjt3V4S#fYe)VPO5MB&$1q=cWUSM^q>}|!;LMQ}zMOi=`E)8Y@`BLJn zVx2|nqFi{zH`}WZoHRM12C6k-bx)ZG6HCUtc+Ev*r~x?P$10%6HFeEIPoK~6F=hjwU1x1<7W~RJ2=k6CP_;kG`wMeHr9fuK!vdhQN)x| zP1QF2Y%bk)L&ra?+8@(&r6b+n@2B7Se9!rwAC6^aVmOXJ!!O*vWkb>HMST9R*UT=g zlhBTbGihB`>IE$IBA$9FBSo@O&u5Z%e>P_RGdJTU48!vlFcJIf{MmT_+1a>^3B<#N zSSF4WvQ|re{#z^a^H&v#8WrN&>KZBU)vD#ZHwy|@ui&l9&oAH=)(ge8Re}Z{Um&d! z)(fP}&q3ZcQB|!_s^Go4u0|?tT>HiwEiEl81@)4ZB60P5%UAGPYNa*25}`yWe{L4; z<9#4%kn)NJ^+Mib^p%fek*K~=CKZZ#e9=CkxPf8KT8kHE)Mkk>IfFSLdj?yKy@D;l zHe#Ew%@`jm#s~ z%-(4uew%#{x+xD3&MpWC)zHS>4%SZU@VeALI8?;yZUqGxwMH#LYaXpz7Pnx2IQ&$baPWV*{A@`M{^!<;j7ITmiZ77`O6Ks zOI%-nnO;cJ-)Acr7L^~me-i^tS}EW$2e_tn#2d1He=rlTY zqy{V|s$D>n^b5bFbAk9d?;`pI7lwW49mGNluK(%#v711kg{PLT;DX952MwVPfRhY> z-RbNh^3V_3c#0cG?ECoLD~YQtbTXaEj!Q-J>eCO7B3{6&e|H#W5e$@8`p(|HRX}Jou6{1`xqAXb-hOYtuYc$doX)6!2)c9xSPX5TbXsgfA!k2ye-eF)KyyQ*xK21KK2Kf( zlrc7la_^ys9EacTfe>-F^3$y^^Ph0|z~*p=2Ctkvc>;)Dzp9QY6UBTC#|dp5P23B` zk#Gt}=Wm?*mW8I$E7&%>gMlYp=1vW1hJ%#UvdzqqS+rJA5UL>fr@^Qrfnpk?pcg;- zJ;$sBBUp*nf1oN%Cc!i840^|7fA@`_HGUz75-@?uqNUUp6*FcZP44*(IS#R*K)7$T z>mt+SClxlD73#944P`(y86!-E12(@aYI8C};e*>tdUm--Bgv#caQ4j9=rjbtPkFRE z3{b}8m31p4{ezLCNy*4=ax3htEGgMqB5rRpFwMWJe~qVer|_w3EEIZ5*;4&}O3z4I z^t7aB9~n4irr^xg{F4VxkP{G1`XW7v&;`cG9h6(GqfA!PLYWj)yK<{sPz{8{5bfha z*x_>oh`fitdh9qnz4nTW$yWH#m0LKbRzp2gDrs0BAbTL>cl#Y3o}{Zc`VHsDdxB@c7EL6Me?IvI5F@?K zWn9=UpmXG(XqzYl$cd8AMHAmWf2Cj{p4i&yj`@%GTo?x;)*+U0L1B{X z>nwWZM`qQ2`ZdN5MlqQGlb^^-bAGH$>Ss??=BE{9%S+XDjJ4E1t*Ah-@4qNo3p-02 zgod+~!@Hmw#L~8djEdd=4;3kiwilhaA7FIg%*5>O$ zX0-9pJ;Y}w8Xx`^-I`&gEU8!6mF<>&%+cBOk!1J8`ORJX$ubbuN%zT4?+ou{o?*P0 zULcxH%=LraBf6Da-3=OhXCb?=ywV(pb&;-rFV?G#XMk%TY z${HJ_!t&!yC&|+=`dQC#r1Y3{nt77(i)cZ7wqe{K8`iR+WXDz@>LihIE*$EJ2G6+% zBX?cl;He`MQ{aLa^fHf9b8o81>+_+;-fVi0H;0^?x%yD<9Cz+qTkgE!xnIwV3p;aj z(Vgf11@@I%m(bq=6_-TC0#JW0&CAG2&&~&}iMMIttqbI|5K%!3lx_}p@`AfCk1osG zBvJR4lBGo{Gilm%Dve0+gNYVOBZ%@tCJhTKG_WA!edQHu>&p+GFVFw~{3sxi0E(hy z**T@^?9w=Oeo?9~r>FTsC4diMGlm>Ii=)i$ExH;uN3&&G>3q)$Tv%9v^Rj4H866Gp zI~Bf~ujo4h>n`d&0;uno7*C=?`4wqblO?yY^+tOpY=R6al%jv|-xDM2?lH%HhvV5S ze8->=;M)SryezrUuK7Am!7_b%=W^GOa;uokd>21EJPP!u~@CJ zhQVi~-lO$XuMv$DPDE|bIjPM*s0E3|Xa=px*IpLI5K->=EQJw9-@f$9)$`B}N0^D) z;cBDqnnsC4#VCIaDYrJaSh!sLfdo1}+TCvWiCIlpBr@WkaxSCH*a{cC|r^wbcq6nd|*u%g}88ujl#eq#!Dz&?jruU zfF6duCbj`~b+)yTpSu?$w8(wTtF$GJ)oZ1;n;YHJ(;GaUHm_1Wod)kY6{~bQJ|ri9 z$tWFEKZMl}kfHC+kd$cpX;*+JaJ*M0^9;!LumO@Zo6H{{4gUws`Yach(cc0TmtV*N zv40y@Y<7Kf^>nB8E{>M}=kFmIKUel8SxJ9lq?csU%R?kVE{z`gGQ-G1M$(lbBP{FR zU$Cqb>GD#KEi+Um<07Kd9USJ(a&VaI6dV#0w%5-;!hVYPRQoxOjtghl&vkHcv|k?R z6SmjeE69GmSA@S$pjQO_M`gb`*n6)}M1PF^l*RrL5h1V5o*fkxHOnh7d{%In-_ofw z?4$NZ_}jbqg!_c;_t|5=GB_y0euGz_kG;j@S(e2qI4~qK!Y9mreefQiupnxwjWsil znIfBEvz&2aRt#CqthI8H?_|6<)zC1OVFH;b<~e2VGG-`KCL1q{m)#yRYRKdv&O=h< zGWkk*`_QdJ%~tEJK2t1Le8Bp!<$s(#m;apAbHT&p!!`{2>G_q<-?etJt{rYO{5_i_ zo8A%bBR+fK;0t7=>&Q=Sm)q7Uqm<9%r*AE%=~pw(&NAaKM6hbVr0(%d6d!++6KWB8u* zR23v}fi;+=ASaqBHjdfSUYC*+z8p`z@oriQMttXh-)oSPv z@ozYv?aYqfEt0DLyh|Fw+DQ4*%aync85xc?qLWdM4$`OmmC#l%|LBmAkn)gbp$LjH z3-SyGy_AVLm_>Dr~aNOF)hS86QgA$VBodttLI48mloR=L?1K@cLPlb$wOy1E4i$gGb4hXW*@&$gL^m zVIMfY?v$Pe>7W~Mu;A`Z9QHxzkv+elVk{}q3pTj^lB@vhh4+7@>%xE0p{e}x;S)-M{aW`BPScQ~RVAM%0V zR2+>~iSNRF=z;g)cHy~-&##mn~<~H3_qX0F|O8<8wH1;vuxqPz_*bX$p^s z79n@A_s3qd?DUTq@P&U|+KnstV1+h5c~g8`YSK!Gq6xH8@$D0Q6~|rdhTbvA&bUKH z5O#@!!;ZGJysC!MmWKURDj^Ltkglt_cBSzwaJ|hlR*Eoj>8ozr$XeoRr&fa&A~;E@ zuwZ7ojSP;f#bMuFGTOGG40k+U-mCli2Wl=p7Y+%XiU&tm z%pjwj{kDtIFfGgDMoXH>2u@rQk5%GSnd7|XXRzOZPO&y&s z=^#fA_xth)lESKA!47zgvTtZGbK>=EMS6}<;G!Kx$SH}sIL%>k~WzNp0CWW24BG8 z^S>oB(G6VV{QWrG!8RnB)6Br(i0hvh<)vn(iCT((QrgaF_hc{F1s=KX<%wBZ&;geK ziLv5fG~1g*n-`p_qUA?W>qhMw1tba{^fiE@RZ-(a{NS z7YQd>z{yp}bzdKlZt5FB{XHAng{H31v&x&eOmgJ|%OmRG2=~_ykG*&E(v}qhtk~%8 z9l;sn_)|3>or1gElbPq{jB{KzTL7P8znY*!(b?(m_;Sk6=Xq_~0FK-%KdqwS&3*HC zWCVZsdU;n^sX8~PEFp)RxQj>ICDjK`1;BauFh6duHfiE>n@KJ(df{x!RbD;Na+(z}4Nm9wJXa zI}8?-KVuECes2z8C(fc6D8HDF^b($a1jm27%i1`?|AmjENC#YsK1y-#qTi{?qYbBz z6}3>>sau(uSnQj*0d{e3>>EE*7-UZj_?1DW;e11Q4W-cVz@VBiN}m%r56AQ9j#BUM2I12ic9Uk-7L5zV-vY zjL+pm-a#=QAVrsyOlA=4T{*~zOv|h=YQ){v}as`j^mG@d4T>M(kcC;_96RqLBN7R zO$*ck(}X#g^-Pnk0%wA8b14x9G<8OrG2Sdq7(mqdp}cQd-y;4u&Tn64_kZKN3m1|< z<96{0TyHU*JQUL6pATFCcst=02I(;<_ATrSJI`L*X64XjbgjIK!@8&aj&bHL`aM34UUK z73-%>SR{n06elv?hqku&;RFRDj9sKHY!Pkxj{jSf^p*4(fBD@@`a^$u&ddgBc0i(+ zuik^oVokb|c!-8%O>$ZaxlbMXOD%WheI9)Ruh&`iU;Wka3mI3TB>Tod#d~JBRP~F~WU*pDq(DjxiRiy#M6u*aaEW@(vOj_SU7d~%_NBF|C5CPfz*Q)u(s-|`2di&$w%|I^%rEXaZ}rI1@L zN}X&SboJ7p+oC<7b90T?Z?@cNFSvz>{jak$1|sYG=G0r_JEB+K7lU8$xQooj1!N=r zW|M`)lX#*7rHp?K^mD+u=qZpd$tV0IB7TMisKN2Kzy2D>FQ#-|K*V{I#6do2G2vzE z%eaSlp;s=A$E!Tr_dfXQ+X)YdC=&83P=6dO39JTB@dK&(l>!}s4Ds-w3wcc>6KHyB zB8?g|o;KoXvn`H$fCb;J@BPNCjKvsy%40qYwT8U%%shWXBUA!+AC*9+&i7nLUJ_Au zfd8`Y*1K?v`<4v9OC}5C`tO+3Nn^6Bi~jw_qzqQsgw~4d(CCwy-rx%d;4iQWJiB~4 zeJ?-(aG#VssL6)H0am50S=u^PxC#P5U6Fh!sVeFH)b`{{Nmq%ynHImRl&l?0vYsn= z_lg{&qy>NcqKeQf@HTh#?3GUhPM4ApACq6S zZ(D4|wo@}{h&;E@VWJ32I^D9;+C9tC@cH1o(Rtd#d-b{|U)aPsyDoDOmI4tQlhILE z0@?Av9fag4k!)e3Ah}S;0lhw_u&69C{_vSg8*hIn(w-A-?tb@Fgr5Cxhd1mx=TWex zghpvBZNSM9*%31qJj8sng%Tb4f3k`w5=lFfVsxyi$7!^b)kD6vEM1=nVH`ztFB}*r z?6I`tIE3;LT`Udx9(Ej*G+9y$YV~;)nfZn~C~t*;vqg=out)TCTva%*?A(o*Ko0`-C)SDOpsZrIVp(?mJ#cB_iF>rc)8?`cs}?oRt-D+ z{Gh8;Kqr;P`z3a_=Q%Glbv@`~Cv&n%r-SKF0W58UYCA-B)9|J+T&@VW)q12&deMS6MPeZKY!0&r5L? z`yZR=K(SM8!j?z%CRx*c^rWpZBfWpj?@y092tizEMO1BV6-VchQPb_oNW%X( zm9|7;BM#3iRD(uP18u=#BUWw>-45JZ$1^wu9qx2q5R2ff_DI+>=giWJ1I|$m#%s#M z(ipVnAqF%D_NzSHqrK@6;awBj8rr6P7aE~6ySw&yRpSYBH?+d>{dGQtaddySh~_db z@@d%~-AiarjR%X^YDd(gp{rFo)Z6tTz_lf*>Or0CN3PMoVf zKu3w)brDVbPUc!OrA$8 z_R-1qHX)y;ZGL)UdRzic+|cqEV_jK!?NOh@Z!K}$L|KykAFoB-h9dpx<25=8#{)N;&dYHmI`hUj^MMZFzP$eaZ4rM?1~{1;lXboapM}()`NugJy3b2t3sOej!zRioJlF;pDtngzXJ}r3bXyV1ICjy`_G2 zG27$3ePJi}mv3Eg6pr|*`=$UVqTlwd+1&gl%%F3803;iNvZL$heU)aFHJ*y zrb>i5L(`#}l8U+#6L5bIVOm54Oq(NikfnShj?lg4veaYd)a9M$O7q{lFAhGr4TOda zhu%Qn8**IRw}$_1h?f5LZLF)SNZ0-E7qm6(KR!Nl`Q0MdjRJ}L-F@3340L7=-(uk& z)CV_5n0$(M(6Zv{uiDJ%6qb>MURx_#BV&6TndR4%k8z!}fhT_xEEZhJOLY}VMxM|KR5mclLuhhcVvH!ccD8tfvZ>W z)`WMxTNc71aNU2l-IFhIxMmySqnuS>6z?lC5T(VU%7p z$C_-P-oUE+lv7vZ=X}#U=PFu(yLDj>VTi(c-fJQy=GyS)_zEykVs;){8``w*y?^tv z?bPqcFmVg)i1gXbDGy(M##Yy|Q+J8|{(t12=1qcw z!bAxDG~ui!UzeRQ&>zK!WE2|sLi+kE)BT z-h0?DXL)gG)*D68!!=g7J`#|DoL3ED`UFTV8tC83EicIQ?v-YIwLO);hhK)^=9FPgpYDg5FKg%oWKr7S@1Qhkt$4iIn4T22NJjU*MF{`d1Y=<<~NV z`0UKHGIUH`DUCJDDkQBOS0VD6Y;88=aJ4N^PFty6+6bMee-QXtTB%N2{Y!jt5<$D{ zxLi#h=McVxckL=qHy1Wr=E*>f2WWqTRr+AdiF)m!0}u*{I&HdoJjtRHUhFe< zeQ(P9M&bj$>f(vaO3OKKjTZL#90YI6xi(#K2&MEyZK@_^Hp#G?gmrW*&VY^d1Tyk7^J$VD8;EdOu~Z<( zcQBGq$)nAU9t^j>%*{17HPu`koTNh_$R}pdgA#2~GW8%XNu8FucCp=(Z&UKL2FMu$ zg$0Gxmfb$uP@RX?1@>5We*gw;$EJTD2yYh|x^;DA*p7`Z+WnSS?)r>6sBdi4HCoaw zEJJe$@+l0(C1o|{+6H68?MZg!ku>~ML7f;MZh2~IHPq zu|*m~uHKXjON;li+?3oERj!!Jku9}>L| zGndid0(yUH62N9NU<{TmFG9xqB5U7&t=3}6wk+?C<$VX!0A*iHf+=ZV3n5KtCnRl? zv@e}=-RtRlM>b7qO52y|o9Srg%;?TN=Y0S7{r~s>mqUby6C4g_cEYx#jk{iZHa;P7 z%Zs50>qV^f>2T?U>M`aif_a+5d?$>dxXic0sSkg*hW}4Q*mnqm^U@Qcl{W{k#QnLU zbpc+U_~VmAIEORDq<~uKOXPcL~JHrBeoD* ziEYFi#GAxUB8k{V>?ZaRPlXX2A{=i!$yt9LMueT?_J+$IOXa;VgEPZNE+K7?zw&tR z%!FCIS%HZ9*~zm9B3DLs&e=QXgSke=5Q*LaL~zgy#O0!*Yy8HtdP#;jQ(RD6)YjA9 z)lNlDq(cymHKX1jhxy$-F4}yHuM%lBuK`)EfKr(UYG`zihhou8G~;(P{CNAB)gFID zHs5_8?vn3rf0rdG_6D!)!K)WQqohF(Mtue8V}XAenO!|j2tpKkl6NPtBjvdlR>acm z9`={~GBASD3U095eB-E7fHv?ho)NEE`X7r~E*&{h1HlPSkTa3|J{N6z1f;7xv>PR% zOq7oVFQXZ34E;A?{M5{!hCqJF`|W@AEi8|Qq+Ir;P0#Gwux{`3K(buk!%)b`i4~ZT z(I7g}#X&zpKjr^|cf($OjD`w*iJ`)zH>$xv%BsLd`M_+m)tp5Vf!S`cgO&8kKu=YG zNv|y`-H>1MJs{WeuAwStmlHZL19N#O!hJY_1})_2vP^P;)B_Hx8q5w$Z6kkrQ{YoT zIW?KeE0^Oa+@UD6is>k%?6)Vo1rKqcs?nVXRm*C^*9Qr(qnhI9QsNnotz-!J!=Y;=UlL2odb^m_J>>~X=*&`oEj!#M^~eh>JqCbx_h z9x}s*8cv%zK9sR4^yv%^6lX8(BN=(*!^87T7Z_I2=o}+ z<*2}i7^1{NlR}MEHG+S_M|JmFd)hnO@ZM?JRCKyo>5>P@$UiKb4)zZVm@jeCI-J*m zto2M^K(ljsh4?Ue3H$lvb-^~~lA+0DK8CfM|ERQQ=S{i=<*)D8rkhB;+*GEv>s)ku zm$jp#I~WmT!>FqiW(}QW(KUb{Y~ZlfAOX`XF!QcYer72(YifTWsv7KWhl`oTOyb9E z^yI~97NWjlp{L*4+c(e?5##Va%!1Q`e^@$2VFRwDQ_biU*3WeR2fySp4d`P&3UB%K z9k@r{U3;CKOR@Ejg#Regdk3t2{e!(Ydp%$V_UzRJv1{4!Pu_ z|JK)i82r7bN(O%hN(M%QL0+;gM{*R%0)=mw2ET2{Qf+OpABO;3$n4$QK*m+`qj_Vf z`hjuX;B`R1uC1&u53-;P4wt-~lAbKwsX7Q`B=cTjaAJ8I2OStgk}>YY{680%8QgM8 z116JNd0>Yi>ui$u0QQ=>Y&biMC25HHx!9{mv$F*C+L3=Eh$ok=Ubf=p^LCV2^tLAVAPlHVGjvR25de?Qe)RSsY(auEelAJ2U5@LUWsjjF1U(Rk=>Zx+gOP z#~8J#*3@>x9ObEcP+X!kLq@hp91)|JVx6nNO%H%oYgL%F)_tJHW@ykVSp8%I-m5eP zOs(&jqkK5&T^gI3770Up@r}Ca!mOf4z^pOnc1(Y=0&@vy{ZI>br^ACf8M~lm(qJwI zjUS?1*vs8G9;RN=%q(u^ps;Z+qh@CEapGIRM%Kza<(St(wN|1G9P7cZgmszC#qCjI*8#Rk37Yelb1~HVAYeqKy7viB= zXenC!>%>c&s9kXIkXl0;CnNd$W#{{7=yQMf*4?%T+&vcS@tY%!I7!aKS}hHGvRP7= zBU-yJD-)*Spzhm)m?-WoB>I5M6n(+hdsPlC25dBHR691TE5zx$H>dA94MTy?d#=58 z>eSHNPzA%r+O!m%Q3!hSXsf=mE?9kh^icn+>^ycp8^gw~JhT3D>SMU~cHfn+)R=#Y zIwZ)oP{>}hxzG zj9zPIp2qiuV}?{;OW9&5m+DI7jmLk2$(Ra)jbtfyY4lj~C0tUy4ef13YXtIry5j6i zNp_Ax1UYcbF0)z9%|3XGte1L9O2rkz)S>b_6ym{qH*4P|OHeZABH@)OE^c8iM&Cl* z+Wz);NBet$yy{%7r@;`ioxfD?{w3eo|1D)rpvBY6qRCqVeFdJf^rX}ytD}E{;ApOF zuNnr6d(boNJ?-rF3>ETa~R$fQ2W;HSN4ab?wm z8Oxw8Qf5fjVc=?+xs`^dst#v^|KuRz!g=zYBmJAGL`caKrIUC9o(BHy+Z;6i(%@w- zdVhk;uaVal<>wdWNgB1D=7xX9CaP+(fd97+uXQwfg1%m`)DCrhB5*Z&+M$m8L1yQ{ zW$A3JN?rx_(71jIvf%CT(K+vzQ--yrCR zItw<;+FM-4kJ|X3zVUyf=h=T_zr`+K|2^))hELFZ+>K+=0*dvpKE5cW=?)G3fiL^V zI?tc#7{Zm`o$)FSq7s&OaC7#){n@D@E8eK6XP(8Bth&oZHE4iusT@IbJ^}}{LA_M0 z)a8SmEUuQoHFu)|4Dz=O_}lay5JdxQXl%$j3%5g#%sUpkzp2kLSE~r_d+ExLtqfLhWMx!?e|fXse!T7*n*B zL77S;*}x79l!p)Q+k;!U?(NophPDNF<(*U=bX$8mve=~?5_du_(eti`O)n)__eynjZT1HfdSJLxwk# zH;?xwDXM*?m51cR8BwE$PHE|IG?NnuE%r(int@cpZ(Xcn;FcuCk=qj=5Ry~#_If$o z7RSREP4Aj>NgqLCw^GitMaZ_k+Sl{waj0}>fH4A)d@hQkcQfo>q-pUc%-)@0M5lBQ zyQZk)q@Jw(!2z|0l;nAoqpK%jB#xE~bX@mHSeoX*$}%UY<-foCb))UXH+O_R1ZI{| znlJe24}Oj~T{Sj#Pz$-QvBl)v;wK&_CJm;P#_Rp8v0*E|Uk%xD^_S7#0uz^f?gB@D zYfKbZ6vyYn?951asTwvc&9FO-Rv=Ya>4O55RH;adP?2J=55uxMx*K-cWp`j*uois4 zGIxNMuEv;9ECEa~Hck0ru`#8wpKQ{SHqq8JR$}`2f_)|TE_d1Vj))ZcVa}ZMzcat{ zKj#95Wf=fKdQE-ho&&p|F0bC*u-&eID@7skpMYriIDXE6H#7JtfVZUJoK&32W-|=v z+@MGI<9cjdPa|Wcf&FvEH_ zB0tP^+2?Vs=(Gs6`Fsw=<8M*qqspVg~Mt ztpcC~j%L9Fl|WvP-I$?_eZiQtT!_z)0Gxr0 zsaQ)KG{c`hLUpJDZ9I2I)8Mc$s%k-NCr6rzP)2GY$q^E}_*PAwu-@P%G;Q3r7Lt+V z&Hp{eyLgCl%1|w7MuKpRYgJXn1|ym}7@btUYnU#WsK2xW5=PKLnJb`wcx5uvJf>-* zHaM(my#wCS@@sGX>be=e1?L0`9apu0wTcUgr3Tj`DMZBhg2>%@gc0NGR!>$!Co?smMxr1QwWI9M zQ4>UI0@YWUE9GHPgt*9mULtj!(7Wr?pFJ@i{`SDtEuWT-6v9H`|Lrt!;S)2wGmKnl zFOts2^xM!k(G_bQsrcf}KU}xN_uxGNm#%I`JrUD2(ufoyl6I2)25EvMO`!VfOPfj_ z`*IZ)yZzP5B6qt#o(|tKFi%j{e~bHe5tbL`IgRqo{A93fkI*jhwkH@ zL$Uq=IG6-^?_(B%@^hnUc1gGib<1*&TFv>Js+VHX}>bXyYV6MuKV3wxltG*G(8 zF4E33qQN)=PylVi7tyvx@W3^*qX&e7nk)yw1Pc ze27@A^|)>MLy`RuU!;APPx$ok2q%)r2tS=R{n*ry(MTTJq(-Hd+$B1k6z zm(kw>6PMod0#JW-p%QO}*7siAty=4-R;_hw3yO81)CGzndxbz4340|^7-5esFjNg4!Ca+S+Pu6{~G+)z-cz_R#GDl(OC~LGadn+G)qG`U8kU>(yjW>tdV?~J6qx?i&%}ROnMPRui=qV8!^n~Pd5HOV zf2jF5iX7f-x1+2D0wzKRQ>V_DGIi?oCBY$4Vqb3`iQ}6)-g2BaXU=<*9j8y7I>&KQ zpqJQp$Mzscm+cZCufXjRauVRUE_jEpmn6#Z&3Qf&NyyxH-jPbBQ?>_&O$ioz&wp#O zqtsX8b^Ssnj%TIyHlOmzqhH}&%wSZbkEvA-GOQ~hla_U3sBg%<#rdCiZDHm!L^)a=YT0^a+)={q1 zdTImZMtwqUq&88TsV&r2%AN9{w)Ue0M0q!=L9k6=>UYt~)@qZL-rB{w!1_z;KW!Xr z*4clQ+dQE+(@%tM!Y>(r=2ZV#{m=A&F~DVjX23TCCl0I}G;UDw;9-N~2DjU;v^_Rt z(U9{)2Myga^!s5`hZ*e_*y-%BsC@Xc;m_Gs?C#eFz1B2h`iRmI$bOo=zkRj+PYwee zG_NzSZ+ZRd8x!78j`SUQ_g{1VRnNW61@bj4pUGc!TK0t7MrGdZ>o%GL?owYtgp<`3YOlq0#MVd^;Mg6*QSPS(*Bw_t-D#!X{{H@_{(s zi7rFqZGVniE_l(!NSNImmM;T`07wf`#>wzt`?0UQI-id70Uw_xDC9q?SFgK4F?W`CcSph$&eCbBf9oU4MIvaA9IefK+i zW7ma^8+WZ>QpZ8__7E0dDe ztWYQ;!(x13E3@F(k}tVaaG4s+yF)<{st8Tx(>x+$V_+9}9Zf9M zHEECLS2K7en#jsdDNjQ#bH1jgVo%0LiGLgfMR{*r$4Id?n-f#+S1hU6nVqN!+qJHsOgK@gUEz_G^Ma#?P~V)iwX@3(MsyM9LQE> z0FwoYDLh1`FPXPBDK#M#Vwfn6ytwKQBeLUc=jdL9kxE!(v@$uZXQ3oHE2FY z+mJoV<7^-3B1}v0qf2PWrE6NdtA8eYEd5OM|IiVnW(~f(wC&q#V=^EY7;RBm2@jgM zJcUZE`EYk=F`_Qm7v>b@Ksm9zZU={lF3G4-eFk+7d9d5h5B$t-Ryk#aV(OB;JWm11 zz(`}GWW+@UDMiUhu-YC|tK*VmQ$XsF20{BdH1rEasL~0791_8A_iort%zv*_ex|5l zY;Wt(2kmG+v0B=0g-)O<7LB&lBOZ;$(1pUP!cp^QOsGCifRZ*ql-oklgI5)^JFcrNrWI|5|RJ9HRtCVxmf-wOj?{l&Fgs zQd*{5gW!Y_eM-_O2%Trqs&Qxp?uV@>;McJ;UiA!*K>d*Q6ZATA=6|pc&SgJvMg!2B zXuR>)8`s<4!V~bD&UnBFL`Q?k*6@t@GnHh~Wm4RwP#wrcLP}g}oYyS3_((;JGC~2t zjJPbdge!*w>cjh(&bd>CF<}r8SPdmS%CZ#nRN5>s-5@x16V(~5K0nVUCZ(i;oC&Cg zQVu<&cjx3a@-@P8sDJSFfyiJEC(;*A{(SS${!6V#FT*zs8Z`bUw#5VH&6%}JAFt6> zYV;fwrWPgUlpHn_t@6G z`g3rGxv}_jEX0GBZC>tIE!TDnD^AHz&unP826@0-J>l)nLw}&mCnVfIRIKn;tWA>v z1TmuD2qu+sN9kWreza!Qx|LJ;9WcKj^jLOwjvBN~Risud377d#f4l|_K_k9<_=pod zhHG0cIMtITVnCF^)L$#8Ye(W%t9>Y)O^gKv$tS3=XtRmMsg{C+3HA~AYqgP#eB?X7naXFxLzcBeWv7?IK_`ZuaKIj}z9 zk?a|6?sv(;m(p+r?U$VB&*O4o6i6DmGRVr#&97}dP)49r^yi%;i=E$J`tf^wFs#T8 zKAWALn?vlZlaxlt0uy)6zPk)rqhY^3KvtaS-%scNf`12aX5Tlrp*aS-(_bTbhntZU z&`{EriqWVa@7#wyP#T||N`6uxiU})|)>LaX^)23KCX)Po9S_Ftoai}DK-PLznu0nm8#SZ1(PF~| zZCOSJ6fwgv=hzGqlZ!QOGk8b=rlw{Pxh!v}0 zAv5vO3^WYcJ-q*zgPYD57U`IIxRIUh)M_-Gzx2byb1PRZcUm{Qt9#CAL(Rm!Mz;gBM?h4r|Vra$PQb5LG<+1uZte7?zCoO*Ly|E zl2X#;$)shP!MEb)Gsyb0z(z0c&|u$Sjek!IXWObXd1$+FceN>oEyyX#C4HwdvM`2A zgmk4m5#PZ(>=RRBlgN}8n;V~>jK0TS_Qi>rN>cBo<%N|zl#}Z@ct3Kow?%I4ciIK} zOs-ZY7xaWJ+)ZG77sz@1D=pteV0^c^aXiP9+2Uq$$IlG#f6{S&(ODiN5N$T$hl*g5Fd620p&SSdf zWc0hiuC3$flWE`lVJ_(XD20V%rRN@piGlI+ffO+3}Cbq!?+vnbB`S~DPbOlfhUW!NJp?C!T2!Dudu>*2^aQ9rD zJ{S`CXh?^I1RsB|cwb;JH4#y0GB*e%;H-nx7A?0>-{hu6%V z>%MlIxefhpK*rmGT9cm@GMa9)iTmWL00;t-hF*AZr_Npu5=c?Rr=%o6EE8A*8txfg zRz=`V3f_F>?>1-_T{*_aTS|bn3d;Crw5A5?c_>QFkIPQU3dHwL*r{Z<+SK|2puCPtJaW=KuQ|fTips4ug0; zkvKyUl>FA*Fi&8n&in&SL~q^uql3Q)XSWv5&5X{7sRyPBblR>4FEY@p; zJ-U|g6`k^M`sEq&q|u1`$Pvv%@6JRMu>+5VoyS;{{AVGuX~hnh!Ts0ZA=t_+5rrF& zhr#Z#5sfe&F>W!6{(pRIU;{0}Oni5v@91gt5mIhB)(S)ItdO}Ro9;hhi9`)Rg z@#M(7;(-(!=x*HAX}RmdhLn6?uCqTaGke=CwZ1E4e&&zhnGua7OIx7@NYA2?^ebhK zM1Cmq6*7leG~L}P_v_Bsh5;Qm2=*CK4QVOsk$)FkRS6CCp&;Y&z+UoF z${(cTu=S=b8-SU+fF%3`^!7Ku-Qt_zl0<{4jA(USO;0osFYF3-1f<5xe0}P7lx!zq z9yAueft~Qm-$^A6_t(YKx+M6{*JV*ax}){qD%%X@b^r_i(Jq(*W{uo;4Cva++Xq4ee4weqtq zPdaX&`GMWTmN<8BDKl1V)rX+_Rim)k+uF z_F6s5;_>EA`7XWr_ZTCAV?lc>swS2lGTE?k-ibjeL5z}4 zI5qV47)fq~^@@2WO(d`X86DOJ{hLw|i?=04t}uC@%Sqxz<6u#)aU%T^<* zB`M=$<~j!>^rQv4M1TfGX)9YT%<7f0K{B>@aWN^2Uy5s zNq-*@>Xi2ZI>cJ?JCHWXt^c5ZKD2zphHc9y5lhSy(7*et|32o~5)G8|pqB29uShD2 z+LK&#xU8%x@3#63d=5vMe;UUXK_e8X)Ul^0WTfTB6+kILjNxbv>rYPusXpOM;z_s) zXP_0n%0FIownF<5IzS&?;GFjfd=R3rDk(7Wv^)wTc}P{IXQrAd z)W#l6wIlH2WZZ7l8bvW^D#_w6=!b__Z{Fm-W-7mgMy~$sXU*jXIKX_r;0_@Gc-j9A zSo~Q@>Mx%bYKC-)wrA)IZJ&VRJWASg4* zx@C7^srj98-LL4NiJy-z#BPXOki5-7NvAfYX%d?!njGw#{_*5q;;>FlzE>&KfkQ1B zi}RWpA|H`ny22nRFe$A}!DNYoUZ9-UC!J^y{C(1@WH)6nStRB17PLvJPOOv=+LHiM zNC;0)-h#KJx)3~sY-M@!8GkpEqkW&AH?JG{^^nJ_=r208**;ZJ2o8Cmg?w#h&KVS& zwVzSZS?*_WluD5!u7MnKzY4OOdLy^b%O}k8o*!&Vu zLq4-793nY|5gQ?ad+y(}py4WgOkeE%vg3)HH@oPR&s?EhF*oR~peIv7OwzBRKiL*$_-IxEjzj!xMwuS>v`2nEExc6#>VU`+(8+hH*P2 zWG7`ZC_s2^{arkE+c;PpsEeuMNPg>(oRkWJSx zuQrNgXs*egMb6#uwAjLIj&!PNDMXNwR9nr7S`KVKl-Nj+RPgvGBtk=`|1ydf$u@&~ zly3loH(Fm8UO0dH(v9ZuktCER{>L{)6`ub1MYa?$9UunJm|-9$PV#)e$n(e z^lF#>dwcZ%^91V+^8MWPUR;#(?j|+;4}0)*TGZlK=UKXqptxYtWGuo%A58p%n9&Lc zYxQ*u@_)BpDqQD2d;ZdouXX&~ex?0#%R1LCGe%xS!wrJ7MpQ+TdmdWH>dK)R(JOwz zui=4{CJ>fn`*b`afPd^kwb@8M3X;;3Bf~#gpBPN$kA){^sUdKo_|Zr+u5Y8EY)9pA7b90zx7>i!vtZM zS!N)4irdEb8NaJ6xH6uMBT*O8qH||2qOBM0>dr?Rk*o33^J~5k{W~7X(NcE(_G72d z9X@>O%)u=i)_Qoj@zZ?ROvOG)3os9_e?b~%ePUg-URPL^RisjfR3_&Gqp2*ctBh<| z&wt0mCgoP&m;#^jt-!p!bRp@9+cbV9k&Fma@iB?v5C}fS;=H&;?qn#5XJ$TMg@&Wy z&)dG^pgHQqC$+IT+bgC4vy4uHSV+n+<4as|e6dms8IYAxoR!a@f%px$(FqFr#VFQoR81R_lYgYvBw5l-aduGF zhlTKkeN%KMOweX*+qP{xnM`ckw%<6J*tTukwr!geCp-Us7yIAsb@fg6IaPhC>H)R# z;@TbR3q2a7S!hK8YXPnoRd{`BK+!n*H~|l0IGI{6WBTFrAn$A;;RH0OrSv-m1_x88 z+uQHsmc9;<`|72JrocG@9=7^S_+#Pnin{jUk0ufM0@m*Pe|(oS>dzR>Y=E13gbw>> z33{3?Q#M)wU~TJ<*-Lrjy8Bsb<4%@4{q(7TTq&jQbC2KQ-~1Ssxwltp(gN<{$qg`Q zrpJ91SNUGM%ikYTPv)eR539o1Oun1!)E9sjYyE`##gmb@*`V!cyoyiCq(eTh1m-Iq z$_PFn$cN15DBBHcmqns7mJp3}3{>2UkF>d66g>WD0Qf5fMqVbzdoTYz%Eg5x*-$Ku zZ*v}Km{VDB;I>#B0zC@}ZBX74n!V|URf_$IkRj5rF)=>+$}q~r8-^FDfMsFPqLoqX z2!41+lHQ)Elq}g0DoP`$v!#-V(bk-F=0B%$8|eI#?%K<|oZfKW2D0>que~}#md6RW zKA2b-vwrJ6Wm1(enA9h>YB z&=prYR7Mqr6GO!Fius!_R~Gv@eaI%cs&kid7^FON&AuOj%a+pGOHW8ylG|YBl_7ge zd2qx%f!ZWR6E5L56kH|5E+H8TqbMg`AqO7&Fs#GElvBAoe#M6QIDgGgQm#95=fR@1 z0F^aXOs9h^eSvFd*b``LQ2kSE#2!IYyd&BziqbHo;u$Cy8pTtm)=5%vIrTaH&LJjR zPJ-wz3Qinv|8!g!aV~}`#0X-ig1hJX^3p}h=bcCk`}QDbf2Ib6QnH;m}W-!z&4MCE-y>ECkDa0t=yi33s-k@QjY2^T)ZV1dSDD)UO3 z3S45$%;e0)I>2R(&P&hl84E^ZVOv85Z3P;(Lj+~uzLv!j+Dhucrct&&0hZDPS_(pk zWqA39{*HNub3})E{aZknWqZP3ztIPO1c#MLxc}Qsmmq`whID;`jf{AjYkfxsT>u6v zKX32ea71`}iQJwWL_j$^ z=a-h3Ue>`WkhIlE30hdVRh@D|i6K{|-Rew3N~pcPsXmrh zodoFR*6L<=`w#5ToT-Jy-MTvOUtT#{O&R1+HvLI$2BxW9X5POFVJLV$4L!DjYY80=a*e3TGkR@=6}g@epxrql@Lo$S0stIID3yqsByy;1ZY|H+HLE65t^0ma~b~NLjGY& zLHVXY*&!ryFfwdf|3D*;XdqLU!7AzXv(NAK6Jju)3{^HGK`soRsjE+C-yShLS=fs! zV-h6PZ+|9>9baKRnaO5d_9}^<*0~%O)-&`Y*fd@FyLsHBC%k!lL^1bXX@Drm=$Z6f z^w#6#2^i~&6;z{1UTlR7kw-*$)MWCkXkL)NvF=`>-J+!%m|XM{uamXAuHzq@?3g`0 z_gyXS7bb>jS5Is9tt(Yei+bhpNU*4Q`vi`hR#SE}vmVB!;Mwe13pq5kr&l3Nc*;I5o&rC5_ zp|M=P+;hpt3b;8~ONPEMMVYoNd5Ok~-Sn5Q^t$3de8903x1x1f^OE`!&qTVGe7i!; z5`-1$z0p08j2Ju-z$QN@93q0^&z5+n_zyRcK_B4H_Auh~KWWwEsQ9H{H;c;WK<{ZT zfY7Fhc$S)}=72&7F9a6cB$hJsyMg}MP&9-$%d+jcnf%^=j?g=NHgin1hO6`xnq_qO z^s@+rynN2VZ%|>#j1qQun*9i-$ye2i0fh`PIRZR`6B89aQ-RFKC%Kk8W6LB>3X~XX zwdVOG)QsGO+WbzEc%LBdY#SM*kT)&_0KS!k+)Q<-VOhltp5Vm6EOve0hVRC+^g1}T zjg@D3FI-O|m`uE|H8^)P15Y((1seR%Ss%9p5 zO-G@HRscr;lXPZih8%i8#L&D)sYIflaDJMhHUIs!+P4JuLG3tJf3 z$TmX*ctwVhFTx)J_ELNIsyy?sUELe`!JPk?m&isgwi7J% zuPqEgEalo^fIbpoGf4GUI-VNM_?7BDgEj&@unt=hS?Mq&!wb~?8g^zmV9cLLLNiNY z6yN_VLyLX!<6hQMmg*IfO^7?z>HGo0!WK3J%a5X(Gp!6g+bi_J<)9LCJ!xr4CEWBA zH!o0BaKSbNyz`C1l6}d`TT~1x4E`IZ7 ztFI|5WJc2G)7Hdb*rhxO;4$0o(S{&}m)Gm{5;efhB0f^hT{RUDZXCbX*5&=pm-o zbtH56%-qXeCZCbAaFB?eRUojx(aRD8Jnt0cQ>Oy4Q!UcWLVWj90VV*5(WUMd!; zm>b&ztMz9_Wb_E7xxJH@?;AGvHonk;{rat5+TPYwoG<9IPcto7k%z| zhXrGZsWMbld?QQtOi`P}$zE2O84Hn>=|7sVYq$naNpfER(2qOQ{|ARAOMk=4biC|i zU)T<#?oZUD+KPu)o#Nch>iXEG-Yj!g3k zJ`J2!z9U+j8VZvC&|AKNVSuELgQ|W#R&`Z%!$@L%4|aHE$ksxJAMf)B;!D^ii3aoZ z{%4uQMd~*LxKN<}bIk44ms8#41y;lQa=JArdKbt2c#*I1iJk-&{#;YWobAl7WdN5Bj?kqw7Tm(k1tBxWYUCd=BoRMUxJV>h)gL(f~# z;e<*MVJ3x_Z=%+l4B#E46q!S?9LDsm7H5a0iLr&K7Ml$trD!y+xb~kiY}|yc%DX$O z8@_Z*JZoB3u&MHZ=E*=lB&NeS7>#l9bLJmQ_@N8|$f!P}*9oOBlO*ocaKmS%!;K;z zCSimCgI7vPBTm?HP|SZ`5&kyGNJ-0rlT%G5z%D2vBGgUnYQ~j=l*s7nO$PDwFi{iU z3e#3k&3A0N+edDMJR9{RbelxJpb$I0dNZOup0Vdlq+EyjUJJyH83)Kc z5yN#7PIxHWujKKx6y*FGAdudid&>HXikL|N zV78YlJ#Q8u(K{_ic)3W`pz5O_;acy7!}Rp1Bg^!5il(y_%<{KS4szdKvbt@T+Y3Nu zN6qXDU^shlF&M|wvZU^)^MbtxS7ifcywGiKS;>7~R5zP;wE3NW za`WWP3aLHdVyC@$HH7cQBF>bHvi~qQLLkV%bSZ&K(AFgVe=!@rKFYzt5I?C0FS$Ckj@_G3$IZ0xVQcw}D zV?n9M{7Rvoi6R)RNlJ05N;eRAV3n@ZF0-tkAv zLs|M1`0ixy9#8eHAm>pCstKX{m6%dtBslf_EwNDj_^)vkVC$rv84xbvgEwM$(-5A& z59WiF@9?w2e$DAR6+M{%l*d~gFtt!*vLiWB#V?>}4aEoE$yyzTZO&-dO|_CX!iJ9o z$V%$RvLu4+1-#!~)>-+|C?`%B{X?swC>aaEL)K@XB71>?iWDiA>SzW&YtHQcw$`;-7g&6Z2KO{5AybJN+heei33n+fx8tV`BKfai zjy$vdy!tFB)#OLd?aPmr;FsKj=4#_*5)PGvvJkmU!;oo^>9gdQGMp3L6$kpOr^{Ol zBi;03$3rJ4tkmxS#yTy&&1ue%u>)}t)6u*LW@_eYCKbLP?@bA#Rcsg{TJ1PgbkmeH zBAHT4ghm|zpD9u6hk(AXoKX(+4>YkOhVrP{b)~CDOa#{K(HPysIJAk<)8Jz;RWr5E zoTv-eF{PjLT9Zk^{IGei`=d$5q#o~u5IS%48YN>xMpg_!OXYXllUJ*Dm=W}n&YyLP z#EzB%W0Ch?CD4K;qnqtj`u6S@>|q3)(mw~)r)(`(^`6far_c>YvSX4CL@moB)q+ew z75~Kir*@FFi#(XHT_%7fO{hEjEG|B1A3#Zo%PrXua#Qw__bE2M+%+_%GXW*OtSMKN zi?=UkM860C7uRuqHorb7OJDDMt5e=F$!<^L=xu#Cj;Gh$X{9md+BsKj^f|_93fHn9 zHZ}N$k9Jo2Y);O-$UjtQ-?dgTPe7VdzgF(GZMr>4=n|I2mQ|aM@K13XE5kcXZt$Po z_wG-z*Q`)w%`o&@0prPi_-7mXr>o$$eQX!$Qn`x&jd1@lAG3Sc6d{2D(R0*pa5tdC zqa8Q@uo?BvcyR3fv6<9n3n6{v$|rF;9p=~WxwDgfy}V=ysed(mQ56fFw< z!=iWqGFm0$!d6DelSTAZ!fcy2^ynknd^%RhCF}}WRi_qxQIvkWAgyf&ZxEY-Nc_7s z&9%?m#BdC})dyv6`zK%b+}nW!!AE@gV)SK#=1Xbf2*GzK?E}NuQlbb!5d38C7nT4d z-|$Z3ES{Ey$a$(2&&e)v+N>J>i+R0n*Y99Jq_aNSl_^_N)?8~@cv+~Y1$<>qfNyyH z7o=JJ+Y+<~Q_HI<3eKM$-iJ0hLQ+CWG}{IepX*dH)S3Y9&SXZcWz&}T@8YlBK6tJ+ zZh#_Tn49H15(tiV!l#HKP$UFScRy(CLMuaAM*9`g?M_d6w z!r$a5fr->M>jLRbTb7hDu?;*)J&8w#tgfgPeGE(2G3iw=#V8+!dg`Ixq${kzKSK#e z1KGt2Fx(0W+G|Lg30ojj&fC?5&vc7ey86mWIjSWSu**eBz{=XXs;hYxnzNIJ))}pI zZ4aoNTTGs^pY0_Jn!|p)z9p3aZbXM1 zB-EE3)rFOng@;GuF}5=^n=S1RG+j}?QDS%LqYt*Il#JYK{i5EN{fXSZmOL*Q#d7b7 z5|V4V90ci;wt>_0df#yGO7D_$G%Xn_8>JNHQ5cIqU5%xUjdWXo2KRv}nmC35Xwad9 z?JtdGwVjqBjW&f{99$X<|FF-=oE$4F98PP}C`=|zt zKrlXG5%Qov=JKq&>W1Rt{eqtCK}xv zP!)&WFr292>sX@BoxgXx#f@^wpy#X$DOi&7h$S8ao^Fqg0nrEYmW!`w9!cY0q^P$N z&xFBeN1kGrf<}h4Jku*cESclv0l01U|I`BbE@c1d_>sVF&ld$#8GOP6R;&yVV>^p( zPvS>M48iFW1^7Ik{5#lYat7xYOf-MWw?75Djr>pa_ZyfS7rtI>mY#pWiv#54FQ0aK zq5P=g#4#5A22kkIIiR%-A~BWYuvxtCQ8XRaKsW1t;o0-wwENt@NB{cEYR<)=IgokC zM4$1#V#$B}alo`P6#M%L@FQ~Xedui3Tg%dHDHJru^*M?$*L!GMZIO$hirlIT7Q+sQ zH6g^1x32t8jz2wzDLKksG*?c9Z5MtNAvu|OZE>0m5muH+(&C-H)9w&6m+|XiqmYub zx%JkC&fyBO6Y4jy;&?p%$HfI=_(4NAuJSKvdrKPJO4Jyiky`LhfCHy_$uN+kjhWbw zd)uWmYP6OqOLzFLS&w#PM3a$W{at|Y@xh_TpEOFl0+` zs`nMlWVTulzr8Cnpo#UlI$FMsGVZ!m$poAeD{RW;%dkf+a!#_NXAJ$Ffn~BNa_XIT zTX2TDeO8dwEjo-Vg<$pC`!VeD)YV&rI6e~CRKiRsG&3v^?lUsKvS#;{*8|r0yQtr5 z(HVp6mEOMu17Z0yKFkq;|Jv$I*A5YH?Al@mT1gb0$=xp&UE%tO=(D0}d^-c_|y#V#yp45Gb$L`#lYzlW3_V~^{N^@N=hrHT?KVbgQ!3qFJB zZEla$XZIaumEPvnhr}(v2l}1n#)pi{N=DG6IEcWp79SMV8eA)WBpAmjWPnV&^mBXN#7I`$Mv`kX+*S@=gRW@oflqnyPFg$R}9_|e!D z22s;UL&C3FbtI>bWMH{pF`k%!epBwAGw;%95z)SJsa%wPXma|Dv!x2{>4(fRH7H?_ zKlFY`e3~m~sZfl1acCPS`&~)E;i*J@CE~j!}n-U7ijj1tU*&c>zf% z4pitwrC`x$!Kq3X==J%*E5Nu~7Kf;8QF9zX`g8KUVS#;AxAn2;JV2XzUiqXBrvXuN zJ0heoq{2pw*-S8GcQP=>LUw>!G&X{4JIMUxR zC^(85*mbd}YQTa7Wc4^wTs|gzeL({OfRG4DGqx=UoF!;d5WbfU7$Ue5(E22B7kGGh z$Xb4!aTta8#xf-M2xozUgM45f$YI#ieg>FmoV}I?jOyq%gnF6jr2!hul@RtF9?l*GOxH}|b{DV^;e3n3 zet*%9(5b&VgupzB@!j}m9=X!raHySAV8~Ylm}F2L2tFWFWEV5wcPu3Jfb$?nge>t$ zAevA~X|ON>kiYP9g&zPZQrPEF^5P2w;AsDKujV2o&jj{5{1JNFOq3L@tATvUmWzz1V&2K1QgK0y(6O6_e~h-CP_{0;H|S7zVX}g3AyD)A4>H$;G;G zZg@PTnG7`PfT30#RJ0vAxlz!3vI>x0!)Bo(UmIo<&`uxv+5Aa(aLVu=2y#An6;=op z!qLc{3QFNZVJ<+%fjIt42SVuYSqRenoct-q1}d22nzpCG*+ddq{zg;#WMLUP&{xzUofazKUhAIyU1GL zO@B1;hXH_2s3LxC;0m-pr<5W~Ft3>DM`J7|j*{sXYYK}#q z+v?tKyE$JOcO!YOKGd&e`wFph*veS~K9a+Os$UuY`(hj5Iyrce${N*cZ9EEst5Y-3 zvr#j<&#>86KBP(-;&YZF*y?DX(KcihTWP&@TKVMBWv^jyG(PWgM8n*5kIY;?>2A}+!#Hqj z?MAJf{u&ga5=qR z8v%~)9@hT?hx?e~NMLC`R!}z8;tydaaRE@7$<>vVE~I3J1CzKNKiOuOf};PXA+%&_ zsQ?O^Sp*iT1ahxlDqnB|H(e*MZ%QP1r5nqmve_cCE1#{_vq68M8j!is1W`sWcXxE^ z=Z5Gt9*vejv@=qUZSdxbEphcJKXVx?aL^fPK0S_pD^s zt^2J*8ZrQ?S$h;PWOy4;Nz%UM8N8mkl(@O64#ZM3+hm<#`{T7tn2v!FhkE5IAs zWkZ^}E*9M|KDk@-{e7L9%L+;X=-}}|x?O$wxb843v>x^})n6Uc+V*SL-Y%?+(9b6j zaKSBW23H{=)VpnQ6?%0lF`CNhqax}#=h#LFJdp7D(Av6f$@^7xn9s07cX{{M3M6e> zDYO+QmJb8mu*FBt;f1) z;5X0AXE)tgvvNN`Y9t%zI^fni7lS(F?b<<5jzx=pU5_f-AUm7*8J-2qIY`IYy=g^4Bd{{*Iv^cGqzb9ZjwpB? zsz(T`J*Ospwx*QJlzKv`y5DZW9+elURCBmIo*OsvAmc)|nF`*OhZVD*ed+wu25ePG zsuB5sJ6rA)WLP=S$p%YqXClOq=jgMFOPF?ME<(u#AESqy<#rn$?t_LdDg!Pu?*wE) zmTASXt`T{H#{Zw6767w3E#DMV854tT7R`u&Qg*m8IwG;1cB7rlD7ka0T~m1VAd&J8 zue{*%X-S{LM0$%$$_XNu0$Q zS&3AgOc1w!I?_eCWM^%&mC<_rB>`WjN50;&LS(4{JA6M$7(ic%Ge1;5wz4n-fp?(f zoS$!+X2LQ(Qgz7kn?>4n0xYjOA*^KL#4BpgjC9S@nPxHpzEZW9h4~TWWr!A~R;jIH zQD>Ujy2zoXuPK8jsOcZjbNad1XIWp~@7^5Yo|(~upSGZie^8yuQ7&Vc$I9Gen- zTDq9T@<}Iw4PcEZ?QW=rt{; z&c4y2^rzY>yQLw(z?>AVJ!o}sL+%72)67_{eK52z*O9zZyu13j9i*xc2StRap0)p}vyFL5 zp_Oo+Xl0FKiCLW%Qrr1II$igu|KcxE{AZouwX{X!#RpfG7*XG1<6cTG?nI8rIc78V zL>|G)9f0}ySY20Z@!^yY-~e4`_i_$)h}Sb(waQLyw5Dbv^a5+6D}N$WkKHUQ8k@%T zcS>Q2=I)BWgq*xgiRN4k@|5`yN$ORGJBsTCXR>Qh_R7|t()7$z#~2kiE-^dOln&T( zoJjLSSSovkVZo+G5qrsK1-u z-n-Li_DcnPFC$AA1oMb&X0hglw|XP1E_#|-0KW*8n%9UNeQ%U&V|~SOs^CpNt{=E5 z1wdZ_dzH;1n@iVr?p)_)%cd{g+D>1kC3F>eWLn2L*F*HjDt6L%@VK6khHsBXwxT?J z?84-t0$e68(aK6~h*U^W7b@Khnoj}?hWLulTu%h1Tp5k9)`lQpBXXYiG{_6V^ zqvjWic^9cTs9jnDxW&eaK%f_gRGu`#1wc7+h>%u_v11Z*&=j5IaNN#gLPc+_ZC&A$ zPU+l*7SM5go~(+!U~?RY#6fo(-;KD|kJ>xUEW2E169C(6}*G4QN{e1?E9@Os76 zGU~f=Rt_&-kG6Uc_FADOn9Z4Y+BvS>5cqa_EPjdUKfeLFxOLvBZ84?@g0_#Q0&3ki zGs8?r>k_~#Belfe`l$1cHkG4y_dN=N*~tJ>?(^KTxUub;*vU_@KeBq{PnL;Bvc>#Kht!S#&MC z4R=g>mYF|te)3EuW!H-1KFa;2^kjfI(ASzM?ddo3@}OY_8N<8;d&pbxM^JGX!G{_) z|0%v(WDd@dx+{W%4&PbhiC^Qli#no6qT-tD=+4sMQLu$m0&#JwJk=jttHpS#LMZN; z!9Qw{kvSLX9kB%U86ukjo*I8P&s2EL&y$Qtzn)UP`9Sdi&*my3Uj5VGSuwE$qmt;1 zcc;f^Bg`}|ZaFwgaxZBj??Xq8w^Zr!(j-GnxSl~XX!mw8`JazRT-=)6pCNWPa*3#| z{ksMQP7%cgon++X-`^2UqlGd2jv35Yvm(d5|9xO96yf1lD0$^9(jfht=Y zr9B6FAH0$QiE<~Mb+QxEBT81!`7h`PngqGB6zf%ru-0&&aOx5yCl0YSVVyb)Y*s+oRHt31oX?{&F+#n6SYiAZD0gYdT)ZHEPT-$3g_5<-+*rc6!UgI^{#eKWQ3i|$HPb2b5X2jj;~!~%;&ehu zDH@~%0TKl}$wVfTyRcJ5W1yf5{zTQM=xVUnt*<>3l2-KVprB4qPD5LLU5HzpPH+-?g!@+tC|TZSGz6GPUld%+EkE68C%o zD2=?9%z~|HQQ^2&r=$!SL?Z`R6_G5$W6KeBvcvvSQE^O(wINIfr;n4N*U0_lAyyXuYpQ zw^(Q6iNep_#nWd;^~Yg1=e8~{5BEOUu0n=g8^Bss%4Q})WntIwOYHLW{-D6mBhd!e z)-~d+0G%5W%-f6U(#pfbxzVoa5a9dtvbX#FTz*zhPnZ8odR+E|`=`RLbMgn!cltDm zR*KJ%OMmlIt=;|O;QwjOn0uA#d5V#-Ryz694Z`sKRi{y#BF}NVnjM#_9(Hph`8hsz z9Ql0U`%RPJB=$~i*Y5|;{Yabr0)c|&p{RFi&Zu^Ykizj*U?TEL7W;|%ma%!3YS`KPMSqNXUgf zIO#ugD2KvWB&%6IuW`vgd@JiFKMr`yVSvoi?L)_(B>2|YMK5=6ce07_DnMH~p`7SP z4E{^s*wsZ__wM!+q1~;uNaJw*cMpk{Y2wHAbwHWfbicvR%Ps#_{iuU|P{7__09!0Y z=SK!=F}z>3r*r9=Uv1;TWvQp?CtnslMxLPG=Xf-e_UH5IyxtmbT($ddjC&jEH{i_d z&-UUzSJ$QhaopA8U%nB<4EUC?j&%L$ifIo&tt@cC4rJIG)T=i+8j@_73)FHTW~#Y3 z7@DEN1MqK-WT#%Awe73kq z6q@FF1O=;MQD0dSq*zoB9`bW#B>*tFyzEqd)A^5u-hUl40rzCpOuBvB2YQIv-3PB!X)TpG9CVTOr^<+wCE}?$V@EiY&n_k zUkd)n*$T|VLLF^IJd-d<7UL5NgsGSS76woPhCvaXsbO%&HnXpB3%z$m#sC+)e(eusv9?_b-AQ(Ki1+R6wVo?eRxtBuei zA1S#lOVyb(AgGsxY4(!+IvsjBCtG!HIo@BKR(iiV{VH66x~>l>5Vyvo1(9bq^^W?| zqe>>7f+A;)#)tD4j~3`MbO2Wcxba~QZ17!Uk%G`MB}jeoZ?qEpm#O+CgJ$<`9F8mW znPvBR+gbml=riGAqff~{#n=pgk;!hENgQ78kEuyp+QUfb^UQ8TjSrroT>@AqcWT6_EtWip zr+sQ1(kVZN_2{-4@1S7S;`&)_uPn8>YKwYcB_dR9aXo0t309A^t#hrQJskZ_|5ktW zQH+_ZH);4@c$yY5GA~SrgbFlH!*tH@AhP-3avwg#lanlzZf?0zO<^WF*JbHz^m2Hu zA_z5Q`dSOQEv%K^!T@Mv63Wcocsf#wAm@+!yH7aDDD`Tnt}c!&lFnqhXDGEt6`@%j zBq_=Y(H085+iaaBvce?gD$;*APPDoxOsgMzv{=Zw#$VX-@Wxh@-5VscC>@LrJvOh5 zjG|%1;(8VYPHF!TQ>v9FrjEU#jZ-amfmC+;yt)nkvO*@nUcZyGW-La)JP3IXx%8I)inr11~zRGOv! zmYRxy9`x@wP!qa_rFmAfUB;|dQB777kKd3`EtDu&-F@8RB*gETO>S?QecLrY&GP=> za1d_k4B0i1|HROjgyRK_w{x9>oEqsK5jKmvUXC?kE+VZYDhql?rDb`mt zhgPwL^oFYY)>(KFTT8RqK4qW!9MSNYv!jC$ppdZ0bi|9-Yv& zo_m$}3EK2UJCRd!Y!A5A<6AxY%7`EuujWlJYjIhq<$Sww3p`X&S-b}c{d{kIaGG6_sB zUUrE2=w2=&egpcKZbzK>0wwR$wla0Rj~(^6C2!nutFrRYCci8rlM|E1ZoaHt7_$rL z;y&y$lJx;f81(|t=11Ref|)s{9cjyxQ%O>(unq z4NkcYzi1+Fq9K#E7fP_zDyY4SwuxyGslAIqQ>*z3@RBA{waWAH%)YR4rAiBUOH;~s zb>;8VT^!?n=d$vX=zg^(V)8NBd=b$iF34=}RwXR`-@j{!Jq(6&0Sk z?jQhYMwUu?pHGv~0@w1fqw1G2o^S>4x33;D)X$12 ze#K@OMPCC`Kd{=0xV&@Tiqd8xSUrTe3b+Lr%V&jl*HQmZQW)A_1rhE^{7bC=mjWDv zzqxP)M@T-=P7RnjM%%d%A@@19Vt5@WTl#d{a9{THw!*%c(6xF!x(&&l39f#A^MxLJfW;nQ z^Tkl!k>!Z|z;Q>{)`QF*a6ipPz22Wo>^a}tB@1@Z{m(noBxy{Xhh<8eJxcAax zfXI8Pk?)hd$PeD*tkBQa<7@|7)S%fK*kL_2g#k&+$jKVWzei{pFtG{3ucL1n{JRGJ zr7w}qgwAWMeigIL1ix4hxibX4hRezX8)iUw6&BksD0s zLWFh1z}VM$YP}CRyS?~s0RVknZ|shI>8|dUef{ysg2)KXWIyFaQ_XxG$jFT-FEURs_>!O+-_jZx{_*;?uU?o~cG#Nho z%TyTl+Jq3S|G`rmVcrZSrrcTI$62koZ>0rpo#pNYn{tuhK)>!}m diff --git a/resources/3rdparty/glpk-4.57/doc/gmpl.tex b/resources/3rdparty/glpk-4.65/doc/gmpl.tex similarity index 99% rename from resources/3rdparty/glpk-4.57/doc/gmpl.tex rename to resources/3rdparty/glpk-4.65/doc/gmpl.tex index 6c468603d..41e92e913 100644 --- a/resources/3rdparty/glpk-4.57/doc/gmpl.tex +++ b/resources/3rdparty/glpk-4.65/doc/gmpl.tex @@ -4,9 +4,9 @@ % This code is part of GLPK (GNU Linear Programming Kit). % % Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -% 2009, 2010, 2011, 2013, 2014, 2015 Andrew Makhorin, Department for -% Applied Informatics, Moscow Aviation Institute, Moscow, Russia. All -% rights reserved. E-mail: . +% 2009, 2010, 2011, 2013, 2014, 2015, 2016 Andrew Makhorin, Department +% for Applied Informatics, Moscow Aviation Institute, Moscow, Russia. +% All rights reserved. E-mail: . % % GLPK is free software: you can redistribute it and/or modify it % under the terms of the GNU General Public License as published by @@ -22,6 +22,11 @@ % along with GLPK. If not, see . %*********************************************************************** +% To produce gmpl.pdf from gmpl.tex run the following two commands: +% latex gmpl.tex +% dvipdfm -p letter gmpl.dvi +% Note: You need TeX Live 2010 or later version. + \documentclass[11pt]{report} \usepackage{amssymb} \usepackage[dvipdfm,linktocpage,colorlinks,linkcolor=blue, @@ -71,12 +76,12 @@ urlcolor=blue]{hyperref} \vspace{0.5in} \begin{LARGE} -\sf for GLPK Version 4.57 +\sf for GLPK Version 4.58 \end{LARGE} \vspace{0.5in} \begin{Large} -\sf (DRAFT, October 2015) +\sf (DRAFT, February 2016) \end{Large} \end{center} @@ -93,9 +98,9 @@ GNU. \noindent Copyright \copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, -2008, 2009, 2010, 2011, 2013, 2014, 2015 Andrew Makhorin, Department -for Applied Informatics, Moscow Aviation Institute, Moscow, Russia. All -rights reserved. +2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016 Andrew Makhorin, +Department for Applied Informatics, Moscow Aviation Institute, Moscow, +Russia. All rights reserved. \noindent Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, @@ -614,6 +619,7 @@ digits\\ {\tt str2time(}$s${\tt,} $f${\tt)}&converting character string $s$ to calendar time (for details see Section \ref{str2time}, page \pageref{str2time})\\ +{\tt tan(}$x${\tt)}&$\tan x$, tangent of $x$ (in radians)\\ {\tt trunc(}$x${\tt)}&truncating $x$ to nearest integer\\ {\tt trunc(}$x${\tt,} $n${\tt)}&truncating $x$ to $n$ fractional decimal digits\\ diff --git a/resources/3rdparty/glpk-4.65/doc/gmpl_es.pdf b/resources/3rdparty/glpk-4.65/doc/gmpl_es.pdf new file mode 100644 index 0000000000000000000000000000000000000000..126f9e876549ca72c3d2e59a40680aa3bb21a208 GIT binary patch literal 234471 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 `{t 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