fdim, fdimf, fdiml
Determines the positive difference between the first and second values.
Syntax
double fdim(
double x,
double y
);
float fdim(
float x,
float y
); //C++ only
long double fdim(
long double x,
long double y
); //C++ only
float fdimf(
float x,
float y
);
long double fdiml(
long double x,
long double y
);
#define fdim(X) // Requires C11 or higher
Parameters
x
The first value.
y
The second value.
Return Value
Returns the positive difference between x and y:
| Return value | Scenario |
|---|---|
| x-y | if x > y |
| 0 | if x <= y |
Otherwise, may return one of the following errors:
| Issue | Return |
|---|---|
| Overflow range error | +HUGE_VAL, +HUGE_VALF, or +HUGE_VALL |
| Underflow range error | correct value (after rounding) |
| x or y is NaN | NaN |
Errors are reported as specified in _matherr.
Remarks
Because C++ allows overloading, you can call overloads of fdim that take and return float and long double types. In a C program, unless you're using the <tgmath.h> macro to call this function, fdim always takes and returns a double.
If you use the <tgmath.h> fdim() macro, the type of the argument determines which version of the function is selected. See Type-generic math for details.
Except for the NaN handling, this function is equivalent to fmax(x - y, 0).
Requirements
| Function | C header | C++ header |
|---|---|---|
| fdim, fdimf, fdiml | <math.h> | <cmath> |
| fdim macro | <tgmath.h> |
For additional compatibility information, see Compatibility.
See also
Alphabetical Function Reference
fmax, fmaxf, fmaxl
abs, labs, llabs, _abs64
الملاحظات
إرسال الملاحظات وعرضها المتعلقة بـ