matrix_range(self_type const & other) : base_type(const_cast<handle_type &>(other.handle()),
                                                   other.size1(), other.start1(), other.stride1(), other.internal_size1(),
                                                   other.size2(), other.start2(), other.stride2(), other.internal_size2(),
                                                   other.row_major()) {}
 matrix_range(self_type const & A,
              range const & row_range,
              range const & col_range) : base_type(const_cast<handle_type &>(A.handle()),
                                                   row_range.size(), row_range.start() * A.stride1() + A.start1(), A.stride1(), A.internal_size1(),
                                                   col_range.size(), col_range.start() * A.stride2() + A.start2(), A.stride2(), A.internal_size2(),
                                                   A.row_major()) {}