我在Haxe做DSP。我的一些DSP包括可能生成非正规(也称为次正规)数的递归算法。当遇到这样的数字时,某些平台表现不佳,使得实时处理变得不可能(甚至离线处理,在某些情况下,更加困难)。显然,只有产生非常小数字的算法(例如,通过递归乘法)才会生效,但我正在使用这些算法。
处理问题的一个非常常见的程序就是:
if r is a denormal
r <- 0
当非正规数太小而对给定算法没有任何影响时,这种方法很好,这几乎是(几乎)。
我希望为许多平台构建,并希望在最大可能发生之前避免这些令人头疼的问题。所以问题是,如何快速有效地识别/消除Haxe中的非正规数?
这可能会分解为其他问题,例如:Haxe是否有特定于语言的处理非正规的方法,还是由平台决定? (我在文档中看不到任何内容 - 甚至不是isDenormal函数)如果它取决于平台,是否有标志或什么?我如何知道哪些平台需要特殊处理,哪些不需要?
非常感谢!
答案 0 :(得分:1)
Haxe不支持这些操作。问题是它所解决的大多数本机平台都没有任何支持。我在这里主要讨论JavaScript,Flash,PHP和Neko。 您当然可以构建自己的库,并尝试使用内联来尽可能优化。