We have a bug (5.12) with (negative float) ^ rational power.
This is OK
(%i1) (4.20004589234762386)^(2/3);
(%o1) 2.603170958437791
This isn't OK
(%i2) (-4.20004589234762386)^(2/3);
(%o2) (1.0*18287^(2/3))/4354^(2/3)
Notice the difference between (%o3) and (%o1)
(%i3) float(%);
(%o3) 2.603170975967684
A smaller ratepsilon makes the values agree up to the last decimal
(%i4) (-4.20004589234762386)^(2/3), ratepsilon : 1.0e-15;
(%o4) (1.0*24124547^(2/3))/5743877^(2/3)
(%i5) float(%);
(%o5) 2.603170958437795
We've known of the following bug (or inconsistency) for a long time
(%i6) (-4.20004589234762386b0)^(2/3);
(%o6) 2.254412180401012b0*%i-1.301585479218896b0
The function expta is weird. This isn't the cause
of (negative float)^rational bug. Final observation: This is OK
MAXIMA> (expta 1.1 2)
1.2100000000000002
But expta ignores denominators of the power -- that's weird
MAXIMA> (expta 1.1 `((rat) 1 2))
1.1000000000000001
Evaluating (-4.2b0)^(2/3) requires about 45 calls to 'expta.'
That's pretty sad, isn't it?
Barton