diff -r cb2891afe526 -r 998e8def9676 src/demo/lp_maxflow_demo.cc --- a/src/demo/lp_maxflow_demo.cc Fri Apr 22 16:20:12 2005 +0000 +++ b/src/demo/lp_maxflow_demo.cc Fri Apr 22 17:47:01 2005 +0000 @@ -1,13 +1,26 @@ -#include #include #include + +#ifdef HAVE_GLPK +#include +#elif HAVE_CPLEX +#include +#endif + using namespace lemon; +#ifdef HAVE_GLPK +typedef LpGlpk LpDefault; +#elif HAVE_CPLEX +typedef LpCplex LpDefault; +#endif + + template double maxFlow(const G &g,const C &cap,typename G::Node s,typename G::Node t) { - LpGlpk lp; + LpDefault lp; typedef G Graph; typedef typename G::Node Node; @@ -17,7 +30,7 @@ typedef typename G::OutEdgeIt OutEdgeIt; typedef typename G::InEdgeIt InEdgeIt; - typename G::template EdgeMap x(g); + typename G::template EdgeMap x(g); lp.addColSet(x); for(EdgeIt e(g);e!=INVALID;++e) { @@ -26,22 +39,23 @@ } for(NodeIt n(g);n!=INVALID;++n) if(n!=s&&n!=t) { - LpGlpk::Expr ex; + LpDefault::Expr ex; for(InEdgeIt e(g,n);e!=INVALID;++e) ex+=x[e]; for(OutEdgeIt e(g,n);e!=INVALID;++e) ex-=x[e]; lp.addRow(ex==0); } { - LpGlpk::Expr ex; + LpDefault::Expr ex; for(InEdgeIt e(g,t);e!=INVALID;++e) ex+=x[e]; for(OutEdgeIt e(g,t);e!=INVALID;++e) ex-=x[e]; lp.setObj(ex); } lp.max(); +#ifdef HAVE_GLPK lp.presolver(true); - lp.messageLevel(3); +#endif lp.solve();