名前空間
変種
操作

erfc, erfcf, erfcl

From cppreference.com
< c‎ | numeric‎ | math
 
 
 
共通の数学関数
関数
基本的な数学関数
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小演算
(C99)
(C99)
指数関数
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
べき乗関数
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角関数と双曲線関数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
最も近い整数浮動小数点数
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮動小数点操作
(C99)(C99)
(C99)(C23)
(C99)
縮小演算
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子および量子指数
Decimal再エンコーディング関数
総順序およびペイロード関数
分類
(C99)
(C99)
(C99)
(C23)
誤差関数とガンマ関数
(C99)
erfc
(C99)
(C99)
(C99)
マクロ定数
特殊な浮動小数点値
(C99)(C23)
引数と戻り値
エラーハンドリング
高速演算インジケータ
 
ヘッダー <math.h> で定義
float       erfcf( float arg );
(1) (C99以降)
double      erfc( double arg );
(2) (C99以降)
long double erfcl( long double arg );
(3) (C99以降)
ヘッダー <tgmath.h> で定義
#define erfc( arg )
(4) (C99以降)
1-3) arg の補誤差関数、すなわち 1.0 - erf(arg) を計算しますが、arg が大きい場合でも精度を失いません。
4) 型汎用マクロ: arg の型が long double の場合、erfcl が呼び出されます。そうでない場合、arg の型が整数型または double 型の場合、erfc が呼び出されます。それ以外の場合は、erfcf が呼び出されます。

目次

[編集] パラメータ

arg - floating-point value

[編集] 戻り値

エラーが発生しなかった場合、arg の補誤差関数、すなわち
2
π

arg
e-t2
dt
または 1-erf(arg) の値が返されます。

アンダーフローによる範囲エラーが発生した場合、正確な結果 (丸め後) が返される。

[編集] エラー処理

エラーは math_errhandling で指定されたとおりに報告されます。

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

  • 引数が +∞ の場合、+0 が返されます。
  • 引数が -∞ の場合、2 が返されます。
  • 引数が NaN の場合、NaN が返されます。

[編集] 注記

IEEE 互換の型 `double` では、arg > 26.55 の場合、アンダーフローが保証されます。

[編集]

#include <math.h>
#include <stdio.h>
 
double normalCDF(double x) // Phi(-∞, x) aka N(x)
{
    return erfc(-x / sqrt(2)) / 2;
}
 
int main(void)
{
    puts("normal cumulative distribution function:");
    for (double n = 0; n < 1; n += 0.1)
        printf("normalCDF(%.2f) %5.2f%%\n", n, 100 * normalCDF(n));
 
    printf("special values:\n"
           "erfc(-Inf) = %f\n"
           "erfc(Inf) = %f\n",
           erfc(-INFINITY),
           erfc(INFINITY));
}

出力

normal cumulative distribution function:
normalCDF(0.00) 50.00%
normalCDF(0.10) 53.98%
normalCDF(0.20) 57.93%
normalCDF(0.30) 61.79%
normalCDF(0.40) 65.54%
normalCDF(0.50) 69.15%
normalCDF(0.60) 72.57%
normalCDF(0.70) 75.80%
normalCDF(0.80) 78.81%
normalCDF(0.90) 81.59%
normalCDF(1.00) 84.13%
special values:
erfc(-Inf) = 2.000000
erfc(Inf) = 0.000000

[編集] 参考文献

  • C23標準 (ISO/IEC 9899:2024)
  • 7.12.8.2 The erfc functions (p: 249-250)
  • 7.25 型総称数学関数 <tgmath.h> (p: 373-375)
  • F.10.5.2 The erfc functions (p: 525)
  • C17標準 (ISO/IEC 9899:2018)
  • 7.12.8.2 The erfc functions (p: 249-250)
  • 7.25 型総称数学関数 <tgmath.h> (p: 373-375)
  • F.10.5.2 The erfc functions (p: 525)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.12.8.2 The erfc functions (p: 249-250)
  • 7.25 型総称数学関数 <tgmath.h> (p: 373-375)
  • F.10.5.2 The erfc functions (p: 525)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.12.8.2 The erfc functions (p: 230)
  • 7.22 型総称数学関数 <tgmath.h> (p: 335-337)
  • F.9.5.2 The erfc functions (p: 462)

[編集] 関連項目

(C99)(C99)(C99)
誤差関数を計算する
(関数) [編集]

[編集] 外部リンク

Weisstein, Eric W. "Erfc." From MathWorld — A Wolfram Web Resource.
English 日本語 中文(简体) 中文(繁體)