Skip to content

Commit

Permalink
Trac #17493: bind SymPy's ComplexInfinity
Browse files Browse the repository at this point in the history
{{{
sage: import sympy
sage: SR(sympy.factorial(-2))
------------------------------------------------------------------------
---
...
AttributeError: 'ComplexInfinity' object has no attribute '_sage_'
}}}

URL: http://trac.sagemath.org/17493
Reported by: rws
Ticket author(s): Ralf Stephan
Reviewer(s): Karl-Dieter Crisman, Marc Mezzarobba
  • Loading branch information
Release Manager authored and vbraun committed Mar 27, 2016
2 parents 0a2df8e + 0ef8018 commit 807846b
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/sage/rings/infinity.py
Original file line number Diff line number Diff line change
Expand Up @@ -551,6 +551,12 @@ def __init__(self):
sage: sage.rings.infinity.UnsignedInfinityRing_class() is sage.rings.infinity.UnsignedInfinityRing_class() is UnsignedInfinityRing
True
Sage can understand SymPy's complex infinity (:trac:`17493`)::
sage: import sympy
sage: SR(sympy.zoo)
Infinity
"""
ParentWithGens.__init__(self, self, names=('oo',), normalize=False)

Expand Down Expand Up @@ -901,6 +907,23 @@ def _mul_(self, other):
return self
raise ValueError("unsigned oo times smaller number not defined")

def _sympy_(self):
"""
Converts ``unsigned_infinity`` to sympy ``zoo``.
EXAMPLE::
sage: import sympy
sage: sympy.sympify(unsigned_infinity)
zoo
sage: gamma(-3)._sympy_() is sympy.factorial(-2)
True
sage: gamma(-3) is sympy.factorial(-2)._sage_()
True
"""
import sympy
return sympy.zoo


unsigned_infinity = UnsignedInfinityRing.gen(0)
less_than_infinity = UnsignedInfinityRing.less_than_infinity()
Expand Down

0 comments on commit 807846b

Please sign in to comment.