在C++ 11中std :: sin的变化?

gez*_*eza 11 c++ c++11

cppreference包括以下关于返回值的std::sin描述:

如果arg的大小很大,那么结果可能很少或没有意义(直到C++ 11)

我试图在当前的C++标准中找到有关这方面的信息,但我什么也没发现(也许我错过了它?).这方面C++ 11究竟发生了哪些变化std::sin

小智 11

C++ 11将C标准参考从C89/C90切换到C99.用于陈述的原始C标准(引自草案):

sin函数计算x的正弦值(以弧度为单位).大幅度的论证可能产生很少或没有意义的结果.

在C99中,此文本被删除,现在描述仅仅是:

sin函数计算x的正弦值(以弧度为单位).

我怀疑放弃这个的原因是C99引入了__STDC_IEC_559__宏,实现可以定义以记录它们对该标准的符合性.根据非常大数字的正弦标准,它建议(但不要求)正确的结果,即使对于大量的参数.最初的C标准文本可能会被视为弱化该推荐.

  • 另外,三角函数的大输入参数减少的经典论文是Ng等人,ARGUMENT REDUCTION FOR HUGE ARGUMENTS:Good to the Last Bit,https://www.csee.umbc.edu/~phatak/645/ SUPL /伍-ArgReduction.pdf (7认同)