# std::fmax, std::fmaxf, std::fmaxl

From cppreference.com
< cpp‎ | numeric‎ | math

Defined in header `<cmath>` |  |
float fmax ( float x, float y ); float fmaxf( 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 ); long double fmaxl( 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.

### Parameters

x, y | - | values of floating-point or integral types

### 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.

### 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

### 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.

### Example

Run this code

    #include <iostream>
    #include <cmath>

    int main()
    {
        std::cout << "fmax(2,1)    = " << std::fmax(2,1) << '\n'
                  << "fmax(-Inf,0) = " << std::fmax(-INFINITY,0) << '\n'
                  << "fmax(NaN,-1) = " << std::fmax(NAN,-1) << '\n';
    }

Output:

    fmax(2,1)    = 2
    fmax(-Inf,0) = 0
    fmax(NaN,-1) = -1

### See also

isgreater (C++11) | checks if the first floating-point argument is greater than the second (function)
fmin fminf fminl (C++11)(C++11)(C++11) | smaller of two floating point values (function)
max | returns the greater of the given values (function template)
max_element | returns the largest element in a range (function template)
minmax (C++11) | returns the smaller and larger of two elements (function template)
minmax_element (C++11) | returns the smallest and the largest elements in a range (function template)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/math/fmax&oldid=108192"