名前空間
変種
操作

std::experimental::split, split_by

From cppreference.com
< cpp‎ | experimental‎ | simd
 
 
 
 
 
ヘッダー <experimental/simd> で定義
template< std::size_t... Sizes, class T, class Abi >

std::tuple<simd<T, simd_abi::deduce_t<T, Sizes>>...>

    split( const simd<T, Abi>& v ) noexcept;
(1) (parallelism TS v2)
template< std::size_t... Sizes, class T, class Abi >

std::tuple<simd_mask<T, simd_abi::deduce_t<T, Sizes>>...>

    split( const simd_mask<T, Abi>& v ) noexcept;
(2) (parallelism TS v2)
template< class V, class Abi >

std::array<V, simd_size_v<typename V::value_type, Abi> / V::size()>

    split( const simd<typename V::value_type, Abi>& v ) noexcept;
(3) (parallelism TS v2)
template< class V, class Abi >

std::array<V, simd_size_v<typename V::value_type, Abi> / V::size()>

    split( const simd_mask<typename V::value_type, Abi>& v ) noexcept;
(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>

    split_by( const simd<T, A>& v ) noexcept;
(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>

    split_by( const simd_mask<T, A>& v ) noexcept;
(6) (parallelism TS v2)

入力されたsimdまたはsimd_maskオブジェクトを、複数のsimdまたはsimd_maskオブジェクトに分割します。

1,2) 入力オブジェクトを、異なる型(例:異なるサイズの型)のオブジェクトに分割します。これらの関数は、Sizes... の合計が v.size() になる場合を除き、オーバーロード解決に参加しません。
3,4) 入力オブジェクトをオブジェクトの配列に分割します。これらの関数は、
  • 配列要素の型は、vsimd または simd_mask の場合、それぞれ simd または simd_mask である必要があります。
  • simd_size_v<typename V::value_type, Abi>V::size() の整数倍である場合に、オーバーロード解決に参加しません。
5,6) 入力オブジェクトをオブジェクトの配列に分割します。これらの関数は、simd_size_v<T, A>N の整数倍である場合を除き、オーバーロード解決に参加しません。

[編集] パラメータ

v - 入力simdまたはsimd_maskオブジェクト

[編集] 戻り値

1,2) 分割されたsimdまたはsimd_maskオブジェクトを含むタプル。
3-6) 分割されたsimdまたはsimd_maskオブジェクトを含む配列。

[編集]

English 日本語 中文(简体) 中文(繁體)