PROLOG This manual page is part of the POSIX Programmer
s Manual. The Linux implementation of this interface may
differ (consult the corresponding Linux manual page for
details of Linux behavior), or the interface may not be
implemented on Linux.

An application wishing to check for error situations
should set errno to zero and call
feclearexcept(FE_ALL_EXCEPT) before calling these functions.
On return, if errno is non-zero or fetestexcept(FE_INVALID |
FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is non-zero, an
error has occurred.

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

If the correct value would cause underflow and is not
representable, a range error may occur and either 0.0 (if
representable), or an imple- mentation-defined value shall
be returned.

If x is NaN, a NaN shall be returned.

If x is ±0, +1 shall be returned.

If x is -Inf, +2 shall be returned.

If x is +Inf, +0 shall be returned.

If the correct value would cause underflow and is
representable, a range error may occur and the correct value
shall be returned.

ERRORS These functions may fail if:

Range Error The result underflows.

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

The following sections are informative.

EXAMPLES None.

APPLICATION USAGE The erfc() function is provided
because of the extreme loss of relative accuracy if erf(x)
is called for large x and the result subtracted from
1.0.

COPYRIGHT Portions of this text are reprinted and
reproduced in electronic form from IEEE Std 1003.1, 2003
Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base
Specifications Issue 6, Copyright (C) 2001-2003 by the
Institute of Electrical and Electronics Engineers, Inc and
The Open Group. In the event of any discrepancy between this
version and the original IEEE and The Open Group Standard,
the original IEEE and The Open Group Standard is the referee
document. The original Standard can be obtained online at
http://www.opengroup.org/unix/online.html .