Namespaces
Variants
Views
Actions

std::erf

From cppreference.com
< cpp‎ | numeric‎ | math
Revision as of 21:08, 6 June 2014 by Cubbi (Talk | contribs)

 
 
 
 
Defined in header <cmath>
float       erf( float arg );
(1) (since C++11)
double      erf( double arg );
(2) (since C++11)
long double erf( long double arg );
(3) (since C++11)
double      erf( Integral 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).

Contents

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
π
arg0e-t2dt
, 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

Example

The following example calculates the probability that a normal variate is on the interval (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";
    for(int n=-4; n<4; ++n)
        std::cout << "[" << std::setw(2) << n << ":" << std::setw(2) << n+1 << "]: "
                  << std::setw(5) << std::fixed << std::setprecision(2)
                  << 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

(C++11)(C++11)(C++11)
complementary error function
(function) [edit]

External links

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