41template <
typename score_t>
57 using typename range_base_t::alignment_column_type;
112 template <std::ranges::forward_range first_sequence_t, std::ranges::forward_range second_sequence_t>
114 second_sequence_t && second,
116 score_t
const initial_value = score_t{})
142 int32_t slice_begin = std::max<int32_t>(0,
band_col_index - column_index);
146 assert(row_end_index >= 0);
147 assert(slice_begin >= 0);
148 assert(slice_end > 0);
149 assert(slice_begin < slice_end);
151 return alignment_column_type{*
this,
157 template <std::random_access_iterator iter_t>
160 return {std::get<0>(*host_iter),
162 std::get<1>(*(host_iter + 1)),
163 std::get<1>(*(host_iter)),
168 template <std::random_access_iterator iter_t>
176 template <std::random_access_iterator iter_t>
183 template <std::random_access_iterator iter_t>
Provides seqan3::detail::align_config_band.
Provides seqan3::detail::alignment_matrix_column_major_range_base.
Provides seqan3::detail::alignment_score_matrix_one_column_base.
Provides seqan3::detail::alignment_score_matrix_proxy.
Configuration element for setting a fixed size band.
Definition: align_config_band.hpp:63
Provides a range interface for alignment matrices.
Definition: alignment_matrix_column_major_range_base.hpp:63
std::default_sentinel_t sentinel
The type of sentinel.
Definition: alignment_matrix_column_major_range_base.hpp:480
iterator_type iterator
The type of the iterator.
Definition: alignment_matrix_column_major_range_base.hpp:478
A banded alignment score matrix storing only a single banded column for the computation.
Definition: alignment_score_matrix_one_column_banded.hpp:45
alignment_score_matrix_proxy< score_t > value_type
The proxy type of an alignment matrix.
Definition: alignment_score_matrix_one_column_banded.hpp:69
constexpr value_type make_proxy(iter_t host_iter) noexcept
Creates the proxy value returned when dereferencing the alignment-column-iterator.
Definition: alignment_score_matrix_one_column_banded.hpp:158
constexpr alignment_score_matrix_one_column_banded(alignment_score_matrix_one_column_banded const &)=default
Defaulted.
size_t size_type
The size type.
Definition: alignment_score_matrix_one_column_base.hpp:51
~alignment_score_matrix_one_column_banded()=default
Defaulted.
constexpr alignment_column_type initialise_column(size_type const column_index) noexcept
Returns the current alignment-column at the given column_index.
Definition: alignment_score_matrix_one_column_banded.hpp:140
constexpr void after_column_iterator_increment(iter_t host_iter) noexcept
Allows to perform additional steps after incrementing the alignment-column-iterator.
Definition: alignment_score_matrix_one_column_banded.hpp:184
int32_t band_row_index
The row index where the lower bound of the band passes through.
Definition: alignment_score_matrix_one_column_banded.hpp:134
typename range_base_t::sentinel sentinel
The type of sentinel.
Definition: alignment_score_matrix_one_column_banded.hpp:75
constexpr void on_column_iterator_creation(iter_t host_iter) noexcept
Allows additional initialisations when calling begin on an alignment-column.
Definition: alignment_score_matrix_one_column_banded.hpp:169
constexpr alignment_score_matrix_one_column_banded(first_sequence_t &&first, second_sequence_t &&second, align_cfg::band_fixed_size const &band, score_t const initial_value=score_t{})
Construction from two ranges and a band.
Definition: alignment_score_matrix_one_column_banded.hpp:113
int32_t band_size
The size of the band.
Definition: alignment_score_matrix_one_column_banded.hpp:136
friend range_base_t
Befriend the range base class.
Definition: alignment_score_matrix_one_column_banded.hpp:53
constexpr alignment_score_matrix_one_column_banded & operator=(alignment_score_matrix_one_column_banded &&)=default
Defaulted.
constexpr alignment_score_matrix_one_column_banded()=default
Defaulted.
typename range_base_t::iterator iterator
The type of the iterator.
Definition: alignment_score_matrix_one_column_banded.hpp:73
std::tuple< underlying_type, underlying_type > element_type
The actual element type.
Definition: alignment_score_matrix_one_column_base.hpp:45
constexpr void before_column_iterator_increment(iter_t host_iter) noexcept
Allows to perform additional steps before incrementing the alignment-column-iterator.
Definition: alignment_score_matrix_one_column_banded.hpp:177
constexpr alignment_score_matrix_one_column_banded(alignment_score_matrix_one_column_banded &&)=default
Defaulted.
int32_t band_col_index
The column index where the upper bound of the band passes through.
Definition: alignment_score_matrix_one_column_banded.hpp:132
constexpr alignment_score_matrix_one_column_banded & operator=(alignment_score_matrix_one_column_banded const &)=default
Defaulted.
@ band
ID for the band option.
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
A base class for alignment score matrices using only one column to compute the matrix.
Definition: alignment_score_matrix_one_column_base.hpp:37
std::array< underlying_type, 3 > cache
Internal cache for the last diagonal and vertical value during the alignment computation.
Definition: alignment_score_matrix_one_column_base.hpp:57
pool_type pool
The linearised memory pool storing only one column of the matrix.
Definition: alignment_score_matrix_one_column_base.hpp:55
size_t size_type
The size type.
Definition: alignment_score_matrix_one_column_base.hpp:51
score_t underlying_type
The underlying type of the scores.
Definition: alignment_score_matrix_one_column_base.hpp:43
size_type num_rows
The number of num_rows.
Definition: alignment_score_matrix_one_column_base.hpp:61
std::tuple< underlying_type, underlying_type > element_type
The actual element type.
Definition: alignment_score_matrix_one_column_base.hpp:45
size_type num_cols
The number of columns.
Definition: alignment_score_matrix_one_column_base.hpp:59
A proxy type for a unified access to the score matrix during alignment computation.
Definition: alignment_score_matrix_proxy.hpp:36