-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathhungarian.hpp
33 lines (22 loc) · 1.64 KB
/
hungarian.hpp
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
#ifndef HUNGARIAN_HPP_INCLUDED
#define HUNGARIAN_HPP_INCLUDED
#include <Eigen/Dense>
typedef Eigen::Matrix<bool, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor> MatrixXb;
void findMatching(Eigen::MatrixXd& m, Eigen::VectorXi& assignment);
void step2a(Eigen::VectorXi& assignment, Eigen::MatrixXd& m, MatrixXb& starMatrix,
MatrixXb& newStarMatrix, MatrixXb& primeMatrix, Eigen::VectorXi& coveredColumns,
Eigen::VectorXi& coveredRows, int nOfRows, int nOfColumns, int minDim);
void step2b(Eigen::VectorXi& assignment, Eigen::MatrixXd& m, MatrixXb& starMatrix,
MatrixXb& newStarMatrix, MatrixXb& primeMatrix, Eigen::VectorXi& coveredColumns,
Eigen::VectorXi& coveredRows, int nOfRows, int nOfColumns, int minDim);
void step3(Eigen::VectorXi& assignment, Eigen::MatrixXd& m, MatrixXb& starMatrix,
MatrixXb& newStarMatrix, MatrixXb& primeMatrix, Eigen::VectorXi& coveredColumns,
Eigen::VectorXi& coveredRows, int nOfRows, int nOfColumns, int minDim);
void step4(Eigen::VectorXi& assignment, Eigen::MatrixXd& m, MatrixXb& starMatrix,
MatrixXb& newStarMatrix, MatrixXb& primeMatrix, Eigen::VectorXi& coveredColumns,
Eigen::VectorXi& coveredRows, int nOfRows, int nOfColumns, int minDim, int row, int col);
void step5(Eigen::VectorXi& assignment, Eigen::MatrixXd& m, MatrixXb& starMatrix,
MatrixXb& newStarMatrix, MatrixXb& primeMatrix, Eigen::VectorXi& coveredColumns,
Eigen::VectorXi& coveredRows, int nOfRows, int nOfColumns, int minDim);
void buildassignmentvector(Eigen::VectorXi& assignment, MatrixXb& starMatrix, int nOfRows, int nOfColumns);
#endif