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
38
39
40
|
/* 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);
int EMD_wrap_return_sparse(int n1, int n2, double *X, double *Y, double *D,
long *iG, long *jG, double *G, long * nG,
double* alpha, double* beta, double *cost, int maxIter);
#endif
|