§
    OŠtj²  ã                   ó  — d 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 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 e G d„ de	e¦  «        ¦   «         Ze G d	„ d
e
e¦  «        ¦   «         Zej        Ze G d„ de¦  «        ¦   «         Z dS )zReal and complex elements. é    )ÚMPQ)ÚDomainElement)Úpublic)ÚPythonMPContextÚ_mpfÚ_mpcÚ	_constant)ÚMPZ_ONEÚfzeroÚfoneÚfinfÚfninfÚfnanÚround_nearestÚmpf_mulÚrepr_dpsÚ	int_typesÚfrom_intÚ
from_floatÚfrom_strÚto_rationalc                   ó<   — e Zd ZdZdZd„ Z ed„ e¦  «        Zd„ ZdS )ÚRealElementzAn element of a real domain. ©Ú__mpf__c                 ó   — || _         d S ©Nr   ©ÚselfÚvals     ú\/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/polys/domains/mpelements.pyÚ_set_mpfzRealElement._set_mpf   ó   € ØˆŒˆˆó    c                 ó   — | j         S r   r   ©r   s    r!   ú<lambda>zRealElement.<lambda>   ó   €  $¤,€ r$   c                 ó   — | j         j        S r   ©ÚcontextÚ_parentr&   s    r!   ÚparentzRealElement.parent   ó   € ØŒ|Ô#Ð#r$   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r"   ÚpropertyÚ_mpf_r-   © r$   r!   r   r      sT   € € € € € à'Ð'à€Iðð ð ð ˆHÐ.Ð.°Ñ9Ô9€Eð$ð $ð $ð $ð $r$   r   c                   ó<   — e Zd ZdZdZd„ Z ed„ e¦  «        Zd„ ZdS )ÚComplexElementz An element of a complex domain. ©Ú__mpc__c                 ó   — || _         d S r   r9   r   s     r!   Ú_set_mpczComplexElement._set_mpc&   r#   r$   c                 ó   — | j         S r   r9   r&   s    r!   r'   zComplexElement.<lambda>)   r(   r$   c                 ó   — | j         j        S r   r*   r&   s    r!   r-   zComplexElement.parent+   r.   r$   N)	r/   r0   r1   r2   r3   r<   r4   Ú_mpc_r-   r6   r$   r!   r8   r8       sT   € € € € € à*Ð*à€Iðð ð ð ˆHÐ.Ð.°Ñ9Ô9€Eð$ð $ð $ð $ð $r$   r8   c                   ój   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zed	„ ¦   «         Z	ed
„ ¦   «         Z
dd„Zdd„ZdS )Ú	MPContexté5   NFc                 ó¸  — |t           g| _        |€|                      |¦  «         n|                      |¦  «         t          | _        t          | _        | j        t          | j        g| j        _	        | j        t          | j        g| j        _	        |r| | j        _
        n| | j        _
        t          | _        | j        t          | j        g| j        _	        | | j        _
        | j        | j        | j        g| _        d| _        d| _        |€|                      ¦   «         | _        n+|du rt$          | _        n|                      |¦  «        | _        |                      | j        ¦  «        | _        | j        sd| _        nt/          d| j        z  ¦  «        | _        |                      t$          ¦  «        | _        |                      t2          ¦  «        | _        |                      t$          t2          f¦  «        | _        |                      t:          ¦  «        | _        |                      t>          ¦  «        | _         |                      tB          ¦  «        | _"        d S )NTFi@B é   )#r   Ú_prec_roundingÚ	_set_precÚ_set_dpsr   Úmpfr8   ÚmpcÚnewÚ_ctxdatar+   r	   ÚconstantÚtypesÚtrap_complexÚprettyÚ	_make_tolÚtolr   Ú_convert_tolÚmake_mpfÚ	toleranceÚ	max_denomÚintÚzeror   ÚoneÚmake_mpcÚjr   Úinfr   Úninfr   Únan)ÚctxÚprecÚdpsrQ   Úreals        r!   Ú__init__zMPContext.__init__3   sÏ  € Ø"¥MÐ2ˆÔàˆ;Ø�MŠM˜$ÑÔÐÐà�LŠL˜ÑÔÐåˆŒÝ ˆŒØœG¥S¨#Ô*<Ð=ˆŒÔØœG¥S¨#Ô*<Ð=ˆŒÔàð 	"Ø!ˆCŒGŒOˆOà!ˆCŒGŒOå ˆŒØ!$¤­#¨sÔ/AÐ BˆŒÔØ"ˆŒÔà”W˜cœg s¤|Ð4ˆŒ	ØˆÔØˆŒ
àˆ;Ø—m’m‘o”oˆCŒGˆGØ�Eˆ\ˆ\ÝˆCŒGˆGà×&Ò& sÑ+Ô+ˆCŒGàŸš S¤WÑ-Ô-ˆŒàŒ}ð 	1Ø#ˆCŒMˆMå  #¤-¡Ñ0Ô0ˆCŒMà—<’<¥Ñ&Ô&ˆŒØ—,’,�tÑ$Ô$ˆŒØ—’�e¥T˜]Ñ+Ô+ˆŒØ—,’,�tÑ$Ô$ˆŒØ—<’<¥Ñ&Ô&ˆŒØ—,’,�tÑ$Ô$ˆŒˆˆr$   c                 óL   — d}dt           d| j        z
  df}t          ||¦  «        S )N)r   é   é   é   r   rD   )r
   r_   r   )r^   ÚhundredÚepss      r!   rP   zMPContext._make_tolb   s+   € ØˆØ•'˜1˜SœX™: qÐ)ˆÝ�w Ñ$Ô$Ð$r$   c                 óP   — |                       |                      ¦   «         ¦  «        S r   )rS   rP   ©r^   s    r!   Úmake_tolzMPContext.make_tolg   s   € Ø�|Š|˜CŸMšM™OœOÑ,Ô,Ð,r$   c                 óD  — t          |t          ¦  «        rt          |¦  «        S t          |t          ¦  «        rt	          |¦  «        S t          |d¦  «        r|j        S | j        \  }}t          |t          ¦  «        rt          |||¦  «        S t          d|z  ¦  «        ‚)Nr5   zexpected a real number, got %s)Ú
isinstancer   r   Úfloatr   Úhasattrr5   rE   Ústrr   Ú
ValueError)r^   rQ   r_   Úroundings       r!   rR   zMPContext._convert_tolj   sœ   € Ý�c�9Ñ%Ô%ð 	!Ý˜C‘=”=Ð Ý�c�5Ñ!Ô!ð 	#Ý˜c‘?”?Ð"Ý�3˜Ñ Ô ð 	Ø”9ÐØÔ+‰ˆˆhÝ�c�3ÑÔð 	1Ý˜C  xÑ0Ô0Ð0ÝÐ9¸CÑ?Ñ@Ô@Ð@r$   c                 ó@   — t          dt          |¦  «        z   ¦  «        ‚)Nzcannot create mpf from )Ú	TypeErrorÚrepr)r^   ÚxÚstringss      r!   Ú_convert_fallbackzMPContext._convert_fallbackv   s   € ÝÐ1µD¸±G´GÑ;Ñ<Ô<Ð<r$   c                 ó*   — t          | j        ¦  «        S r   )r   Ú_precrj   s    r!   Ú_repr_digitszMPContext._repr_digitsy   s   € å˜œ	Ñ"Ô"Ð"r$   c                 ó   — | j         S r   )Ú_dpsrj   s    r!   Ú_str_digitszMPContext._str_digits}   s	   € àŒxˆr$   Tc                 ó  — t          |j        ¦  «        \  }}t          |¦  «        }|r|| j        k    r||fS d\  }}}}||}
}		 |	|
z  }|||z  z   }|| j        k    rn|||||z  z   |f\  }}}}|
|	||
z  z
  }
}	Œ5| j        |z
  |z  }t	          ||¦  «        }t	          |||z  z   |||z  z   ¦  «        }t	          ||¦  «        }|r|s||fS t          ||z
  ¦  «        t          ||z
  ¦  «        k    r|j        |j        fS |j        |j        fS )N)r   rD   rD   r   )r   r5   rV   rU   r   ÚabsÚ	numeratorÚdenominator)r^   ÚsÚlimitÚpÚqÚp0Úq0Úp1Úq1ÚnÚdÚaÚq2ÚkÚnumberÚbound1Úbound2s                    r!   r   zMPContext.to_rational�   s]  € Ý˜1œ7Ñ#Ô#‰ˆˆ1õ
 �‰FŒFˆàð 	˜˜Sœ]Ò*Ð*Ø�a�4ˆKà#‰ˆˆB��BØ�!ˆ1ˆð	Ø�1‘ˆAØ�a˜‘d‘ˆBØ�C”MÒ!Ð!ØØ  R¨!¨B©$¡Y°Ð2‰NˆB��B˜Ø�a˜!˜A™#‘gˆqˆAð	ð Œ]˜RÑ "Ñ$ˆå�Q˜‘”ˆÝ�R˜!˜B™$‘Y  Q r¡T¡	Ñ*Ô*ˆÝ�R˜‘”ˆàð 	8˜Vð 	8Ø�a�4ˆKÝ�˜&‘Ñ!Ô!¥S¨°&©Ñ%9Ô%9Ò9Ð9ØÔ# VÔ%7Ð7Ð7àÔ# VÔ%7Ð7Ð7r$   c                 ój  — |                       |¦  «        }|€|€| j        p|                      ¦   «         x}}|€|                       |¦  «        }n|€|                       |¦  «        }t          ||z
  ¦  «        }||k    rdS t          |¦  «        }t          |¦  «        }||k     r||z  }n||z  }||k    S )NT)ÚconvertrT   rk   r€   )	r^   rƒ   ÚtÚrel_epsÚabs_epsÚdiffÚabssÚabstÚerrs	            r!   ÚalmosteqzMPContext.almosteq¤   s»   € Ø�KŠK˜‰NŒNˆØˆ?˜w˜Ø #¤Ð ?°·²±´Ð?ˆG�gØˆ?Ø—k’k 'Ñ*Ô*ˆGˆGØˆ_Ø—k’k 'Ñ*Ô*ˆGÝ�1�Q‘3‰xŒxˆØ�7Š?ˆ?Ø�4Ý�1‰vŒvˆÝ�1‰vŒvˆØ�$Š;ˆ;Ø�t‘)ˆCˆCà�t‘)ˆCØ�gŠ~Ðr$   )rB   NNF)T)NN)r/   r0   r1   rb   rP   rk   rR   rx   r4   r{   r~   r   rœ   r6   r$   r!   rA   rA   0   sÇ   € € € € € ð-%ð -%ð -%ð -%ð^%ð %ð %ð
-ð -ð -ð
Að 
Að 
Að=ð =ð =ð ð#ð #ñ „Xð#ð ðð ñ „Xðð!8ð !8ð !8ð !8ðFð ð ð ð ð r$   rA   N)!r2   Úsympy.external.gmpyr   Ú!sympy.polys.domains.domainelementr   Úsympy.utilitiesr   Úmpmath.ctx_mp_pythonr   r   r   r	   Úmpmath.libmpr
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   ÚobjectÚ__new__rJ   rA   r6   r$   r!   ú<module>r¤      sÊ  ðð
 "Ð !ð $Ð #Ð #Ð #Ð #Ð #Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø "Ð "Ð "Ð "Ð "Ð "à GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gð1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð
 ð$ð $ð $ð $ð $�$˜ñ $ô $ñ „ð$ð ð$ð $ð $ð $ð $�T˜=ñ $ô $ñ „ð$ð „n€àðDð Dð Dð Dð D�ñ Dô Dñ „ðDð Dð Dr$   