gpt4 book ai didi

solaris - fesetflushtozero() 在各种 Unice 上的等价物

转载 作者:行者123 更新时间:2023-12-02 04:45:34 27 4
gpt4 key购买 nike

HP-UX 的 libc 具有函数 fesetflushtozero在“逐渐下溢”和“清零”之间切换浮点行为。

尽管梳理了几个 Unix libc(包括 glibc)的文档和手册页,但我还没有找到如何在其他 Unix 中实现同样的事情。我对 Linux/glibc、Solaris 和 AIX 特别感兴趣。

最佳答案

您无疑已经注意到,没有标准的方法来执行此操作(就此而言,没有“清零”的标准定义,也没有硬件实现它的任何要求)。因此,所有执行此操作的方法都是特定于平台的。要向列表中添加更多内容,因为这是一个有用的引用:

  • OSX/英特尔:fesetenv(_FE_DFL_DISABLE_SSE_DENORMS_ENV)。请注意,这影响在floatdouble 中完成的算术,这是使用SSE2 完成的(因此得名); long double 算法是使用不支持刷新的旧 x87 指令执行的。

  • iOS/arm:在 iOS 下的 32 位 ARM 上,清零是默认模式。您可以通过清除 fenv_t 对象中的 __fpscr_flush_to_zero 位并使用 fesetenv( ).

  • iOS/arm64:fesetenv(_FE_DFL_DISABLE_DENORMS_ENV)

关于solaris - fesetflushtozero() 在各种 Unice 上的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19877055/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com