Wrong simplification of (-1)^(1/3)



Because I am working again on the function $csign which should give correct
answers for complex expressions I regognized the following problem:

This result is wrong:

(%i53) sign((-1)^(1/3));
(%o53) neg

When we look at the expression we get a wrong result too:

(%i54) (-1)^(1/3);
(%o54) -1

We also get the wrong result with a rectform:

(%i59) rectform((-1)^(1/3));
(%o59) -1

A correct result can be expressed as:

   %e^(1/3*%i*%pi)

The numerical result would be:

  0.5 + %i * 0.86602

We can force Maxima to give a correct numerical result:

(%i60) (-1)^(1/3),numer;
(%o60) 1.0*(-1)^0.33333333333333

To get the numerical result we have first to do a rectform:

(%i61) rectform(%);
(%o61) 1.0*%i*sin(0.33333333333333*%pi)+1.0*cos(0.33333333333333*%pi)

(%i62) %,numer;
(%o62) 0.5-0.86602540378444*%i

We get a correct numerical result for a bigfloat number too, e.g. (-1.0b0)^(1/3)
but not for a double float. This is reported in the bug report [619927] on
Sourceforge.net.

Maxima does the wrong simplification for all rational exponents which have an
odd integer in the denominator e.g 1/5, 2/5, 3/5, ... 1/7, 2/7, 3/7, ... For an
even integer in the denominator an unsimplified result is returned.

I think this is a serious error and I am wondering if we have further bugs
related to this wrong simplification.

I will report this bug on Sourceforge.net too.

Dieter Kaiser