MuPad vs Maxima



On 5/7/2011 6:22 PM, German Eduardo Jaber De Lima wrote:
> I found a link regarding a comparison between MuPad and Maxima:
> http://homepage.mac.com/peso1/MaximaMuPAD/MaxMuP-1.html
> The link contains a series of test to mesure the quality of both systems.
> There are several tests where Maxima returns incorrect results, so I'm
> posting this with the hopes that someone will address these issues.
> One example is the following problem:
> (C21) assume(x>= y, y>= z, z>= x)$ is( x = z );
> (C22)
> (D22)                         FALSE
>
> That is the output for maxima. It should be true
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
Actually, maxima knows the answer to this because

is (x>=z)   returns true

and
is (x>z)  returns false.

leaving only the possibility that x=z.

However, testing to see if two items are equal is probably NOT something 
that Maxima does by consulting the assumption database.  I think it just 
looks at the values of x and z. They are not the same.  Why?  It is 
probably 1000X faster to treat tests for equality this way by ignoring 
assumptions.

Whether the result should be true or not depends on what "=" means.  
Perhaps you (or the original poster of the test)
should change the test to...


is (x>=z and x<=z)

which returns true.

Often the comparison of systems is simply an enumeration of what 
features are known to the author of the test, and some of the individual 
comparisons are really not illuminating.  For example, some systems bog 
down on large problems. Is this part of the test?
Sometimes there are optional library routines that are needed.
Sometimes (as in this case) the result that is declared to be a mistake 
is, in some sense, intentional by the system designers, and the author 
has a misconception.  To get the "correct" answer he must use the system 
differently.
(It is a different argument to say that the semantics of "=" should be 
changed -- one could argue that it should work really really very hard.  
For instance, is (sin(x)^2+cos(x)^2=1)   return true?
should  is (exp(x)=1)   return is(x=0)  ?



Also it seems that the link is to a page that is quite a few years old, 
so both systems may have changed.


RJF