18 #include <range/v3/view/iota.hpp> 19 #include <range/v3/view/repeat_n.hpp> 20 #include <range/v3/view/transform.hpp> 21 #include <range/v3/view/zip.hpp> 37 template <
typename derived_t,
typename allocator_t>
38 class unbanded_score_dp_matrix_policy
48 using cell_type =
typename allocator_t::value_type;
58 constexpr unbanded_score_dp_matrix_policy() =
default;
59 constexpr unbanded_score_dp_matrix_policy(unbanded_score_dp_matrix_policy
const &) =
default;
60 constexpr unbanded_score_dp_matrix_policy(unbanded_score_dp_matrix_policy &&) =
default;
61 constexpr unbanded_score_dp_matrix_policy & operator=(unbanded_score_dp_matrix_policy
const &) =
default;
63 constexpr unbanded_score_dp_matrix_policy & operator=(unbanded_score_dp_matrix_policy &&) =
default;
64 ~unbanded_score_dp_matrix_policy() =
default;
73 template <
typename first_range_t,
typename second_range_t>
74 constexpr
void allocate_matrix(first_range_t & first_range, second_range_t & second_range)
79 current_column_index = 0;
82 score_matrix.resize(dimension_second_range);
86 constexpr
auto current_column() noexcept
88 advanceable_alignment_coordinate<advanceable_alignment_coordinate_state::row>
89 col_begin{column_index_type{current_column_index}, row_index_type{0u}};
90 advanceable_alignment_coordinate<advanceable_alignment_coordinate_state::row>
91 col_end{column_index_type{current_column_index}, row_index_type{dimension_second_range}};
99 constexpr
void go_next_column() noexcept
101 ++current_column_index;
105 score_matrix_type score_matrix{};
107 size_t dimension_first_range = 0;
109 size_t dimension_second_range = 0;
111 size_t current_column_index = 0;
124 return get<0>(std::forward<decltype(elem)>(elem));
::ranges::distance distance
Alias for ranges::distance. Returns the number of hops from first to last.
Definition: iterator:321
constexpr auto zip
A range adaptor that transforms a tuple of range into a range of tuples.
Definition: ranges:948
Provides various shortcuts for common std::ranges functions.
constexpr auto common
A range adaptor that makes any range model std::ranges::CommonRange (at the expense of some performan...
Definition: ranges:447
Adaptations of concepts from the Ranges TS.
Provides std::span from the C++20 standard library.
constexpr auto iota
Generates a sequence of elements by repeatedly incrementing an initial value.
Definition: ranges:647
Definition: aligned_sequence_concept.hpp:35
auto const get
A view calling std::get on each element in a range.
Definition: get.hpp:66
Provides seqan3::detail::alignment_coordinate.
constexpr auto repeat_n
A view factory that repeats a given value n times.
Definition: repeat_n.hpp:97
Provides various transformation traits used by the range module.
constexpr auto transform
A range adaptor that takes a invocable and returns a view of the elements with the invocable applied...
Definition: ranges:911