When dealing with fractional powers of negative numbers, you need complex numbers. A simple number cannot represent the result.

These can be solved using deMoivre's theorem, relating the power to an angle of rotation in the complex plane

This seems to work:

` /*`

http://www.suitcaseofdreams.net/De_Moivre_formula.htm

*/

type complex double x,y

function zpower(complex*z, double n)

'Using DeMoivre theorem

double radius,ang,scale

radius = hypot(z.x,z.y)

scale = radius^n

if z.x=0 then

angle=.5*pi '90 degrees

if z.y<0 then angle=1.5*pi

else

angle = atan(z.y,z.x)

end if

angle*=n

z.x = scale * cos(angle)

z.y = scale * sin(angle)

end function

complex n={-2.0 , 0.0}

zpower( n, 0.2)

print str(n.x,6) " + " str(n.y,6) "i"

A good test is **-4^.5**

expected result: **{0 + 2i}**