Namespaces
Variants

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

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
헤더 파일에 정의됨 <cmath>
(1)
float fmin ( float x, float y ) ;

double fmin ( double x, double y ) ;

long double fmin ( long double x, long double y ) ;
(C++23 이전)
constexpr /*floating-point-type*/

fmin ( /*floating-point-type*/ x,

/*floating-point-type*/ y ) ;
(C++23 이후)
float fminf ( float x, float y ) ;
(2) (C++11 이후)
(C++23부터 constexpr)
long double fminl ( long double x, long double y ) ;
(3) (C++11 이후)
(C++23부터 constexpr)
SIMD 오버로드 (C++26 이후)
헤더 파일에 정의됨 <simd>
template < class V0, class V1 >

constexpr /*math-common-simd-t*/ < V0, V1 >

fmin ( const V0 & v_x, const V1 & v_y ) ;
(S) (C++26 이후)
추가 오버로드 (C++11 이후)
헤더 파일에 정의됨 <cmath>
template < class Integer >
double fmin ( Integer x, Integer y ) ;
(A) (C++23부터 constexpr)
1-3) 두 개의 부동 소수점 인자 중 더 작은 값을 반환하며, NaN을 누락된 데이터로 취급합니다(NaN과 숫자 값 사이에서는 숫자 값이 선택됩니다). 라이브러리는 모든 cv-unqualified 부동 소수점 타입을 매개변수 타입으로 하는 std::fmin 의 오버로드를 제공합니다. (since C++23)
S) SIMD 오버로드는 v_x v_y 에 대해 요소별(element-wise) std::fmin 연산을 수행합니다.
(정의는 math-common-simd-t 참조)
(C++26부터)
A) 모든 정수 타입에 대해 추가 오버로드가 제공되며, 이들은 double 로 처리됩니다.
(since C++11)

목차

매개변수

x, y - 부동 소수점 또는 정수 값

반환값

성공 시, 두 부동 소수점 값 중 더 작은 값을 반환합니다. 반환되는 값은 정확하며 어떤 반올림 모드에도 의존하지 않습니다.

오류 처리

이 함수는 math_errhandling 에 지정된 어떠한 오류 조건에도 적용되지 않습니다.

구현이 IEEE 부동 소수점 연산(IEC 60559)을 지원하는 경우,

  • 두 인수 중 하나가 NaN이면 다른 인수의 값이 반환됩니다.
  • 두 인수가 모두 NaN인 경우에만 NaN이 반환됩니다.

참고 사항

이 함수는 0의 부호에 민감할 필요는 없지만, 일부 구현에서는 추가적으로 한 인수가 + 0 이고 다른 인수가 - 0 인 경우 - 0 이 반환되도록 강제합니다.

추가 오버로드는 반드시 (A) 와 정확히 동일하게 제공될 필요가 없습니다. 첫 번째 인수 num1 과 두 번째 인수 num2 에 대해 다음을 보장할 수 있을 만큼만 충분하면 됩니다:

  • num1 또는 num2 의 타입이 long double 인 경우, std :: fmin ( num1, num2 ) std :: fmin ( static_cast < long double > ( num1 ) ,
    static_cast < long double > ( num2 ) )
    와 동일한 효과를 가집니다.
  • 그렇지 않고 num1 및/또는 num2 의 타입이 double 또는 정수 타입인 경우, std :: fmin ( num1, num2 ) std :: fmin ( static_cast < double > ( num1 ) ,
    static_cast < double > ( num2 ) )
    와 동일한 효과를 가집니다.
  • 그렇지 않고 num1 또는 num2 의 타입이 float 인 경우, std :: fmin ( num1, num2 ) std :: fmin ( static_cast < float > ( num1 ) ,
    static_cast < float > ( num2 ) )
    와 동일한 효과를 가집니다.
(C++23 이전)

num1 num2 이 산술 타입을 가지는 경우, std :: fmin ( num1, num2 ) std :: fmin ( static_cast < /*common-floating-point-type*/ > ( num1 ) ,
static_cast < /*common-floating-point-type*/ > ( num2 ) )
와 동일한 효과를 가집니다. 여기서 /*common-floating-point-type*/ num1 num2 의 타입 사이에서 가장 높은 부동소수점 변환 순위 와 가장 높은 부동소수점 변환 하위 순위 를 가지는 부동소수점 타입이며, 정수 타입 인수는 double 과 동일한 부동소수점 변환 순위를 가진 것으로 간주됩니다.

가장 높은 순위와 하위 순위를 가지는 부동소수점 타입이 존재하지 않는 경우, 오버로드 해결 은 제공된 오버로드들 중에서 사용 가능한 후보를 결과로 내지 않습니다.

(C++23 이후)

예제

#include <cmath>
#include <iostream>
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';
}

가능한 출력:

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

참고 항목

(C++11)
첫 번째 부동 소수점 인수가 두 번째 인수보다 작은지 확인합니다
(함수)
(C++11) (C++11) (C++11)
두 부동 소수점 값 중 더 큰 값
(함수)
주어진 값들 중 더 작은 값을 반환합니다
(함수 템플릿)
범위 내에서 가장 작은 요소를 반환합니다
(함수 템플릿)
(C++11)
두 요소 중 더 작은 값과 더 큰 값을 반환합니다
(함수 템플릿)
범위 내에서 가장 작은 요소와 가장 큰 요소를 반환합니다
(함수 템플릿)
C 문서 for fmin