vir-simd 0.4.189
Parallelism TS 2 extensions and simd fallback implementation
|
simd
-like interface for tuples of vectorized data members of T
.
More...
#include <simdize.h>
Public Types | |
using | value_type = T |
The element type of this simd -like type. | |
using | mask_type = typename std::tuple_element_t<0, tuple_type>::mask_type |
The associated simd_mask type. | |
Public Member Functions | |
template<reflectable_struct U> requires (struct_size_v<U> == struct_size_v<T> and detail::test_all_of<std::is_constructible, std::tuple_element, tuple_type, struct_element, U>(tuple_size_idx_seq).value) | |
constexpr | explicit (not detail::test_all_of< std::is_convertible, struct_element, U, std::tuple_element, tuple_type >(tuple_size_idx_seq).value) simd_tuple(const U &init) |
template<std::contiguous_iterator It, typename Flags = stdx::element_aligned_tag> requires std::same_as<std::iter_value_t<It>, T> | |
constexpr | simd_tuple (It it, Flags={}) |
template<std::contiguous_iterator It, typename Flags = stdx::element_aligned_tag> requires std::output_iterator<It, T> | |
constexpr void | copy_to (It it, Flags={}) const |
Static Public Attributes | |
static constexpr auto | size = vir::cw<N> |
The number of elements (of value_type) contained in objects of this type. | |
simd
-like interface for tuples of vectorized data members of T
.
|
inlineconstexpr |
Copies all values from the range starting at it
into *this
.
Precondition: [it, it + N) is a valid range.
|
inlineconstexpr |
Constructs from a compatible aggregate. Potentially broadcasts all or some elements.
|
inlineconstexpr |
Copies all values from *this
to the range starting at it
.
Precondition: [it, it + N) is a valid range.