function
<cmath> <ctgmath>

# fmax

```     double fmax  (double x     , double y);
float fmaxf (float x      , float y);
long double fmaxl (long double x, long double y);
```
```     double fmax (double x     , double y);
float fmax (float x      , float y);
long double fmax (long double x, long double y);
double fmax (Type1 x      , Type2 y);       // additional overloads```
Maximum value
Returns the larger of its arguments: either x or y.

If one of the arguments in a NaN, the other is returned.

Header <tgmath.h> provides a type-generic macro version of this function.
Additional overloads are provided in this header (`<cmath>`) for other combinations of arithmetic types (Type1 and Type2): These overloads effectively cast its arguments to `double` before calculations, except if at least one of the arguments is of type `long double` (in which case both are casted to `long double` instead).

### Parameters

x, y
Values among which the function selects a maximum.

### Return Value

The maximum numeric value of its arguments.

### Example

 ``1234567891011`` ``````/* fmax example */ #include /* printf */ #include /* fmax */ int main () { printf ("fmax (100.0, 1.0) = %f\n", fmax(100.0,1.0)); printf ("fmax (-100.0, 1.0) = %f\n", fmax(-100.0,1.0)); printf ("fmax (-100.0, -1.0) = %f\n", fmax(-100.0,-1.0)); return 0; }``````

Output:
 ``` fmax (100.0, 1.0) = 100.000000 fmax (-100.0, 1.0) = 1.000000 fmax (-100.0,-1.0) = -1.000000 ```