IEEE Std 1003.1-2008

Copyright © 2001-2008 The IEEE and The Open Group

erf, erff, erfl - error functions

#include <math.h>

double erf(doublex);

float erff(floatx);

long double erfl(long doublex);

^{[CX]}The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of POSIX.1-2008 defers to the ISO C standard.These functions shall compute the error function of their argument

x, defined as:An application wishing to check for error situations should set

errnoto zero and callfeclearexcept(FE_ALL_EXCEPT) before calling these functions. On return, iferrnois non-zero orfetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is non-zero, an error has occurred.

Upon successful completion, these functions shall return the value of the error function.

^{[MX]}Ifxis NaN, a NaN shall be returned.If

xis ±0, ±0 shall be returned.If

xis ±Inf, ±1 shall be returned.If

xis subnormal, a range error may occur, and 2 *x/sqrt() should be returned.

These functions may fail if:

- Range Error
^{[MX]}The result underflows.If the integer expression (

math_errhandling& MATH_ERRNO) is non-zero, thenerrnoshall be set to [ERANGE]. If the integer expression (math_errhandling& MATH_ERREXCEPT) is non-zero, then the underflow floating-point exception shall be raised.

## Computing the Probability for a Normal Variate

This example shows how to use

erf() to compute the probability that a normal variate assumes a value in the range [x1,x2] withx1<=x2.This example uses the constant M_SQRT1_2 which is part of the XSI option.

#include <math.h>

double Phi(const double x1, const double x2) { return ( erf(x2*M_SQRT1_2) - erf(x1*M_SQRT1_2) ) / 2; }

Underflow occurs when |

x| < DBL_MIN * (sqrt()/2).On error, the expressions (

math_errhandling& MATH_ERRNO) and (math_errhandling& MATH_ERREXCEPT) are independent of each other, but at least one of them must be non-zero.

None.

None.

erfc,feclearexcept,fetestexcept,isnanXBD

Treatment of Error Conditions for Mathematical Functions,<math.h>

First released in Issue 1. Derived from Issue 1 of the SVID.

The DESCRIPTION is updated to indicate how an application should check for an error. This text was previously published in the APPLICATION USAGE section.

The

erf() function is no longer marked as an extension.The

erfc() function is split out onto its own reference page.The

erff() anderfl() functions are added for alignment with the ISO/IEC 9899:1999 standard.The DESCRIPTION, RETURN VALUE, ERRORS, and APPLICATION USAGE sections are revised to align with the ISO/IEC 9899:1999 standard.

IEC 60559:1989 standard floating-point extensions over the ISO/IEC 9899:1999 standard are marked.

IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/22 is applied, adding the example to the EXAMPLES section.

return to top of page

POSIX ® is a registered Trademark of The IEEE.

Copyright © 2001-2008 The IEEE and The Open Group, All Rights Reserved

[ Main Index | XBD | XSH | XCU | XRAT ]