std::fmax
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header  <cmath>
  | 
||
|   float       fmax( float x, float y );  | 
(1) | (since C++11) | 
|   double      fmax( double x, double y );  | 
(2) | (since C++11) | 
|   long double fmax( long double x, long double y );  | 
(3) | (since C++11) | 
|   Promoted    fmax( Arithmetic1 x, Arithmetic2 y );  | 
(4) | (since C++11) | 
1-3) Returns the larger of two floating point arguments, treating NaNs as missing data (between a NaN and a numeric value, the numeric value is chosen)
4) A set of overloads or a function template for all combinations of arguments of arithmetic type not covered by 1-3). If any argument has integral type, it is cast to double. If any other argument is long double, then the return type is long double, otherwise it is double.
Contents | 
[edit] Parameters
| x, y | - | values of floating-point or integral types | 
[edit] Return value
If successful, returns the larger of two floating point values. The value returned is exact and does not depend on any rounding modes.
[edit] Error handling
This function is not subject to any of the error conditions specified in math_errhandling
If the implementation supports IEEE floating-point arithmetic (IEC 60559),
- If one of the two arguments is NaN, the value of the other argument is returned
 - Only if both arguments are NaN, NaN is returned
 
[edit] Notes
This function is not required to be sensitive to the sign of zero, although some implementations additionally enforce that if one argument is +0 and the other is -0, then +0 is returned.
[edit] Example
Run this code
Output:
fmax(2,1) = 2 fmax(-Inf,0) = 0 fmax(NaN,-1) = -1
[edit] See also
|    (C++11)  | 
   checks if the first floating-point argument is greater than the second  (function)  | 
|    (C++11)  | 
   smaller of two floating point values   (function)  | 
|    returns the greater of the given values   (function template)  | |
|    returns the largest element in a range   (function template)  | |
|    (C++11)  | 
   returns the smaller and larger of two elements   (function template)  | 
|    (C++11)  | 
   returns the smallest and the largest elements in a range   (function template)  | 
|   C documentation for fmax 
 | |