什么是glibc相当于fesetflushtozero()?

时间:2013-11-08 22:39:46

标签: floating-point glibc libc libm

HP-UX的libc具有函数fesetflushtozero,用于在“逐渐下溢”和“刷新到零”之间切换浮点行为。如何在运行glibc的系统上实现相同的功能?

1 个答案:

答案 0 :(得分:2)

glibc manual中没有提及对此的支持。它不是标准的IEEE-754功能,并不存在于所有处理器上,即使是那些具有硬件支持浮点的处理器。

某些处理器在使用次正规数运算时会遇到性能不足的问题。 Flush-to-zero是与IEEE 754的偏差,为此提供了解决方法。通常应避免使用,应要求制造商在符合标准的同时提供良好的性能。

如果必须使用它,则需要特定于目标的方法,可能需要使用供应商提供的汇编代码或特殊例程。