インテル® C++ コンパイラー XE 13.1 ユーザー・リファレンス・ガイド
次の表は、Fvec クラスの算術演算子と一般的な構文を列挙したものです。 この算術演算子はそれぞれ「標準演算」と「高度な演算」に分かれています。この 2 つについてはこのセクションの後半で詳しく解説します。
次の表は、標準算術演算子の構文と組込み関数を列挙したものです。
Fvec クラスの標準算術演算
演算子 |
戻り値 |
構文の使用例 |
組込み関数 |
---|---|---|---|
加算 |
4 float |
F32vec4 R = F32vec4 A + F32vec4 B; |
_mm_add_ps |
|
2 double |
F64vec2 R = F64vec2 A + F32vec2 B; |
_mm_add_pd |
|
1 float |
F32vec1 R = F32vec1 A + F32vec1 B; |
_mm_add_ss |
減算 |
4 float |
F32vec4 R = F32vec4 A - F32vec4 B; |
_mm_sub_ps |
|
2 double |
F64vec2 R - F64vec2 A + F32vec2 B; |
_mm_sub_pd |
|
1 float |
F32vec1 R = F32vec1 A - F32vec1 B; |
_mm_sub_ss |
乗算 |
4 float |
F32vec4 R = F32vec4 A * F32vec4 B; |
_mm_mul_ps |
|
2 double |
F64vec2 R = F64vec2 A * F364vec2 B; |
_mm_mul_pd |
|
1 float |
F32vec1 R = F32vec1 A * F32vec1 B; |
_mm_mul_ss |
除算 |
4 float |
F32vec4 R = F32vec4 A / F32vec4 B; |
_mm_div_ps |
|
2 double |
F64vec2 R = F64vec2 A / F64vec2 B; |
_mm_div_pd |
|
1 float |
F32vec1 R = F32vec1 A / F32vec1 B; |
_mm_div_ss |
次の表に、高度な算術演算子の例をいくつか示します。
Fvec クラス用の高度な算術演算
戻り値 |
構文の使用例 |
組込み関数 |
---|---|---|
平方根 | ||
4 float |
F32vec4 R = sqrt(F32vec4 A); |
_mm_sqrt_ps |
2 double |
F64vec2 R = sqrt(F64vec2 A); |
_mm_sqrt_pd |
1 float |
F32vec1 R = sqrt(F32vec1 A); |
_mm_sqrt_ss |
逆数 | ||
---|---|---|
4 float |
F32vec4 R = rcp(F32vec4 A); |
_mm_rcp_ps |
2 double |
F64vec2 R = rcp(F64vec2 A); |
_mm_rcp_pd |
1 float |
F32vec1 R = rcp(F32vec1 A); |
_mm_rcp_ss |
平方根の逆数 | ||
---|---|---|
4 float |
F32vec4 R = rsqrt(F32vec4 A); |
_mm_rsqrt_ps |
2 double |
F64vec2 R = rsqrt(F64vec2 A); |
_mm_rsqrt_pd |
1 float |
F32vec1 R = rsqrt(F32vec1 A); |
_mm_rsqrt_ss |
逆数 (ニュートンラフソン法) | ||
---|---|---|
4 float |
F32vec4 R = rcp_nr(F32vec4 A); |
_mm_sub_ps |
2 double |
F64vec2 R = rcp_nr(F64vec2 A); |
_mm_sub_pd |
1 float |
F32vec1 R = rcp_nr(F32vec1 A); |
_mm_sub_ss |