Open rtoy opened 3 months ago
Imported from SourceForge on 2024-07-05 21:40:14 Created by crategus on 2011-10-27 20:58:05 Original: https://sourceforge.net/p/maxima/bugs/2288/#80b8
Again some examples to show the reported problem:
(%i1) assume(abs(x)<1); (%o1) [abs(x) < 1]
(%i2) sign(4-x^2); (%o2) pos
(%i3) sign(16-x^2); (%o3) pos
(%i4) sign(64-x^2); (%o4) pos
(%i5) sign(100-x^2); (%o5) pos
If the number has an integer root, Maxima can determine the sign. But not for a number, which has not an integer root.
(%i6) sign(5-x^2); (%o6) pnz
The reason is within the algorithm of the Lisp function sign. Expressions are factored by the Lisp function signfactor to determine the sign. Maxima can evaluate the sign of the factored expression.
(%i7) factor(4-x^2); (%o7) -(x-2)*(x+2) (%i8) sign(%); (%o8) pos
But for a number, which does not have an integer root, the expression can not be factored. For this case Maxima does not have an algorithm to evaluate the sign.
(%i11) factor(5-x^2); (%o11) -(x^2-5)
This might be called a missing feature. The Maxima function sign has a lot of more limitations.
Dieter Kaiser
Imported from SourceForge on 2024-07-05 21:40:13 Created by *anonymous on 2011-10-27 06:40:47 Original: https://sourceforge.net/p/maxima/bugs/2288
Just like the summary, assume (x<1 and x>-1), then is (x^<1) is true, but is (x^2<2) is undefined( so does 3 4 5 and 50 ,etc ), but is (x^2<100) is true again. What's happening here?
Maxima version: 5.24.0 Maxima build date: 12:15 5/17/2011 Host type: x86_64-unknown-linux-gnu Lisp implementation type: GNU Common Lisp (GCL) Lisp implementation version: GCL 2.6.7