为什么在C ++标准库中没有定义inv_sqrt2?

问题描述 投票:0回答:1

C ++ 20引入了标准库头文件,并在名称空间std::numbers中定义了诸如sqrt2sqrt3的数学常量。它提供inv_sqrt3之类的反值,但不提供inv_sqrt2。为什么inv_sqrt2丢失?

c++ constants c++-standard-library c++20 inline-variable
1个回答
0
投票

为什么缺少inv_sqrt2

该库在类型允许的范围内精确定义了一组最小的常用常量。在不引入舍入误差的情况下表达(√3)-1可能会很棘手,因此会出现inv_sqrt3。但是,(√2)-1可以很容易地表示为:sqrt2 / 2,因此未定义inv_sqrt2

© www.soinside.com 2019 - 2024. All rights reserved.