std::experimental::split, split_by
From cppreference.com
< cpp | experimental | simd
Defined in header <experimental/simd>
|
||
template< std::size_t... Sizes, class T, class Abi > std::tuple<simd<T, simd_abi::deduce_t<T, Sizes>>...> |
(1) | (parallelism TS v2) |
template< std::size_t... Sizes, class T, class Abi > std::tuple<simd_mask<T, simd_abi::deduce_t<T, Sizes>>...> |
(2) | (parallelism TS v2) |
template< class V, class Abi > std::array<V, simd_size_v<typename V::value_type, Abi> / V::size()> |
(3) | (parallelism TS v2) |
template< class V, class Abi > std::array<V, simd_size_v<typename V::value_type, Abi> / V::size()> |
(4) | (parallelism TS v2) |
template< size_t N, class T, class A > array<resize_simd<simd_size_v<T, A> / N, simd<T, A>>, N> |
(5) | (parallelism TS v2) |
template< size_t N, class T, class A > array<resize_simd<simd_size_v<T, A> / N, simd_mask<T, A>>, N> |
(6) | (parallelism TS v2) |
Splits the input simd
or simd_mask
object into multiple simd
or simd_mask
objects.
1-2) Split the input object into potentially different types (e.g. types with different sizes) of objects. These functions do not participate in overloading resolution unless Sizes... sum up to v.size().
3-4) Split the input object into an array of objects. These functions do not participate in overloading resolution unless
- The array element must be of type
simd
orsimd_mask
, for the type of v assimd
orsimd_mask
, respectively. - simd_size_v<typename V::value_type, Abi> is an integral multiple of V::size().
5-6) Split the input object into an array of objects. These functions shall not participate in overload resolution unless simd_size_v<T, A> is an integral multiple of
N
.Parameters
v | - | the input simd or simd_mask object
|
Return value
1-2) A tuple that contains the splitted
simd
or simd_mask
objects.3-6) An array that contains the splitted
simd
or simd_mask
objects.Example
This section is incomplete Reason: no example |