Am Sonntag, den 21.06.2009, 12:54 -0700 schrieb Richard Fateman:
Hello Richard,
thank you very much for your comments.
> I admit to being concerned about changes to these programs, which date
> back to 1963!
> I'm not sure why, exactly.
It is not easy to do work on the code of the core simplifier. I always
fear the worst and only try to improve known problems.
As reported the changes to simplify powers of rational numbers in
expressions have already been done earlier. This feature has not been
added with my work. A first step to get better simplified results was
done in the year 2006 with revisions 1.20 and 1.21. Because we have some
bug reports I have done some more work to get the simplifications
consistent.
> What if there is not sqrt(2) but sqrt(11111111111111111);
>
> Here is a sequence of computations:
> b: 11111111111111111;
> factor(b);
> sqrt(%);
> % / b;
>
> (2071723^(-1/2)*sqrt(5363222357))/5363222357 ;;; a peculiarity of
> wxmaxima which has problems with sqrt in denominator??
>
> with your changes, the better result is
>
> 1/(sqrt(2071723)*sqrt(5363222357)).
Yes, this example shows, what we have, and what we will get.
> What concerns me is how much work, in general, are you going to do to
> find factors? apparently just numbers -- do you compute a GCD somewhere??
This work is done in the routine EXPONENT-OF. I have not introduced this
routine nor the method to find expressions with common factors. All this
is already present.
> Still not quite right ...
>
> sqrt(c/d)*c is not simplified
>
> but sqrt(c)*c/d is simplified.
>
> sqrt(x^2-1)*(x-1) unsimplified.
Yes, the above examples are not simplified.
> I guess you are just doing numbers..
> not complex numbers, though. Consider
>
> sqrt(2456*%i-1992)-26*%i*sqrt(%i+3)-18*sqrt(%i+3)
>
> which is, at least choosing certain values of the sqrts, zero.
Yes, only rational numbers are handled. The above example is not
simplified. Even rectform does not simplify this expression accordingly.
> Well, I still have no specific bad examples...
I have reported two problems we will get with the testsuite. I know,
that the testsuite is not very complete. So, some surprising problems
might occur.
At the moment we might have three possibilities:
1. Try to make the algorithm more consistent.
2. Cut out some code to handle powers of rational numbers.
So, we do less simplifications, but perhaps can do it consistent.
3. Do nothing.
I have not tried the second case. In fact we have to go back to the
version Maxima 5.10.
Remark:
I am working on the bug "ID: 1010768 sqrt(1/z) - 1/sqrt(z) => 0", too.
This is again an example where we have to modify the core simplifier to
get more general and more correct results.
Dieter Kaiser