copysign, copysignf, copysignl
提供: cppreference.com
ヘッダ <math.h> で定義 | ||
float copysignf(float x, float y ); | (1) | (C99以上) |
double copysign(double x, double y ); | (2) | (C99以上) |
longdouble copysignl(longdouble x, longdouble y ); | (3) | (C99以上) |
ヘッダ <tgmath.h> で定義 | ||
#define copysign(x, y) | (4) | (C99以上) |
1-3)
x
の絶対値と y
の符号を持つ浮動小数点値を合成します。4) 型総称マクロ。 任意の引数が longdouble の場合は
copysignl
が呼ばれます。 そうでなく、任意の引数が整数型または double 型の場合は copysign
が呼ばれます。 そうでなければ copysignf
が呼ばれます。目次 |
[編集]引数
x, y | - | 浮動小数点値 |
[編集]戻り値
エラーが発生しなければ、 x
の絶対値と y
の符号を持つ浮動小数点値が返されます。
x
が NaN の場合は y
の符号を持つ NaN が返されます。
y
が -0 の場合、処理系が算術演算で符号付きのゼロを一貫してサポートしていれば、結果は負のみになります。
[編集]エラー処理
この関数は math_errhandling で規定されているいかなるエラーの対象でもありません。
処理系が IEEE 浮動小数点算術 (IEC 60559) をサポートしている場合、
- 返された値は正確であり (FE_INEXACT は発生しません)、現在の丸めモードに依存しません。
[編集]ノート
copysign
は NaN 値の符号を操作する移植性のある唯一の方法です (NaN の符号を検査するためには signbit も使用することができます)。
[編集]例
Run this code
出力例:
copysign(1.0,+2.0) = +1.0 copysign(1.0,-2.0) = -1.0 copysign(INFINITY,-2.0) = -inf copysign(NAN,-2.0) = -nan
[編集]参考文献
- C11 standard (ISO/IEC 9899:2011):
- 7.12.11.1 The copysign functions (p: 255)
- 7.25 Type-generic math <tgmath.h> (p: 373-375)
- F.10.8.1 The copysign functions (p: 529)
- C99 standard (ISO/IEC 9899:1999):
- 7.12.11.1 The copysign functions (p: 236)
- 7.22 Type-generic math <tgmath.h> (p: 335-337)
- F.9.8.1 The copysign functions (p: 465)
[編集]関連項目
(C99)(C99) | 浮動小数点値の絶対値 (|x|) を計算します (関数) |
(C99) | 指定された値が負かどうか調べます (関数マクロ) |
copysign の C++リファレンス |