23template <u
int8_t nbr_blocks>
37 constexpr uint8_t
blocks() const noexcept
67template <u
int8_t nbr_searches, u
int8_t nbr_blocks>
83template <u
int8_t min_error, u
int8_t max_error>
89inline constexpr search_scheme_type<1, 1> optimum_search_scheme<0, 0>{{{{1}, {0}, {0}}}};
92inline constexpr search_scheme_type<2, 2> optimum_search_scheme<0, 1>{
93 {{{1, 2}, {0, 0}, {0, 1}}, {{2, 1}, {0, 1}, {0, 1}}}};
96inline constexpr search_scheme_type<2, 2> optimum_search_scheme<1, 1>{
97 {{{1, 2}, {0, 1}, {0, 1}}, {{2, 1}, {0, 1}, {0, 1}}}};
100inline constexpr search_scheme_type<3, 4> optimum_search_scheme<0, 2>{{{{1, 2, 3, 4}, {0, 0, 1, 1}, {0, 0, 2, 2}},
101 {{3, 2, 1, 4}, {0, 0, 0, 0}, {0, 1, 1, 2}},
102 {{4, 3, 2, 1}, {0, 0, 0, 2}, {0, 1, 2, 2}}}};
105inline constexpr search_scheme_type<3, 4> optimum_search_scheme<1, 2>{{{{1, 2, 3, 4}, {0, 0, 0, 1}, {0, 0, 2, 2}},
106 {{3, 2, 1, 4}, {0, 0, 1, 1}, {0, 1, 1, 2}},
107 {{4, 3, 2, 1}, {0, 0, 0, 2}, {0, 1, 2, 2}}}};
110inline constexpr search_scheme_type<3, 4> optimum_search_scheme<2, 2>{{{{4, 3, 2, 1}, {0, 0, 1, 2}, {0, 0, 2, 2}},
111 {{2, 3, 4, 1}, {0, 0, 0, 2}, {0, 1, 1, 2}},
112 {{1, 2, 3, 4}, {0, 0, 0, 2}, {0, 1, 2, 2}}}};
116inline constexpr search_scheme_type<4, 5> optimum_search_scheme<0, 3>{
117 {{{5, 4, 3, 2, 1}, {0, 0, 0, 0, 0}, {0, 0, 3, 3, 3}},
118 {{3, 4, 5, 2, 1}, {0, 0, 1, 1, 1}, {0, 1, 1, 2, 3}},
119 {{2, 3, 4, 5, 1}, {0, 0, 0, 2, 2}, {0, 1, 2, 2, 3}},
120 {{1, 2, 3, 4, 5}, {0, 0, 0, 0, 3}, {0, 2, 2, 3, 3}}}};
123inline constexpr search_scheme_type<4, 5> optimum_search_scheme<1, 3>{
124 {{{5, 4, 3, 2, 1}, {0, 0, 0, 0, 1}, {0, 0, 3, 3, 3}},
125 {{3, 4, 5, 2, 1}, {0, 0, 1, 1, 1}, {0, 1, 1, 2, 3}},
126 {{2, 3, 4, 5, 1}, {0, 0, 0, 2, 2}, {0, 1, 2, 2, 3}},
127 {{1, 2, 3, 4, 5}, {0, 0, 0, 0, 3}, {0, 2, 2, 3, 3}}}};
130inline constexpr search_scheme_type<4, 5> optimum_search_scheme<2, 3>{
131 {{{5, 4, 3, 2, 1}, {0, 0, 0, 0, 2}, {0, 0, 3, 3, 3}},
132 {{3, 4, 5, 2, 1}, {0, 0, 1, 1, 2}, {0, 1, 1, 2, 3}},
133 {{2, 3, 4, 5, 1}, {0, 0, 0, 2, 2}, {0, 1, 2, 2, 3}},
134 {{1, 2, 3, 4, 5}, {0, 0, 0, 0, 3}, {0, 2, 2, 3, 3}}}};
137inline constexpr search_scheme_type<4, 5> optimum_search_scheme<3, 3>{
138 {{{5, 4, 3, 2, 1}, {0, 0, 0, 0, 3}, {0, 0, 3, 3, 3}},
139 {{3, 4, 5, 2, 1}, {0, 0, 1, 1, 3}, {0, 1, 1, 2, 3}},
140 {{2, 3, 4, 5, 1}, {0, 0, 0, 2, 3}, {0, 1, 2, 2, 3}},
141 {{1, 2, 3, 4, 5}, {0, 0, 0, 0, 3}, {0, 2, 2, 3, 3}}}};
constexpr int optimum_search_scheme
Search scheme that is optimal in the running time for the specified lower and upper error bound.
Definition search_scheme_precomputed.hpp:84
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
Object storing information for a search (of a search scheme).
Definition search_scheme_precomputed.hpp:47
std::vector< uint8_t > pi
Order of blocks.
Definition search_scheme_precomputed.hpp:52
std::vector< uint8_t > u
Upper error bound for each block (accumulated values)
Definition search_scheme_precomputed.hpp:56
std::vector< uint8_t > l
Lower error bound for each block (accumulated values)
Definition search_scheme_precomputed.hpp:54
uint8_t blocks() const noexcept
Returns the number of blocks.
Definition search_scheme_precomputed.hpp:59
Object storing information for a search (of a search scheme).
Definition search_scheme_precomputed.hpp:25
constexpr uint8_t blocks() const noexcept
Returns the number of blocks.
Definition search_scheme_precomputed.hpp:37
std::array< uint8_t, nbr_blocks > u
Upper error bound for each block (accumulated values)
Definition search_scheme_precomputed.hpp:34
std::array< uint8_t, nbr_blocks > l
Lower error bound for each block (accumulated values)
Definition search_scheme_precomputed.hpp:32
std::array< uint8_t, nbr_blocks > pi
Order of blocks.
Definition search_scheme_precomputed.hpp:30