column get_column(size_t j) const { column result(m_N); for (size_t i = 0; i < m_N; ++i) { result[i] = at(i,j); } return result; }
const_reference operator [] (const position &pos) const { return at(pos); }
reference operator()(const position &pos) { return at(pos); }
const_reference operator()(size_t i, size_t j) const { return at(i, j); }
reference operator()(size_t i, size_t j) { return at(i, j); }
const_reference at(const position &pos) const { return at(pos.first,pos.second); }
const_reference at(size_t i, size_t j) const { return at(i).at(j); }
reference at(size_t i, size_t j) { return at(i).at(j); }