fdim, fdimf, fdiml

 

The latest version of this topic can be found at 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  
);  
  

Parameters

[in] x
The first value.

[in] 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, fdim always takes and returns a double.

Except for the NaN handling, this function is equivalent to fmax, fmaxf, fmaxl(x-y, 0).

Requirements

Function C header C++ header
fdim, fdimf, fdiml <math.h> <cmath>

For additional compatibility information, see Compatibility.

See Also

Alphabetical Function Reference
fmax, fmaxf, fmaxl
abs, labs, llabs, _abs64