46template <
typename alignment_algorithm_t,
typename score_matrix_t,
typename trace_matrix_t>
64 template <
typename configuration_t>
81 template <
typename sequence1_t,
typename sequence2_t>
82 constexpr void allocate_matrix(sequence1_t && sequence1, sequence2_t && sequence2)
111 template <
typename sequence1_t,
typename sequence2_t,
typename score_t>
113 sequence2_t && sequence2,
145 template <
typename sequence1_t,
typename sequence2_t>
147 sequence2_t & sequence2,
150 size_t seq1_size = std::ranges::distance(sequence1);
151 size_t seq2_size = std::ranges::distance(sequence2);
153 auto trim_sequence1 = [&]()
constexpr
155 size_t begin_pos = std::max<std::ptrdiff_t>(
band.lower_diagonal - 1, 0);
156 size_t end_pos = std::min<std::ptrdiff_t>(
band.upper_diagonal + seq2_size, seq1_size);
160 auto trim_sequence2 = [&]()
constexpr
162 size_t begin_pos = std::abs(std::min<std::ptrdiff_t>(
band.upper_diagonal + 1, 0));
163 size_t end_pos = std::min<std::ptrdiff_t>(seq1_size -
band.lower_diagonal, seq2_size);
167 return std::tuple{trim_sequence1(), trim_sequence2()};
Provides seqan3::detail::align_config_band.
Provides seqan3::detail::alignment_algorithm_state.
Provides various type traits on generic types.
Configuration element for setting a fixed size band.
Definition: align_config_band.hpp:63
Manages the alignment and score matrix.
Definition: alignment_matrix_policy.hpp:48
score_matrix_t::iterator score_matrix_iter
The matrix iterator over the score matrix.
Definition: alignment_matrix_policy.hpp:201
constexpr alignment_matrix_policy(alignment_matrix_policy const &)=default
Defaulted.
constexpr void allocate_matrix(sequence1_t &&sequence1, sequence2_t &&sequence2, align_cfg::band_fixed_size const &band, alignment_algorithm_state< score_t > const &state)
Allocates the memory of the underlying matrices.
Definition: alignment_matrix_policy.hpp:112
constexpr auto current_alignment_column() noexcept
Returns the current alignment column.
Definition: alignment_matrix_policy.hpp:178
constexpr void initialise_matrix_iterator() noexcept
Initialises the score and trace matrix iterator after allocating the matrices.
Definition: alignment_matrix_policy.hpp:127
constexpr alignment_matrix_policy()=default
Defaulted.
trace_matrix_t trace_matrix
The trace matrix if needed.
Definition: alignment_matrix_policy.hpp:199
~alignment_matrix_policy()=default
Defaulted.
constexpr void next_alignment_column() noexcept
Moves to the next alignment column.
Definition: alignment_matrix_policy.hpp:192
trace_matrix_t::iterator trace_matrix_iter
The matrix iterator over the trace matrix.
Definition: alignment_matrix_policy.hpp:202
constexpr alignment_matrix_policy & operator=(alignment_matrix_policy &&)=default
Defaulted.
constexpr alignment_matrix_policy(alignment_matrix_policy &&)=default
Defaulted.
alignment_matrix_policy(configuration_t const &)
Initialise the policy.
Definition: alignment_matrix_policy.hpp:65
friend alignment_algorithm_t
Allow alignment algorithm to instantiate this crtp base class.
Definition: alignment_matrix_policy.hpp:51
constexpr alignment_matrix_policy & operator=(alignment_matrix_policy const &)=default
Defaulted.
score_matrix_t score_matrix
The scoring matrix.
Definition: alignment_matrix_policy.hpp:198
constexpr auto slice_sequences(sequence1_t &sequence1, sequence2_t &sequence2, align_cfg::band_fixed_size const &band) const noexcept
Slices the sequences according to the band parameters.
Definition: alignment_matrix_policy.hpp:146
constexpr void allocate_matrix(sequence1_t &&sequence1, sequence2_t &&sequence2)
}
Definition: alignment_matrix_policy.hpp:82
@ band
ID for the band option.
constexpr auto slice
A view adaptor that returns a half-open interval on the underlying range.
Definition: slice.hpp:178
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
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides seqan3::views::slice.
Local state for the standard alignment algorithm.
Definition: alignment_algorithm_state.hpp:35
score_type gap_extension_score
The cached gap extension score.
Definition: alignment_algorithm_state.hpp:37
Provides seqan3::views::zip.