
    \hj                     L    S r SSKJr  SSKJr  SSKJr  \ " S S\5      5       rg)z2Implementation of :class:`CompositeDomain` class.     )Domain)GeneratorsError)publicc                   p    \ rS rSrSrSrS/S-  u  rrrr	S r
S rS r\S	 5       rS
 r\S 5       rS rSrg)CompositeDomain	   z5Base class for composite domains, e.g. ZZ[x], ZZ(X). TN   c                     [        U R                  5      [        U5      -  (       d4  U R                  U R                  U R                  U-   U R                  5      $ [        SU R                  < SU< 35      e)z%Inject generators into this domain.  zcommon generators in z and )setsymbols	__class__domainorderr   )selfr   s     [/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/domains/compositedomain.pyinjectCompositeDomain.inject   sP    DLL!CL0>>$++t||g/EtzzRR!dllT["\]]    c                    ^ [        U5      m[        U4S jU R                   5       5      nU R                  R                  " U6 nU(       d  U$ U R                  X2U R                  5      $ )z"Drop generators from this domain. c              3   6   >#    U  H  oT;  d  M
  Uv   M     g 7fN ).0ssymsets     r   	<genexpr>'CompositeDomain.drop.<locals>.<genexpr>   s     C<aF?<s   		)r   tupler   r   dropr   r   )r   r   newsymsr   r   s       @r   r   CompositeDomain.drop   sQ    WC4<<CC!!7+M>>&4::>>r   c                 N    U R                  XR                  U R                  5      $ )z&Set the ground domain of this domain. )r   r   r   )r   r   s     r   
set_domainCompositeDomain.set_domain"   s    ~~fllDJJ??r   c                 .    U R                   R                  $ )z*Returns ``True`` if this domain is exact. )r   is_Exactr   s    r   r&   CompositeDomain.is_Exact&   s     {{###r   c                 T    U R                  U R                  R                  5       5      $ )z)Returns an exact version of this domain. )r#   r   	get_exactr'   s    r   r*   CompositeDomain.get_exact+   s    t{{44677r   c                 .    U R                   R                  $ r   )r   has_CharacteristicZeror'   s    r   r-   &CompositeDomain.has_CharacteristicZero/   s    {{111r   c                 6    U R                   R                  5       $ r   )r   characteristicr'   s    r   r0   CompositeDomain.characteristic3   s    {{))++r   r   )__name__
__module____qualname____firstlineno____doc__is_Compositegensngensr   r   r   r   r#   propertyr&   r*   r-   r0   __static_attributes__r   r   r   r   r   	   sa    ?L$(6!8 D%&^?@ $ $8 2 2,r   r   N)r6   sympy.polys.domains.domainr   sympy.polys.polyerrorsr   sympy.utilitiesr   r   r   r   r   <module>r?      s,    8 . 2 "*,f *, *,r   