std::erf,std::erff,std::erfl (3) - Linux Manuals

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

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


2



π


∫arg
0e-t2
dt, is returned.


If a range error occurs due to underflow, the correct result (after rounding), that is


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)
erf(


x
σ

2


) is the probability that a measurement whose errors are subject to a normal distribution with standard deviation σ is less than 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

External links


Weisstein,_Eric_W._"Erf." From MathWorld--A Wolfram Web Resource.

See also


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