erfc, erfcf, erfcl

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
类型
(C99)(C99)    

(C99)(C99)    

函数
基本运算
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小运算
(C99)
(C23)    
指数函数
(C23)
(C99)
(C99)
(C23)
(C23)
(C99)
(C99)(C23)
(C23)
(C23)
幂函数
(C99)
(C23)
(C23)
(C99)
(C23)
(C23)
三角及双曲函数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
误差及伽马函数
(C99)
erfc
(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)
量与量指数函数
十进制重编码函数
全序与载荷函数
分类
(C99)
(C99)
(C99)
(C23)
宏常量
特殊浮点值
(C99)(C23)
参数与返回值
(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 <math.h>
#include <stdio.h>
 
double normalCDF(double x) // Phi(-∞, x) 又称为 N(x)
{
    return erfc(-x / sqrt(2)) / 2;
}
int main(void)
{
    puts("正态累积分布函数:");
    for (double n = 0; n < 1; n += 0.1)
        printf("normalCDF(%.2f) %5.2f%%\n", n, 100 * normalCDF(n));
 
    printf("特殊值:\n"
           "erfc(-Inf) = %f\n"
           "erfc(Inf) = %f\n",
           erfc(-INFINITY),
           erfc(INFINITY));
}

输出:

正态累积分布函数:
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 (第 249-250 页)
  • 7.25 Type-generic math <tgmath.h> (第 373-375 页)
  • F.10.5.2 The erfc functions (第 525 页)
  • C17 标准(ISO/IEC 9899:2018):
  • 7.12.8.2 The erfc functions (第 249-250 页)
  • 7.25 Type-generic math <tgmath.h> (第 373-375 页)
  • F.10.5.2 The erfc functions (第 525 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.12.8.2 The erfc functions (第 249-250 页)
  • 7.25 Type-generic math <tgmath.h> (第 373-375 页)
  • F.10.5.2 The erfc functions (第 525 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.12.8.2 The erfc functions (第 230 页)
  • 7.22 Type-generic math <tgmath.h> (第 335-337 页)
  • F.9.5.2 The erfc functions (第 462 页)

参阅

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

外部链接

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