Skip to content

Latest commit

 

History

History
39 lines (31 loc) · 1.5 KB

File metadata and controls

39 lines (31 loc) · 1.5 KB

reduction-binary-operation

  • [meta exposition-only]
  • simd[meta header]
  • concept[meta id-type]
  • std::simd[meta namespace]
  • cpp26[meta cpp]
namespace std::simd {
  template<class BinaryOperation, class T>
  concept reduction-binary-operation =
    requires (const BinaryOperation binary_op, const vec<T, 1> v) {
      { binary_op(v, v) } -> same_as<vec<T, 1>>;
    };
}
  • vec[link basic_vec.md]

概要

reduction-binary-operationは、型BinaryOperationが、要素型Tのデータ並列型に対するreduceの二項演算として使用できることを表す説明専用のコンセプトである。

vec<T, 1>の2つの値で呼び出せて、結果が同じvec<T, 1>型になる場合に、構文的な要件を満たす。

モデル

BinaryOperationTreduction-binary-operation<BinaryOperation, T>のモデルとなるのは、上記の構文的要件に加えて、次を満たす場合に限る。

  • BinaryOperationが要素ごとの二項演算であり、かつ可換であること
  • BinaryOperationのオブジェクトを、未規定のABIタグAbiをもつbasic_vec<T, Abi>型の2引数で呼び出せて、basic_vec<T, Abi>を返すこと

バージョン

言語

  • C++26

関連項目

参照