vir-simd 0.4.189
Parallelism TS 2 extensions and simd fallback implementation
Loading...
Searching...
No Matches
vir::vectorized_struct< T, N > Class Template Reference

#include <simdize.h>

Public Member Functions

template<std::contiguous_iterator It, typename Flags = stdx::element_aligned_tag>
requires std::same_as<std::iter_value_t<It>, T>
constexpr vectorized_struct (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
 

Detailed Description

template<vectorizable_struct_template T, int N>
requires requires { typename detail::simdize_template_arguments_t<T, N>; }
class vir::vectorized_struct< T, N >

stdx::simd-like interface on top of vectorized types (template argument substitution).

Constructor & Destructor Documentation

◆ vectorized_struct()

template<vectorizable_struct_template T, int N>
template<std::contiguous_iterator It, typename Flags = stdx::element_aligned_tag>
requires std::same_as<std::iter_value_t<It>, T>
vir::vectorized_struct< T, N >::vectorized_struct ( It it,
Flags = {} )
inlineconstexpr

Copies all values from the range starting at it into *this.

Precondition: [it, it + N) is a valid range.

Member Function Documentation

◆ copy_to()

template<vectorizable_struct_template T, int N>
template<std::contiguous_iterator It, typename Flags = stdx::element_aligned_tag>
requires std::output_iterator<It, T>
void vir::vectorized_struct< T, N >::copy_to ( It it,
Flags = {} ) const
inlineconstexpr

Copies all values from *this to the range starting at it.

Precondition: [it, it + N) is a valid range.


The documentation for this class was generated from the following file: