You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
"""Implementation of :class:`ExpressionRawDomain` class. """
from sympy.core import Expr, S, sympify, Add from sympy.polys.domains.characteristiczero import CharacteristicZero from sympy.polys.domains.field import Field from sympy.polys.domains.simpledomain import SimpleDomain from sympy.polys.polyerrors import CoercionFailed from sympy.utilities import public
@public class ExpressionRawDomain(Field, CharacteristicZero, SimpleDomain): """A class for arbitrary expressions but without automatic simplification. """
is_SymbolicRawDomain = is_EXRAW = True
dtype = Expr
zero = S.Zero one = S.One
rep = 'EXRAW'
has_assoc_Ring = False has_assoc_Field = True
def __init__(self): pass
@classmethod def new(self, a): return sympify(a)
def to_sympy(self, a): """Convert ``a`` to a SymPy object. """ return a
def from_sympy(self, a): """Convert SymPy's expression to ``dtype``. """ if not isinstance(a, Expr): raise CoercionFailed(f"Expecting an Expr instance but found: {type(a).__name__}") return a
def convert_from(self, a, K): """Convert a domain element from another domain to EXRAW""" return K.to_sympy(a)
def get_field(self): """Returns a field associated with ``self``. """ return self
def sum(self, items): return Add(*items)
EXRAW = ExpressionRawDomain()
|