erfc, erfcf, erfcl

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
指数函数
(C99)
(C99)
(C99)
(C99)
幂函数
(C99)
(C99)
三角及双曲函数
(C99)
(C99)
(C99)
误差及伽马函数
(C99)
erfc
(C99)
(C99)
(C99)
临近整数的浮点运算
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
浮点数操作函数
(C99)(C99)
(C99)
(C99)
分类
(C99)
(C99)
(C99)
类型
(C99)(C99)
宏常量
 
定义于头文件 <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 - 浮点值

返回值

若不发生错误,则返回 arg 的补误差函数的值,即
2
π

arg
e-t2
dt
1-erf(arg)

若发生源于下溢的值域错误,则返回(舍入后的)正确结果。

错误处理

报告 math_errhandling 中指定的错误。

若实现支持 IEEE 浮点算术( IEC 60559 ),则

  • 若参数为 +∞ ,则返回 +0
  • 若参数为 -∞ ,则返回 2
  • 若参数为 NaN ,则返回 NaN

注意

对于 IEEE 兼容的 double 类型,若 arg > 26.55 则保证下溢。

示例

#include <stdio.h>
#include <math.h>
 
double normalCDF(double x) // Phi(-∞, x) 又称为 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));
 
    puts("special values:");
    printf("erfc(-Inf) = %f\n", erfc(-INFINITY));
    printf("erfc(Inf) = %f\n", 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

引用

  • C11 standard (ISO/IEC 9899:2011):
  • 7.12.8.2 The erfc functions (p: 249-250)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • F.10.5.2 The erfc functions (p: 525)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.12.8.2 The erfc functions (p: 230)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • F.9.5.2 The erfc functions (p: 462)

参阅

(C99)(C99)(C99)
计算误差函数
(函数)

外部链接

Weisstein, Eric W. "Erfc." 来自 MathWorld--A Wolfram Web Resource 。