インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
right 値のほうが left 値よりも大きい場合は left 値を、そうでない場合は right 値を返します。 #include <sdlt/min_max_val.h>
template<typename T> T min_val(const T left, const T right);
typename T |
left 値と right 値の型 |
std::min および std::max の C++ 実装は、引数への参照を返す条件付き制御フローを作成します。これは、非効率的なベクトルコードを生成することがあります。min_val は、参照の代わりに値を返す単純なテンプレートです。これにより、より効率的なベクトルコードを生成することができます。ほとんどの場合、アルゴリズムは入力への参照は必要とせず、値のコピーだけで十分です。オーバーヘッドを増やさないように、インライン展開すべきです。SIMD ループ内では、std::min の代わりに sdlt::min_val の使用を推奨します。
T 型に < 演算子が定義されている必要があります。