
    sg                         d Z ddlmZmZmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ e G d d	e	ee             Z e       Zy
)z6Implementation of :class:`ExpressionRawDomain` class.     )ExprSsympifyAdd)CharacteristicZero)Field)SimpleDomain)CoercionFailed)publicc                       e Zd ZdZdxZZeZej                  Z
ej                  ZdZdZdZd Zed        Zd Zd Zd	 Zd
 Zd Zy)ExpressionRawDomainzHA class for arbitrary expressions but without automatic simplification. TEXRAWFc                      y N selfs    Z/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/domains/expressionrawdomain.py__init__zExpressionRawDomain.__init__   s        c                     t        |      S r   )r   r   as     r   newzExpressionRawDomain.new   s    qzr   c                     |S )z!Convert ``a`` to a SymPy object. r   r   s     r   to_sympyzExpressionRawDomain.to_sympy#   s    r   c                 h    t        |t              s!t        dt        |      j                         |S )z)Convert SymPy's expression to ``dtype``. z&Expecting an Expr instance but found: )
isinstancer   r
   type__name__r   s     r   
from_sympyzExpressionRawDomain.from_sympy'   s/    !T" #I$q'JZJZI[!\]]r   c                 $    |j                  |      S )z5Convert a domain element from another domain to EXRAW)r   )r   r   Ks      r   convert_fromz ExpressionRawDomain.convert_from-   s    zz!}r   c                     | S )z*Returns a field associated with ``self``. r   r   s    r   	get_fieldzExpressionRawDomain.get_field1   s    r   c                     t        | S r   )r   )r   itemss     r   sumzExpressionRawDomain.sum5   s    E{r   N)r    
__module____qualname____doc__is_SymbolicRawDomainis_EXRAWr   dtyper   ZerozeroOneonerephas_assoc_Ringhas_assoc_Fieldr   classmethodr   r   r!   r$   r&   r)   r   r   r   r   r      sh    R&**8E66D
%%C
CNO  r   r   N)r,   
sympy.corer   r   r   r   &sympy.polys.domains.characteristiczeror   sympy.polys.domains.fieldr    sympy.polys.domains.simpledomainr	   sympy.polys.polyerrorsr
   sympy.utilitiesr   r   r   r   r   r   <module>r>      sJ    < - , E + 9 1 " )%!3\ ) )X 	r   