SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
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 
22 
23 namespace seqan3::detail
24 {
25 
37 template <typename trace_t>
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 
47  using element_type = trace_t;
55  using size_type = size_t;
56 
57 public:
68 };
69 
70 } // namespace seqan3::detail
Provides seqan3::aligned_allocator.
Provides seqan3::detail::alignment_coordinate.
Allocates uninitialized storage whose memory-alignment is specified by alignment.
Definition: aligned_allocator.hpp:72
Implements an internal alignment coordinate that can be used as an argument to the std::ranges::iota_...
Definition: alignment_coordinate.hpp:65
The generic simd concept.
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
A crtp-base class for alignment traceback matrices.
Definition: alignment_trace_matrix_base.hpp:39
size_t size_type
The size type.
Definition: alignment_trace_matrix_base.hpp:55
std::vector< element_type, allocator_type > cache_left
Internal cache for the trace values to the left.
Definition: alignment_trace_matrix_base.hpp:61
size_type num_rows
The number of num_rows.
Definition: alignment_trace_matrix_base.hpp:67
element_type cache_up
Internal cache for the last trace value above.
Definition: alignment_trace_matrix_base.hpp:63
trace_t element_type
The actual element type.
Definition: alignment_trace_matrix_base.hpp:47
size_type num_cols
The number of columns.
Definition: alignment_trace_matrix_base.hpp:65
pool_type data
The linearised matrix storing the trace data in column-major-order.
Definition: alignment_trace_matrix_base.hpp:59
Provides the declaration of seqan3::detail::trace_directions.
Provides seqan3::detail::two_dimensional_matrix.
Provides seqan3::simd::simd_concept.