Share via


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