table of contents
std::experimental::split(3) | C++ Standard Libary | std::experimental::split(3) |
NAME¶
std::experimental::split - std::experimental::split
Synopsis¶
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)
split( const simd<T, Abi>& v );
template < std::size_t... Sizes, class T, class Abi >
std::tuple<simd_mask<T, simd_abi::deduce_t<T, Sizes>>...>
(2) (parallelism TS v2)
split( const simd_mask<T, Abi>& v );
template < class V, class Abi >
std::array<V, simd_size_v<typename V::value_type, Abi> / (3)
(parallelism TS v2)
V::size()>
split( const simd<typename V::value_type, Abi>& v );
template < class V, class Abi >
std::array<V, simd_size_v<typename V::value_type, Abi> / (4)
(parallelism TS v2)
V::size()>
split( const simd_mask<typename V::value_type, Abi>& v );
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 a array of objects. These functions do not
participate in overloading resolution unless
* The array element must be of type simd or simd_mask, for the type of v as
simd
or simd_mask, respectively.
* simd_size_v<typename V::value_type, Abi> is an integral multiple of
V::size().
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-4) an array that contains the splitted simd or simd_mask objects.
Example¶
2022.07.31 | http://cppreference.com |