diff options
author | aje <leo_g_autheron@hotmail.fr> | 2017-08-29 15:38:11 +0200 |
---|---|---|
committer | aje <leo_g_autheron@hotmail.fr> | 2017-08-29 15:38:11 +0200 |
commit | 3cecc18f53453e79ccc00484e6cbfaa5643f269c (patch) | |
tree | 1d9879cb0ed12d280b14121ccad90946682465f1 /ot/lp/EMD_wrapper.cpp | |
parent | a2ec6e55e458c719484e86a4e6a6e764c2e38dc8 (diff) |
Changes to LP solver:
- Allow to modify the maximal number of iterations
- Display an error message in the python console if the solver encountered an issue
Diffstat (limited to 'ot/lp/EMD_wrapper.cpp')
-rw-r--r-- | ot/lp/EMD_wrapper.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/ot/lp/EMD_wrapper.cpp b/ot/lp/EMD_wrapper.cpp index cad4750..83ed56c 100644 --- a/ot/lp/EMD_wrapper.cpp +++ b/ot/lp/EMD_wrapper.cpp @@ -15,11 +15,10 @@ #include "EMD.h" -void EMD_wrap(int n1,int n2, double *X, double *Y,double *D, double *G, double *cost) { +int EMD_wrap(int n1,int n2, double *X, double *Y,double *D, double *G, double *cost, int numItermax) { // beware M and C anre strored in row major C style!!! int n, m, i,cur; double max; - int max_iter=10000; typedef FullBipartiteDigraph Digraph; DIGRAPH_TYPEDEFS(FullBipartiteDigraph); @@ -46,7 +45,7 @@ void EMD_wrap(int n1,int n2, double *X, double *Y,double *D, double *G, double * std::vector<int> indI(n), indJ(m); std::vector<double> weights1(n), weights2(m); Digraph di(n, m); - NetworkSimplexSimple<Digraph,double,double, node_id_type> net(di, true, n+m, n*m,max_iter); + NetworkSimplexSimple<Digraph,double,double, node_id_type> net(di, true, n+m, n*m, numItermax); // Set supply and demand, don't account for 0 values (faster) @@ -116,5 +115,5 @@ void EMD_wrap(int n1,int n2, double *X, double *Y,double *D, double *G, double * }; - + return ret; } |