std::fmin

From cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
Common mathematical functions
Functions
Basic operations
(C++11)
(C++11)
(C++11)
(C++11)
fmin
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Exponential functions
(C++11)
(C++11)
(C++11)
(C++11)
Power functions
(C++11)
(C++11)
Trigonometric and hyperbolic functions
(C++11)
(C++11)
(C++11)
Error and gamma functions
(C++11)
(C++11)
(C++11)
(C++11)
Nearest integer floating point operations
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Floating point manipulation functions
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
Classification/Comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Macro constants
(C++11)(C++11)(C++11)(C++11)(C++11)
 
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.

Contents

[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

#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

(C++11)
checks if the first floating-point argument is less than the second
(function)
(C++11)
larger of two floating point values
(function)
returns the smaller of two elements
(function template)
returns the smallest element in a range
(function template)
(C++11)
returns the larger and the smaller of two elements
(function template)
returns the smallest and the largest element in a range
(function template)
C documentation for fmin