Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit 67f8fa1

Browse files
author
Matthias Koeppe
committed
sage_input for RealSet
1 parent 1543f32 commit 67f8fa1

File tree

1 file changed

+51
-1
lines changed

1 file changed

+51
-1
lines changed

src/sage/sets/real_set.py

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1453,4 +1453,54 @@ def are_pairwise_disjoint(*real_set_collection):
14531453
return False
14541454
return True
14551455

1456-
1456+
def _sage_input_(self, sib, coerced):
1457+
"""
1458+
Produce an expression which will reproduce this value when evaluated.
1459+
1460+
TESTS::
1461+
1462+
sage: sage_input(RealSet())
1463+
RealSet()
1464+
sage: sage_input(RealSet.open(-oo, +oo))
1465+
RealSet(-oo, oo)
1466+
sage: sage_input(RealSet.point(77))
1467+
RealSet.point(77)
1468+
sage: sage_input(RealSet.closed_open(0, +oo))
1469+
RealSet.closed_open(0, oo)
1470+
sage: sage_input(RealSet.open_closed(-oo, 0))
1471+
RealSet.open_closed(-oo, 0)
1472+
sage: sage_input(RealSet.open_closed(-1, 0))
1473+
RealSet.open_closed(-1, 0)
1474+
sage: sage_input(RealSet.closed_open(-1, 0))
1475+
RealSet.closed_open(-1, 0)
1476+
sage: sage_input(RealSet.closed(0, 1))
1477+
RealSet.closed(0, 1)
1478+
sage: sage_input(RealSet.open(0, 1))
1479+
RealSet.open(0, 1)
1480+
sage: sage_input(RealSet.open(0, 1) + RealSet.open(1, 2))
1481+
RealSet.open(0, 1) + RealSet.open(1, 2)
1482+
"""
1483+
1484+
def interval_input(i):
1485+
lower, upper = i.lower(), i.upper()
1486+
if i.is_point():
1487+
return sib.name('RealSet.point')(lower)
1488+
elif lower == minus_infinity and upper == infinity:
1489+
return sib.name('RealSet')(sib(minus_infinity), sib(infinity))
1490+
else:
1491+
if i.lower_closed():
1492+
if i.upper_closed():
1493+
t = 'RealSet.closed'
1494+
else:
1495+
t = 'RealSet.closed_open'
1496+
else:
1497+
if i.upper_closed():
1498+
t = 'RealSet.open_closed'
1499+
else:
1500+
t = 'RealSet.open'
1501+
return sib.name(t)(sib(lower), sib(upper))
1502+
1503+
if self.is_empty():
1504+
return sib.name('RealSet')()
1505+
else:
1506+
return sib.sum(interval_input(i) for i in self)

0 commit comments

Comments
 (0)