As I understand, you asked about how to implement pow
function using arm neon.
Most effective pow
implementation for integer a
and b
is multiple a
by a
in a loop abs(b)
times. For negative b
divide 1.0 by result of the loop (see here).
If you have exp
and log
implementations, than you could implement pow
using equation pow(x, m) = exp(m * log (x)) (see here).
You mention about you don't have exp
and log
function.
So, if you find a math library with exp
and log
functions, than you can implement pow
for double a
and b
.
There are some math libraries for arm, with pow
implementation. See math-neon, for example.
Also the is pure log
and exp
implementations (in C, using neon intrinsics) in the library Simple ARM NEON optimized sin, cos, log and exp. You can take the code from the library and rewrite it into arm assembly. Just ask lawyer how to satisfy library license. You need only two functions from it. Intrinsics code could be simple ported to asm.