# std::fmin, std::fminf, std::fminl

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

Defined in header `<cmath>` |  |
float fmin ( float x, float y ); float fminf( float x, float y ); | (1) | (since C++11)
double fmin ( double x, double y ); | (2) | (since C++11)
long double fmin ( long double x, long double y ); long double fminl( long double x, long double y ); | (3) | (since C++11)
Promoted fmin ( Arithmetic x, Arithmetic y ); | (4) | (since C++11)

1-3) Returns the smaller 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 smaller 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 << "fmin(2,1)    = " << std::fmin(2,1) << '\n'
                  << "fmin(-Inf,0) = " << std::fmin(-INFINITY,0) << '\n'
                  << "fmin(NaN,-1) = " << std::fmin(NAN,-1) << '\n';
    }

Possible output:

    fmin(2,1)    = 1
    fmin(-Inf,0) = -inf
    fmin(NaN,-1) = -1

### See also

isless (C++11) | checks if the first floating-point argument is less than the second (function)
fmax fmaxf fmaxl (C++11)(C++11)(C++11) | larger of two floating point values (function)
min | returns the smaller of the given values (function template)
min_element | returns the smallest 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/fmin&oldid=108195"