40template <
typename alignment_configuration_t>
87 auto const & selected_gap_scheme =
116 template <
typename affine_cell_t>
118 affine_cell_t previous_cell,
119 score_type const sequence_score)
const noexcept
121 diagonal_score += sequence_score;
123 score_type vertical_score = previous_cell.vertical_score();
125 diagonal_score = (diagonal_score < vertical_score) ? vertical_score : diagonal_score;
126 diagonal_score = (diagonal_score < horizontal_score) ? horizontal_score : diagonal_score;
133 vertical_score = (vertical_score < tmp) ? tmp : vertical_score;
134 horizontal_score = (horizontal_score < tmp) ? tmp : horizontal_score;
136 return {diagonal_score, horizontal_score, vertical_score};
170 template <
typename affine_cell_t>
174 return {previous_cell.vertical_score(),
193 template <
typename affine_cell_t>
197 return {previous_cell.horizontal_score(),
230 template <
typename score_t>
235 return simd::fill<score_type>(std::forward<score_t>(score));
237 return std::forward<score_t>(score);
Provides seqan3::detail::affine_cell_proxy.
Provides algorithms to modify seqan3::simd::simd_type.
Provides seqan3::align_config::gap_cost_affine.
Provides helper type traits for the configuration and execution of the alignment algorithm.
A configuration element for the affine gap cost scheme.
Definition align_config_gap_cost_affine.hpp:72
Sets the global alignment method.
Definition align_config_method.hpp:119
A proxy for an affine score matrix cell.
Definition affine_cell_proxy.hpp:114
decltype(auto) vertical_score() &noexcept
Access the vertical score of the wrapped score matrix cell.
Definition affine_cell_proxy.hpp:231
decltype(auto) horizontal_score() &noexcept
Access the horizontal score of the wrapped score matrix cell.
Definition affine_cell_proxy.hpp:210
Implements the alignment recursion function for the alignment algorithm using affine gap costs.
Definition policy_affine_gap_recursion.hpp:42
affine_cell_type compute_inner_cell(score_type diagonal_score, affine_cell_t previous_cell, score_type const sequence_score) const noexcept
Computes an inner cell of the alignment matrix.
Definition policy_affine_gap_recursion.hpp:117
~policy_affine_gap_recursion()=default
Defaulted.
policy_affine_gap_recursion(policy_affine_gap_recursion &&)=default
Defaulted.
bool first_row_is_free
Initialisation state of the first row of the alignment.
Definition policy_affine_gap_recursion.hpp:61
policy_affine_gap_recursion & operator=(policy_affine_gap_recursion const &)=default
Defaulted.
policy_affine_gap_recursion()=default
Defaulted.
affine_cell_type initialise_first_row_cell(affine_cell_t previous_cell) const noexcept
Initialises the first cell of a alignment matrix column.
Definition policy_affine_gap_recursion.hpp:194
affine_cell_type initialise_origin_cell() const noexcept
Initialises the first cell of the alignment matrix in the top left corner of the matrix.
Definition policy_affine_gap_recursion.hpp:149
score_type gap_extension_score
The score for a gap extension.
Definition policy_affine_gap_recursion.hpp:56
typename traits_type::score_type score_type
The configured score type.
Definition policy_affine_gap_recursion.hpp:49
score_type gap_open_score
The score for a gap opening including the gap extension.
Definition policy_affine_gap_recursion.hpp:58
bool first_column_is_free
Initialisation state of the first column of the alignment.
Definition policy_affine_gap_recursion.hpp:63
typename traits_type::original_score_type original_score_type
The configured original score type.
Definition policy_affine_gap_recursion.hpp:47
score_type lowest_viable_score() const noexcept
Returns the lowest viable score.
Definition policy_affine_gap_recursion.hpp:212
policy_affine_gap_recursion & operator=(policy_affine_gap_recursion &&)=default
Defaulted.
constexpr auto maybe_convert_to_simd(score_t &&score) const noexcept
Converts the given score type to a simd vector if the alignment is executed in vectorised mode.
Definition policy_affine_gap_recursion.hpp:232
policy_affine_gap_recursion(policy_affine_gap_recursion const &)=default
Defaulted.
affine_cell_type initialise_first_column_cell(affine_cell_t previous_cell) const noexcept
Initialises a cell of the first alignment matrix column.
Definition policy_affine_gap_recursion.hpp:171
policy_affine_gap_recursion(alignment_configuration_t const &config)
Construction and initialisation using the alignment configuration.
Definition policy_affine_gap_recursion.hpp:84
A type that satisfies std::is_arithmetic_v<t>.
The generic simd concept.
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
A strong type of underlying type int32_t that represents the score (usually negative) of any characte...
Definition align_config_gap_cost_affine.hpp:48
A strong type of underlying type int32_t that represents a score (usually negative) that is incurred ...
Definition align_config_gap_cost_affine.hpp:31
A traits type for the alignment algorithm that exposes static information stored within the alignment...
Definition alignment/pairwise/detail/type_traits.hpp:80
std::conditional_t< is_vectorised, simd_type_t< original_score_type >, original_score_type > score_type
The score type for the alignment algorithm.
Definition alignment/pairwise/detail/type_traits.hpp:133
typename std::remove_reference_t< decltype(std::declval< configuration_t >().get_or(align_cfg::score_type< int32_t >{}))>::type original_score_type
The original score type selected by the user.
Definition alignment/pairwise/detail/type_traits.hpp:131
Provides type traits for working with templates.
Provides seqan3::simd::simd_concept.