Loading...
Searching...
No Matches
policy_scoring_scheme.hpp
Go to the documentation of this file.
// SPDX-FileCopyrightText: 2006-2025 Knut Reinert & Freie Universität Berlin
// SPDX-FileCopyrightText: 2016-2025 Knut Reinert & MPI für molekulare Genetik
// SPDX-License-Identifier: BSD-3-Clause
#pragma once
#include <seqan3/alignment/configuration/align_config_scoring_scheme.hpp>
#include <seqan3/core/configuration/configuration.hpp>
#include <seqan3/utility/simd/concept.hpp>
namespace seqan3::detail
{
template <typename alignment_configuration_t, typename scoring_scheme_t>
class policy_scoring_scheme
{
protected:
scoring_scheme_t scoring_scheme{};
policy_scoring_scheme() = default;
policy_scoring_scheme(policy_scoring_scheme const &) = default;
policy_scoring_scheme(policy_scoring_scheme &&) = default;
policy_scoring_scheme & operator=(policy_scoring_scheme const &) = default;
policy_scoring_scheme & operator=(policy_scoring_scheme &&) = default;
~policy_scoring_scheme() = default;
explicit policy_scoring_scheme(alignment_configuration_t const & config) :
scoring_scheme{seqan3::get<align_cfg::scoring_scheme>(config).scheme}
{}
template <typename alphabet_t>
requires simd_concept<std::remove_cvref_t<alphabet_t>>
auto scoring_scheme_profile_column(alphabet_t && alphabet) const noexcept
{
return scoring_scheme.make_score_profile(std::forward<alphabet_t>(alphabet));
}
template <semialphabet alphabet_t>
alphabet_t scoring_scheme_profile_column(alphabet_t && alphabet) const noexcept
{
return std::forward<alphabet_t>(alphabet);
}
};
} // namespace seqan3::detail
align_config_scoring_scheme.hpp
Provides seqan3::align_cfg::scoring_scheme.
configuration.hpp
Provides seqan3::configuration and utility functions.
std::forward
T forward(T... args)
seqan3::get
constexpr auto const & get(configuration< configs_t... > const &config) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition configuration.hpp:412
Hide me