# std::erf, std::erff, std::erfl

< cpp‎ | numeric‎ | math

定义于头文件 `<cmath>` |  |
float erf ( float arg ); float erff( float arg ); | (1) | (C++11 起)
double erf ( double arg ); | (2) | (C++11 起)
long double erf ( long double arg ); long double erfl( long double arg ); | (3) | (C++11 起)
double erf ( IntegralType arg ); | (4) | (C++11 起)

1-3) 计算 `arg` 的误差函数。
4) 接受任何整数类型参数的重载集或函数模板，等价于 (2) （参数被转型到 double ）。

### 参数

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\)σ 的正态分布。

### 示例

以下示例计算正态分布随机变量在区间 (x1, x2) 上的概率

    #include <iostream>
    #include <cmath>
    #include <iomanip>
    double phi(double x1, double x2)
    {
        return (std::erf(x2/std::sqrt(2)) - std::erf(x1/std::sqrt(2)))/2;
    }
    int main()
    {
        std::cout << "normal variate probabilities:\n"
                  << std::fixed << std::setprecision(2);
        for(int n=-4; n<4; ++n)
            std::cout << "[" << std::setw(2) << n << ":" << std::setw(2) << n+1 << "]: "
                      << std::setw(5) << 100*phi(n, n+1) << "%\n";

        std::cout << "special values:\n"
                  << "erf(-0) = " << std::erf(-0.0) << '\n'
                  << "erf(Inf) = " << std::erf(INFINITY) << '\n';
    }

输出：

    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.00
    erf(Inf) = 1.00

### 参阅

erfc erfcf erfcl (C++11)(C++11)(C++11) | 补误差函数 (函数)

### 外部链接

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