Scroll to navigation

std::experimental::split,split_by(3) C++ Standard Libary std::experimental::split,split_by(3)

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;


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 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().
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

Category:


* Todo no example

2024.06.10 http://cppreference.com