SeqAn3  3.0.2
The Modern C++ library for sequence analysis.
align_config_band.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2020, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2020, 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 
21 
23 {
24 
28 struct lower_diagonal : public seqan3::detail::strong_type<int32_t, lower_diagonal>
29 {
31  using base_t = seqan3::detail::strong_type<int32_t, lower_diagonal>;
32  // Import the base class constructors
33  using base_t::base_t;
34 };
35 
39 struct upper_diagonal : public seqan3::detail::strong_type<int32_t, upper_diagonal>
40 {
42  using base_t = seqan3::detail::strong_type<int32_t, upper_diagonal>;
43  // Import the base class constructors
44  using base_t::base_t;
45 };
46 
71 class band_fixed_size : public pipeable_config_element<band_fixed_size>
72 {
73 public:
78 
82  constexpr band_fixed_size() = default;
83  constexpr band_fixed_size(band_fixed_size const &) = default;
84  constexpr band_fixed_size(band_fixed_size &&) = default;
85  constexpr band_fixed_size & operator=(band_fixed_size const &) = default;
86  constexpr band_fixed_size & operator=(band_fixed_size &&) = default;
87  ~band_fixed_size() = default;
88 
105  {}
107 
110  static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::band};
111 };
112 
113 } // namespace seqan3::align_cfg
seqan3::align_cfg::band_fixed_size::band_fixed_size
constexpr band_fixed_size()=default
Defaulted.
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:31
strong_type.hpp
Provides basic data structure for strong types.
seqan3::align_cfg::band_fixed_size::operator=
constexpr band_fixed_size & operator=(band_fixed_size &&)=default
Defaulted.
seqan3::align_cfg::band_fixed_size::operator=
constexpr band_fixed_size & operator=(band_fixed_size const &)=default
Defaulted.
pipeable_config_element.hpp
Provides seqan3::pipeable_config_element.
exception.hpp
Includes customized exception types for the alignment module .
seqan3::align_cfg::band_fixed_size::~band_fixed_size
~band_fixed_size()=default
Defaulted.
std::numeric_limits::lowest
T lowest(T... args)
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
Configuration element for setting a fixed size band.
Definition: align_config_band.hpp:72
seqan3::align_cfg
A special sub namespace for the alignment configurations.
Definition: align_config_band.hpp:23
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:101
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:42
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.
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:29
std::numeric_limits::max
T max(T... args)
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:40
detail.hpp
Provides some utility functions for the alignment configurations.