Operations on inf



On 3/7/07, Stavros Macrakis <macrakis at alum.mit.edu> wrote:

> Presumably the correct simplifications involving inf are those which are
> correct regardless of where the inf came from.

Agreed.

> Of course, ideally we'd like to keep more information associated with
> the inf's (as RJF has pointed out, we do not have the restriction of a
> numerical system which requires all objects to be of a small, fixed size).

Agreed.

> Since we don't know, we have to treat it as arising from a limit, and indeed
> all constants need to be treated this way, e.g.
>
>           1^inf == limit(x^y,[x,y],[1,inf]) == und

Hmm. I think it might be unnecessarily conservative to treat actual
constants as potential variables. I think it would OK to treat only
inf and minf as potential variables (e.g. 1^inf = limit(1^x, x, inf) = 1).

That makes 0*inf = limit(0*x, x, inf) = 0, which differs from IEEE 754
arithmetic rules in which 0*INF => NAN. That makes me slightly
uncomfortable but I could get used to it, if Maxima applies its rules
consistently. Incidentally 1^inf => und differs from IEEE 754 since
1^inf => 1 there.

> > 4*inf -> inf            YES
> > -1*inf -> minf   (debatable?)      YES
> > inf/inf -> und   (or ind?)         UND
> > inf*inf -> inf                            YES

Agreed.

> > inf*0 -> und     (or ind?)       UND ***see above***

Not sure, see above.

> > (1-sqrt(2))*inf -> minf        YES
> > (1+sqrt(2))*inf -> inf          YES

Agreed.

> > But inf^2 -> inf^2, still,
>
> Why?  Both inf*inf and inf^2 go to inf regardless of how you approach it.

I think you're saying inf^2 => inf. If so I agree.

> > and x*inf -> x*inf.  I wasn't sure what to
> > do with x*inf, so I thought it best to leave it alone.
> Yes.

Agreed.

FWIW
Robert