Add soplex and scip (LP and MIP solver)

This commit is contained in:
Johannes Schlatow
2016-03-18 21:32:42 +01:00
committed by Norman Feske
parent 053a038bf8
commit cce6a99fc7
12 changed files with 449 additions and 0 deletions

View File

@@ -0,0 +1 @@
INC_DIR += $(call select_from_ports,scip)/include

214
lib/mk/scip.mk Normal file
View File

@@ -0,0 +1,214 @@
SCIP_DIR = $(call select_from_ports,scip)/src/lib/scip/src
LIBS += libc zlib
INC_DIR += $(SCIP_DIR)
# plugin files
SRC_C = scip/branch_allfullstrong.c \
scip/branch_cloud.c \
scip/branch_fullstrong.c \
scip/branch_inference.c \
scip/branch_leastinf.c \
scip/branch_mostinf.c \
scip/branch_pscost.c \
scip/branch_random.c \
scip/branch_relpscost.c \
scip/cons_abspower.c \
scip/cons_and.c \
scip/cons_bivariate.c \
scip/cons_bounddisjunction.c \
scip/cons_conjunction.c \
scip/cons_countsols.c \
scip/cons_cumulative.c \
scip/cons_disjunction.c \
scip/cons_indicator.c \
scip/cons_integral.c \
scip/cons_knapsack.c \
scip/cons_linear.c \
scip/cons_linking.c \
scip/cons_logicor.c \
scip/cons_nonlinear.c \
scip/cons_or.c \
scip/cons_orbitope.c \
scip/cons_pseudoboolean.c \
scip/cons_quadratic.c \
scip/cons_setppc.c \
scip/cons_soc.c \
scip/cons_sos1.c \
scip/cons_sos2.c \
scip/cons_superindicator.c \
scip/cons_varbound.c \
scip/cons_xor.c \
scip/dialog_default.c \
scip/disp_default.c \
scip/heur_actconsdiving.c \
scip/heur_clique.c \
scip/heur_coefdiving.c \
scip/heur_crossover.c \
scip/heur_dins.c \
scip/heur_dualval.c \
scip/heur_feaspump.c \
scip/heur_fixandinfer.c \
scip/heur_fracdiving.c \
scip/heur_guideddiving.c \
scip/heur_zeroobj.c \
scip/heur_intdiving.c \
scip/heur_intshifting.c \
scip/heur_linesearchdiving.c \
scip/heur_localbranching.c \
scip/heur_mutation.c \
scip/heur_nlpdiving.c \
scip/heur_objpscostdiving.c \
scip/heur_octane.c \
scip/heur_oneopt.c \
scip/heur_proximity.c \
scip/heur_pscostdiving.c \
scip/heur_rens.c \
scip/heur_randrounding.c \
scip/heur_rins.c \
scip/heur_rootsoldiving.c \
scip/heur_rounding.c \
scip/heur_shiftandpropagate.c \
scip/heur_shifting.c \
scip/heur_simplerounding.c \
scip/heur_subnlp.c \
scip/heur_trivial.c \
scip/heur_trysol.c \
scip/heur_twoopt.c \
scip/heur_undercover.c \
scip/heur_vbounds.c \
scip/heur_veclendiving.c \
scip/heur_zirounding.c \
scip/message_default.c \
scip/nodesel_bfs.c \
scip/nodesel_breadthfirst.c \
scip/nodesel_dfs.c \
scip/nodesel_estimate.c \
scip/nodesel_hybridestim.c \
scip/nodesel_restartdfs.c \
scip/nodesel_uct.c \
scip/presol_boundshift.c \
scip/presol_components.c \
scip/presol_convertinttobin.c \
scip/presol_domcol.c\
scip/presol_dualinfer.c\
scip/presol_gateextraction.c \
scip/presol_implics.c \
scip/presol_inttobinary.c \
scip/presol_trivial.c \
scip/prop_dualfix.c \
scip/prop_genvbounds.c \
scip/prop_obbt.c \
scip/prop_probing.c \
scip/prop_pseudoobj.c \
scip/prop_redcost.c \
scip/prop_rootredcost.c \
scip/prop_vbounds.c \
scip/reader_bnd.c \
scip/reader_ccg.c \
scip/reader_cip.c \
scip/reader_cnf.c \
scip/reader_fix.c \
scip/reader_fzn.c \
scip/reader_gms.c \
scip/reader_lp.c \
scip/reader_mps.c \
scip/reader_opb.c \
scip/reader_osil.c \
scip/reader_pip.c \
scip/reader_ppm.c \
scip/reader_pbm.c \
scip/reader_rlp.c \
scip/reader_sol.c \
scip/reader_wbo.c \
scip/reader_zpl.c \
scip/sepa_cgmip.c \
scip/sepa_clique.c \
scip/sepa_closecuts.c \
scip/sepa_cmir.c \
scip/sepa_flowcover.c \
scip/sepa_gomory.c \
scip/sepa_impliedbounds.c \
scip/sepa_intobj.c \
scip/sepa_mcf.c \
scip/sepa_oddcycle.c \
scip/sepa_rapidlearning.c \
scip/sepa_strongcg.c \
scip/sepa_zerohalf.c
# library files
SRC_C += scip/branch.c \
scip/buffer.c \
scip/clock.c \
scip/conflict.c \
scip/cons.c \
scip/cutpool.c \
scip/debug.c \
scip/dialog.c \
scip/disp.c \
scip/event.c \
scip/fileio.c \
scip/heur.c \
scip/history.c \
scip/implics.c \
scip/interrupt.c \
scip/intervalarith.c \
scip/lp.c \
scip/mem.c \
scip/misc.c \
scip/nlp.c \
scip/nodesel.c \
scip/paramset.c \
scip/presol.c \
scip/presolve.c \
scip/pricestore.c \
scip/pricer.c \
scip/primal.c \
scip/prob.c \
scip/prop.c \
scip/reader.c \
scip/relax.c \
scip/retcode.c \
scip/scip.c \
scip/scipdefplugins.c \
scip/scipgithash.c \
scip/scipshell.c \
scip/sepa.c \
scip/sepastore.c \
scip/set.c \
scip/sol.c \
scip/solve.c \
scip/stat.c \
scip/tree.c \
scip/var.c \
scip/vbc.c \
tclique/tclique_branch.c \
tclique/tclique_coloring.c \
tclique/tclique_graph.c \
dijkstra/dijkstra.c \
xml/xmlparse.c
# LP interface (soplex)
SOPLEX_DIR = $(call select_from_ports,soplex)/src/lib/soplex/src
INC_DIR += $(SOPLEX_DIR)
LIBS += stdcxx soplex
SRC_CC += lpi/lpi_spx2.cpp
SRC_C += scip/bitencode.c \
blockmemshell/memory.c \
scip/message.c
# NLP Interface
SRC_C += nlpi/nlpi.c \
nlpi/nlpioracle.c \
nlpi/expr.c \
scip/misc.c \
scip/intervalarith.c \
scip/interrupt.c \
scip/message.c \
blockmemshell/memory.c \
nlpi/exprinterpret_none.c \
nlpi/nlpi_ipopt_dummy.c
vpath %.c $(SCIP_DIR)
vpath %.cpp $(SCIP_DIR)
SHARED_LIB = yes

64
lib/mk/soplex.mk Normal file
View File

@@ -0,0 +1,64 @@
SOPLEX_DIR = $(call select_from_ports,soplex)/src/lib/soplex/src/
LIBS += libc zlib gmp stdcxx libm
INC_DIR += $(SOPLEX_DIR)
SRC_CC = changesoplex.cpp \
clufactor.cpp \
didxset.cpp \
enter.cpp \
gzstream.cpp \
idxset.cpp \
leave.cpp \
mpsinput.cpp \
nameset.cpp \
rational.cpp \
slufactor.cpp \
solverational.cpp \
solvereal.cpp \
soplex.cpp \
soplexlegacy.cpp \
spxautopr.cpp \
spxbasis.cpp \
spxboundflippingrt.cpp \
spxbounds.cpp \
spxchangebasis.cpp \
spxdantzigpr.cpp \
spxdefaultrt.cpp \
spxdefines.cpp \
spxdesc.cpp \
spxdevexpr.cpp \
spxequilisc.cpp \
spxfastrt.cpp \
spxfileio.cpp \
spxgeometsc.cpp \
spxgithash.cpp \
spxharrisrt.cpp \
spxhybridpr.cpp \
spxid.cpp \
spxlpbase_rational.cpp \
spxlpbase_real.cpp \
spxmainsm.cpp \
spxout.cpp \
spxparmultpr.cpp \
spxquality.cpp \
spxscaler.cpp \
spxshift.cpp \
spxsolve.cpp \
spxsolver.cpp \
spxstarter.cpp \
spxsteeppr.cpp \
spxsumst.cpp \
spxvecs.cpp \
spxvectorst.cpp \
spxweightpr.cpp \
spxweightst.cpp \
spxwritestate.cpp \
statistics.cpp \
timer.cpp \
unitvector.cpp \
updatevector.cpp
CC_WARN =
vpath %.cpp $(SOPLEX_DIR)
SHARED_LIB = yes