Selected Reading

C++ cmath erf() Function



The C++ cmath erf() function computes the error function, which measures the probability that a value falls within a specific range in a Gaussian (normal) distribution. The error function is important in probability, statistics, and engineering particularly in the field of Gaussian distributions Mathematically.

This function returns a value between -1 and 1, representing the probability that a normally distributed random variable falls within a certain range.

Syntax

Following is the syntax for C++ cmath erf() function.

double erf(double x);
or
float erf(float x);
or
long double erf(long double x);

Parameters

  • x - A floating-point number for which to calculate the error function.

Return Value

The function returns the value of the error function for the given input.

Time Complexity

The time complexity of this function is constant, i.e.,O(1).

Example 1

The following example, shows the basic calculation of std::erf() by computing the error function for given values.

#include <iostream>
#include <cmath>
int main() {
   double x = 0.5;
   std::cout << "erf(" << x << ") = " << std::erf(x) << std::endl;
   return 0;
}

Output

Output of the above code is as follows

erf(0.5) = 0.5205

Example 2

If we pass a negative value to std::erf(), it means error function is odd, shows that erf(-x) = -erf(x). This relationship also indicates that the error function is symmetric around the origin (0) in a Cartesian coordinate system.

#include <iostream>
#include <cmath>
int main() {
   double x = -1.0;
   std::cout << "erf(" << x << ") = " << std::erf(x) << std::endl;
   return 0;
}

Output

Following is the output of the above code

erf(-1) = -0.842701

Example 3

In the following example, we are going to use, erf() in a gaussian distribution to calculate the cumulative probability.

#include <iostream>
#include <cmath>
int main() {
   double mean = 0.0;
   double stddev = 1.0;
   double value = 1.0;
   double result = (1 + erf((value - mean) / (stddev * sqrt(2)))) / 2;
   std::cout << "The probability of value " << value << " in a Gaussian distribution with mean " << mean << " and stddev " << stddev << " is " << result << std::endl;
   return 0;
}

Output

If we run the above code it will generate the following output

The probability of value 1 in a Gaussian distribution with mean 0 and stddev 1 is 0.841345
cpp_cmath.htm
Advertisements