fabs, fabsf, fabsl, fabsd32, fabsd64, fabsd128
From cppreference.net
Common mathematical functions
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ヘッダー
<math.h>
で定義
|
||
|
float
fabsf
(
float
arg
)
;
|
(1) | (C99以降) |
|
double
fabs
(
double
arg
)
;
|
(2) | |
|
long
double
fabsl
(
long
double
arg
)
;
|
(3) | (C99以降) |
|
_Decimal32 fabsd32
(
_Decimal32 arg
)
;
|
(4) | (C23以降) |
|
_Decimal64 fabsd64
(
_Decimal64 arg
)
;
|
(5) | (C23以降) |
|
_Decimal128 fabsd128
(
_Decimal128 arg
)
;
|
(6) | (C23以降) |
|
ヘッダー
<tgmath.h>
で定義
|
||
|
#define fabs( arith )
|
(7) | (C99以降) |
1-6)
浮動小数点値
arg
の絶対値を計算します。
|
10進浮動小数点パラメータを持つ関数は、実装が
|
(C23以降) |
7)
型総称マクロ: 引数の型が
_Decimal128
,
_Decimal64
,
_Decimal32
,
(C23以降)
long
double
,
double
, または
float
の場合、
fabsd128
,
fabsd64
,
fabsd32
,
(C23以降)
fabsl
,
fabs
, または
fabsf
がそれぞれ呼び出されます。それ以外の場合、引数が整数型を持つ場合は、
fabs
が呼び出されます。それ以外の場合、引数が複素数の場合、マクロは対応する複素数関数(
cabsf
,
cabs
,
cabsl
)を呼び出します。それ以外の場合、動作は未定義です。
目次 |
、
、
パラメータ
| arg | - | 浮動小数点値 |
| arith | - | 浮動小数点または整数値 |
戻り値
成功した場合、 arg の絶対値( \(\small |arg| \) |arg| )を返します。返される値は正確であり、丸めモードに依存しません。
エラー処理
この関数は math_errhandling で指定されているいかなるエラー条件の対象にもなりません。
IEEE浮動小数点演算(IEC 60559)を実装がサポートしている場合、
- 引数が±0の場合、+0が返されます。
- 引数が±∞の場合、+∞が返されます。
- 引数がNaNの場合、NaNが返されます。
例
このコードを実行
#include <math.h> #include <stdio.h> #define PI 3.14159 // この数値積分は全ての面積が正であると仮定します double integrate(double f(double), double a, double b, // a < b と仮定 unsigned steps) // steps > 0 と仮定 { const double dx = (b - a) / steps; double sum = 0.0; for (double x = a; x < b; x += dx) sum += fabs(f(x)); return dx * sum; } int main(void) { printf("fabs(+3) = %f\n", fabs(+3.0)); printf("fabs(-3) = %f\n", fabs(-3.0)); // 特殊な値 printf("fabs(-0) = %f\n", fabs(-0.0)); printf("fabs(-Inf) = %f\n", fabs(-INFINITY)); printf("Area under sin(x) in [-PI, PI] = %f\n", integrate(sin, -PI, PI, 5101)); }
出力:
fabs(+3) = 3.000000 fabs(-3) = 3.000000 fabs(-0) = 0.000000 fabs(-Inf) = inf Area under sin(x) in [-PI, PI] = 4.000000
参考文献
- C23規格 (ISO/IEC 9899:2024):
-
- 7.12.7.2 fabs関数群 (p: TBD)
-
- 7.25 総称数学 <tgmath.h> (p: TBD)
-
- F.10.4.2 fabs関数群 (p: TBD)
- C17規格 (ISO/IEC 9899:2018):
-
- 7.12.7.2 fabs関数群 (p: 181)
-
- 7.25 総称数学 <tgmath.h> (p: 272-273)
-
- F.10.4.2 fabs関数群 (p: 382)
- C11規格 (ISO/IEC 9899:2011):
-
- 7.12.7.2 fabs関数群 (p: 248)
-
- 7.25 総称数学 <tgmath.h> (p: 373-375)
-
- F.10.4.2 fabs関数群 (p: 524)
- C99規格 (ISO/IEC 9899:1999):
-
- 7.12.7.2 fabs関数群 (p: 228-229)
-
- 7.22 総称数学 <tgmath.h> (p: 335-337)
-
- F.9.4.2 fabs関数群 (p: 460)
- C89/C90標準 (ISO/IEC 9899:1990):
-
- 4.5.6.2 fabs関数
関連項目
|
(C99)
|
整数値の絶対値を計算する (
\(\small{|x|}\)
|x|
)
(関数) |
|
(C99)
(C99)
(C99)
|
指定された値の絶対値と別の指定された値の符号を持つ値を生成する
(関数) |
|
(C99)
|
指定された数値が負かどうかをチェックする
(関数マクロ) |
|
(C99)
(C99)
(C99)
|
複素数の絶対値を計算する
(関数) |
|
C++ documentation
for
fabs
|
|