std::experimental::split (3) Linux Manual Page
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)
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)
split(const simd_mask<T, Abi> &v);
template <class V, class Abi>
std::array<V, simd_size_v<typename V::value_type, Abi> / V::size()>(3)
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> / V::size()>(4)
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.
