装配 armv7 霓虹灯电源功能
assembly armv7 neon power function
我是汇编新手。
我想实现一个幂函数,但我没有 exp 或 log 函数。
我有类似 a^b
的东西,而 a 是整数,b 是浮点数。
如果 b 是自然数,我只能想出一些办法。就像一个将 a 与 a 相乘 b 次的循环。
是否有类似的东西,或者有人知道如何实现它。
据我了解,您问的是如何使用 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。
我是汇编新手。
我想实现一个幂函数,但我没有 exp 或 log 函数。
我有类似 a^b
的东西,而 a 是整数,b 是浮点数。
如果 b 是自然数,我只能想出一些办法。就像一个将 a 与 a 相乘 b 次的循环。
是否有类似的东西,或者有人知道如何实现它。
据我了解,您问的是如何使用 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。