function powi(atom b, integer i)
atom v=1
b = iff(i<0 ? 1/b : b)
i = abs(i)
while i>0 do
if and_bits(i,1) then v *= b end if
b *= b
i = floor(i/2)
end while
return v
end function
?powi(-3,-5)
?power(-3,-5)