std::fmax, std::fmaxf, std::fmaxl
來自 cppreference.com
定義於標頭檔案 <cmath> |
||
(1) | ||
float fmax ( float x, float y ); double fmax ( double x, double y ); |
(直至 C++23) | |
constexpr /*浮點型別*/ fmax ( /*浮點型別*/ x, |
(C++23 起) | |
float fmaxf( float x, float y ); |
(2) | (C++11 起) (C++23 起為 constexpr) |
long double fmaxl( 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> |
(S) | (C++26 起) |
額外過載 (自 C++11 起) |
||
定義於標頭檔案 <cmath> |
||
template< class Integer > double fmax ( Integer x, Integer y ); |
(A) | (C++23 起為 constexpr) |
1-3) 返回兩個浮點引數中較大的一個,將 NaN 視為缺失資料(在 NaN 和數值之間,選擇數值)。 庫為所有 cv-unqualified 浮點型別提供了
std::fmax
的過載作為引數的型別。(C++23 起)
S) SIMD 過載在 v_x 和 v_y 上執行逐元素
std::fmax 。
|
(C++26 起) |
A) 為所有整數型別提供了額外的過載,它們被視為 double。
|
(C++11 起) |
目錄 |
[編輯] 引數
x, y | - | 浮點數或整數值 |
[編輯] 返回值
如果成功,返回兩個浮點值中較大的一個。返回的值是精確的,不依賴於任何舍入模式。
[編輯] 錯誤處理
此函式不受 math_errhandling 中指定的任何錯誤條件的影響。
如果實現支援 IEEE 浮點運算 (IEC 60559),
- 如果兩個引數中有一個是 NaN,則返回另一個引數的值。
- 只有當兩個引數都是 NaN 時,才返回 NaN。
[編輯] 注意
此函式不要求對零的符號敏感,儘管某些實現會額外強制規定,如果一個引數是 +0,另一個是 -0,則返回 +0。
不要求完全按照 (A) 提供額外的過載。它們只需要足以確保對於它們的第一個引數 num1 和第二個引數 num2
|
(直至 C++23) |
如果 num1 和 num2 具有算術型別,則 std::fmax(num1, num2) 的效果與 std::fmax(static_cast</*common-floating-point-type*/>(num1), 如果不存在具有最高等級和次等級的浮點型別,則過載決議不會從提供的過載中產生可用的候選函式。 |
(C++23 起) |
[編輯] 示例
執行此程式碼
輸出
fmax(2,1) = 2 fmax(-Inf,0) = 0 fmax(NaN,-1) = -1
[編輯] 參閱
(C++11) |
檢查第一個浮點引數是否大於第二個 (函式) |
(C++11)(C++11)(C++11) |
兩個浮點值中較小的那個 (函式) |
返回給定值中較大的那個 (函式模板) | |
返回一個範圍中最大的元素 (函式模板) | |
(C++11) |
返回兩個元素中較小和較大的一個 (函式模板) |
(C++11) |
返回範圍中最小和最大的元素 (函式模板) |
C 文件 用於 fmax
|