vir-simd 0.4.189
Parallelism TS 2 extensions and simd fallback implementation
|
Provides a type transformation for turning scalar user-defined types into a simd types. More...
#include "struct_reflect.h"
#include "constexpr_wrapper.h"
#include <tuple>
#include <iterator>
#include "simd.h"
#include "detail.h"
#include "simd_concepts.h"
#include "simd_permute.h"
Go to the source code of this file.
Classes | |
struct | vir::simdize_size< T > |
class | vir::simd_tuple< T, N > |
simd -like interface for tuples of vectorized data members of T . More... | |
class | vir::vectorized_struct< T, N > |
struct | std::tuple_size< vir::simd_tuple< T, N > > |
struct | std::tuple_element< I, vir::simd_tuple< T, N > > |
struct | std::tuple_size< vir::vectorized_struct< T, N > > |
Namespaces | |
namespace | vir |
This namespace collects libraries and tools authored by Matthias Kretz. | |
Concepts | |
concept | vir::vectorizable_struct_template |
A type T is a vectorizable struct template if all of its data members can be vectorized via template argument simdization. | |
concept | vir::vectorizable_struct |
Typedefs | |
template<typename T, int N = 0> | |
using | vir::simdize = typename detail::simdize_impl<T, N>::type |
Apply a type transformation to a scalar type to produce a data-parallel type. | |
Functions | |
template<std::size_t I, reflectable_struct T, int N> requires (not vectorizable_struct_template<T>) | |
constexpr decltype(auto) | vir::get (const simd_tuple< T, N > &tup) |
template<std::size_t I, vectorizable_struct_template T, int N> | |
constexpr decltype(auto) | vir::get (const vectorized_struct< T, N > &tup) |
Variables | |
template<typename T> | |
vir::simdize_size vir::constexpr_wrapper int constexpr int | vir::simdize_size_v = simdize_size<T>::value |
Inline variable for the simdize_size trait. | |
Provides a type transformation for turning scalar user-defined types into a simd types.