implement matrix::swap_row(), matrix::swap_col()