std::erf,std::erff,std::erfl(3)

NAME
std::erf,std::erff,std::erfl - std::erf,std::erff,std::erfl

Synopsis
   Defined in header <cmath>
   float erf ( float arg ); (1) (since C++11)
   float erff( float arg );
   double erf ( double arg ); (2) (since C++11)
   long double erf ( long double arg ); (3) (since C++11)
   long double erfl( long double arg );
   double erf ( IntegralType arg ); (4) (since C++11)
   1-3) Computes the error function of arg.
   4) A set of overloads or a function template accepting an argument of any integral
   type. Equivalent to (2) (the argument is cast to double).

Parameters
   arg - value of a floating-point or integral type

Return value
   If no errors occur, value of the error function of arg, that is
   \(\frac{2}{\sqrt{\pi} }\int_{0}^{arg}{e^{-{t^2} }\mathsf{d}t}\)
   2
   √
   π
   ∫arg
   0e^-t2
   dt, 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

Error handling
   Errors are reported as specified in math_errhandling.
   If the implementation supports IEEE floating-point arithmetic (IEC 60559),
     * If the argument is ±0, ±0 is returned
     * If the argument is ±∞, ±1 is returned
     * If the argument is NaN, NaN is returned

Notes
   Underflow is guaranteed if |arg| < DBL_MIN*(sqrt(π)/2)
   \(\operatorname{erf}(\frac{x}{\sigma \sqrt{2} })\)erf(
   x
   σ
   √
   2
   ) is the probability that a measurement whose errors are subject to a normal
   distribution with standard deviation \(\sigma\)σ is less than \(x\)x away from the
   mean value.

Example
   The following example calculates the probability that a normal variate is on the
   interval (x1, x2) // Run this code
 #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';
 }

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

See also
   erfc
   erfcf
   erfcl complementary error function
   (C++11) (function)
   (C++11)
   (C++11)

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