SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
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 
22 
23 namespace seqan3::detail
24 {
25 
35 template <typename score_t>
37 {
38 protected:
40  "Score type must either be either an arithmetic type or a simd vector type.");
41 
43  using underlying_type = score_t;
51  using size_type = size_t;
52 public:
56  std::array<underlying_type, 3> cache{}; // Third argument is used to cache next diagonal value in non-banded case.
61 };
62 
63 } // namespace seqan3::detail
Provides seqan3::aligned_allocator.
Allocates uninitialized storage whose memory-alignment is specified by alignment.
Definition: aligned_allocator.hpp:70
Provides concepts for core language types and relations that don't have concepts in C++20 (yet).
A type that satisfies std::is_arithmetic_v<t>.
The generic simd concept.
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
A base class for alignment score matrices using only one column to compute the matrix.
Definition: alignment_score_matrix_one_column_base.hpp:37
std::array< underlying_type, 3 > cache
Internal cache for the last diagonal and vertical value during the alignment computation.
Definition: alignment_score_matrix_one_column_base.hpp:56
pool_type pool
The linearised memory pool storing only one column of the matrix.
Definition: alignment_score_matrix_one_column_base.hpp:54
size_t size_type
The size type.
Definition: alignment_score_matrix_one_column_base.hpp:51
score_t underlying_type
The underlying type of the scores.
Definition: alignment_score_matrix_one_column_base.hpp:43
size_type num_rows
The number of num_rows.
Definition: alignment_score_matrix_one_column_base.hpp:60
std::tuple< underlying_type, underlying_type > element_type
The actual element type.
Definition: alignment_score_matrix_one_column_base.hpp:45
size_type num_cols
The number of columns.
Definition: alignment_score_matrix_one_column_base.hpp:58
Provides seqan3::simd::simd_concept.