std:: fmax, std:: fmaxf, std:: fmaxl
|
定义于头文件
<cmath>
|
||
| (1) | ||
|
float
fmax
(
float
x,
float
y
)
;
double
fmax
(
double
x,
double
y
)
;
|
(C++23 前) | |
|
constexpr
/*floating-point-type*/
fmax
(
/*floating-point-type*/
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) |
std::fmax
的重载版本作为参数类型。
(since C++23)
|
S)
SIMD 重载对
v_x
和
v_y
执行逐元素的
std::fmax
运算。
|
(since C++26) |
|
A)
为所有整数类型提供了额外的重载,这些类型被视为
double
。
|
(since 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 文档
for
fmax
|
|