SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
|
A trace iterator for banded trace matrices. More...
#include <seqan3/alignment/matrix/detail/trace_iterator_banded.hpp>
Public Member Functions | |
constexpr matrix_coordinate | coordinate () const noexcept |
Returns the current coordinate in two-dimensional space. | |
Constructors, destructor and assignment | |
constexpr | trace_iterator_banded ()=default |
Defaulted. | |
constexpr | trace_iterator_banded (trace_iterator_banded const &)=default |
Defaulted. | |
constexpr | trace_iterator_banded (trace_iterator_banded &&)=default |
Defaulted. | |
constexpr trace_iterator_banded & | operator= (trace_iterator_banded const &)=default |
Defaulted. | |
constexpr trace_iterator_banded & | operator= (trace_iterator_banded &&)=default |
Defaulted. | |
~trace_iterator_banded ()=default | |
Defaulted. | |
template<typename index_t > | |
constexpr | trace_iterator_banded (matrix_iter_t const matrix_iter, column_index_type< index_t > const &pivot_column) noexcept |
Constructs from the underlying trace matrix iterator indicating the start of the trace path. | |
template<two_dimensional_matrix_iterator other_matrix_iter_t> requires std::constructible_from<matrix_iter_t, other_matrix_iter_t> | |
constexpr | trace_iterator_banded (trace_iterator_banded< other_matrix_iter_t > const other) noexcept |
Constructs from the underlying trace matrix iterator indicating the start of the trace path. | |
Public Member Functions inherited from seqan3::detail::trace_iterator_base< trace_iterator_banded< matrix_iter_t >, matrix_iter_t > | |
reference | operator* () const noexcept |
Returns the current trace direction. | |
pointer | operator-> () const noexcept |
Returns a pointer to the current trace direction. | |
constexpr matrix_coordinate | coordinate () const noexcept |
Returns the current coordinate in two-dimensional space. | |
constexpr trace_iterator_banded< matrix_iter_t > & | operator++ () noexcept |
Advances the iterator by one. | |
constexpr trace_iterator_banded< matrix_iter_t > | operator++ (int) noexcept |
Returns an iterator advanced by one. | |
Private Types | |
using | base_t = trace_iterator_base< trace_iterator_banded< matrix_iter_t >, matrix_iter_t > |
The type of the base class. | |
Private Member Functions | |
constexpr void | go_diagonal (matrix_iter_t &iter) const noexcept |
Moves iterator to previous up cell. | |
constexpr void | go_left (matrix_iter_t &iter) const noexcept |
Moves iterator to previous left cell. | |
Private Attributes | |
friend | base_t |
Befriend base class. | |
size_t | pivot_column {} |
The largest column index which is inside of the band in the first row of the matrix. | |
Additional Inherited Members | |
Public Types inherited from seqan3::detail::trace_iterator_base< trace_iterator_banded< matrix_iter_t >, matrix_iter_t > | |
using | value_type = trace_directions |
The value type. | |
using | reference = trace_directions const & |
The reference type. | |
using | pointer = value_type const * |
The pointer type. | |
using | difference_type = std::ptrdiff_t |
The difference type. | |
using | iterator_category = std::forward_iterator_tag |
A trace iterator for banded trace matrices.
matrix_iter_t | The wrapped matrix iterator; must model seqan3::detail::two_dimensional_matrix_iterator and the iterator's value type must be the same as seqan3::detail::trace_directions, i.e. std::same_as<std::iter_value_t<matrix_iter_t>, trace_directions> must evaluate to true . |
This iterator follows a given trace in a banded trace matrix.
|
inlineconstexprnoexcept |
Constructs from the underlying trace matrix iterator indicating the start of the trace path.
[in] | matrix_iter | The underlying matrix iterator. |
[in] | pivot_column | The last column index which is still inside of the band in the first row of the banded matrix. |
|
inlineconstexprnoexcept |
Constructs from the underlying trace matrix iterator indicating the start of the trace path.
other_matrix_iter_t | The underlying matrix iterator type of other ; the condition std::constructible_from<matrix_iter_t, other_matrix_iter_t> must evaluate to true . |
[in] | other | The underlying matrix iterator. |
Allows the conversion of non-const to const iterator.
|
inlineconstexprnoexcept |
Returns the current coordinate in two-dimensional space.
|
inlineconstexprprivatenoexcept |
Moves iterator to previous up cell.
|
inlineconstexprprivatenoexcept |
Moves iterator to previous left cell.