Iterator that transposes the underlying range of ranges and transforms that to SIMD types.
More...
|
|
constexpr | iterator_type ()=default |
| Defaulted.
|
|
constexpr | iterator_type (iterator_type const &)=default |
| Defaulted.
|
|
constexpr | iterator_type (iterator_type &&)=default |
| Defaulted.
|
|
constexpr iterator_type & | operator= (iterator_type const &)=default |
| Defaulted.
|
|
constexpr iterator_type & | operator= (iterator_type &&)=default |
| Defaulted.
|
|
| ~iterator_type ()=default |
| Defaulted.
|
|
constexpr | iterator_type (view_to_simd &this_view) |
| Construction from the associated range.
|
|
|
constexpr reference | operator* () const noexcept |
| Returns a reference to the current chunk of simd vectors.
|
|
|
constexpr iterator_type & | operator++ () |
| Advances the iterator to the next chunk.
|
|
constexpr value_type | operator++ (int) |
| Advances the iterator to the next chunk and returns the previous pointed-to value.
|
|
|
constexpr bool | all_iterators_reached_sentinel () const noexcept |
| Checks if all sequence iterators reached the end.
|
|
constexpr simd_t | convert_single_column () noexcept |
| Convert a single column into a simd vector.
|
|
constexpr void | split_into_sub_matrices (std::array< max_simd_type, simd_traits< max_simd_type >::length > matrix) const |
| Unpacks the matrix of simd types and caches the respective chunk entries.
|
|
constexpr void | underflow () |
| Fetches the next available chunk(s).
|
|
constexpr void | underflow () |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
auto | unpack (max_simd_type const &row) const |
| Unpacks one row of the transposed byte matrix using simd instructions.
|
|
template<typename array_t > |
constexpr void | update_final_chunk_position (array_t const &iterators_before_update) noexcept |
| Updates the end of the final chunk and sets the index of the final chunk.
|
|
|
bool | at_end {true} |
| Flag indicating that iterator is at end.
|
|
std::array< std::ranges::iterator_t< inner_range_type >, chunk_size > | cached_iter {} |
| Array containing the cached sequence iterators over the inner ranges.
|
|
std::array< std::ranges::sentinel_t< inner_range_type >, chunk_size > | cached_sentinel {} |
| Array containing the cached sequence sentinels over the inner ranges.
|
|
uint8_t | current_chunk_pos {0} |
| The current chunk position.
|
|
bool | final_chunk {true} |
| Flag indicating that final chunk was reached.
|
|
uint8_t | final_chunk_pos {total_chunks - 1} |
| The final chunk position.
|
|
uint8_t | final_chunk_size {chunk_size} |
| The size of the final chunk.
|
|
view_to_simd * | this_view {nullptr} |
| Pointer to the associated range.
|
|
|
constexpr bool | operator== (std::default_sentinel_t const &) const noexcept |
| Returns true if iterator reached the end, otherwise false .
|
|
constexpr bool | operator!= (std::default_sentinel_t const &) const noexcept |
| Returns true if iterator did not reach the end yet, otherwise false .
|
|
constexpr bool | operator== (std::default_sentinel_t const &, iterator_type const &rhs) noexcept |
| Returns true if iterator reached the end, otherwise false .
|
|
constexpr bool | operator!= (std::default_sentinel_t const &, iterator_type const &rhs) noexcept |
| Returns true if iterator did not reach the end yet, otherwise false .
|
|
template<std::ranges::view urng_t, simd::simd_concept simd_t>
class seqan3::detail::view_to_simd< urng_t, simd_t >::iterator_type
Iterator that transposes the underlying range of ranges and transforms that to SIMD types.
This iterator models std::input_iterator. When dereferencing it returns a span over a range with value type simd_t
.
template<std::ranges::view urng_t, simd::simd_concept simd_t>
template<typename array_t >
constexpr void seqan3::detail::view_to_simd< urng_t, simd_t >::iterator_type::update_final_chunk_position |
( |
array_t const & |
iterators_before_update | ) |
|
|
inlineconstexprprivatenoexcept |
Updates the end of the final chunk and sets the index of the final chunk.
- Template Parameters
-
array_t | The array type containing the iterators over sequences. |
- Parameters
-
[in] | iterators_before_update | The array containing the iterators before the load operations. |
Sets the index of the final chunk (final_chunk_pos
) and updates the end position of the final chunk such that the view ends at the last character of the longest sequences contained in the set of sequences to be transformed.