インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
本章では、各クラスとそれに関連した処理について説明するときに特殊な用語と構文を用いています。以下で、その説明をします。
クラス名は、データ型、符号の有無、ビット・サイズ、要素数を表現したものです。一般的な形式で表すと次のようになります。
<type><signedness><bits>vec<elements>
{ F | I } { s | u } { 128 | 64 | 32 | 16 | 8 } vec { 16 | 8 | 4 | 2 | 1 }
説明:
type |
浮動小数点 ( F ) または整数 ( I ) を示します。 |
signedness |
符号付き ( s ) または符号なし ( u ) を示します。Ivec クラスの場合は、このフィールドが空のままだと中間クラスを表します。Fvec クラスの場合は、符号なし Fvec クラスは存在しないため、このフィールドは空になります。 |
bits |
要素あたりのビット数です。 |
elements |
要素の個数です。 |
本書では、各クラスと演算についてその機能と特性を定義するときに次の用語を用いています。
最も近い共通の親クラス: サイズの同じ 2 種類のクラスの中間クラスまたは親クラスです。例えば、Iu8vec8 と Is8vec8 の「最も近い共通の親クラス」は I8vec8 で、Iu8vec8 と I16vec4 の場合は M64 です。
キャスト: クラスのデータ型を変更します。データ型の異なる複数のオペランドを使用して演算を行う場合は、その戻り値が 1 つのデータ型になるように、複数のデータ型から要求される 1 つのデータ型に変換する必要があります。この変換処理のことを "型キャスト" と言います。型キャストは自動的に行われる場合もありますが、そうでない場合は特殊な構文を使用して明示的に行う必要があります。
演算子の多重定義: 1 つのユーザー定義のデータ型に対してさまざまな演算子を利用できます。Ivec および Fvec クラスの場合、いったん変数を宣言すれば、加算、減算、乗算はもとより、複数の演算を連続して実行できます。どのクラスファミリーも、規定の範囲の演算子が利用できますが、ヘッダーファイルに定義されている、型キャストと演算子の多重定義に関する規則および制約に従う必要があります。