インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

_mm256_round_ps

丸めモードに応じて、単精度浮動小数点値を最も近い整数値に丸めます。対応するインテル® AVX 命令は VROUNDPS です。

構文

extern __m256 _mm256_round_ps(__m256 a, int iRoundMode );

引数

a

float32 ベクトル

iRoundMode

丸めモードに依存する 16 進値:

  • 最も近い整数値へ切り上げる場合は 0x0A
  • 最も近い整数値へ切り捨てる場合は 0x09

説明

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 の値に応じて、浮動小数点の精度の例外が発生します。

戻り値

丸め操作の結果である単精度浮動小数点ベクトル。