インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
丸めモードに応じて、単精度浮動小数点値を最も近い整数値に丸めます。対応するインテル® AVX 命令は VROUNDPS です。
extern __m256 _mm256_round_ps(__m256 a, int iRoundMode ); |
a |
float32 ベクトル |
iRoundMode |
丸めモードに依存する 16 進値:
|
float32 ベクトル a の要素を最も近い整数値に丸めます。#defines 形式の 2 つのショートカットを使用して、次の 2 つの操作を行うことができます。
#define _mm256_ceil_ps(a) _mm256_round_ps((a), 0x0A) #define _mm256_floor_ps(a) _mm256_round_ps((a), 0x09)
#defines は、すべての _mm256_ceil_ps(a) を _mm256_round_ps((a), 0x0A) へ、すべての _mm256_floor_ps(a) を _mm256_round_ps((a), 0x09) へ置換するようにプリプロセッサーに指示します。
例えば、次のコードを考えてみます。
__m256 a, b; a = _mm256_ceil_ps(b);
プリプロセッサーは、次のように変更します。
a = _mm256_round_ps(b, 0x0a);
(即値オペランドの) iRoundMode の値に応じて、浮動小数点の精度の例外が発生します。
丸め操作の結果である単精度浮動小数点ベクトル。