vector_range(vector_range<VectorType> const & v, range const & entry_range) : base_type(const_cast<handle_type &>(v.handle()), entry_range.size(), v.start() + v.stride() * entry_range.start(), v.stride()) {}
vector_range(VectorType & v, range const & entry_range) : base_type(v.handle(), entry_range.size(), v.start() + v.stride() * entry_range.start(), v.stride()) {}
matrix_range(matrix_range<MatrixType> 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()) {}