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