C ++ 20引入了标准库头文件,并在名称空间std::numbers中定义了诸如sqrt2和sqrt3的数学常量。它提供inv_sqrt3之类的反值,但不提供inv_sqrt2。为什么inv_sqrt2丢失?
std::numbers
sqrt2
sqrt3
inv_sqrt3
inv_sqrt2
为什么缺少inv_sqrt2?
该库在类型允许的范围内精确定义了一组最小的常用常量。在不引入舍入误差的情况下表达(√3)-1可能会很棘手,因此会出现inv_sqrt3。但是,(√2)-1可以很容易地表示为:sqrt2 / 2,因此未定义inv_sqrt2。
sqrt2 / 2