组装armv7霓虹灯电源功能
Posted
技术标签:
【中文标题】组装armv7霓虹灯电源功能【英文标题】:assembly armv7 neon power function 【发布时间】:2015-01-24 18:06:39 【问题描述】:我是汇编新手。
我想实现一个幂函数,但我没有 exp 或 log 函数。
我有类似 a^b
的东西,而 a 是整数,b 是浮点数。
如果 b 是自然数,我只能想出一些东西。就像一个循环,将 a 与 a 相乘 b 次。
有没有类似的东西,或者有人知道如何实现它。
【问题讨论】:
这里是 Simple ARM NEON optimized sin, cos, log and exp,带有 zlib 许可证。没用过,不过可以试一下。有了 log 和 exp 就可以实现 pow。 我不明白其中的任何一行,你能帮我解释一下吗? 【参考方案1】:据我了解,您询问了如何使用 arm neon 实现 pow
功能。
整数a
和b
的最有效pow
实现是多个a
乘以a
在循环中abs(b)
次。对于负数 b
,将 1.0 除以循环结果(请参阅 here)。
如果您有 exp
和 log
实现,则可以使用等式 pow(x, m) = exp(m * log (x)) 实现 pow
(参见 here)。
您提到您没有exp
和log
功能。
因此,如果您找到一个包含 exp
和 log
函数的数学库,那么您可以为双 a
和 b
实现 pow
。
有一些用于 arm 的数学库,具有 pow
实现。例如,请参阅math-neon。
库Simple ARM NEON optimized sin, cos, log and exp 中的纯log
和exp
实现(在C 中,使用neon 内在函数)。您可以从库中获取代码并将其重写为 arm 程序集。只是问律师如何满足图书馆许可证。您只需要其中的两个功能。内部代码可以简单地移植到 asm。
【讨论】:
以上是关于组装armv7霓虹灯电源功能的主要内容,如果未能解决你的问题,请参考以下文章
卤化物是不是支持带有霓虹灯的 ARMv8(aarch64)?