18#include <seqan3/utility/simd/concept.hpp>
20namespace seqan3::detail
34template <
typename trace_t>
35struct alignment_trace_matrix_base
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.");
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;
58 std::vector<element_type, allocator_type> cache_left{};
60 element_type cache_up{};
Provides seqan3::detail::advanceable_alignment_coordinate.
Provides seqan3::aligned_allocator.
Provides the declaration of seqan3::detail::trace_directions.
Provides seqan3::detail::two_dimensional_matrix.