[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Rational infinities

Re: b) it is reasonable to want to define an operation as working on, say,
    integers including +infinity and -infinity, but not arbitrary other
    ratios.  That is, the infinities are more an extension of the integer
    type than the ratio type.

Since we currently have
    (deftype rational () '(or integer ratio))
then I can't see any benefit to adding a new type that can be compared 
with integers, but not with ratios; nor can I see any implementational
benefit to having separate "integer infinities" and "rational infinities".

However, I'm not so much concerned with the implementational details as 
with the semantics.  For example, If rational infinities answer "false" 
to rationalp, then for symmetry shouldn't we require that floating-point 
infinities answer "false" to floatp?

Of course, "contagion" rules should apply so that floating-point infinities
can be compared-with/combined-with rational infinities. I think it's ok if 
         (+ 3/2 <+float-infinity>) 
answers "true" to floatp;  but I don't want 
         (/ 10 0) 
to give me a floating-point number under any circumstances; and I would 
prefer that 
         (max 3 <+rational-infinity>)
be "rationalp" rather than merely numberp.

Now, the significant question is what to do about complex infinities.
I have some current needs for the two rational infinities -- one of
which is to model floating-point exactly -- but I don't have any ideas 
at all about the complex domain.  Do you?

-- JonL --