Loading...
Searching...
No Matches
align_config_band.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 <limits>
#include <seqan3/alignment/configuration/detail.hpp>
#include <seqan3/alignment/exception.hpp>
#include <seqan3/core/configuration/pipeable_config_element.hpp>
#include <seqan3/core/detail/empty_type.hpp>
#include <seqan3/core/detail/strong_type.hpp>
namespace seqan3::align_cfg
{
struct lower_diagonal : public seqan3::detail::strong_type<int32_t, lower_diagonal>
{
using base_t = seqan3::detail::strong_type<int32_t, lower_diagonal>;
// Import the base class constructors
using base_t::base_t;
};
struct upper_diagonal : public seqan3::detail::strong_type<int32_t, upper_diagonal>
{
using base_t = seqan3::detail::strong_type<int32_t, upper_diagonal>;
// Import the base class constructors
using base_t::base_t;
};
class band_fixed_size : private pipeable_config_element
{
public:
int32_t lower_diagonal{std::numeric_limits<int32_t>::lowest()};
int32_t upper_diagonal{std::numeric_limits<int32_t>::max()};
constexpr band_fixed_size() = default;
constexpr band_fixed_size(band_fixed_size const &) = default;
constexpr band_fixed_size(band_fixed_size &&) = default;
constexpr band_fixed_size & operator=(band_fixed_size const &) = default;
constexpr band_fixed_size & operator=(band_fixed_size &&) = default;
~band_fixed_size() = default;
constexpr band_fixed_size(seqan3::align_cfg::lower_diagonal const lower_diagonal,
seqan3::align_cfg::upper_diagonal const upper_diagonal) :
lower_diagonal{lower_diagonal.get()},
upper_diagonal{upper_diagonal.get()}
{}
static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::band};
};
} // namespace seqan3::align_cfg
detail.hpp
Provides some utility functions for the alignment configurations.
exception.hpp
Includes customized exception types for the alignment module .
seqan3::align_cfg::band_fixed_size::operator=
constexpr band_fixed_size & operator=(band_fixed_size const &)=default
Defaulted.
seqan3::align_cfg::band_fixed_size::lower_diagonal
int32_t lower_diagonal
The selected lower diagonal. Defaults to std::numeric_limits<int32_t>::lowest().
Definition align_config_band.hpp:63
seqan3::align_cfg::band_fixed_size::band_fixed_size
constexpr band_fixed_size()=default
Defaulted.
seqan3::align_cfg::band_fixed_size::band_fixed_size
constexpr band_fixed_size(seqan3::align_cfg::lower_diagonal const lower_diagonal, seqan3::align_cfg::upper_diagonal const upper_diagonal)
Initialises the fixed size band by setting the lower and the upper matrix diagonal.
Definition align_config_band.hpp:89
seqan3::align_cfg::band_fixed_size::band_fixed_size
constexpr band_fixed_size(band_fixed_size const &)=default
Defaulted.
seqan3::align_cfg::band_fixed_size::upper_diagonal
int32_t upper_diagonal
The selected upper diagonal. Defaults to std::numeric_limits<int32_t>::max().
Definition align_config_band.hpp:65
seqan3::align_cfg::band_fixed_size::operator=
constexpr band_fixed_size & operator=(band_fixed_size &&)=default
Defaulted.
seqan3::align_cfg::band_fixed_size::~band_fixed_size
~band_fixed_size()=default
Defaulted.
seqan3::align_cfg::band_fixed_size::band_fixed_size
constexpr band_fixed_size(band_fixed_size &&)=default
Defaulted.
empty_type.hpp
Provides seqan3::detail::empty_type.
limits
std::numeric_limits::lowest
T lowest(T... args)
std::numeric_limits::max
T max(T... args)
seqan3::align_cfg
A special sub namespace for the alignment configurations.
Definition align_config_band.hpp:22
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
pipeable_config_element.hpp
Provides seqan3::pipeable_config_element.
strong_type.hpp
Provides basic data structure for strong types.
seqan3::align_cfg::lower_diagonal
A strong type representing the lower diagonal of the seqan3::align_cfg::band_fixed_size.
Definition align_config_band.hpp:28
seqan3::align_cfg::lower_diagonal::base_t
seqan3::detail::strong_type< int32_t, lower_diagonal > base_t
The type of the strong type base class.
Definition align_config_band.hpp:30
seqan3::align_cfg::upper_diagonal
A strong type representing the upper diagonal of the seqan3::align_cfg::band_fixed_size.
Definition align_config_band.hpp:39
seqan3::align_cfg::upper_diagonal::base_t
seqan3::detail::strong_type< int32_t, upper_diagonal > base_t
The type of the strong type base class.
Definition align_config_band.hpp:41
seqan3::pipeable_config_element
Adds pipe interface to configuration elements.
Definition pipeable_config_element.hpp:29
Hide me