SeqAn3 3.1.0
The Modern C++ library for sequence analysis.
align_config_band.hpp
Go to the documentation of this file.
1// -----------------------------------------------------------------------------------------------------
2// Copyright (c) 2006-2021, Knut Reinert & Freie Universität Berlin
3// Copyright (c) 2016-2021, Knut Reinert & MPI für molekulare Genetik
4// This file may be used, modified and/or redistributed under the terms of the 3-clause BSD-License
5// shipped with this file and also available at: https://github.com/seqan/seqan3/blob/master/LICENSE.md
6// -----------------------------------------------------------------------------------------------------
7
14#pragma once
15
16#include <limits>
17
23
25{
26
30struct lower_diagonal : public seqan3::detail::strong_type<int32_t, lower_diagonal>
31{
33 using base_t = seqan3::detail::strong_type<int32_t, lower_diagonal>;
34 // Import the base class constructors
35 using base_t::base_t;
36};
37
41struct upper_diagonal : public seqan3::detail::strong_type<int32_t, upper_diagonal>
42{
44 using base_t = seqan3::detail::strong_type<int32_t, upper_diagonal>;
45 // Import the base class constructors
46 using base_t::base_t;
47};
48
63{
64public:
69
73 constexpr band_fixed_size() = default;
74 constexpr band_fixed_size(band_fixed_size const &) = default;
75 constexpr band_fixed_size(band_fixed_size &&) = default;
76 constexpr band_fixed_size & operator=(band_fixed_size const &) = default;
77 constexpr band_fixed_size & operator=(band_fixed_size &&) = default;
78 ~band_fixed_size() = default;
79
96 {}
98
101 static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::band};
102};
103
104} // namespace seqan3::align_cfg
Includes customized exception types for the alignment module .
Configuration element for setting a fixed size band.
Definition: align_config_band.hpp:63
constexpr band_fixed_size & operator=(band_fixed_size const &)=default
Defaulted.
constexpr band_fixed_size()=default
Defaulted.
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:92
constexpr band_fixed_size(band_fixed_size const &)=default
Defaulted.
constexpr band_fixed_size & operator=(band_fixed_size &&)=default
Defaulted.
~band_fixed_size()=default
Defaulted.
constexpr band_fixed_size(band_fixed_size &&)=default
Defaulted.
Provides seqan3::detail::empty_type.
T lowest(T... args)
T max(T... args)
A special sub namespace for the alignment configurations.
Definition: align_config_band.hpp:25
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:429
Provides seqan3::pipeable_config_element.
Provides basic data structure for strong types.
A strong type representing the lower diagonal of the seqan3::align_cfg::band_fixed_size.
Definition: align_config_band.hpp:31
seqan3::detail::strong_type< int32_t, lower_diagonal > base_t
The type of the strong type base class.
Definition: align_config_band.hpp:33
A strong type representing the upper diagonal of the seqan3::align_cfg::band_fixed_size.
Definition: align_config_band.hpp:42
seqan3::detail::strong_type< int32_t, upper_diagonal > base_t
The type of the strong type base class.
Definition: align_config_band.hpp:44
Adds pipe interface to configuration elements.
Definition: pipeable_config_element.hpp:32