Ë
    täi(&  ã                  ó.  — U d dl mZ d dlZd dl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 dd
lmZmZmZmZmZmZmZmZ m!Z"m#Z$m%Z&m'Z(m)Z*m+Z,m-Z.m/Z0m1Z2m3Z4m5Z6m7Z8m9Z:m;Z<m=Z>m?Z@mAZB g d¢ZCg d¢ZDd„ ZEdZFd„ ZGd„ ZHej’                  j•                  dd«      j—                  «       ZLdZMdZNeLdv r eGeL«      ZMeM�dZLndZLeLdv r eHeL«      ZNeN�dZLndZLeLdvr
 ed«       dZLdd ee«      z  dz
  z  dz
  ZOdePd<   eLdk(  �raeN€J ‚dZQeNZRdZSdZTeU eVeRj¯                  d «      «      fZXeRj®                  ZYeRj´                  Z[eRj"                  ZeRj&                  ZeRj*                  ZeRj¸                  ZeRjº                  ZeRjF                  Z#eRj¼                  ZeRj:                  ZeRj>                  ZeRjB                  Z!eRjJ                  Z%eRjN                  Z'eRjR                  Z)eRjV                  Z+d„ Z-eRj^                  Z/eRjb                  Z1eRjf                  Z3eRjj                  Z5eRjn                  Z7eRjr                  Z9eRjv                  Z;eRjz                  Z=eRj~                  Z?eRj‚                  ZAyeLdk(  rleM€J ‚eMZQdZRd ZSdZTeUeQj¾                  fZXeQj¾                  ZYeQjÀ                  Z[eZeZeZeZd„ Zd „ Z#d!„ Zd"„ Zd#„ Ze"Z!e&Z%e(Z'd$„ Z)e,Z+d%„ Z-e0Z/e2Z1e4Z3e6Z5e8Z7e:Z9e<Z;e>Z=e@Z?eBZAyeLdk(  rBdZQdZRd ZSdZTeUfZXeUZYeZ[eZeZeZeZeZe$Z#eZeZe Ze"Z!e&Z%e(Z'e*Z)e,Z+e.Z-e0Z/e2Z1e4Z3e6Z5e8Z7e:Z9e<Z;e>Z=e@Z?eBZAyJ ‚)&é    )ÚannotationsN)Úc_longÚsizeof)Úreduce)ÚType)Úwarn)Úimport_moduleé   )Ú	PythonMPQ)Ú	bit_scan1Ú	bit_scan0ÚremoveÚ	factorialÚsqrtÚsqrtremÚgcdÚlcmÚgcdextÚ	is_squareÚinvertÚlegendreÚjacobiÚ	kroneckerÚirootÚis_fermat_prpÚis_euler_prpÚis_strong_prpÚis_fibonacci_prpÚis_lucas_prpÚis_selfridge_prpÚis_strong_lucas_prpÚis_strong_selfridge_prpÚis_bpsw_prpÚis_strong_bpsw_prp)ÚGROUND_TYPESÚHAS_GMPYÚ
SYMPY_INTSÚMPQÚMPZr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   )z0.6z0.7z0.8z0.9z0.10c                óN   — | j                  d«      d d \  }}|› d|› �}|t        v S )NÚ.é   )ÚsplitÚ_PYTHON_FLINT_VERSION_NEEDED)Úflint_versionÚmajorÚminorÚ	flint_vers       úb/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/sympy/external/gmpy.pyÚ_flint_version_okayr4   c   s9   € Ø ×&Ñ& sÓ+¨B¨QÐ/�L€Eˆ5Ø�'˜˜5˜'Ð"€IØÔ4Ð4Ð4ó    z2.0.0c                ó¶   — | dvry 	 dd l }ddl m} t	        |«      r|S | dk(  ry t        d|› dt
        › d	�«       |S # t        $ r | dk(  rt        d«       Y y w xY w)
N©ÚautoÚflintr   )Ú__version__r9   zjSYMPY_GROUND_TYPES was set to flint but python-flint is not installed. Falling back to other ground types.r8   zUsing python-flint zp because SYMPY_GROUND_TYPES is set to flint but this version of SymPy is only tested with python-flint versions r+   )r9   r:   ÚImportErrorr   r4   r.   )Úsympy_ground_typesr9   Ú_flint_versions      r3   Ú
_get_flintr>   n   s‰   € ØÐ!2Ñ2ØðÛå7ô ˜>Ô*ØˆØ	˜vÒ	%ØäÐ" >Ð"2ð 3+ä+GÐ*HÈðKô 	Lð ˆøô ò Ø Ò(Üð Bô Cáð	ús   ‡
< ¼AÁAc                óZ   — | dvry t        dt        dd¬«      }| dk7  r|€t        d«       |S )N©r8   ÚgmpyÚgmpy2rB   Úversion© )Úmin_module_versionÚmodule_version_attrÚmodule_version_attr_call_argsr8   zBgmpy2 library is not installed, switching to 'python' ground types)r	   Ú_GMPY2_MIN_VERSIONr   )r<   rA   s     r3   Ú
_get_gmpy2rI   ‡   s?   € ØÐ!:Ñ:Øä˜Ô5GØ )ÈôM€Dð ˜VÒ#¨¨ÜÐQÔRà€Kr5   ÚSYMPY_GROUND_TYPESr8   r7   r9   r@   rA   Úpython)r9   rA   rK   zmSYMPY_GROUND_TYPES environment variable unrecognised. Should be 'auto', 'flint', 'gmpy', 'gmpy2' or 'python'.é   ztuple[Type, ...]r'   r,   c                óX   — |t         k  rt        j                  | |«      S t        | |«      S ©N)ÚLONG_MAXrA   r   Úpython_iroot)ÚxÚns     r3   r   r   ß   s)   € ð ”Š=Ü—:‘:˜a Ó#Ð#Ü˜A˜qÓ!Ð!r5   c                óH   — t         j                  | «      j                  «       S rN   )r9   ÚfmpzÚisqrt©rQ   s    r3   r   r     s   € Ü�z‰z˜!‹}×"Ñ"Ó$Ð$r5   c                ó`   — | dk  ryt         j                  | «      j                  «       d   dk(  S )Nr   Fr
   ©r9   rT   r   rV   s    r3   r   r     s-   € ØˆqŠ5ØÜ�z‰z˜!‹}×$Ñ$Ó& qÑ)¨QÑ.Ð.r5   c                óH   — t         j                  | «      j                  «       S rN   rX   rV   s    r3   r   r     s   € Ü�z‰z˜!‹}×$Ñ$Ó&Ð&r5   c                 ór   — t        t        j                  j                  | t        j                  d«      «      S )Nr   )r   r9   rT   r   ©Úargss    r3   r   r     ó!   € Ü”e—j‘j—n‘n d¬E¯J©J°q«MÓ:Ð:r5   c                 ór   — t        t        j                  j                  | t        j                  d«      «      S )Nr
   )r   r9   rT   r   r[   s    r3   r   r     r]   r5   c                ót   — |dk  s|dz  st        d«      ‚t        j                  | «      j                  |«      S )Nr   r,   z#y should be an odd positive integer)Ú
ValueErrorr9   rT   r   )rQ   Úys     r3   r   r     s4   € Ø�Š6˜˜QšÜÐBÓCÐCÜ�z‰z˜!‹}×#Ñ# AÓ&Ð&r5   c                óˆ   — |t         k  r.t        j                  | «      j                  |«      }|||z  | k(  fS t	        | |«      S rN   )rO   r9   rT   ÚrootrP   )rQ   rR   ra   s      r3   r   r     s@   € Ø”Š=Ü—
‘
˜1“×"Ñ" 1Ó%ˆAØ�a˜‘d˜a‘i�<ÐÜ˜A˜qÓ!Ð!r5   )aÚ
__future__r   ÚosÚctypesr   r   Ú	functoolsr   Útypingr   Úwarningsr   Úsympy.externalr	   Ú	pythonmpqr   Úntheoryr   Úpython_bit_scan1r   Úpython_bit_scan0r   Úpython_remover   Úpython_factorialr   Úpython_sqrtr   Úpython_sqrtremr   Ú
python_gcdr   Ú
python_lcmr   Úpython_gcdextr   Úpython_is_squarer   Úpython_invertr   Úpython_legendrer   Úpython_jacobir   Úpython_kroneckerr   rP   r   Úpython_is_fermat_prpr   Úpython_is_euler_prpr   Úpython_is_strong_prpr   Úpython_is_fibonacci_prpr   Úpython_is_lucas_prpr    Úpython_is_selfridge_prpr!   Úpython_is_strong_lucas_prpr"   Úpython_is_strong_selfridge_prpr#   Úpython_is_bpsw_prpr$   Úpython_is_strong_bpsw_prpÚ__all__r.   r4   rH   r>   rI   ÚenvironÚgetÚlowerÚ_SYMPY_GROUND_TYPESÚ_flintÚ_gmpyrO   Ú__annotations__r9   rA   r&   r%   ÚintÚtypeÚmpzr'   r)   Úmpqr(   ÚfacrU   Ú	isqrt_remrT   ÚfmpqrD   r5   r3   Ú<module>r”      sõ  ðÞ "Û 	ß !Ý Ý Ý å (å  ÷÷ ÷ ÷ ÷ ÷ õ ò:0€òn  DÐ ò5ð Ð òò2
ð  —j‘j—n‘nÐ%9¸6ÓB×HÑHÓJÐ Ø	€Ø€ð Ð+Ñ+ÙÐ+Ó,€FØÐØ%Ñà$ÐàÐ3Ñ3ÙÐ*Ó+€EØÐØ$Ñà&ÐàÐ9Ñ9Ùð 
Cô Dà"Ðð �!‘F˜6“NÑ" QÑ&Ñ'¨1Ñ,€ð Ó à˜&Ó àÐÐÐà€EØ€Dà€HØ€LØ‘t˜DŸH™H Q›KÓ(Ð)€JØ
�(‰(€CØ
�(‰(€Cà—‘€IØ—‘€IØ�[‰[€FØ—‘€IØ�:‰:€DØ—‘€IØ�n‰n€GØ
�(‰(€CØ
�(‰(€CØ�[‰[€FØ�[‰[€FØ�}‰}€HØ�[‰[€FØ—‘€Iò"ð ×&Ñ&€MØ×$Ñ$€LØ×&Ñ&€MØ×,Ñ,ÐØ×$Ñ$€LØ×,Ñ,ÐØ×2Ñ2ÐØ"×:Ñ:ÐØ×"Ñ"€KØ×0Ñ0Ñà˜GÒ#àÐÐÐà€EØ€Dà€HØ€LØ�u—z‘zÐ"€JØ
�*‰*€CØ
�*‰*€Cà €IØ €IØ€FØ €Iò%ò/ò
'ò;ò;ð €FØ€FØ€Hò'ð
 !€Iò"ð )€MØ&€LØ(€MØ.ÐØ&€LØ.ÐØ4ÐØ<ÐØ$€KØ2Ñà˜HÒ$à€EØ€Dà€HØ€LØ�€JØ
€CØ
€Cà €IØ €IØ€FØ €IØ€DØ €IØ€GØ
€CØ
€CØ€FØ€FØ€HØ€FØ €IØ€EØ(€MØ&€LØ(€MØ.ÐØ&€LØ.ÐØ4ÐØ<ÐØ$€KØ2Ñð ˆ5r5   