51template <
typename score_t>
61 class matrix_iterator;
70 size_t number_of_columns{};
111 template <std::
integral column_index_t, std::
integral row_index_t>
114 score_t
const initial_value = score_t{})
116 this->number_of_columns = number_of_columns.
get();
117 optimal_column.clear();
118 horizontal_column.clear();
119 optimal_column.resize(number_of_rows.
get(), initial_value);
120 horizontal_column.resize(number_of_rows.
get(), initial_value);
158template <
typename score_t>
165 std::declval<physical_column_t &>(),
166 std::declval<virtual_column_t &>()));
169 static constexpr auto transform_to_affine_cell = std::views::transform(
172 using fwd_tuple_t =
decltype(tpl);
179 size_t current_column_id{};
186 using value_type =
decltype(std::declval<matrix_column_t>() | transform_to_affine_cell);
214 current_column_id{initial_column_id}
224 return views::zip(host_ptr->optimal_column, host_ptr->horizontal_column, host_ptr->vertical_column)
225 | transform_to_affine_cell;
252 return lhs.current_column_id == rhs.current_column_id;
258 return !(lhs == rhs);
Provides seqan3::detail::affine_cell_proxy.
Provides seqan3::aligned_allocator.
Allocates uninitialized storage whose memory-alignment is specified by alignment.
Definition: aligned_allocator.hpp:77
A proxy for an affine score matrix cell.
Definition: affine_cell_proxy.hpp:117
Score matrix iterator for the pairwise alignment using only a single column.
Definition: score_matrix_single_column.hpp:161
decltype(std::declval< matrix_column_t >()|transform_to_affine_cell) value_type
The value type.
Definition: score_matrix_single_column.hpp:186
reference operator*() const
Returns the range over the current column.
Definition: score_matrix_single_column.hpp:222
void pointer
The pointer type.
Definition: score_matrix_single_column.hpp:190
value_type reference
The reference type.
Definition: score_matrix_single_column.hpp:188
friend bool operator!=(matrix_iterator const &lhs, matrix_iterator const &rhs) noexcept
Tests whether lhs != rhs.
Definition: score_matrix_single_column.hpp:256
matrix_iterator & operator++()
Move this to the next column.
Definition: score_matrix_single_column.hpp:233
matrix_iterator() noexcept=default
Defaulted.
friend bool operator==(matrix_iterator const &lhs, matrix_iterator const &rhs) noexcept
Tests whether lhs == rhs.
Definition: score_matrix_single_column.hpp:250
decltype(views::zip(std::declval< physical_column_t & >(), std::declval< physical_column_t & >(), std::declval< virtual_column_t & >())) matrix_column_t
The type of the zipped score column.
Definition: score_matrix_single_column.hpp:166
void operator++(int)
Move this to the next column.
Definition: score_matrix_single_column.hpp:240
Score matrix for the pairwise alignment using only a single column.
Definition: score_matrix_single_column.hpp:54
decltype(views::repeat_n(score_t{}, 1)) virtual_column_t
The type of the virtual score column which only stores one value.
Definition: score_matrix_single_column.hpp:59
score_matrix_single_column(score_matrix_single_column &&)=default
Defaulted.
void resize(column_index_type< column_index_t > const number_of_columns, row_index_type< row_index_t > const number_of_rows, score_t const initial_value=score_t{})
Resizes the matrix.
Definition: score_matrix_single_column.hpp:112
matrix_iterator begin()
Returns the iterator pointing to the first column.
Definition: score_matrix_single_column.hpp:128
score_matrix_single_column & operator=(score_matrix_single_column const &)=default
Defaulted.
matrix_iterator end()
Returns the iterator pointing behind the last column.
Definition: score_matrix_single_column.hpp:137
matrix_iterator end() const =delete
This score matrix is not const-iterable.
matrix_iterator begin() const =delete
This score matrix is not const-iterable.
score_matrix_single_column(score_matrix_single_column const &)=default
Defaulted.
~score_matrix_single_column()=default
Defaulted.
score_matrix_single_column()=default
Defaulted.
score_matrix_single_column & operator=(score_matrix_single_column &&)=default
Defaulted.
constexpr value_t & get() &noexcept
Returns the underlying value.
Definition: strong_type.hpp:204
constexpr auto zip
A view adaptor that takes several views and returns tuple-like values from every i-th element of each...
Definition: zip.hpp:573
constexpr auto repeat_n
A view factory that repeats a given value n times.
Definition: repeat_n.hpp:91
A type that satisfies std::is_arithmetic_v<t>.
The generic simd concept.
Provides seqan3::detail::matrix_index, seqan3::detail::matrix_coordinate and associated strong types.
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides seqan3::views::repeat_n.
A strong type for designated initialisation of the column index of a matrix.
Definition: matrix_coordinate.hpp:32
A strong type for designated initialisation of the row index of a matrix.
Definition: matrix_coordinate.hpp:61
Provides concepts that do not have equivalents in C++20.
Provides seqan3::simd::simd_concept.
Provides seqan3::views::zip.