sign or conjugate bug



-----Urspr?ngliche Nachricht-----
Von: willisb at unk.edu [mailto:willisb at unk.edu] 

< I looked at the patch file, but I didn't test it. Two questions:
< Does this code pass the test suite; does this code fix any known
< bugs in the test suite?

I have designed a solution which do not change any of the behaviours of Maxima,
but gives gives the possibility to test complex epressions correctly. I have
achived this by using a flag to switch the $sign function in a complex mode. If
you use this $sign function in complex mode a lot of known problems vanish. But
also a lot of the code of Maxima depends on incorrect or not complete answers of
$sign.

< It seems that you put a great deal of time into this code; assuming
< the patch doesn't break anything that you know of, maybe you should
< go ahead an commit it. Over time, things like this get lost or go out
< of date.

< The sign code has many weaknesses (there are 11 out of 89 failures in
< rtest_sign). Also, it's not easy to tell when a weakness is actually a
< bug (I don't understand the algorithms in compar.lisp). The sign code
< even fails for some linear assumptions. Ouch.

I have done a very detailed analysis of the code of $sign. So I have learned
that this code is designed for real values. There are some hacks for complex
values, but that it is not enough to do good mathematic with complex values.

The fails are not bugs but restrictions of the code of $sign.

So I have suggested an extension with a function sign-shift to $sign to get
correct results for something like:

/* That is the correct result for the reported bug SF [1045920]*/
(%i2) assume(a>1,b>1);
(%o2) [a > 1,b > 1]
(%i3) is(a+b>2);
(%o3) true

This example is not a bug but a missing feature of the $sign function,too.

Dieter Kaiser