"Upgrade" to Maxima 5.23.2 kills integration



This appears to be related to the recent adoption of stricter simplification
rules for sqrt -- 1/sqrt(x) and sqrt(1/x) are no longer considered
equivalent, since the principal value of 1/sqrt(-1) = -%i and sqrt(1/-1) =
%i.

   integrate(sqrt(1/(x^2+x)),x)  =>  'integrate(sqrt(1/(x^2+x)),x)
   integrate(1/sqrt(x^2+x),x) => log(2*sqrt(x^2+x)+2*x+1)

The workaround is to set radexpand:all :

   integrate(sqrt(1/(x^2+x)),x),radexpand:all  =>  log(2*sqrt(x^2+x)+2*x+1)

Fateman has pointed out many times that trying to manipulate symbolic
expressions in such a way that principal value is preserved is a fool's
errand unless we get *much* more sophisticated in their handling (with a
significant burden in usability).  But even naive users are confused when
sqrt(x^2) simplifies to x and not abs(x)....  So it's not clear what the
solution is.

               -s


On Thu, Mar 17, 2011 at 10:51, Henry Baker <hbaker1 at pipeline.com> wrote:

> sqrt(1/(BdotB*t^2+2*AdotB*t+AdotA));
>