6 template <
typename Matro
idType,
typename MatrixType>
7 void matroid_separate(MatroidType&
matroid, MatrixType& matrix,
const int type,
const std::pair <size_t, size_t>& split,
14 upper_left_matroid.
resize(split.first, split.second);
15 upper_left_matrix.resize(split.first, split.second,
false);
16 for (
size_t row = 0; row < split.first; ++row)
18 for (
size_t column = 0; column < split.second; ++column)
20 for (
size_t row = 0; row < split.first; ++row)
22 for (
size_t column = 0; column < split.second; ++column)
23 upper_left_matrix(row, column) = matrix(row, column);
28 lower_right_matrix.resize(matrix.size1() - split.first, matrix.size2() - split.second);
29 for (
size_t row = 0; row < lower_right_matroid.
size1(); ++row)
31 for (
size_t column = 0; column < lower_right_matroid.
size2(); ++column)
33 for (
size_t row = 0; row < lower_right_matrix.size1(); ++row)
35 for (
size_t column = 0; column < lower_right_matrix.size2(); ++column)
36 lower_right_matrix(row, column) = matrix(split.first + row, split.second + column);
41 throw std::logic_error(
"Not yet implemented!");
Definition: matroid.hpp:22
void resize(size_t size1, size_t size2)
Definition: matroid.hpp:63
size_t size1() const
Definition: matroid.hpp:77
size_t size2() const
Definition: matroid.hpp:86
name_type & name2(size_t index)
Definition: matroid.hpp:116
name_type & name1(size_t index)
Definition: matroid.hpp:96
Definition: algorithm.hpp:14
void matroid_separate(MatroidType &matroid, MatrixType &matrix, const int type, const std::pair< size_t, size_t > &split, integer_matroid &upper_left_matroid, integer_matrix &upper_left_matrix, integer_matroid &lower_right_matroid, integer_matrix &lower_right_matrix)
Definition: matroid_separate.hpp:7
boost::numeric::ublas::matrix< long long > integer_matrix
Definition: common.hpp:27