SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
hamming_scoring_scheme.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2006-2024 Knut Reinert & Freie Universität Berlin
2// SPDX-FileCopyrightText: 2016-2024 Knut Reinert & MPI für molekulare Genetik
3// SPDX-License-Identifier: BSD-3-Clause
4
10#pragma once
11
12#include <concepts>
13
15
16namespace seqan3
17{
18
33{
34public:
37 using alphabet_type = char;
39
41 using score_type = int32_t;
42
46 hamming_scoring_scheme() noexcept = default;
48
67 template <typename alph1_t, typename alph2_t>
68 requires std::equality_comparable_with<std::remove_reference_t<alph1_t>, std::remove_reference_t<alph2_t>>
69 constexpr score_type score(alph1_t const alph1, alph2_t const alph2) const noexcept
70 {
71 return alph1 == alph2 ? 0 : -1;
72 }
74
77
79 constexpr bool operator==(hamming_scoring_scheme const &) const noexcept
80 {
81 return true;
82 }
83
85 constexpr bool operator!=(hamming_scoring_scheme const &) const noexcept
86 {
87 return false;
88 }
90};
91
92} // namespace seqan3
A scoring scheme that assigns a score of 0 to matching letters and -1 to mismatching letters.
Definition hamming_scoring_scheme.hpp:33
int32_t score_type
The underlying score type.
Definition hamming_scoring_scheme.hpp:41
constexpr score_type score(alph1_t const alph1, alph2_t const alph2) const noexcept
Returns the score of two letters.
Definition hamming_scoring_scheme.hpp:69
constexpr bool operator==(hamming_scoring_scheme const &) const noexcept
Always true.
Definition hamming_scoring_scheme.hpp:79
constexpr bool operator!=(hamming_scoring_scheme const &) const noexcept
Always false.
Definition hamming_scoring_scheme.hpp:85
hamming_scoring_scheme() noexcept=default
The main SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
SeqAn specific customisations in the standard namespace.
Provides platform and dependency checks.
Hide me