blob: c0fe7a3b08c45f5caf14edbfe4f6270e0635e9a9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
/* This file is a c++ wrapper function for computing the transportation cost
* between two vectors given a cost matrix.
*
* It was written by Antoine Rolet (2014) and mainly consists of a wrapper
* of the code written by Nicolas Bonneel available on this page
* http://people.seas.harvard.edu/~nbonneel/FastTransport/
*
* It was then modified to make it more amenable to python inline calling
*
* Please give relevant credit to the original author (Nicolas Bonneel) if
* you use this code for a publication.
*
*/
#ifndef EMD_H
#define EMD_H
#include <iostream>
#include <vector>
#include "network_simplex_simple.h"
using namespace lemon;
typedef unsigned int node_id_type;
enum ProblemType {
INFEASIBLE,
OPTIMAL,
UNBOUNDED,
MAX_ITER_REACHED
};
int EMD_wrap(int n1,int n2, double *X, double *Y,double *D, double *G, double* alpha, double* beta, double *cost, int maxIter);
#endif
|