SeqAn3
The Modern C++ library for sequence analysis.
simd_debug_stream.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2019, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2019, 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 
18 
19 namespace seqan3
20 {
21 
29 template <typename simd_t>
31  requires simd::Simd<remove_cvref_t<simd_t>>
33 inline debug_stream_type & operator<<(debug_stream_type & s, simd_t && simd)
34 {
35  using simd_type = remove_cvref_t<simd_t>;
36  constexpr size_t length = simd::simd_traits<simd_type>::length;
37  using scalar_type = typename simd::simd_traits<simd_type>::scalar_type;
38 
40  for (size_t i = 0; i < length; ++i)
41  array[i] = simd[i];
42  s << array;
43  return s;
44 }
45 
46 } // namespace seqan3
Provides seqan3::simd::Simd.
Provides seqan3::simd::simd_traits.
The main SeqAn3 namespace.
debug_stream_type & operator<<(debug_stream_type &stream, tuple_t const &alignment)
Streaming operator for alignments, which are represented as tuples of aligned sequences.
Definition: aligned_sequence_concept.hpp:518
Provides seqan3::debug_stream and related types.