ex: (sqrt(2)+1)^(2/3)$
rootscontract(ex)=> (sqrt(2)+1)^(2/3) <<< does nothing
rootscontract(2*ex) => 2*(2^(3/2)+3)^(1/3) <<< squares the inner expression
Though the documentation is not explicit about what it should do in this case (it only talks about products of roots, not about powers of roots), the second behavior is more useful -- if it isn't provided by rootscontract, it should be provided by *some* function.
Practical result of this anomaly:
rootscontract( (2^(3/2)+3)^(1/3)-(sqrt(2)+1)^(2/3) ) => 0 (I don't know any other way to do this simplification in Maxima)
but
rootscontract( -( (2^(3/2)+3)^(1/3)-(sqrt(2)+1)^(2/3) )) => remains unsimplified
(%i1) r:(sqrt(2)+1)^(2/3)$
(%i2) r=expand(r^3)^(1/3);
(%o2) (sqrt(2)+1)^(2/3)=(2^(3/2)+3)^(1/3)
(%i3) 2*r=expand((2*r)^3)^(1/3);
(%o3) 2*(sqrt(2)+1)^(2/3)=(2^(9/2)+24)^(1/3)
Aleksas
How simplify
(%i1) ex:(sqrt(2)+1)^(2/3);
(%o1) (sqrt(2)+1)^(2/3)
(%i2) ex^3=expand(ex^3);
(%o2) (sqrt(2)+1)^2=2^(3/2)+3
(%i3) %^(1/3);
(%o3) (sqrt(2)+1)^(2/3)=(2^(3/2)+3)^(1/3)
Other example. How simplify
(%i4) ex:4*atan(1/5)-atan(1/239);
(%o4) 4*atan(1/5)-atan(1/239)
(%i5) tan(ex)=trigexpand(trigexpand(tan(ex)));
(%o5) tan(4*atan(1/5)-atan(1/239))=1
(%i6) atan(%);
(%o6) 4*atan(1/5)-atan(1/239)=%pi/4
Aleksas D
Next example.
see http://www.math.utexas.edu/pipermail/maxima/2012/027666.html
How simplify
(%i7) ex:sqrt(1-x^2)/(2-2*x^2)$
(%i8) assume(abs(x)<1)$
We define transformation funkcion f(t) and its inverse g(t):
(%i9) f(t):=(2*t)^2$ g(t):=sqrt(t)/2$
(%i11) assume(t>0)$
(%i12) f(g(t)); g(f(t));
(%o12) t
(%o13) t
(%i14) f(ex)=ratsimp(f(ex));
(%o14) (4*(1-x^2))/(2-2*x^2)^2=-1/(x^2-1)
(%i15) g(%);
(%o15) sqrt(1-x^2)/(2-2*x^2)=1/(2*sqrt(1-x^2))
Aleksas D