void QP_basis_inverse<ET_,Is_LP_>:: copy_row_in_B_O(OutIt y_l_it, OutIt y_x_it, unsigned int r) { typename Matrix::const_iterator matrix_it; typename Row ::const_iterator row_it; unsigned int count; // Q-block matrix_it = M.begin()+l+r; for ( row_it = matrix_it->begin(), count = 0; count < s; ++row_it, ++count, ++y_l_it ) { *y_l_it = *row_it; } // R-block: left of diagonal (including element on diagonal) for ( row_it = matrix_it->begin()+l; row_it != matrix_it->end(); ++row_it, ++y_x_it ) { *y_x_it = *row_it; } // R-block: right of diagonal (excluding element on diagonal) for ( matrix_it = M.begin()+l+r+1, count = r+1; count < b; ++matrix_it, ++count, ++y_x_it ) { *y_x_it = (*matrix_it)[l+r]; } }
flow(const matrix& capacity) : capacity(capacity), flows(matrix(capacity.size(), row(capacity.size()))), edges(matrix(capacity.size(), row())) { for (typename matrix::const_iterator row = capacity.begin(); row != capacity.end(); ++row) { for (typename row::const_iterator v = row->begin(); v != row->end(); ++ v) { if (*v > 0) { edges.at(row - capacity.begin()).push_back(v - row->begin()); edges.at(v - row->begin()).push_back(row - capacity.begin()); } } } }