# erf, erff, erfl

< c‎ | numeric‎ | math

定义于头文件 `<math.h>` |  |
float erff( float arg ); | (1) | (C99 起)
double erf( double arg ); | (2) | (C99 起)
long double erfl( long double arg ); | (3) | (C99 起)
定义于头文件 `<tgmath.h>` |  |
#define erf( arg ) | (4) | (C99 起)

1-3) 计算 `arg` 的误差函数。
4) 泛型宏：若 `arg` 拥有 long double 类型，则调用 `erfl` 。否则若 `arg` 拥有整数类型或 double 类型，则调用 `erf` 。否则调用 `erff` 。

### 参数

arg | - | 浮点值

### 返回值

若不出现错误，则返回 `arg` 的误差函数的值，即 \(\frac{2}{\sqrt{\pi} }\int_{0}^{arg}{e^{-{t^2} }\mathsf{d}t}\)

2
√π

∫arg
0 e-t2
dt 。 若因下溢出现值域错误，则返回（舍入后的）正确结果，即 \(\frac{2\cdot arg}{\sqrt{\pi} }\)

2*arg
√π

。

### 错误处理

报告 `math_errhandling` 中指定的错误。

若实现支持 IEEE 浮点算术（ IEC 60559 ），则

- 若参数为 ±0 ，则返回 ±0
- 若参数为 ±∞ ，则返回 ±1
- 若参数为 NaN ，则返回 NaN

### 注解

若 |arg| < DBL_MIN*(sqrt(π)/2) 则保证下溢。

\({\operatorname{erf}(\frac{x}{\sigma \sqrt{2} })\)erf(

x
σ√2

) 是测量结果小于与平均数相差 \(x\)x 的值的概率，其误差服从标准差为 \(\sigma\)σ 的正态分布。

### 示例

    #include <stdio.h>
    #include <math.h>
    double phi(double x1, double x2)
    {
        return (erf(x2/sqrt(2)) - erf(x1/sqrt(2)))/2;
    }
    int main(void)
    {
        puts("normal variate probabilities:");
        for(int n=-4; n<4; ++n)
            printf("[%2d:%2d]: %5.2f%%\n", n, n+1, 100*phi(n, n+1));

        puts("special values:");
        printf("erf(-0) = %f\n", erf(-0.0));
        printf("erf(Inf) = %f\n", erf(INFINITY));
    }

输出：

    normal variate probabilities:
    [-4:-3]:  0.13%
    [-3:-2]:  2.14%
    [-2:-1]: 13.59%
    [-1: 0]: 34.13%
    [ 0: 1]: 34.13%
    [ 1: 2]: 13.59%
    [ 2: 3]:  2.14%
    [ 3: 4]:  0.13%
    special values:
    erf(-0) = -0.000000
    erf(Inf) = 1.000000

### 引用

- C11 标准（ISO/IEC 9899:2011）：

  - 7.12.8.1 The erf functions (p: 249)

  - 7.25 Type-generic math <tgmath.h> (p: 373-375)

  - F.10.5.1 The erf functions (p: 525)

- C99 标准（ISO/IEC 9899:1999）：

  - 7.12.8.1 The erf functions (p: 230)

  - 7.22 Type-generic math <tgmath.h> (p: 335-337)

  - F.9.5.1 The erf functions (p: 462)

### 参阅

erfc erfcf erfcl (C99)(C99)(C99) | 计算补误差函数 (函数)

### 外部链接

Weisstein, Eric W. "Erf." From MathWorld--A Wolfram Web Resource.