##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::fmin

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

Defined in header `<cmath>` |  |
float fmin( 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 ); | (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.

### [edit] Parameters

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

### [edit] 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.

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

    #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

### [edit] See also

isless (C++11) | checks if the first floating-point argument is less than the second (function) [edit]
fmax (C++11) | larger of two floating point values (function) [edit]
min | returns the smaller of the given values (function template) [edit]
min_element | returns the smallest element in a range (function template) [edit]
minmax (C++11) | returns the smaller and larger of two elements (function template) [edit]
minmax_element (C++11) | returns the smallest and the largest elements in a range (function template) [edit]
C documentation for fmin

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/numeric/math/fmin&oldid=71701"