| Defined in header <math.h> | ||
|---|---|---|
| float erff( float arg ); | (1) | (since C99) | 
| double erf( double arg ); | (2) | (since C99) | 
| long double erfl( long double arg ); | (3) | (since C99) | 
| Defined in header <tgmath.h> | ||
| #define erf( arg ) | (4) | (since C99) | 
arg has type long double, erfl is called. Otherwise, if arg has integer type or the type double, erf is called. Otherwise, erff is called.| arg | - | floating point value | 
arg, that is \(\frac{2}{\sqrt{\pi} }\int_{0}^{arg}{e^{-{t^2} }\mathsf{d}t}\)2/√π∫arg0e-t2dt, is returned. If a range error occurs due to underflow, the correct result (after rounding), that is \(\frac{2\cdot arg}{\sqrt{\pi} }\)2*arg/√π, is returned. Errors are reported as specified in math_errhandling.
If the implementation supports IEEE floating-point arithmetic (IEC 60559),
Underflow is guaranteed if |arg| < DBL_MIN*(sqrt(π)/2).  \(\operatorname{erf}(\frac{x}{\sigma \sqrt{2} })\)erf(
#include <math.h>
#include <stdio.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));
}Output:
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
| (C99)(C99)(C99) | computes complementary error function (function) | 
| C++ documentation for erf | |
| Weisstein, Eric W. "Erf." From MathWorld — A Wolfram Web Resource. | 
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    https://en.cppreference.com/w/c/numeric/math/erf