最終更新日時:
が更新

履歴 編集

function template
<simd>

std::simd::min(C++26)

namespace std::simd {
  template<class T, class Abi>
  constexpr basic_vec<T, Abi>
    min(const basic_vec<T, Abi>& a,
        const basic_vec<T, Abi>& b) noexcept;  // C++26
}

概要

minは、2つのbasic_vecを要素ごとに比較し、それぞれ小さいほうの値を持つbasic_vecを返す関数である。

テンプレートパラメータ制約

戻り値

i番目の要素がmin(a[i], b[i])となるbasic_vec

例外

投げない

#include <simd>
#include <print>

namespace simd = std::simd;

int main()
{
  simd::vec<int, 4> a([](int i) { return i; });     // {0, 1, 2, 3}
  simd::vec<int, 4> b([](int i) { return 3 - i; }); // {3, 2, 1, 0}

  // 要素ごとの最小値
  auto r = simd::min(a, b);  // {0, 1, 1, 0}

  for (int i = 0; i < r.size(); ++i)
    std::print("{} ", r[i]);
  std::println("");
}

出力

0 1 1 0 

バージョン

言語

  • C++26

処理系

関連項目

参照