32template <
typename alignment_algorithm_t>
56 template <typename config_t>
59 bool is_local = config.template exists<align_cfg::method_local>();
61 first_row_is_free = method_global_config.free_end_gaps_sequence1_leading | is_local;
80 template <
typename cell_t,
typename score_t>
85 auto & [score_cell, trace_cell] = origin_cell;
88 score_cell.current = convert_to_simd_maybe<score_t>(0);
96 score_cell.up = convert_to_simd_maybe<score_t>(0);
101 score_cell.up = state.gap_open_score;
108 score_cell.w_left = convert_to_simd_maybe<score_t>(0);
113 score_cell.w_left = state.gap_open_score;
132 template <
typename cell_t,
typename score_t>
137 auto & [score_cell, trace_cell] = column_cell;
139 score_cell.current = score_cell.up;
140 trace_cell.current = trace_cell.up;
147 score_cell.up = convert_to_simd_maybe<score_t>(0);
151 score_cell.up += state.gap_extension_score;
155 score_cell.w_left = score_cell.current + state.gap_open_score;
173 template <
typename cell_t,
typename score_t>
178 auto & [score_cell, trace_cell] = row_cell;
180 score_cell.current = score_cell.r_left;
181 trace_cell.current = trace_cell.r_left;
185 score_cell.up = score_cell.current + state.gap_open_score;
190 score_cell.w_left = convert_to_simd_maybe<score_t>(0);
195 score_cell.w_left = score_cell.r_left + state.gap_extension_score;
212 template <
typename score_t,
typename value_t>
218 return simd::fill<score_t>(
static_cast<scalar_t
>(value));
Provides global and local alignment configurations.
Provides seqan3::detail::alignment_algorithm_state.
Sets the global alignment method.
Definition align_config_method.hpp:119
The CRTP-policy that implements the initialisation of the dynamic programming matrix with affine gaps...
Definition affine_gap_init_policy.hpp:34
constexpr auto init_origin_cell(cell_t &&origin_cell, alignment_algorithm_state< score_t > &state) const noexcept
Initialises the first cell of the dynamic programming matrix.
Definition affine_gap_init_policy.hpp:81
constexpr auto init_column_cell(cell_t &&column_cell, alignment_algorithm_state< score_t > &state) const noexcept
Initialises a cell in the first column of the dynamic programming matrix.
Definition affine_gap_init_policy.hpp:133
bool first_row_is_free
Initialisation state of the first row of the alignment.
Definition affine_gap_init_policy.hpp:40
constexpr auto convert_to_simd_maybe(value_t const value) const noexcept
Converts the given value into a simd vector or just returns the value if alignment is not executed in...
Definition affine_gap_init_policy.hpp:213
constexpr affine_gap_init_policy() noexcept=default
Defaulted.
constexpr auto init_row_cell(cell_t &&row_cell, alignment_algorithm_state< score_t > &state) const noexcept
Initialises a cell in the first row of the dynamic programming matrix.
Definition affine_gap_init_policy.hpp:174
friend alignment_algorithm_t
Befriends the derived class to grant it access to the private members.
Definition affine_gap_init_policy.hpp:37
bool first_column_is_free
Initialisation state of the first column of the alignment.
Definition affine_gap_init_policy.hpp:42
@ up
Trace comes from the above entry.
@ left
Trace comes from the left entry.
@ left_open
Trace comes from the left entry, while opening the gap.
@ up_open
Trace comes from the above entry, while opening the gap.
The generic simd concept.
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
Local state for the standard alignment algorithm.
Definition alignment_algorithm_state.hpp:32
seqan3::simd::simd_traits is the trait class that provides uniform interface to the properties of sim...
Definition simd_traits.hpp:38
Provides the declaration of seqan3::detail::trace_directions.