65template <simd_concept simd_score_t, semialphabet alphabet_t,
typename alignment_t>
66 requires (seqan3::alphabet_size<alphabet_t> > 1)
67 && (std::same_as<alignment_t, align_cfg::method_local> || std::same_as<alignment_t, align_cfg::method_global>)
97 template <
typename scoring_scheme_t>
105 template <
typename scoring_scheme_t>
148 if constexpr (std::same_as<alignment_t, align_cfg::method_global>)
149 mask = (ranks1 ^ ranks2) <= simd::fill<simd_score_t>(0);
151 mask = (ranks1 ^ ranks2) == simd::fill<simd_score_t>(0);
164 template <
typename alphabet_ranks_t>
168 return std::forward<alphabet_ranks_t>(ranks);
187 template <
typename scoring_scheme_t>
190 using score_t =
decltype(std::declval<scoring_scheme_t const &>().score(alphabet_t{}, alphabet_t{}));
193 score_t scalar_match_score =
195 score_t scalar_mismatch_score =
199 if constexpr (
sizeof(simd_scalar_t) <
sizeof(score_t))
205 "for the selected scalar type of the simd type."};
209 match_score = simd::fill<simd_score_t>(
static_cast<simd_scalar_t
>(scalar_match_score));
210 mismatch_score = simd::fill<simd_score_t>(
static_cast<simd_scalar_t
>(scalar_mismatch_score));
Provides algorithms to modify seqan3::simd::simd_type.
Provides global and local alignment configurations.
Core alphabet concept and free function/type trait wrappers.
Provides utility functions for bit twiddling.
Adaptions of concepts from the Cereal library.
A vectorised scoring scheme handling matches and mismatches only.
Definition: simd_match_mismatch_scoring_scheme.hpp:69
constexpr void initialise_from_scalar_scoring_scheme(scoring_scheme_t const &scoring_scheme)
Initialises the simd vector match score and mismatch score from the given scoring scheme.
Definition: simd_match_mismatch_scoring_scheme.hpp:188
~simd_match_mismatch_scoring_scheme()=default
Defaulted.
constexpr simd_match_mismatch_scoring_scheme(scoring_scheme_t const &scoring_scheme)
Initialises the simd vector match score and mismatch score from the given scoring scheme.
Definition: simd_match_mismatch_scoring_scheme.hpp:99
typename simd_traits< simd_score_t >::scalar_type scalar_type
The underlying scalar type of the simd vector.
Definition: simd_match_mismatch_scoring_scheme.hpp:72
constexpr simd_match_mismatch_scoring_scheme & operator=(scoring_scheme_t const &scoring_scheme)
Initialises the simd vector match score and mismatch score from the given scoring scheme.
Definition: simd_match_mismatch_scoring_scheme.hpp:107
constexpr simd_score_t score(alphabet_ranks_type const &ranks1, alphabet_ranks_type const &ranks2) const noexcept
Computes the score for two simd vectors.
Definition: simd_match_mismatch_scoring_scheme.hpp:143
simd_score_t alphabet_ranks_type
The type of the simd vector representing the alphabet ranks of one sequence batch.
Definition: simd_match_mismatch_scoring_scheme.hpp:74
constexpr simd_match_mismatch_scoring_scheme(simd_match_mismatch_scoring_scheme const &)=default
Defaulted.
constexpr simd_match_mismatch_scoring_scheme & operator=(simd_match_mismatch_scoring_scheme &&)=default
Defaulted.
constexpr simd_match_mismatch_scoring_scheme & operator=(simd_match_mismatch_scoring_scheme const &)=default
Defaulted.
constexpr simd_match_mismatch_scoring_scheme()=default
Defaulted.
constexpr alphabet_ranks_t make_score_profile(alphabet_ranks_t &&ranks) const noexcept
Returns the given simd vector without changing it (no-op).
Definition: simd_match_mismatch_scoring_scheme.hpp:166
simd_score_t match_score
The simd vector for a match score.
Definition: simd_match_mismatch_scoring_scheme.hpp:213
constexpr auto padding_match_score() noexcept
Returns the match score used for padded symbols.
Definition: simd_match_mismatch_scoring_scheme.hpp:158
simd_score_t mismatch_score
The simd vector for a mismatch score.
Definition: simd_match_mismatch_scoring_scheme.hpp:214
static constexpr scalar_type padding_symbol
The padding symbol used to fill up smaller sequences in a simd batch.
Definition: simd_match_mismatch_scoring_scheme.hpp:78
constexpr simd_match_mismatch_scoring_scheme(simd_match_mismatch_scoring_scheme &&)=default
Defaulted.
Implementation of a masked alphabet to be used for tuple composites..
Definition: mask.hpp:38
constexpr auto assign_rank_to
Assign a rank to an alphabet object.
Definition: alphabet/concept.hpp:293
A concept that requires that type be able to score two letters.
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides seqan3::scoring_scheme_for.
A strong type of underlying type score_type that represents the score of two matching characters.
Definition: scoring_scheme_base.hpp:41
A strong type of underlying type score_type that represents the score two different characters.
Definition: scoring_scheme_base.hpp:66
seqan3::simd::simd_traits is the trait class that provides uniform interface to the properties of sim...
Definition: simd_traits.hpp:41
Provides seqan3::simd::simd_concept.