【问题标题】:Where to find the source code of math function ceil() in glibc?glibc 中数学函数 ceil() 的源代码在哪里?
【发布时间】:2012-03-15 03:34:42
【问题描述】:

我下载了glibc的源代码,找了半天函数ceil(),但是找不到,谁能告诉我在哪里?

我在哪里可以找到有关如何在 glibc 的源代码中找到某些函数的源代码的详细信息。

谢谢。

【问题讨论】:

    标签: c glibc ceil


    【解决方案1】:

    猜测,它可能是用汇编语言编写的。基本上分三步完成:

    1. 将舍入模式更改为“向上舍入”
    2. 四舍五入到整数 (FRNDINT)
    3. 恢复之前的舍入模式。

    不幸的是,更改舍入模式的代码相当难看。舍入模式是浮点控制寄存器中的几位。您无法更改 FPU 内部的 FPCR,因此您必须将其存储,然后将其加载到 CPU 上的寄存器中,修改一些位,将其存储,然后将修改后的版本加载回 FPU。然后你执行一条 FP 指令,然后再次执行相同的操作,但相反。

    我似乎确实记得几年前英特尔的一些文献中谈论过这个问题,并且(也许)谈论过一种更好的方法来处理它——但我可以想象,即使我不是,我也不会不记得他们改进后的版本是如何工作的。

    【讨论】:

    • 当然 glibc 不仅仅适用于英特尔。因此,假设您是正确的并且它是在汇编中完成的,那么某处必须有多个实现。
    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 2011-09-24
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多