SeqAn3
3.0.2
The Modern C++ library for sequence analysis.
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
alignment_score_matrix_one_column_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 <
array
>
16
#include <
utility
>
17
#include <
vector
>
18
19
#include <
seqan3/core/concept/core_language.hpp
>
20
#include <
seqan3/core/simd/concept.hpp
>
21
#include <
seqan3/range/container/aligned_allocator.hpp
>
22
23
namespace
seqan3::detail
24
{
25
35
template
<
typename
score_t>
36
struct
alignment_score_matrix_one_column_base
37
{
38
protected
:
39
static_assert(
arithmetic<score_t>
|| simd_concept<score_t>,
40
"Score type must either be either an arithmetic type or a simd vector type."
);
41
43
using
underlying_type = score_t;
45
using
element_type =
std::tuple<underlying_type, underlying_type>
;
47
using
allocator_type = aligned_allocator<element_type,
sizeof
(element_type)>;
49
using
pool_type =
std::vector<element_type, allocator_type>
;
51
using
size_type = size_t;
52
public
:
54
pool_type pool{};
56
std::array<underlying_type, 3>
cache{};
// Third argument is used to cache next diagonal value in non-banded case.
58
size_type num_cols{};
60
size_type num_rows{};
61
};
62
63
}
// namespace seqan3::detail
utility
vector
std::tuple
concept.hpp
Provides seqan3::simd::simd_concept.
core_language.hpp
Provides concepts for core language types and relations that don't have concepts in C++20 (yet).
array
aligned_allocator.hpp
Provides seqan3::aligned_allocator.
arithmetic
A type that satisfies std::is_arithmetic_v<t>.
Version:
main_user
main_dev
3.4.0
3.3.0
3.2.0
3.1.0
3.0.3
3.0.2
3.0.1
3.0.0
seqan3
alignment
matrix
detail
alignment_score_matrix_one_column_base.hpp
Generated on Thu Dec 3 2020 18:58:17 for SeqAn3 by
1.8.20