std:: isnormal
|
定义于头文件
<cmath>
|
||
| (1) | ||
|
bool
isnormal
(
float
num
)
;
bool
isnormal
(
double
num
)
;
|
(C++11 起)
(C++23 前) |
|
|
constexpr
bool
isnormal
(
/*浮点类型*/
num
)
;
|
(C++23 起) | |
|
SIMD 重载
(C++26 起)
|
||
|
定义于头文件
<simd>
|
||
|
template
<
/*数学浮点类型*/
V
>
constexpr
typename
/*推导出的 SIMD 类型*/
<
V
>
::
mask_type
|
(S) | (C++26 起) |
|
定义于头文件
<cmath>
|
||
|
template
<
class
Integer
>
bool isnormal ( Integer num ) ; |
(A) |
(C++11 起)
(C++23 起为 constexpr) |
|
S)
SIMD重载对
v_num
执行逐元素的
std::isnormal
运算。
|
(since C++26) |
目录 |
参数
| num | - | 浮点数或整数值 |
| v_num | - | 数据并行对象,其元素类型为浮点类型的 std::basic_simd 特化 |
返回值
[
0
,
v_num.
size
(
)
)
内的所有
i
,若
v_num
[
i
]
为正常值时,其第 i
th
个元素等于
true
,否则等于
false
。
注释
额外的重载不需要完全按照 (A) 提供。只需确保对于整数类型的实参 num , std :: isnormal ( num ) 与 std :: isnormal ( static_cast < double > ( num ) ) 具有相同效果即可。
示例
#include <cfloat> #include <cmath> #include <iostream> int main() { std::cout << std::boolalpha << "isnormal(NaN) = " << std::isnormal(NAN) << '\n' << "isnormal(Inf) = " << std::isnormal(INFINITY) << '\n' << "isnormal(0.0) = " << std::isnormal(0.0) << '\n' << "isnormal(DBL_MIN/2.0) = " << std::isnormal(DBL_MIN / 2.0) << '\n' << "isnormal(1.0) = " << std::isnormal(1.0) << '\n'; }
输出:
isnormal(NaN) = false isnormal(Inf) = false isnormal(0.0) = false isnormal(DBL_MIN/2.0) = false isnormal(1.0) = true
参见
|
(C++11)
|
对给定的浮点值进行分类
(函数) |
|
(C++11)
|
检查给定数值是否为有限值
(函数) |
|
(C++11)
|
检查给定数值是否为无穷大
(函数) |
|
(C++11)
|
检查给定数值是否为 NaN
(函数) |
|
C 文档
关于
isnormal
|
|