Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "raw_2d_array.h"
00020 #include "munkres.h"
00021
00022 template <typename T, const unsigned int dimention>
00023 Matrix <T> convert_raw_2d_array_to_munkres_matrix (const T array [dimention][dimention])
00024 {
00025 Matrix <T> matrix (dimention, dimention);
00026 for (int i = 0; i < dimention; ++i) {
00027 for (int j = 0; j < dimention; ++j) {
00028 matrix (i, j) = array [i][j];
00029 }
00030 }
00031
00032 return matrix;
00033 };
00034
00035 template <typename T, const unsigned int dimention>
00036 void fill_raw_2d_array_from_munkres_matrix (T array [dimention][dimention], const Matrix <T> & matrix)
00037 {
00038 for (int i = 0; i < dimention; ++i) {
00039 for (int j = 0; j < dimention; ++j) {
00040 array [i][j] = matrix (i, j);
00041 }
00042 }
00043 };
00044
00045 template <const unsigned int dimension>
00046 void solve(double m [dimension][dimension])
00047 {
00048 auto matrix = convert_raw_2d_array_to_munkres_matrix<double, dimension>(m);
00049 Munkres munkres;
00050 munkres.solve (matrix);
00051 fill_raw_2d_array_from_munkres_matrix<double, dimension>(m, matrix);
00052 };