SeqAn3
3.4.0
The Modern C++ library for sequence analysis.
Toggle main menu visibility
Loading...
Searching...
No Matches
alignment_trace_matrix_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 <
vector
>
13
14
#include <
seqan3/alignment/matrix/detail/advanceable_alignment_coordinate.hpp
>
15
#include <
seqan3/alignment/matrix/detail/trace_directions.hpp
>
16
#include <
seqan3/alignment/matrix/detail/two_dimensional_matrix.hpp
>
17
#include <
seqan3/utility/container/aligned_allocator.hpp
>
18
#include <seqan3/utility/simd/concept.hpp>
19
20
namespace
seqan3::detail
21
{
22
34
template
<
typename
trace_t>
35
struct
alignment_trace_matrix_base
36
{
37
protected
:
38
static_assert
(std::same_as<trace_t, trace_directions> || simd_concept<trace_t>,
39
"Value type must either be a trace_directions object or a simd vector."
);
40
42
using
coordinate_type = advanceable_alignment_coordinate<advanceable_alignment_coordinate_state::row>;
44
using
element_type = trace_t;
46
using
allocator_type = std::conditional_t<detail::simd_concept<trace_t>,
47
aligned_allocator<element_type,
sizeof
(element_type)>,
48
std::allocator<element_type>>;
50
using
pool_type = two_dimensional_matrix<element_type, allocator_type, matrix_major_order::column>;
52
using
size_type = size_t;
53
54
public
:
56
pool_type data{};
58
std::vector<element_type, allocator_type> cache_left{};
60
element_type cache_up{};
62
size_type num_cols{};
64
size_type num_rows{};
65
};
66
67
}
// namespace seqan3::detail
advanceable_alignment_coordinate.hpp
Provides seqan3::detail::advanceable_alignment_coordinate.
aligned_allocator.hpp
Provides seqan3::aligned_allocator.
trace_directions.hpp
Provides the declaration of seqan3::detail::trace_directions.
two_dimensional_matrix.hpp
Provides seqan3::detail::two_dimensional_matrix.
vector
Hide me
Version:
seqan3
alignment
matrix
detail
alignment_trace_matrix_base.hpp
Generated on
for SeqAn3 by
1.17.0