I know this doesn't quite answer your question, but I think we should
have two separate classes, RealInterval and ExtendedRealInterval.
Interval could then act as a wrapper for the two. The issue is if an
interval can include infinities, then you can't assume an interval
with symbolic entries like Interval(x, y) is a subset of the reals,
unless the symbols are set as finite. But RealInterval(x, y) would
always act like Interval.intersect(Reals).

Aaron Meurer

On Thu, Sep 30, 2021 at 4:41 PM Chris Smith <[email protected]> wrote:
>
> I am exploring ways to implement an Interval that will contain infinite 
> boundaries.
> I am under the assumption that we can't make `Interval(-oo, oo)` mean `[-oo, 
> oo]`.
>
> Currently the default is to *automatically* exclude them, so `Interval(1, 
> oo)` means `[1, oo)`.
>
> My idea is to use another keyword to allow for infinities to be included, 
> like ``Interval(1, oo, ext=True)` to get [1, oo]. The interval `(1,oo)` is 
> already entered as `Interval.Lopen(1, oo)`; to make it close on the right 
> would require `Interval.Lopen(1, oo, ext=True)`. But that doesn't look very 
> good.
>
> A more compact way to do this (and give an alternative to the functional, but 
> not compact method, of giving 4 arguments) would be to use 2 letters to 
> indicate closed or open status:
>
> Interval.cc(3,4) = [3,4]
> Interval.co(3,4) = [3,4)
> Interval.oc(3,4) = (3,4]
> Interval.oo(3,4) = (3, 4)
>
> Lopen and Ropen could be deprecated (or kept as legacy) but the printing 
> could be done in terms of c and o. The problem with those two letters is that 
> they look so much alike. underscore and "L" could be used as
>
> Interval.LL(3,4) = [3,4]
> Interval.L_(3,4) = [3,4)
> Interval._L(3,4) = (3,4]
> Interval.__(3,4) = (3, 4)
>
> Or "x" and "o"
>
> /c
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sympy/7e8d8218-32d4-4682-af22-20a47792b48dn%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAKgW%3D6K7PMmDjiGNEcw5uYb5d7uoHEcgKKFaEMWm0R1y_vCaaw%40mail.gmail.com.

Reply via email to