FDIM(3M) Mathematical Library Functions FDIM(3M)
fdim, fdimf, fdiml - compute positive difference between two
floating-point numbers
c99 [ flag... ] file... -lm [ library... ]
#include <math.h>
double fdim(double x, double y);
float fdimf(float x, float y);
long double fdiml(long double x, long double y);
These functions determine the positive difference between their
arguments. If x is greater than y, x-y is returned. If x is less than
or equal to y, +0 is returned.
Upon successful completion, these functions return the positive
difference value.
If x-y is positive and overflows, a range error occurs and fdim(),
fdimf(), and fdiml() returns the value of the macro HUGE_VAL,
HUGE_VALF, and HUGE_VALL, respectively.
If x or y is NaN, a NaN is returned.
These functions will fail if:
Range Error
The result overflows.
If the integer expression (math_errhandling &
MATH_ERREXCEPT) is non-zero, the overflow floating-
point exception will be raised.
An application wanting to check for exceptions should call
feclearexcept(FE_ALL_EXCEPT) before calling these functions. On
return, if fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW |
FE_UNDERFLOW) is non-zero, an exception has been raised. An
application should either examine the return value or check the
floating point exception flags to detect exceptions.
See attributes(7) for descriptions of the following attributes:
+----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+----------------------------+-----------------------------+
|Interface Stability | Standard |
+----------------------------+-----------------------------+
|MT-Level | MT-Safe |
+----------------------------+-----------------------------+
math.h(3HEAD), feclearexcept(3M), fetestexcept(3M), fmax(3M),
fmin(3M), attributes(7), standards(7)
SunOS 5.11 July 12, 2006 FDIM(3M)
NAME
fdim, fdimf, fdiml - compute positive difference between two
floating-point numbers
SYNOPSIS
c99 [ flag... ] file... -lm [ library... ]
#include <math.h>
double fdim(double x, double y);
float fdimf(float x, float y);
long double fdiml(long double x, long double y);
DESCRIPTION
These functions determine the positive difference between their
arguments. If x is greater than y, x-y is returned. If x is less than
or equal to y, +0 is returned.
RETURN VALUES
Upon successful completion, these functions return the positive
difference value.
If x-y is positive and overflows, a range error occurs and fdim(),
fdimf(), and fdiml() returns the value of the macro HUGE_VAL,
HUGE_VALF, and HUGE_VALL, respectively.
If x or y is NaN, a NaN is returned.
ERRORS
These functions will fail if:
Range Error
The result overflows.
If the integer expression (math_errhandling &
MATH_ERREXCEPT) is non-zero, the overflow floating-
point exception will be raised.
USAGE
An application wanting to check for exceptions should call
feclearexcept(FE_ALL_EXCEPT) before calling these functions. On
return, if fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW |
FE_UNDERFLOW) is non-zero, an exception has been raised. An
application should either examine the return value or check the
floating point exception flags to detect exceptions.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+----------------------------+-----------------------------+
|Interface Stability | Standard |
+----------------------------+-----------------------------+
|MT-Level | MT-Safe |
+----------------------------+-----------------------------+
SEE ALSO
math.h(3HEAD), feclearexcept(3M), fetestexcept(3M), fmax(3M),
fmin(3M), attributes(7), standards(7)
SunOS 5.11 July 12, 2006 FDIM(3M)