SeqAn3
3.0.1
The Modern C++ library for sequence analysis.
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
alignment_trace_matrix_base.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
15
#include <
vector
>
16
17
#include <
seqan3/alignment/matrix/alignment_coordinate.hpp
>
18
#include <
seqan3/alignment/matrix/detail/two_dimensional_matrix.hpp
>
19
#include <
seqan3/alignment/matrix/trace_directions.hpp
>
20
#include <
seqan3/core/simd/concept.hpp
>
21
#include <
seqan3/range/container/aligned_allocator.hpp
>
22
23
namespace
seqan3::detail
24
{
25
37
template
<
typename
trace_t>
38
struct
alignment_trace_matrix_base
39
{
40
protected
:
41
static_assert(
std::same_as<trace_t, trace_directions>
|| simd_concept<trace_t>,
42
"Value type must either be a trace_directions object or a simd vector."
);
43
45
using
coordinate_type = advanceable_alignment_coordinate<advanceable_alignment_coordinate_state::row>;
47
using
element_type = trace_t;
49
using
allocator_type =
std::conditional_t<detail::simd_concept<trace_t>
,
50
aligned_allocator<element_type,
sizeof
(element_type)>,
51
std::allocator<element_type>
>;
53
using
pool_type = two_dimensional_matrix<element_type, allocator_type, matrix_major_order::column>;
55
using
size_type = size_t;
56
57
public
:
59
pool_type
data
{};
61
std::vector<element_type, allocator_type>
cache_left{};
63
element_type cache_up{};
65
size_type num_cols{};
67
size_type num_rows{};
68
};
69
70
}
// namespace seqan3::detail
vector
concept.hpp
Provides seqan3::simd::simd_concept.
two_dimensional_matrix.hpp
Provides seqan3::detail::two_dimensional_matrix.
trace_directions.hpp
Provides the declaration of seqan3::detail::trace_directions.
same_as
The concept std::same_as<T, U> is satisfied if and only if T and U denote the same type.
aligned_allocator.hpp
Provides seqan3::aligned_allocator.
std::allocator
alignment_coordinate.hpp
Provides seqan3::detail::alignment_coordinate.
std::conditional_t
std::data
T data(T... args)
seqan3
alignment
matrix
detail
alignment_trace_matrix_base.hpp
Generated on Tue Feb 18 2020 09:33:17 for SeqAn3 by
1.8.16