SeqAn3
3.4.0
The Modern C++ library for sequence analysis.
Toggle main menu visibility
Loading...
Searching...
No Matches
alignment_score_matrix_one_column_base.hpp
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: 2006-2025 Knut Reinert & Freie Universität Berlin
2
// SPDX-FileCopyrightText: 2016-2025 Knut Reinert & MPI für molekulare Genetik
3
// SPDX-License-Identifier: BSD-3-Clause
4
9
10
#pragma once
11
12
#include <
array
>
13
#include <
utility
>
14
#include <
vector
>
15
16
#include <
seqan3/utility/concept.hpp
>
17
#include <
seqan3/utility/container/aligned_allocator.hpp
>
18
#include <seqan3/utility/simd/concept.hpp>
19
20
namespace
seqan3::detail
21
{
22
32
template
<
typename
score_t>
33
struct
alignment_score_matrix_one_column_base
34
{
35
protected
:
36
static_assert
(arithmetic<score_t> || simd_concept<score_t>,
37
"Score type must either be either an arithmetic type or a simd vector type."
);
38
40
using
underlying_type = score_t;
42
using
element_type = std::tuple<underlying_type, underlying_type>;
44
using
allocator_type = aligned_allocator<element_type,
sizeof
(element_type)>;
46
using
pool_type = std::vector<element_type, allocator_type>;
48
using
size_type = size_t;
49
50
public
:
52
pool_type pool{};
54
std::array<underlying_type, 3> cache{};
// Third argument is used to cache next diagonal value in non-banded case.
56
size_type num_cols{};
58
size_type num_rows{};
59
};
60
61
}
// namespace seqan3::detail
aligned_allocator.hpp
Provides seqan3::aligned_allocator.
array
concept.hpp
Provides concepts that do not have equivalents in C++20.
utility
vector
Hide me
Version:
seqan3
alignment
matrix
detail
alignment_score_matrix_one_column_base.hpp
Generated on
for SeqAn3 by
1.17.0