我是汇编程序的新手。
我想实现一个电源功能,但我没有exp或log功能。
我有类似a^b
的东西,而a是一个整数,b是浮点数。
如果b是自然数,我只能得出一些东西。就像一个循环,它将a与a相乘b次。
是否有类似的东西或有任何人知道如何实现它。
答案 0 :(得分:0)
据我了解,您询问了如何使用arm neon实现pow
功能。
整数pow
和a
的最有效b
实现在a
次循环中由a
多abs(b)
次。对于负b
除以循环结果1.0(参见here)。
如果您实施exp
和log
,则可以使用公式pow(x,m)= exp(m * log(x))来实现pow
(请参阅{{ 3}})。
您提到您没有exp
和log
功能。
因此,如果您找到一个包含exp
和log
函数的数学库,那么您可以为pow
和a
实现b
。
arm有一些数学库,实现pow
。例如,请参阅here。
此外,库math-neon中的纯log
和exp
实现(在C中,使用氖内在函数)。您可以从库中获取代码并将其重写为arm程序集。只要问律师如何满足图书馆执照。您只需要两个功能。内在函数代码可以简单地移植到asm。