在<math.h>
中,常量M_2_SQRTPI
用值2/sqrt(pi)
定义。
我从未见过此表达式在公式中使用过,因此我搜索了M_2_SQRTPI
的用法,但我只能找到有关该常量的文档,而没有找到它的实际用法。
使用的常数在哪里?在<math.h>
中定义为数学常数的原因是什么?
答案 0 :(得分:1)
它用于不同的科学计算中(例如,我已经在金融中看到过它)。
为什么要将其作为常量?因为sqrt(M_PI)
将不会具有与预先计算的值相同的精度(因此PI会使用更高的精度)。而且有很大的不同,我已经看到了不使用它的危害。
答案 1 :(得分:1)
该常量与error function相关。
不过,我不知道为什么在标准库 POSIX中将其作为常量提供。通过在x86-64系统上使用GCC,并通过在每个符合IEEE 754的系统上进行扩展,计算2.0 / sqrt(M_PI)
会产生与M_2_SQRTPI
完全相同的双精度值。 >
即使有轻微的错误,也很少有人需要常量自己定义。