我在 Haxe 做 DSP。我的一些 DSP 包含递归算法,可能会生成非正规(也称为次正规)数。某些平台在遇到此类数字时表现不佳,无法进行实时处理(在某些情况下,甚至离线处理变得更加困难)。显然,只有产生非常小的数字(例如,通过递归乘法)的算法才会受到影响,但我正在使用这些算法。
处理该问题的一个非常常见的过程就是:
if r is a denormal
r <- 0
当非规范化太小而对给定算法(几乎)总是有任何影响时,这可以正常工作。
我正在为许多平台构建,并希望在它们发生之前尽可能避免这些令人头疼的问题。所以问题是,我如何快速有效地识别/消除 Haxe 中的异常?
这可能会分解为其他问题,例如:Haxe 是否具有特定于语言的处理非规范化的方法,还是取决于平台?(我在文档中什么也没看到——甚至没有 isDenormal 函数)如果取决于平台,是否有标志或其他东西?我如何知道哪些平台需要特殊处理,哪些不需要?
非常感谢!