ó
    Š*£hÂ  ã                   ó8   • S r SSKJr  SSKJrJr   " S S5      rg)a(  

Module for the DomainScalar class.

A DomainScalar represents an element which is in a particular
Domain. The idea is that the DomainScalar class provides the
convenience routines for unifying elements with different domains.

It assists in Scalar Multiplication and getitem for DomainMatrix.

é   )Úconstruct_domainé    )ÚDomainÚZZc                   ó¸   ^ • \ rS rSrSrS r\U 4S j5       rS r\S 5       r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rSrU =r$ )ÚDomainScalaré   z
docstring
c                 ó¶   • [        U[        5      (       d  [        S5      eUR                  U5      (       d  [        SU< SU< 35      eU R	                  X5      $ )Nzdomain should be of type Domainzelement z should be in domain )Ú
isinstancer   Ú	TypeErrorÚof_typeÚnew)ÚclsÚelementÚdomains      Ú^/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/polys/matrices/domainscalar.pyÚ__new__ÚDomainScalar.__new__   sI   € Ü˜&¤&×)Ñ)ÜÐ=Ó>Ð>Ø�~‰~˜g×&Ñ&ÝÃ7ÊFÐSÓTÐTØ�w‰w�wÓ'Ð'ó    c                 ó>   >• [         TU ]  U 5      nXl        X#l        U$ ©N)Úsuperr   r   r   )r   r   r   ÚobjÚ	__class__s       €r   r   ÚDomainScalar.new   s    ø€ ä‰g‰o˜cÓ"ˆØŒØŒ
Øˆ
r   c                 ó,   • [        U R                  5      $ r   )Úreprr   ©Úselfs    r   Ú__repr__ÚDomainScalar.__repr__$   ó   € Ü�D—L‘LÓ!Ð!r   c                 óF   • [        U/5      u  nu  nU R                  X25      $ r   )r   r   )r   Úexprr   r   s       r   Ú
from_sympyÚDomainScalar.from_sympy'   s$   € ä.°¨vÓ6Ñˆ‘�'Ø�w‰w�wÓ'Ð'r   c                 óL   • U R                   R                  U R                  5      $ r   )r   Úto_sympyr   r   s    r   r(   ÚDomainScalar.to_sympy,   s   € Ø�{‰{×#Ñ# D§L¡LÓ1Ð1r   c                 óp   • UR                  U R                  U R                  5      nU R                  X!5      $ r   )Úconvert_fromr   r   r   )r   r   r   s      r   Ú	to_domainÚDomainScalar.to_domain/   s+   € Ø×%Ñ% d§l¡l°D·K±KÓ@ˆØ�x‰x˜Ó(Ð(r   c                 ó$   • U R                  U5      $ r   )r,   )r   r   s     r   Ú
convert_toÚDomainScalar.convert_to3   s   € Ø�~‰~˜fÓ%Ð%r   c                 ó�   • U R                   R                  UR                   5      nU R                  U5      UR                  U5      4$ r   )r   Úunifyr,   )r   Úotherr   s      r   r2   ÚDomainScalar.unify6   s7   € Ø—‘×"Ñ" 5§<¡<Ó0ˆØ�~‰~˜fÓ% u§¡°vÓ'>Ð>Ð>r   c                 ó,   • [        U R                  5      $ r   )Úboolr   r   s    r   Ú__bool__ÚDomainScalar.__bool__:   r"   r   c                 óÄ   • [        U[        5      (       d  [        $ U R                  U5      u  pU R	                  U R
                  UR
                  -   U R                  5      $ r   ©r   r   ÚNotImplementedr2   r   r   r   ©r   r3   s     r   Ú__add__ÚDomainScalar.__add__=   óG   € Ü˜%¤×.Ñ.Ü!Ð!Ø—j‘j Ó'‰ˆØ�x‰x˜Ÿ™ u§}¡}Ñ4°d·k±kÓBÐBr   c                 óÄ   • [        U[        5      (       d  [        $ U R                  U5      u  pU R	                  U R
                  UR
                  -
  U R                  5      $ r   r:   r<   s     r   Ú__sub__ÚDomainScalar.__sub__C   r?   r   c                 ó"  • [        U[        5      (       d5  [        U[        5      (       a  [        [        U5      [        5      nO[        $ U R                  U5      u  pU R                  U R                  UR                  -  U R                  5      $ r   )	r   r   Úintr   r;   r2   r   r   r   r<   s     r   Ú__mul__ÚDomainScalar.__mul__I   sd   € Ü˜%¤×.Ñ.Ü˜%¤×%Ñ%Ü$¤R¨£Y´Ó3‘ä%Ð%à—j‘j Ó'‰ˆØ�x‰x˜Ÿ™ u§}¡}Ñ4°d·k±kÓBÐBr   c                 óò   • [        U[        5      (       d  [        $ U R                  U5      u  pU R	                  U R
                  R                  U R                  UR                  5      U R
                  5      $ r   )r   r   r;   r2   r   r   Úquor   r<   s     r   Ú__floordiv__ÚDomainScalar.__floordiv__S   óQ   € Ü˜%¤×.Ñ.Ü!Ð!Ø—j‘j Ó'‰ˆØ�x‰x˜Ÿ™Ÿ™¨¯©°e·m±mÓDÀdÇkÁkÓRÐRr   c                 óò   • [        U[        5      (       d  [        $ U R                  U5      u  pU R	                  U R
                  R                  U R                  UR                  5      U R
                  5      $ r   )r   r   r;   r2   r   r   Úremr   r<   s     r   Ú__mod__ÚDomainScalar.__mod__Y   rK   r   c                 ó.  • [        U[        5      (       d  [        $ U R                  U5      u  pU R                  R                  U R                  UR                  5      u  p#U R                  X R                  5      U R                  X0R                  5      4$ r   )r   r   r;   r2   r   Údivr   r   )r   r3   ÚqÚrs       r   Ú
__divmod__ÚDomainScalar.__divmod___   sh   € Ü˜%¤×.Ñ.Ü!Ð!Ø—j‘j Ó'‰ˆØ�{‰{�‰˜tŸ|™|¨U¯]©]Ó;‰ˆØ—‘˜ŸK™KÓ(¨$¯(©(°1·k±kÓ*BÐCÐCr   c                 óŠ   • [        U[        5      (       d  [        $ U R                  U R                  U-  U R
                  5      $ r   )r   rD   r;   r   r   r   )r   Úns     r   Ú__pow__ÚDomainScalar.__pow__f   s2   € Ü˜!œS×!Ñ!Ü!Ð!Ø�x‰x˜Ÿ™ a™¨¯©Ó5Ð5r   c                 óP   • U R                  U R                  7U R                  5      $ r   ©r   r   r   r   s    r   Ú__pos__ÚDomainScalar.__pos__k   ó   € Ø�x‰x˜Ÿ™˜ t§{¡{Ó3Ð3r   c                 óP   • U R                  U R                  * U R                  5      $ r   r[   r   s    r   Ú__neg__ÚDomainScalar.__neg__n   r^   r   c                 óª   • [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r   )r   r   r;   r   r   r<   s     r   Ú__eq__ÚDomainScalar.__eq__q   s:   € Ü˜%¤×.Ñ.Ü!Ð!Ø�|‰|˜uŸ}™}Ñ,×L°·±ÀÇÁÑ1LÐLr   c                 óH   • U R                   U R                  R                  :H  $ r   )r   r   Úzeror   s    r   Úis_zeroÚDomainScalar.is_zerov   s   € Ø�|‰|˜tŸ{™{×/Ñ/Ñ/Ð/r   c                 óH   • U R                   U R                  R                  :H  $ r   )r   r   Úoner   s    r   Úis_oneÚDomainScalar.is_oney   s   € Ø�|‰|˜tŸ{™{Ÿ™Ñ.Ð.r   © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úclassmethodr   r    r%   r(   r,   r/   r2   r7   r=   rA   rE   rI   rN   rT   rX   r\   r`   rc   rg   rk   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r      s›   ø† ñò(ð ôó ðò"ð ñ(ó ð(ò2ò)ò&ò?ò"òCòCòCòSòSòDò6ò
4ò4òMò
0÷/ð /r   r   N)rr   Úconstructorr   Úsympy.polys.domainsr   r   r   rm   r   r   Ú<module>rx      s   ðñ
õ +ç *÷i/ò i/r   