28template <two_dimensional_matrix_iterator matrix_iter_t>
32 static_assert(std::same_as<std::iter_value_t<matrix_iter_t>,
trace_directions>,
33 "Value type of the underlying iterator must be trace_directions.");
57 template <
typename index_t>
73 template <two_dimensional_matrix_iterator other_matrix_iter_t>
74 requires std::constructible_from<matrix_iter_t, other_matrix_iter_t>
80 [[nodiscard]]
constexpr matrix_coordinate
coordinate() const noexcept
83 coord.row +=
static_cast<int32_t
>(coord.col -
pivot_column);
80 [[nodiscard]]
constexpr matrix_coordinate
coordinate() const noexcept {
…}
89 constexpr void go_left(matrix_iter_t & iter)
const noexcept
89 constexpr void go_left(matrix_iter_t & iter)
const noexcept {
…}
97 constexpr void go_diagonal(matrix_iter_t & iter)
const noexcept
97 constexpr void go_diagonal(matrix_iter_t & iter)
const noexcept {
…}
A trace iterator for banded trace matrices.
Definition trace_iterator_banded.hpp:30
constexpr trace_iterator_banded()=default
Defaulted.
constexpr trace_iterator_banded & operator=(trace_iterator_banded &&)=default
Defaulted.
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.
Definition trace_iterator_banded.hpp:75
constexpr trace_iterator_banded & operator=(trace_iterator_banded const &)=default
Defaulted.
~trace_iterator_banded()=default
Defaulted.
constexpr trace_iterator_banded(trace_iterator_banded const &)=default
Defaulted.
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.
Definition trace_iterator_banded.hpp:58
friend base_t
Befriend base class.
Definition trace_iterator_banded.hpp:39
constexpr matrix_coordinate coordinate() const noexcept
Returns the current coordinate in two-dimensional space.
Definition trace_iterator_banded.hpp:80
constexpr trace_iterator_banded(trace_iterator_banded &&)=default
Defaulted.
constexpr void go_diagonal(matrix_iter_t &iter) const noexcept
Moves iterator to previous up cell.
Definition trace_iterator_banded.hpp:97
size_t pivot_column
The largest column index which is inside of the band in the first row of the matrix.
Definition trace_iterator_banded.hpp:104
constexpr void go_left(matrix_iter_t &iter) const noexcept
Moves iterator to previous left cell.
Definition trace_iterator_banded.hpp:89
A CRTP-base class for trace iterator implementations for the alignment algorithms.
Definition trace_iterator_base.hpp:61
matrix_iter_t matrix_iter
The underlying matrix iterator.
Definition trace_iterator_base.hpp:283
constexpr matrix_coordinate coordinate() const noexcept
Returns the current coordinate in two-dimensional space.
Definition trace_iterator_base.hpp:137
trace_directions
The possible directions a trace can have. The values can be combined by the logical |-operator.
Definition trace_directions.hpp:30
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
A strong type for designated initialisation of the column index of a matrix.
Definition matrix_coordinate.hpp:29
A representation of a location or offset within a two-dimensional matrix.
Definition matrix_coordinate.hpp:87
A strong type for designated initialisation of the row index of a matrix.
Definition matrix_coordinate.hpp:58
Provides seqan3::detail::trace_iterator_base.