Zeroequiv and sf bug 593530



A while ago,

Stavros Macrakis wrote:
>
> Zeroequiv would be an excellent application for interval arithmetic,
> but unfortunately we don't have a practical implementation of interval
> arithmetic in Maxima.
>   
1. If an expression is equivalent to zero, then any correct interval 
evaluation of it will include zero.
But that doesn't tell you much.   Interval arithmetic could be useful in 
proving that an expression was not zero, if
it came up with an interval that did not include zero.

I don't know that this is an excellent application for interval 
arithmetic, but maybe Stavros had something
more in mind.

In either case, a package to do interval arithmetic is one of several 
options in the generic arithmetic package
I posted some time ago.

What else though?


There are ways of doing more careful analysis of special cases, but 
essentially there are a bunch of situation
for which random evaluation is quite unnecessary. (which is a good thing 
because it wouldn't work).

Evaluating a polynomial.  evaluating a polynomial which includes  
exp(polynomial).
evaluating a polynomial which includes log(polynomial).
Ratios of the above.

These can all have zero-equivalence algorithms that work.
sines and cosines can be converted to complex exponentials.

I believe there are theorems that can be used to tell you how to 
determine (i.e. how many digits of precision must be carried)
to tell if an algebraic  [ie. roots of numbers] expression is zero.  
Gosper uses this in the commercial Macsyma.

It is also a task of some interest to determine simply if a function 
delivered as an expression is even defined throughout some portion of RR^n,
n-dimensional real parameters.