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.