# [Maxima] intervals.

Robert Dodier robert.dodier at gmail.com
Tue Dec 18 00:11:22 CST 2007

```On 12/14/07, Richard Fateman <fateman at cs.berkeley.edu> wrote:

> (1) Introducing intervals fundamentally changes the nature of symbolic
> identity, which is at the base of simplification.
> In particular, equality doesn't work.

Good point. I agree, on considering this, that in fact it is necessary
(and I really mean necessary) to separate evaluation with intervals
from ordinary evaluation. I think the right way to consider the interval
is as a statement about a variable, but not as the value of the variable,
which remains unspecified. So we don't want expressions like

x : interval (a, b);
y : interval (c, d);
z : x + y;
=> interval (a + c, b + d)

but rather something like

with_intervals (z : x + y) assuming (x in interval (a, b), y in
interval (c, d));
=> z in interval (a + c, b + d)

The use of intervals here is exactly analogous to specifying
probability distributions for variables and then calculating the
distributions of functions of those variables. A probability distribution
is not the value of a variable but rather a statement (or summary of
a collection of statements) about the variable. It is clearer in the
case of probability calculations that the distributions are not values,
because simple arithmetic on variables maps into very different
operations on distributions.

One could still invent an arithmetic of interval values, but I suspect
the main use of that would be calculate interval statements in
with_intervals or IEVAL or whatever.

> (2) Just as people sometimes "want" Maxima to do something like numeric
> eigenvalues, they sometimes "want" to do interval arithmetic.  We could say,
> oh, we already do eigenvalues (symbolic OR numeric), with the same program.
> But this is not a real response to the eigenvalue request: we added numeric
> programs because the symbolic eigenvalue program is good only for trivial
> size problems or special cases. That is, we needed a link to a serious
> numerical program. Same for intervals.

Probably with_intervals or IEVAL or whatever could look for numeric
intervals and punt to an existing package in that case.

> (3) Since the symbolic interval stuff (with explicit min, max, ... in the
> endpoints) is highly unlikely to provide any insight into values, and the
> prospect of simplifying it -- after producing it-- so remote [unless numbers
> are inserted], that producing it in the first place is esssentially a fool's
> errand.

I don't see any need to rule out symbolic intervals. Whether it is
useful is for a user to decide. It is simple enough for Maxima to
generate a mess. Maxima in general permits all kinds of messes,
which is, I claim, exactly as it should be.

FWIW

Robert
```