33template <simd_concept index_simd_t>
72 template <arithmetic index_scalar_t>
74 count_simd{simd::fill<index_simd_t>(scalar_index)}
96 count_simd += seqan3::simd::fill<index_simd_t>(1);
122 return lhs.count_simd[0] == rhs.count_simd[0];
128 return !(lhs == rhs);
137template <simd_concept index_simd_t>
138class iota_simd_view :
public std::ranges::view_interface<iota_simd_view<index_simd_t>>
194template <simd_concept index_simd_t>
270template <simd_concept index_simd_t>
275#ifdef __cpp_lib_ranges
279template <seqan3::simd_concept index_simd_t>
280inline constexpr bool enable_borrowed_range<seqan3::detail::iota_simd_view<index_simd_t>> =
true;
Provides algorithms to modify seqan3::simd::simd_type.
Implements a special version of a counted iterator over a simd vector.
Definition iota_simd.hpp:35
value_type reference
The reference type.
Definition iota_simd.hpp:47
index_simd_t value_type
The value type.
Definition iota_simd.hpp:45
void pointer
The pointer type.
Definition iota_simd.hpp:49
~counted_simd_iterator()=default
Defaulted.
friend bool operator!=(counted_simd_iterator const &lhs, counted_simd_iterator const &rhs) noexcept
Tests whether lhs != rhs.
Definition iota_simd.hpp:126
index_simd_t count_simd
The currently represented count.
Definition iota_simd.hpp:38
counted_simd_iterator(index_scalar_t const scalar_index) noexcept
Constructs and initialises the iterator with the given index.
Definition iota_simd.hpp:73
difference_type operator-(counted_simd_iterator const &rhs) const
Returns the distance between two iterators.
Definition iota_simd.hpp:109
counted_simd_iterator & operator=(counted_simd_iterator &&)=default
Defaulted.
counted_simd_iterator operator++(int)
Increments the iterator and returns the iterator pointing to the previous index.
Definition iota_simd.hpp:101
counted_simd_iterator & operator++()
Increments the iterator.
Definition iota_simd.hpp:94
friend bool operator==(counted_simd_iterator const &lhs, counted_simd_iterator const &rhs) noexcept
Tests whether lhs == rhs.
Definition iota_simd.hpp:120
reference operator*() const
Return the current simd index.
Definition iota_simd.hpp:83
counted_simd_iterator(counted_simd_iterator &&)=default
Defaulted.
counted_simd_iterator & operator=(counted_simd_iterator const &)=default
Defaulted.
counted_simd_iterator()=default
Defaulted.
counted_simd_iterator(counted_simd_iterator const &)=default
Defaulted.
The simd iota view.
Definition iota_simd.hpp:139
typename simd_traits< index_simd_t >::scalar_type index_scalar_type
The underlying scalar type.
Definition iota_simd.hpp:142
iterator_type begin() const noexcept
Returns seqan3::detail::counted_simd_iterator pointing to the begin of the range.
Definition iota_simd.hpp:177
iota_simd_view(iota_simd_view &&)=default
Defaulted.
iota_simd_view(iota_simd_view const &) noexcept=default
Defaulted.
iota_simd_view(index_scalar_type const begin_index, index_scalar_type const end_index)
Constructs the iota view from the given index pair.
Definition iota_simd.hpp:167
index_scalar_type begin_index
The begin index.
Definition iota_simd.hpp:147
iterator_type end() const noexcept
Returns seqan3::detail::counted_simd_iterator pointing to the end of the range.
Definition iota_simd.hpp:183
iota_simd_view & operator=(iota_simd_view &&)=default
Defaulted.
iota_simd_view()=default
Defaulted.
index_scalar_type end_index
The end index.
Definition iota_simd.hpp:149
iota_simd_view & operator=(iota_simd_view const &)=default
Defaulted.
~iota_simd_view()=default
Defaulted.
constexpr detail::iota_simd_view_fn< index_simd_t > iota_simd
An iota view over a simd vector.
Definition iota_simd.hpp:271
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
The SeqAn namespace for views.
Definition char_strictly_to.hpp:19
Provides seqan3::simd::simd_traits.
The view adaptor returning the seqan3::detail::iota_simd_view.
Definition iota_simd.hpp:196
constexpr auto operator()(index_scalar_type const begin_index, index_scalar_type const end_index) const
Returns a simd iota view over the given range.
Definition iota_simd.hpp:207
typename simd_traits< index_simd_t >::scalar_type index_scalar_type
The underlying scalar type.
Definition iota_simd.hpp:198
seqan3::simd::simd_traits is the trait class that provides uniform interface to the properties of sim...
Definition simd_traits.hpp:38
Provides concepts that do not have equivalents in C++20.
Provides seqan3::simd::simd_concept.