7#include <dr/detail/index.hpp>
8#include <dr/detail/matrix_entry.hpp>
14 using size_type = std::size_t;
15 using difference_type = std::ptrdiff_t;
17 using scalar_value_type = std::iter_value_t<Iter>;
18 using scalar_reference = std::iter_reference_t<Iter>;
24 using iterator_category = std::random_access_iterator_tag;
40 std::size_t j, std::size_t ld) noexcept
41 : data_(data), i_(i), j_(j), ld_(ld) {}
44 operator+=(difference_type offset)
noexcept {
50 return i_ == other.i_;
53 constexpr difference_type
55 return difference_type(i_) - difference_type(other.i_);
62 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>;
91 : data_(data), column_idx_(column_idx), size_(size), ld_(ld) {}
93 scalar_reference operator[](size_type idx) {
return data_[idx * ld_]; }
99 size_type size()
const noexcept {
return size_; }
102 size_type column_idx_;
107template <std::random_access_iterator Iter>
Definition: iterator_adaptor.hpp:23
Definition: matrix_entry.hpp:20
Definition: matrix_entry.hpp:115
Definition: dense_column_view.hpp:12
Definition: dense_column_view.hpp:77