From 46c21bf1134f918a2de1828b138922c8afba777f Mon Sep 17 00:00:00 2001 From: Benoit GAUZERE Date: Thu, 16 Nov 2017 17:46:39 +0100 Subject: [PATCH] Add of a first binder to C++ implementations of LSAP algorithms --- c_ext/Makefile | 5 +++++ c_ext/lsap.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ c_ext/lsape_binders.py | 23 +++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 c_ext/Makefile create mode 100644 c_ext/lsap.cpp create mode 100644 c_ext/lsape_binders.py diff --git a/c_ext/Makefile b/c_ext/Makefile new file mode 100644 index 0000000..71c3eb6 --- /dev/null +++ b/c_ext/Makefile @@ -0,0 +1,5 @@ +# You must specify your env variable LSAPE_DIR +#LSAPE_DIR=/home/bgauzere/Téléchargements/lsape/include/ + +liblsap.so:lsap.cpp + g++ -fPIC -I/home/bgauzere/Téléchargements/lsape/include/ -shared lsap.cpp -o liblsap.so -O3 -I$(LSAPE_DIR) diff --git a/c_ext/lsap.cpp b/c_ext/lsap.cpp new file mode 100644 index 0000000..712a092 --- /dev/null +++ b/c_ext/lsap.cpp @@ -0,0 +1,43 @@ +/* +Python wrapper +*/ + +#include "hungarian-lsape.hh" +#include "hungarian-lsap.hh" + +#include + +extern "C" int lsap(double * C, const int nm, long * rho, long * varrho){ + double * u = new double[nm]; + double * v = new double[nm]; + + int * rho_int = new int[nm]; + int * varrho_int = new int[nm]; + + hungarianLSAP(C,nm,nm,rho_int,u,v,varrho_int); + //Find a better way to do + for (int i =0;i