ó
    Š*£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     Ú`/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/polys/domains/compositedomain.pyÚinjectÚCompositeDomain.inject   sP   € ä�D—L‘LÓ!¤C¨£L×0Ø—>‘> $§+¡+¨t¯|©|¸gÑ/EÀtÇzÁzÓRÐRå!ÀdÇlÄlÒT[Ð"\Ó]Ð]ó    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¢<˜a¸F±?Ÿ™¢<ùs   ƒ	�	)r   Útupler   r   Údropr   r   )r   r   Únewsymsr   r   s       @r   r   ÚCompositeDomain.drop   sQ   ø€ ä�W“ˆÜÔC 4§<¢<Ó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   € à�~‰~˜f§l¡l°D·J±JÓ?Ð?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   