20template <
template <
typename>
typename rebind>
31template <
typename simd_t>
33 typename simd_traits<std::remove_reference_t<simd_t>>::scalar_type;
34 typename simd_traits<std::remove_reference_t<simd_t>>::mask_type;
35 typename simd_traits<std::remove_reference_t<simd_t>>::swizzle_type;
36 requires simd_traits_has_rebind<simd_traits<std::remove_reference_t<simd_t>>::template rebind>::value;
39 requires std::integral<
decltype(simd_traits<std::remove_reference_t<simd_t>>::length)>;
40 requires std::integral<
decltype(simd_traits<std::remove_reference_t<simd_t>>::max_length)>;
43 { a[0] } -> std::convertible_to<typename simd_traits<std::remove_reference_t<simd_t>>::scalar_type>;
46 { a == b } -> std::same_as<typename simd_traits<std::remove_reference_t<simd_t>>::mask_type>;
47 { a != b } -> std::same_as<typename simd_traits<std::remove_reference_t<simd_t>>::mask_type>;
48 { a < b } -> std::same_as<typename simd_traits<std::remove_reference_t<simd_t>>::mask_type>;
49 { a > b } -> std::same_as<typename simd_traits<std::remove_reference_t<simd_t>>::mask_type>;
50 { a <= b } -> std::same_as<typename simd_traits<std::remove_reference_t<simd_t>>::mask_type>;
51 { a >= b } -> std::same_as<typename simd_traits<std::remove_reference_t<simd_t>>::mask_type>;
54 { a + b } -> std::same_as<std::remove_reference_t<simd_t>>;
55 { a - b } -> std::same_as<std::remove_reference_t<simd_t>>;
56 { a * b } -> std::same_as<std::remove_reference_t<simd_t>>;
57 { a / b } -> std::same_as<std::remove_reference_t<simd_t>>;
58 { a += b } -> std::same_as<std::remove_reference_t<simd_t> &>;
59 { a -= b } -> std::same_as<std::remove_reference_t<simd_t> &>;
60 { a *= b } -> std::same_as<std::remove_reference_t<simd_t> &>;
61 { a /= b } -> std::same_as<std::remove_reference_t<simd_t> &>;
87template <
typename simd_t>
88concept simd_concept = !std::is_pointer_v<std::decay_t<simd_t>> && detail::simd_concept<simd_t>;
104 requires std::integral<typename simd_traits<std::remove_reference_t<t>>::scalar_type>;
The generic simd concept.
Refines the seqan3::simd::simd_concept requiring the underlying scalar type to model std::integral.
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
The main SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
Provides seqan3::simd::simd_traits.