在我们的GCC实现上检查sinf()
的已编译代码,我发现它调用了内置函数___ieee754_rem_pio2f
。我试着找一个关于这个函数是什么的线索,但我发现的所有帖子都是指rem_pio2f
(无__ieee754
)函数的错误,没有解释。
有人能说清楚这个功能吗?
(听起来像是“PI-over-2-float的剩余部分,或者类似的东西 - 但为什么需要一个常量的函数?”
编辑:感谢@Thiruvalluvar提供源代码:
/* __ieee754_rem_pio2f(x,y)
*
* return the remainder of x rem pi/2 in y[0]+y[1]
* use __kernel_rem_pio2f()
*/
答案 0 :(得分:3)
sinf接受一个浮点并返回一个浮点数。在C99中添加了对浮点运算的支持。较早的C标准没有sinf但只有sin(这是双重的)。 ieee_754表示添加了该函数以支持浮点支持。如果感兴趣的话,这是该文件的source code链接。