18namespace seqan3::detail
35template <
typename config_t,
typename traits_t>
36class edit_distance_algorithm
40 using configuration_traits_type = alignment_configuration_traits<config_t>;
42 using alignment_result_type =
typename configuration_traits_type::alignment_result_type;
44 static_assert(!std::same_as<alignment_result_type, empty_type>,
"Alignment result type was not configured.");
50 constexpr edit_distance_algorithm() =
default;
51 constexpr edit_distance_algorithm(edit_distance_algorithm
const &) =
default;
52 constexpr edit_distance_algorithm(edit_distance_algorithm &&) =
default;
53 constexpr edit_distance_algorithm & operator=(edit_distance_algorithm
const &) =
default;
54 constexpr edit_distance_algorithm & operator=(edit_distance_algorithm &&) =
default;
55 ~edit_distance_algorithm() =
default;
68 constexpr edit_distance_algorithm(config_t
const & cfg) : cfg_ptr{new config_t(cfg)}
87 template <indexed_sequence_pair_range indexed_sequence_pairs_t,
typename callback_t>
88 requires std::invocable<callback_t, alignment_result_type>
89 constexpr void operator()(indexed_sequence_pairs_t && indexed_sequence_pairs, callback_t && callback)
93 for (
auto && [sequence_pair, index] : indexed_sequence_pairs)
94 compute_single_pair(index,
95 get<0>(sequence_pair),
96 get<1>(sequence_pair),
112 template <std::ranges::forward_range first_range_t, std::ranges::forward_range second_range_t,
typename callback_t>
113 constexpr void compute_single_pair(
size_t const idx,
114 first_range_t && first_range,
115 second_range_t && second_range,
116 callback_t && callback)
118 using edit_traits = default_edit_distance_trait_type<first_range_t,
121 typename traits_t::is_semi_global_type>;
122 edit_distance_unbanded algo{first_range, second_range, *cfg_ptr, edit_traits{}};
Provides seqan3::align_cfg::edit_scheme.
Provides concepts needed internally for the alignment algorithms.
Provides a pairwise alignment algorithm for edit distance but without band.
constexpr auto const & get(configuration< configs_t... > const &config) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition configuration.hpp:412
SeqAn specific customisations in the standard namespace.