Webassembly trig功能可能吗?

时间:2017-12-28 21:55:45

标签: webassembly

webassembly是否支持trig函数?我的意思是内置支持,因为我们似乎必须从javascript导入它们。如果我们有这样的事情会很棒:

f32.sin
f32.cos

如果有意义的话。如果它们不存在,我会假设它,因为实现与系统有关。

问题:

想象一下,我们有一些非常复杂且计算量很大的公式,涉及这些数学函数。我想计算webassembly中的所有内容,而不依赖于导入或细分我的代码,其中一个部分在webassembly中运行,另一个部分在javascript中运行。

除此之外,我确实认为,如果构建了trig函数,那么语义上看起来更整洁。

1 个答案:

答案 0 :(得分:4)

尽管在123之前已经讨论过三角函数,但它们在WebAssembly中不可用。一般来说,WebAssembly为作为CPU指令有效存在的东西提供操作码,而三角函数现在没有高效的CPU版本(事件他x86 sin / cos很慢)。

此外,我们不想在此时强制要求特定的精确界限。它是一种以正确的精度指定三角函数的艺术形式,迄今为止还没有引起强烈兴趣。

将来我们希望看到像libm.wasm这样的代码共享,这会消除代码下载的负担。

如果一个人拥有ISA信息,那么可以提出一个实现可能更有效的论点,但是我们需要有人支持使用数据的用例来标准化它。我希望第一个这样的情况是快速sqrt和反向sqrt近似,它们经常在游戏中使用,并且确实有很好的ISA支持。在WebAssembly的上下文中,我还没有听说过对性能敏感的三角函数。并不是说我不认为它们存在:它是Community Group的一个简单的优先问题。