How does integrate handle %i?



> But some of the transformations that radcan does won't preserve what you
> want. ?In particular sqrt(x^2) -> x, which is not right if x is

According to http://maxima.sourceforge.net/docs/manual/en/maxima_7.html,
this is only true if you assume x>0.  Hmm... but, with CVS from last
week:

(%i10) radexpand:false;
(%o10)                               false
(%i12) radcan(sqrt(x^2));
(%o12)                                 x
(%i13) radexpand:true;
(%o13)                               true
(%i14) radcan(sqrt(x^2));
(%o14)                              abs(x)
(%i15) radexpand:all;
(%o15)                                all
(%i16) radcan(sqrt(x^2));
(%o16)                                 x

This is counter the documentation.  See the previous discussion of
this at http://www.math.utexas.edu/pipermail/maxima/2008/011754.html

However, at least this clarifies why radcan behaves as it does, since
it is looking at limits.  How does radcan choose which square root of
-1 to use, based on the limits (this is for anyone who knows)?   It is
consistent that

(%i36) radcan(sqrt(25-x)/sqrt(x-25));

(%o36)                                %i
(%i37) radcan(sqrt(x-25)/sqrt(25-x));

(%o37)                               - %i

but how does radcan choose which one is which?