function
<cmath> <ctgmath>

# fmin

```     double fmin  (double x     , double y);
float fminf (float x      , float y);
long double fminl (long double x, long double y);
```
```     double fmin (double x     , double y);
float fmin (float x      , float y);
long double fmin (long double x, long double y);
double fmin (Type1 x      , Type2 y);       // additional overloads```
Minimum value
Returns the smaller 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 minimum.

### Return Value

The minimum numeric value of its arguments.

### Example

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

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