std_2d_array.cpp
Go to the documentation of this file.
00001 /*
00002  *   Copyright (c) 2007 John Weaver
00003  *
00004  *   This program is free software; you can redistribute it and/or modify
00005  *   it under the terms of the GNU General Public License as published by
00006  *   the Free Software Foundation; either version 2 of the License, or
00007  *   (at your option) any later version.
00008  *
00009  *   This program is distributed in the hope that it will be useful,
00010  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  *   GNU General Public License for more details.
00013  *
00014  *   You should have received a copy of the GNU General Public License
00015  *   along with this program; if not, write to the Free Software
00016  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00017  */
00018 
00019 #include "std_2d_array.h"
00020 #include "munkres.h"
00021 
00022 template <typename T, const unsigned int dimention>
00023 Matrix <T> convert_std_2d_array_to_munkres_matrix (const std::array <std::array <T, dimention>, dimention> & array)
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_std_2d_array_from_munkres_matrix (std::array <std::array <T, dimention>, dimention> & array, 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(std::array <std::array <double, dimension>, dimension> &m)
00047 {
00048   auto matrix = convert_std_2d_array_to_munkres_matrix<double, dimension>(m);
00049   Munkres munkres;
00050   munkres.solve (matrix);
00051   fill_std_2d_array_from_munkres_matrix<double, dimension>(m, matrix);
00052 };


explorer
Author(s): Daniel Neuhold , Torsten Andre
autogenerated on Thu Jun 6 2019 20:59:53