7#include <dr/detail/index.hpp>
8#include <dr/detail/iterator_adaptor.hpp>
9#include <dr/detail/matrix_entry.hpp>
15 using size_type = std::size_t;
16 using difference_type = std::ptrdiff_t;
18 using scalar_value_type = std::iter_value_t<Iter>;
19 using scalar_reference = std::iter_reference_t<Iter>;
25 using iterator_category = std::random_access_iterator_tag;
41 std::size_t j) noexcept
42 : data_(data), i_(i), j_(j) {}
45 operator+=(difference_type offset)
noexcept {
51 return j_ == other.j_;
54 constexpr difference_type
56 return difference_type(j_) - difference_type(other.j_);
63 constexpr reference operator*()
const noexcept {
73template <
typename T,
typename Iter>
79 using size_type = std::size_t;
80 using difference_type = std::ptrdiff_t;
82 using scalar_reference = std::iter_reference_t<Iter>;
90 : data_(data), row_idx_(row_idx), size_(size) {}
92 scalar_reference operator[](size_type idx) {
return data_[idx]; }
98 size_type size()
const noexcept {
return size_; }
105template <std::random_access_iterator Iter>
Definition: iterator_adaptor.hpp:23
Definition: matrix_entry.hpp:20
Definition: matrix_entry.hpp:115
Definition: dense_row_view.hpp:13
Definition: dense_row_view.hpp:77