std::experi...lit,split_by(3)
π¦ std::experimental::split, split_by β C++ Standard Libary π¦
Manual-name moment: std::experi...lit,split_by(3). Bestie, we are in the C++ Standard Libary, and this page is all about splitting simd / simd_mask objects. Itβs giving parallelism TS v2 realness. π
β¨ NAME β¨
std::experimental::split,split_by β std::experimental::split,split_by
πΈ 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 ) noexcept;
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 ) noexcept;
template< class V, class Abi >
std::array<V, simd_size_v<typename V::value_type, Abi> /
V::size()> (3)
(parallelism TS v2)
split( const simd<typename V::value_type, Abi>& v )
noexcept;
template< class V, class Abi >
std::array<V, simd_size_v<typename V::value_type, Abi> /
V::size()> (4)
(parallelism TS v2)
split( const simd_mask<typename V::value_type, Abi>& v )
noexcept;
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)
split_by( const simd<T, A>& v ) noexcept;
template< size_t N, class T, class A >
array<resize_simd<simd_size_v<T, A> / N, simd_mask<T, A>>, (6)
(parallelism TS v2)
N>
split_by( const simd_mask<T, A>& v ) noexcept;
Okay so the whole vibe: these split the input simd or simd_mask object into multiple simd or simd_mask objects. Periodt. π
- 1, 2 β these split the input object into potentially different types of objects, e.g. types with different sizes. These functions do not participate in overloading resolution unless
Sizes...sum up tov.size(). No cap. - 3, 4 β these 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
simdorsimd_mask, for the type ofvassimdorsimd_mask, respectively. simd_size_v<typename V::value_type, Abi>is an integral multiple ofV::size().
- The array element must be of type
- 5, 6 β these 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 ofN.
π«Ά Parameters π«Ά
vβ the inputsimdorsimd_maskobject.
π Return value π
- 1, 2 β a tuple that contains the splitted
simdorsimd_maskobjects. - 3β6 β an array that contains the splitted
simdorsimd_maskobjects.
π Example π
This section is incomplete Reason: no example
π Category π
- Todo no example
Cute sign-off at the very end, bestie: source/version/date = http://cppreference.com Β· 2024.06.10 Β· page std::experi...lit,split_by(3). πβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms