名前空間
変種
操作

fdim

提供: cppreference.com
< c‎ | numeric‎ | math
 
 
 
一般的な数学関数
関数
基本操作
(C99)
(C99)
(C99)
(C99)
fdim
(C99)
(C99)(C99)(C99)
指数関数
(C99)
(C99)
冪関数
三角関数と双曲線関数
誤差関数とガンマ関数
(C99)
(C99)
(C99)
(C99)
最も近い整数
(C99)
(C99)(C99)(C99)
浮動小数点操作関数
(C99)(C99)
(C99)
(C99)
分類
(C99)
(C99)
(C99)
(C99)(C99)
マクロ定数
 
ヘッダ <math.h> で定義
float       fdimf(float x, float y );
(1) (C99以上)
double      fdim(double x, double y );
(2) (C99以上)
longdouble fdiml(longdouble x, longdouble y );
(3) (C99以上)
ヘッダ <tgmath.h> で定義
#define fdim( x, y )
(4) (C99以上)
1-3)xy の間の正の差を返します。 つまり、 x>y の場合は x-y を返し、そうでなければ (x≤y の場合) +0 を返します。
4) 型総称マクロ。 いずれかの引数が longdouble であれば fdiml が呼ばれます。 そうでなく、いずれかの引数が整数型または double であれば fdim が呼ばれます。 そうでなければ fdimf が呼ばれます。

目次

[編集]引数

x, y - 浮動小数点値

[編集]戻り値

成功した場合、 x と y の間の正の差を返します。

オーバーフローによる値域エラーが発生した場合、 +HUGE_VAL+HUGE_VALF または +HUGE_VALL が返されます。

アンダーフローによる値域エラーが発生した場合、 (丸めた後の) 正しい値が返されます。

[編集]エラー処理

math_errhandling で規定されている通りにエラーが報告されます。

処理系が IEEE 浮動小数点算術 (IEC 60559) をサポートしている場合、

  • いずれかの引数が NaN であれば、 NaN が返されます。

[編集]ノート

NaN 処理の要件を除いて fmax(x-y, 0) と同等です。

[編集]

#include <stdio.h>#include <math.h>#include <errno.h>#include <fenv.h>#pragma STDC FENV_ACCESS ONint main(void){printf("fdim(4, 1) = %f, fdim(1, 4)=%f\n", fdim(4,1), fdim(1,4));printf("fdim(4,-1) = %f, fdim(1,-4)=%f\n", fdim(4,-1), fdim(1,-4));//error handlingerrno=0;feclearexcept(FE_ALL_EXCEPT);printf("fdim(1e308, -1e308) = %f\n", fdim(1e308, -1e308));if(errno==ERANGE)perror(" errno == ERANGE");if(fetestexcept(FE_OVERFLOW))puts(" FE_OVERFLOW raised");}

出力例:

fdim(4, 1) = 3.000000, fdim(1, 4)=0.000000 fdim(4,-1) = 5.000000, fdim(1,-4)=5.000000 fdim(1e308, -1e308) = inf errno == ERANGE: Numerical result out of range FE_OVERFLOW raised

[編集]参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.12.12.1 The fdim functions (p: 257)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • F.10.9.1 The fdim functions (p: 530)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.12.12.1 The fdim functions (p: 238)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • F.9.9.1 The fdim functions (p: 466)

[編集]関連項目

整数値の絶対値 (|x|) を計算します
(関数)[edit]
(C99)(C99)(C99)
2つの浮動小数点の大きい方を判定します
(関数)[edit]
close