- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <multiset >
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <unordered_multiset>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
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