Menu ▾ ▴

#988 Handling of infinities

open
nobody
7
2008-04-05
2006-09-21
No

The handling of inf seems to be like that of a really
huge (bigger than everything else) but otherwise
specific number.
Some examples:

inf-inf => 0
inf/inf => 1
inf*0 => 0

Those should all return "undefined". In the following
cases the return value should be directly simplified to
inf again

inf*inf => inf^2
inf+inf => 2*inf
4*inf => 4*inf

Also comparisons like the following should be undefined:

is( inf>=inf ) => true
if( inf>=2*inf ) => false

Furthermore there is no relation between inf and minf:

-inf => -inf
-minf => -minf
inf+minf => inf+minf

Those should return minf, inf, and und respectively.

It would be nice if infinities would be handled like in
the IEEE floating point standard which, I think, makes
more sense in those cases.

Related

Bugs: #2724

Discussion

  • Stavros Macrakis

    Logged In: YES
    user_id=588346
    Originator: NO

    Yes, these limitations are known. Basically, the only parts of Maxima that know about inf/minf/und/ind/infinity are the limit and definite integral packages. As far as the rest of Maxima is concerned, INF is just a variable like X. This is silly, of course.

    The problem is that correcting this in the obvious way means special cases throughout the simplification code, which assumes that if two identifiers are the same identifier, they are equal.... There are other possible solutions (e.g. making each infinity produced unique in some way), but they have their complications, too....

     
  • Robert Dodier

    Robert Dodier - 2006-12-26
    • labels: --> Lisp Core - Simplification
     
  • Robert Dodier

    Robert Dodier - 2008-04-05

    Logged In: YES
    user_id=501686
    Originator: NO

    Increasing the priority of this item.

     
  • Robert Dodier

    Robert Dodier - 2008-04-05
    • priority: 5 --> 7
     

Log in to post a comment.