SeqAn3  3.2.0
The Modern C++ library for sequence analysis.
debug_stream_simd.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2022, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2022, 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 
19 
20 namespace seqan3
21 {
22 
30 template <typename char_t, typename simd_t>
31  requires simd::simd_concept<std::remove_cvref_t<simd_t>>
32 inline debug_stream_type<char_t> & operator<<(debug_stream_type<char_t> & s, simd_t && simd)
33 {
34  using simd_type = std::remove_cvref_t<simd_t>;
35  constexpr size_t length = simd::simd_traits<simd_type>::length;
36  using scalar_type = typename simd::simd_traits<simd_type>::scalar_type;
37 
39  for (size_t i = 0; i < length; ++i)
40  array[i] = simd[i];
41  s << array;
42  return s;
43 }
44 
45 } // namespace seqan3
Provides seqan3::debug_stream and related types.
requires requires
The rank_type of the semi-alphabet; defined as the return type of seqan3::to_rank....
Definition: alphabet/concept.hpp:164
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
requires detail::debug_stream_range_guard< alignment_matrix_t > &&detail::matrix< alignment_matrix_t > debug_stream_type< char_t > & operator<<(debug_stream_type< char_t > &s, alignment_matrix_t &&matrix)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: debug_matrix.hpp:496
Provides seqan3::debug_stream and related types.
Provides seqan3::simd::simd_traits.
Provides seqan3::simd::simd_concept.