I don't know; I didn't try it. The problem I posed was to get x**y, where |y| < 1, as x**z, where |z| > 1 can be broken into repeated multiplications for the integer part and a specialized exponentiation function for the fractional part, e.g., a=x**int(z) * x** (z-int(z)) can be broken into

Code:

real base, exponent, fracexp, base_intexp, base_fracexp, answer
integer i, intexp
read base, exponent
intexp = int(exponent)
fracexp = exp - intexp
if(intexp > 1) { # I don't care if it's zero, as x**0 = 1 for x != 0
base_intexp = intpower(base, intexp)
}
elsif(intexp < 0) {
base_intexp = 1.0/intpower(base, abs(intexp))
}
answer = base_exp * fracpower(base, fracexp)

...where you can pick fracpower from anywhere.