インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
libbfp754 ライブラリーに含まれる多くのルーチンは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーでより高度に最適化されます。
インテルの IEEE 754-2008 2 進準拠ライブラリーは、次の formatOf 一般演算子関数をサポートしています。
説明: この関数は、2 つの浮動小数点数の加算を計算します。そして、結果は出力形式に変換されます。
呼び出しインターフェイス:
float __binary32_add_binary32_binary32(float x, float y);
float __binary32_add_binary32_binary64(float x, double y);
float __binary32_add_binary64_binary32(double x, float y);
float __binary32_add_binary64_binary64(double x, double y);
double __binary64_add_binary32_binary32(float x, float y);
double __binary64_add_binary32_binary64(float x, double y);
double __binary64_add_binary64_binary32(double x, float y);
double __binary64_add_binary64_binary64(double x, double y);
説明: この関数は、2 つの浮動小数点数の減算を計算します。そして、結果は出力形式に変換されます。
呼び出しインターフェイス:
float __binary32_sub_binary32_binary32(float x, float y);
float __binary32_sub_binary32_binary64(float x, double y);
float __binary32_sub_binary64_binary32(double x, float y);
float __binary32_sub_binary64_binary64(double x, double y);
double __binary64_sub_binary32_binary32(float x, float y);
double __binary64_sub_binary32_binary64(float x, double y);
double __binary64_sub_binary64_binary32(double x, float y);
double __binary64_sub_binary64_binary64(double x, double y);
説明: この関数は、2 つの浮動小数点数の乗算を計算します。そして、結果は出力形式に変換されます。
呼び出しインターフェイス:
float __binary32_mul_binary32_binary32(float x, float y);
float __binary32_mul_binary32_binary64(float x, double y);
float __binary32_mul_binary64_binary32(double x, float y);
float __binary32_mul_binary64_binary64(double x, double y);
double __binary64_mul_binary32_binary32(float x, float y);
double __binary64_mul_binary32_binary64(float x, double y);
double __binary64_mul_binary64_binary32(double x, float y);
double __binary64_mul_binary64_binary64(double x, double y);
説明: この関数は、2 つの浮動小数点数の除算を計算します。そして、結果は出力形式に変換されます。
呼び出しインターフェイス:
float __binary32_div_binary32_binary32(float x, float y);
float __binary32_div_binary32_binary64(float x, double y);
float __binary32_div_binary64_binary32(double x, float y);
float __binary32_div_binary64_binary64(double x, double y);
double __binary64_div_binary32_binary32(float x, float y);
double __binary64_div_binary32_binary64(float x, double y);
double __binary64_div_binary64_binary32(double x, float y);
double __binary64_div_binary64_binary64(double x, double y);
説明: この関数は、浮動小数点数の平方根を計算します。そして、結果は出力形式に変換されます。
呼び出しインターフェイス:
float __binary32_sqrt_binary32(float x);
float __binary32_sqrt_binary64(double x);
double __binary32_sqrt_binary32(float x);
double __binary32_sqrt_binary64(double x);
説明: この関数は、3 つの浮動小数点数 x、y、z の FMA (Fused Multiply-Add) を (x×y) +z として計算します。そして、結果は出力形式に変換されます。
呼び出しインターフェイス:
float __binary32_fma_binary32_binary32_binary32(float x, float y, float z);
float __binary32_fma_binary32_binary32_binary64(float x, float y, double z);
float __binary32_fma_binary32_binary64_binary32(float x, double y, float z);
float __binary32_fma_binary32_binary64_binary64(float x, double y, double z);
float __binary32_fma_binary64_binary32_binary32(double x, float y, float z);
float __binary32_fma_binary64_binary32_binary64(double x, float y, double z);
float __binary32_fma_binary64_binary64_binary32(double x, double y, float z);
float __binary32_fma_binary64_binary64_binary64(double x, double y, double z);
double __binary64_fma_binary32_binary32_binary32(float x, float y, float z);
double __binary64_fma_binary32_binary32_binary64(float x, float y, double z);
double __binary64_fma_binary32_binary64_binary32(float x, double y, float z);
double __binary64_fma_binary32_binary64_binary64(float x, double y, double z);
double __binary64_fma_binary64_binary32_binary32(double x, float y, float z);
double __binary64_fma_binary64_binary32_binary64(double x, float y, double z);
double __binary64_fma_binary64_binary64_binary32(double x, double y, float z);
double __binary64_fma_binary64_binary64_binary64(double x, double y, double z);
説明: この関数は、指定された整数形式の整数値を浮動小数点数に変換します。
呼び出しインターフェイス:
float __binary32_from_int32(int n);
double __binary64_from_int32(int n);
float __binary32_from_uint32(unsigned int n);
double __binary64_from_uint32(unsigned int n);
float __binary32_from_int64(long long int n);
double __binary64_from_int64(long long int n);
float __binary32_from_uint64(unsigned long long int n);
double __binary64_from_uint64(unsigned long long int n);
説明: この関数は、浮動小数点数を、指定された整数形式の整数値に丸めます。中間の場合は偶数に丸められます。非正確 (inexact) 例外はシグナル発信されません。
呼び出しインターフェイス:
int __binary32_to_int32_rnint(float x);
int __binary64_to_int32_rnint(double x);
unsigned int __binary32_to_uint32_rnint(float x);
unsigned int __binary64_to_uint32_rnint(double x);
long long int __binary32_to_int64_rnint(float x);
long long int __binary64_to_int64_rnint(double x);
unsigned long long int __binary32_to_uint64_rnint(float x);
unsigned long long int __binary64_to_uint64_rnint(double x);
説明: この関数は、浮動小数点数を、指定された整数形式の整数値にゼロ方向へ丸めます。非正確 (inexact) 例外はシグナル発信されません。
呼び出しインターフェイス:
int __binary32_to_int32_int(float x);
int __binary64_to_int32_int(double x);
unsigned int __binary32_to_uint32_int(float x);
unsigned int __binary64_to_uint32_int(double x);
long long int __binary32_to_int64_int(float x);
long long int __binary64_to_int64_int(double x);
unsigned long long int __binary32_to_uint64_int(float x);
unsigned long long int __binary64_to_uint64_int(double x);
説明: この関数は、浮動小数点数を、指定された整数形式の整数値に正の無限大方向へ丸めます。非正確 (inexact) 例外はシグナル発信されません。
呼び出しインターフェイス:
int __binary32_to_int32_ceil(float x);
int __binary64_to_int32_ceil(double x);
unsigned int __binary32_to_uint32_ceil(float x);
unsigned int __binary64_to_uint32_ceil(double x);
long long int __binary32_to_int64_ceil(float x);
long long int __binary64_to_int64_ceil(double x);
unsigned long long int __binary32_to_uint64_ceil(float x);
unsigned long long int __binary64_to_uint64_ceil(double x);
説明: この関数は、浮動小数点数を、指定された整数形式の整数値に負の無限大方向へ丸めます。非正確 (inexact) 例外はシグナル発信されません。
呼び出しインターフェイス:
int __binary32_to_int32_floor(float x);
int __binary64_to_int32_floor(double x);
unsigned int __binary32_to_uint32_floor(float x);
unsigned int __binary64_to_uint32_floor(double x);
long long int __binary32_to_int64_floor(float x);
long long int __binary64_to_int64_floor(double x);
unsigned long long int __binary32_to_uint64_floor(float x);
unsigned long long int __binary64_to_uint64_floor(double x);
説明: この関数は、浮動小数点数を、指定された整数形式の整数値に丸めます。中間の場合はゼロから離れて丸められます。非正確 (inexact) 例外はシグナル発信されません。
呼び出しインターフェイス:
int __binary32_to_int32_rninta(float x);
int __binary64_to_int32_rninta(double x);
unsigned int __binary32_to_uint32_rninta(float x);
unsigned int __binary64_to_uint32_rninta(double x);
long long int __binary32_to_int64_rninta(float x);
long long int __binary64_to_int64_rninta(double x);
unsigned long long int __binary32_to_uint64_rninta(float x);
unsigned long long int __binary64_to_uint64_rninta(double x);
説明: この関数は、浮動小数点数を、指定された整数形式の整数値に丸めます。中間の場合は偶数に丸められます。非正確 (inexact) であれば、シグナル発信されます。
呼び出しインターフェイス:
int __binary32_to_int32_xrnint(float x);
int __binary64_to_int32_xrnint(double x);
unsigned int __binary32_to_uint32_xrnint(float x);
unsigned int __binary64_to_uint32_xrnint(double x);
long long int __binary32_to_int64_xrnint(float x);
long long int __binary64_to_int64_xrnint(double x);
unsigned long long int __binary32_to_uint64_xrnint(float x);
unsigned long long int __binary64_to_uint64_xrnint(double x);
説明: この関数は、浮動小数点数を、指定された整数形式の整数値にゼロ方向へ丸めます。非正確 (inexact) であれば、シグナル発信されます。
呼び出しインターフェイス:
int __binary32_to_int32_xint(float x);
int __binary64_to_int32_xint(double x);
unsigned int __binary32_to_uint32_xint(float x);
unsigned int __binary64_to_uint32_xint(double x);
long long int __binary32_to_int64_xint(float x);
long long int __binary64_to_int64_xint(double x);
unsigned long long int __binary32_to_uint64_xint(float x);
unsigned long long int __binary64_to_uint64_xint(double x);
説明: この関数は、浮動小数点数を、指定された整数形式の整数値に正の無限大方向へ丸めます。非正確 (inexact) であれば、シグナル発信されます。
呼び出しインターフェイス:
int __binary32_to_int32_xceil(float x);
int __binary64_to_int32_xceil(double x);
unsigned int __binary32_to_uint32_xceil(float x);
unsigned int __binary64_to_uint32_xceil(double x);
long long int __binary32_to_int64_xceil(float x);
long long int __binary64_to_int64_xceil(double x);
unsigned long long int __binary32_to_uint64_xceil(float x);
unsigned long long int __binary64_to_uint64_xceil(double x);
説明: この関数は、浮動小数点数を、指定された整数形式の整数値に負の無限大方向へ丸めます。非正確 (inexact) であれば、シグナル発信されます。
呼び出しインターフェイス:
int __binary32_to_int32_xfloor(float x);
int __binary64_to_int32_xfloor(double x);
unsigned int __binary32_to_uint32_xfloor(float x);
unsigned int __binary64_to_uint32_xfloor(double x);
long long int __binary32_to_int64_xfloor(float x);
long long int __binary64_to_int64_xfloor(double x);
unsigned long long int __binary32_to_uint64_xfloor(float x);
unsigned long long int __binary64_to_uint64_xfloor(double x);
説明: この関数は、浮動小数点数を、指定された整数形式の整数値に丸めます。中間の場合はゼロから離れて丸められます。非正確 (inexact) であれば、シグナル発信されます。
呼び出しインターフェイス:
int __binary32_to_int32_xrninta(float x);
int __binary64_to_int32_xrninta(double x);
unsigned int __binary32_to_uint32_xrninta(float x);
unsigned int __binary64_to_uint32_xrninta(double x);
long long int __binary32_to_int64_xrninta(float x);
long long int __binary64_to_int64_xrninta(double x);
unsigned long long int __binary32_to_uint64_xrninta(float x);
unsigned long long int __binary64_to_uint64_xrninta(double x);
説明: この関数は、binary32 形式の浮動小数点数を binary64 形式に変換します。
呼び出しインターフェイス:
double __binary32_to_binary64(float x);
説明: この関数は、binary64 形式の浮動小数点数を binary32 形式に丸めます。
呼び出しインターフェイス:
float __binary64_to_binary32(double x);
説明: この関数は、10 進文字列を浮動小数点数に変換します。
呼び出しインターフェイス:
float __binary32_from_string(char * s);
double __binary64_from_string(char * s);
説明: この関数は、浮動小数点数を 10 進文字列に変換します。
呼び出しインターフェイス:
char *__binary32_to_string(float x);
char *__binary64_to_string(double x);
説明: この関数は、16 進文字列を浮動小数点数に変換します。
呼び出しインターフェイス:
float __binary32_from_hexstring(char * s);
double __binary64_from_hexstring(char * s);
説明: この関数は、浮動小数点数を 16 進文字列に変換します。
呼び出しインターフェイス:
char *__binary32_to_hexstring(float x);
char *__binary64_to_hexstring(double x);