35template <
typename alignment_algorithm_t>
59 template <typename config_t>
62 bool is_local = config.template exists<align_cfg::method_local>();
64 first_row_is_free = method_global_config.free_end_gaps_sequence1_leading | is_local;
83 template <
typename cell_t,
typename score_t>
88 auto & [score_cell, trace_cell] = origin_cell;
91 score_cell.current = convert_to_simd_maybe<score_t>(0);
99 score_cell.up = convert_to_simd_maybe<score_t>(0);
104 score_cell.up = state.gap_open_score;
111 score_cell.w_left = convert_to_simd_maybe<score_t>(0);
116 score_cell.w_left = state.gap_open_score;
135 template <
typename cell_t,
typename score_t>
140 auto & [score_cell, trace_cell] = column_cell;
142 score_cell.current = score_cell.up;
143 trace_cell.current = trace_cell.up;
150 score_cell.up = convert_to_simd_maybe<score_t>(0);
154 score_cell.up += state.gap_extension_score;
158 score_cell.w_left = score_cell.current + state.gap_open_score;
176 template <
typename cell_t,
typename score_t>
181 auto & [score_cell, trace_cell] = row_cell;
183 score_cell.current = score_cell.r_left;
184 trace_cell.current = trace_cell.r_left;
188 score_cell.up = score_cell.current + state.gap_open_score;
193 score_cell.w_left = convert_to_simd_maybe<score_t>(0);
198 score_cell.w_left = score_cell.r_left + state.gap_extension_score;
215 template <
typename score_t,
typename value_t>
221 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:122
The CRTP-policy that implements the initialisation of the dynamic programming matrix with affine gaps...
Definition: affine_gap_init_policy.hpp:37
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:84
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:136
bool first_row_is_free
Initialisation state of the first row of the alignment.
Definition: affine_gap_init_policy.hpp:43
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:216
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:177
friend alignment_algorithm_t
Befriends the derived class to grant it access to the private members.
Definition: affine_gap_init_policy.hpp:40
bool first_column_is_free
Initialisation state of the first column of the alignment.
Definition: affine_gap_init_policy.hpp:45
@ 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:29
seqan3::simd::simd_traits is the trait class that provides uniform interface to the properties of sim...
Definition: simd_traits.hpp:41
Provides the declaration of seqan3::detail::trace_directions.