SeqAn3  3.0.1
The Modern C++ library for sequence analysis.
detail.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 
13 #pragma once
14 
16 
17 namespace seqan3::detail
18 {
19 
20 // ----------------------------------------------------------------------------
21 // search_config_id
22 // ----------------------------------------------------------------------------
23 
40 enum struct search_config_id : uint8_t
41 {
42  max_error,
43  max_error_rate,
44  output,
45  mode,
46  parallel,
47  // ATTENTION: Must always be the last item; will be used to determine the number of ids.
49  SIZE
50 };
52 
53 // ----------------------------------------------------------------------------
54 // search_config_validation_matrix
55 // ----------------------------------------------------------------------------
56 
67 template <>
68 inline constexpr std::array<std::array<bool, static_cast<uint8_t>(search_config_id::SIZE)>,
69  static_cast<uint8_t>(search_config_id::SIZE)> compatibility_table<search_config_id> =
70 {
71  {
72  // max_error, max_error_rate, output, mode, parallel
73  { 0, 0, 1, 1, 1},
74  { 0, 0, 1, 1, 1},
75  { 1, 1, 0, 1, 1},
76  { 1, 1, 1, 0, 1},
77  { 1, 1, 1, 1, 0}
78  }
79 };
80 
81 } // namespace seqan3::detail
seqan3::align_cfg::parallel
seqan3::detail::parallel_mode< std::integral_constant< detail::align_config_id, detail::align_config_id::parallel > > parallel
Enables the parallel execution of the alignment algorithm if possible for the given configuration.
Definition: align_config_parallel.hpp:40
std::array
configuration_utility.hpp
Provides functionality to access get function by enum values.