§
    JŠtj¬  ã                   óv   — d dl mZ ddlZddlZd dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZ  G d„ d	e¦  «        ZdS )
é   )ÚStandardBaseContexté    N)Úmath2)Úfunction_docs)Úmpf_bernoulliÚto_floatÚ	int_types)Úlibmpc                   óŽ  — e Zd ZdZd„ Zd„ Zej        Zd„ Zd„ Z	d„ Z
d„ ZdZ eee	¦  «        Z ee
e¦  «        Zd	Zd
Zej        Zej        Zej        Zej        ZdZed„ ¦   «         Zd„ Zej        Zej         Z ej!        Z!dZ"dZ#dZ$dZ%dZ&dZ!dZ'dZ(dZ)dZ*e+xZ,Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2e3Z4e5Z6d„ Z7 e8ej9        ¦  «        Z: e8ej;        ¦  «        Z; e8ej<        ¦  «        Z< e8ej=        ¦  «        xZ>Z= e8ej?        ¦  «        Z? e8ej@        ¦  «        Z@ e8ejA        ¦  «        ZA e8ejB        ¦  «        ZB e8ejC        ¦  «        ZC e8ejD        ¦  «        ZD e8ejE        ¦  «        ZE e8ejF        ¦  «        ZF e8ejG        ¦  «        ZG e8ejH        ¦  «        ZH e8ejI        ¦  «        ZI e8ejJ        ¦  «        ZJ e8ejK        ¦  «        xZLZK e8ejM        ¦  «        ZM e8ejN        ¦  «        ZN e8ejO        ¦  «        ZO e8ejP        ¦  «        ZP e8ejQ        ¦  «        ZQ e8ejR        ¦  «        ZS e8ejT        ¦  «        ZU e8ejV        ¦  «        ZW e8ejX        ¦  «        xZYZZd„ Z[d„ Z\d „ Z]e^j_        Z_e^j`        Z`d!„ Zad"„ Zbd#„ Zcd$„ Zdd%„ Zed&„ Zfd1d(„Zgd)„ Zhd*„ Zi e8ejj        ¦  «        Zjd+„ ZkelZmd,„ Znd-„ Zo e8ejp        ¦  «        Zq e8ejr        ¦  «        Zsd2d/„Ztd0S )3Ú	FPContextz�
    Context for fast low-precision arithmetic (53-bit precision, giving at most
    about 15-digit accuracy), using Python's builtin float and complex.
    c                 ó”   — t          j        | ¦  «         t          j        | _        i | _        d| _        |                      ¦   «          d S )NF)r   Ú__init__r   ÚloggammaÚ_bernoulli_cacheÚprettyÚ_init_aliases©Úctxs    úK/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/mpmath/ctx_fp.pyr   zFPContext.__init__   sE   € ÝÔ$ SÑ)Ô)Ð)õ ”~ˆŒØ!ˆÔØˆŒ
à×ÒÑÔÐÐÐó    c                 ó>   — t          |d         ¦  «        |d         z  S ©Nr   r   )Úfloat)ÚclsÚxs     r   ú<lambda>zFPContext.<lambda>   s   € �%  !¤™+œ+ a¨¤dÑ*€ r   c                 ó   — dS )Né5   © r   s    r   Ú	_get_preczFPContext._get_prec    s   € ˜r˜rr   c                 ó   — d S ©Nr   ©r   Úps     r   Ú	_set_preczFPContext._set_prec!   s   € ˜6˜6r   c                 ó   — dS )Né   r   r   s    r   Ú_get_dpszFPContext._get_dps"   s   € ˜b˜br   c                 ó   — d S r"   r   r#   s     r   Ú_set_dpszFPContext._set_dps#   s   € ˜&˜&r   Tç        ç      ð?y              ð?c                 ó’   ‡— |rˆfd„}n‰}t           j                             |‰j        ¦  «        |_        t	          | ||¦  «         d S )Nc                 óH   •‡— | j         Šˆfd„|D ¦   «         } ‰| g|¢R i |¤ŽS )Nc                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   )Ú.0ÚaÚconverts     €r   ú
<listcomp>z>FPContext._wrap_specfun.<locals>.f_wrapped.<locals>.<listcomp>8   s!   ø€ Ð1Ð1Ð1 q˜˜ ™
œ
Ð1Ð1Ð1r   )r2   )r   ÚargsÚkwargsr2   Úfs      @€r   Ú	f_wrappedz*FPContext._wrap_specfun.<locals>.f_wrapped6   sD   øø€ Øœ+�Ø1Ð1Ð1Ð1¨DÐ1Ñ1Ô1�Ø�q˜Ð.˜tÐ.Ð.Ð. vÐ.Ð.Ð.r   )r   Ú__dict__ÚgetÚ__doc__Úsetattr)r   Únamer6   Úwrapr7   s     `  r   Ú_wrap_specfunzFPContext._wrap_specfun3   se   ø€ àð 	ð/ð /ð /ð /ð /ð /ð
 ˆIÝ)Ô2×6Ò6°t¸Q¼YÑGÔGˆ	ÔÝ��T˜9Ñ%Ô%Ð%Ð%Ð%r   c                 ó~   — | j         }||v r||         S t          t          |dd¦  «        d¬¦  «        ||<   ||         S )Nr   ÚnT)Ústrict)r   r   r   )r   r@   Úcaches      r   Ú	bernoullizFPContext.bernoulli?   sG   € ØÔ$ˆØ�ˆ:ˆ:Ø˜”8ˆOÝ�M¨!¨R°Ñ5Ô5¸dÐCÑCÔCˆˆa‰Ø�QŒxˆr   gÍ;fž ö?g¨ô—›wã@g¨ô—›wãù?gï9úþB.æ?gUµ»±k@g¶oüŒxâ?g]è—Oí?gm<BÎ{@g!ð ;ó?gsØ/OÒ„ô?c                 ó   — ||z
  dk    S )Nr+   r   ©r   r   s     r   Ú
is_specialzFPContext.is_specialV   s   € Ø�1‰u˜Š|Ðr   c                 ó   — ||k    S r"   r   rE   s     r   ÚisnanzFPContext.isnanY   s   € Ø�AŠvˆr   c                 ó<   — t          |¦  «        t          j        k    S r"   )Úabsr   ÚINFrE   s     r   ÚisinfzFPContext.isinf\   s   € Ý�1‰vŒv�œÒ"Ð"r   c                 ó   — |r	||z
  dk    S dS )Nr+   Fr   rE   s     r   ÚisnormalzFPContext.isnormal_   s   € Øð 	 Ø�q‘5˜C’<ÐØˆur   c                 ó€   — t          |¦  «        t          u r|j        rdS |j        }|dk    ot	          |¦  «        |k    S )NFr+   )ÚtypeÚcomplexÚimagÚrealÚroundrE   s     r   ÚisnpintzFPContext.isnpintd   sB   € Ý�‰7Œ7•gÐÐØŒvð Ø�uØ”ˆAØ�CŠxÐ)�E !™HœH¨šMÐ)r   c                 óN   — 	 t          |¦  «        S #  t          |¦  «        cY S xY wr"   )r   rQ   rE   s     r   r2   zFPContext.convertn   s-   € ð	Ý˜‘8”8ˆOøð	Ý˜1‘:”:ÐÐÐøøøs   ‚ ‘$c                 ó^   — t          |¦  «        }t          j        |j        |j        ¦  «        S r"   )rQ   ÚmathÚatan2rR   rS   ©r   Úzs     r   ÚargzFPContext.arg�   s#   € Ý�A‰JŒJˆÝŒz˜!œ& !¤&Ñ)Ô)Ð)r   c                 ó<   — |                       | j        |z  ¦  «        S r"   )ÚexpÚjrE   s     r   ÚexpjzFPContext.expj”   s   € Ø�wŠw�s”u˜Q‘wÑÔÐr   c                 óL   — |                       | j        | j        z  |z  ¦  «        S r"   )r^   r_   ÚpirE   s     r   ÚexpjpizFPContext.expjpi—   s    € Ø�wŠw�s”u˜SœV‘| A‘~Ñ&Ô&Ð&r   c                 ód   — |r(|                       t          |¦  «        ¦  «        d         S | j        S )Nr   )ÚfrexprJ   ÚninfrZ   s     r   ÚmagzFPContext.mag�   s.   € Øð 	(Ø—9’9�S ™VœVÑ$Ô$ QÔ'Ð'ØŒxˆr   c                 óz   — t          |d¦  «        r|j        rdS |j        }	 |t          |¦  «        k    S #  Y dS xY w)NrR   F)ÚhasattrrR   rS   ÚintrZ   s     r   ÚisintzFPContext.isint¢   sO   € Ý�1�fÑÔð 	ØŒvð Ø�uØ”ˆAð	Ø�˜A™œ’;Ðøð	Ø�5�5øøøs   ¢5 µ:c                 óÖ   — t          |d¦  «        rt          |j        ¦  «        }nt          |¦  «        }||k    r	|| j        fS ||                      t          ||z
  ¦  «        ¦  «        fS )NrR   )ri   rT   rS   rf   rg   rJ   )r   r[   r@   s      r   Únint_distancezFPContext.nint_distance¬   sd   € Ý�1�fÑÔð 	Ý�a”f‘”ˆAˆAå�a‘”ˆAØ�Š6ˆ6Ø�c”h�;ÐØ�#—'’'�#˜a ™c™(œ(Ñ#Ô#Ð#Ð#r   c                 óð   — t          |¦  «        t          u r|\  }}|                      |¦  «        |z  dfS t          |d¦  «        rt	          |j        ¦  «        }nt	          |¦  «        }||k    r|dfS |dfS )NÚRrR   ÚZ)rP   ÚtupleÚmpfri   rj   rS   )r   r[   r$   ÚqÚintzs        r   Ú_convert_paramzFPContext._convert_paramµ   s}   € Ý�‰7Œ7•eÐÐØ‰DˆAˆqØ—7’7˜1‘:”: ‘> 3Ð&Ð&Ý�1�fÑÔð 	Ý�q”v‘;”;ˆDˆDå�q‘6”6ˆDØ�Š9ˆ9Ø˜�9ÐØ�#ˆvˆr   c                 óV   — t          |t          ¦  «        pt          |t          ¦  «        S r"   )Ú
isinstancer   r	   rZ   s     r   Ú_is_real_typezFPContext._is_real_typeÁ   s!   € Ý˜!�UÑ#Ô#Ð?¥z°!µYÑ'?Ô'?Ð?r   c                 ó,   — t          |t          ¦  «        S r"   )rw   rQ   rZ   s     r   Ú_is_complex_typezFPContext._is_complex_typeÄ   s   € Ý˜!�WÑ%Ô%Ð%r   ép  c                 ó:  — t          |¦  «        }t          |¦  «        }t          |||z   ¦  «        }	| j        }
dx}}d}	 |D ]}|||         |z   z  }Œ|	D ]}|||         |z   z  }Œ|dz  }||z  }||z  }||z  }t          |¦  «        |
k     r|S ||k    r| j        ‚Œ])Nr,   r   r   )ÚlistÚrangeÚepsrJ   ÚNoConvergence)r   r$   rs   ÚtypesÚcoeffsr[   Úmaxtermsr5   ÚnumÚdenÚtolÚsÚtÚkÚis                  r   ÚhypsumzFPContext.hypsumÇ   sË   € Ý�f‘”ˆÝ�A‰hŒhˆÝ�A�a˜‘c‰lŒlˆØŒgˆØˆˆˆAØˆð	(ØÐ,Ð,�˜!  q¤	¨!¡Ñ,˜!˜!ØÐ,Ð,�˜!  q¤	¨!¡Ñ,˜!˜!Ø�‰FˆA�A˜‘F�A˜A ™F˜A A¨¡F AÝ�1‰vŒv˜Š|ˆ|Ø�Ø�8Š|ˆ|ØÔ'Ð'ð	(r   c                 ó,   — t          j        ||¦  «        S r"   )rX   rY   )r   r   Úys      r   rY   zFPContext.atan2×   s   € ÝŒz˜!˜QÑÔÐr   c                 óÆ   — t          |¦  «        }|dk    r|                      |¦  «        S d|dz   z  |                      |¦  «        z  |                      |dz   |¦  «        z  S )Nr   éÿÿÿÿr   )rj   ÚdigammaÚfacÚzeta)r   Úmr[   s      r   ÚpsizFPContext.psiÚ   sZ   € Ý�‰FŒFˆØ�Š6ˆ6Ø—;’;˜q‘>”>Ð!Ø�a˜‘c‰{˜SŸWšW Q™ZœZÑ'¨#¯(ª(°1°Q±3¸Ñ*:Ô*:Ñ:Ð:r   c                 óˆ   — |                       |¦  «        }|dk    s|dk    r|S |                      |dz   ¦  «        | j        z   S r   )r2   r�   ÚeulerrE   s     r   ÚharmoniczFPContext.harmonicâ   sD   € Ø�KŠK˜‰NŒNˆØ�Š6ˆ6�Q˜!’V�VØˆHØ�{Š{˜1˜Q™3ÑÔ #¤)Ñ+Ð+r   c                 óF   — t          t          j        ||¦  «        ¦  «        S r"   )rj   rX   Úldexp)r   r   Úprecs      r   Úto_fixedzFPContext.to_fixedê   s   € Ý•4”:˜a Ñ&Ô&Ñ'Ô'Ð'r   c                 ó2   — dd l }|                      ¦   «         S )Nr   )Úrandom)r   r�   s     r   ÚrandzFPContext.randí   s   € ØˆˆˆØ�}Š}‰ŒÐr   r   c                 óž   — | j         }d} |¦   «         D ]8}||z  }||z  s'|r%t          |¦  «        dt          |¦  «        z  k    r n|dz  }Œ9|S )Nr   g¬CÒÑ]r2<r   )ÚzerorJ   )r   ÚtermsÚ
check_stepr‡   r‰   Úterms         r   Úsum_accuratelyzFPContext.sum_accuratelyô   so   € ØŒHˆØˆØ�E‘G”Gð 	ð 	ˆDØ�‰IˆAØ˜
‘Nð ¨ð Ý�t‘9”9 ¥c¨!¡f¤f¡Ò,Ð,Ø�EØ�‰FˆAˆAØˆr   N)r{   )r   )uÚ__name__Ú
__module__Ú__qualname__r:   r   Ú_mpqr
   r€   r    r%   r(   r*   Ú_fixed_precisionÚpropertyrš   Údpsr    Úoner   ÚEPSr   rK   ÚinfÚNINFrf   ÚNANÚnanr_   Úclassmethodr>   rC   rb   Úer–   Úsqrt2Úsqrt5ÚphiÚln2Úln10ÚcatalanÚkhinchinÚaperyÚglaisherrJ   ÚabsminÚabsmaxrF   rH   rL   rN   rU   r   rr   rQ   Úmpcr2   ÚstaticmethodÚpowÚpowerÚsqrtr^   ÚlogÚlnÚcosÚsinÚtanÚcos_sinÚacosÚasinÚatanÚcoshÚsinhÚtanhÚgammaÚrgammaÚ	factorialr‘   ÚfloorÚceilÚcospiÚsinpiÚcbrtÚnthrootÚ_nthrootÚeiÚ_eiÚe1Ú_e1r’   Ú_zetaÚ	_zeta_intr\   r`   rc   rX   r™   re   rg   rk   rm   ru   rx   rz   r‹   rY   r”   r�   r—   ÚstrÚnstrr›   rž   ÚerfÚ_erfÚerfcÚ_erfcr¤   r   r   r   r   r      s¯  € € € € € ðð ð
ð ð ð +Ð*€DàÔ'€Mà!Ð!Ð!Ø!Ð!Ð!Ø Ð Ð Ø Ð Ð àÐàˆ8�I˜yÑ)Ô)€DØ
ˆ(�8˜XÑ
&Ô
&€Cà€DØ
€CØ
Œ)€CØ
Œ)€CØŒ:€DØ
Œ)€CØ
€Að ð	&ð 	&ñ „[ð	&ðð ð ð 
Œ€BØŒ€AØŒK€EØ!€EØ!€EØ
€CØ
 €CØ€DØ"€EØ$€GØ$€HØ!€EØ$€HàÐ€FˆVðð ð ðð ð ð#ð #ð #ðð ð ð
*ð *ð *ð €CØ
€Cðð ð ð ˆL˜œÑ#Ô#€EØˆ<˜œ
Ñ#Ô#€DØ
ˆ,�u”yÑ
!Ô
!€CØˆ|˜EœIÑ&Ô&Ð&€BˆØ
ˆ,�u”yÑ
!Ô
!€CØ
ˆ,�u”yÑ
!Ô
!€CØ
ˆ,�u”yÑ
!Ô
!€CØˆl˜5œ=Ñ)Ô)€GØˆ<˜œ
Ñ#Ô#€DØˆ<˜œ
Ñ#Ô#€DØˆ<˜œ
Ñ#Ô#€DØˆ<˜œ
Ñ#Ô#€DØˆ<˜œ
Ñ#Ô#€DØˆ<˜œ
Ñ#Ô#€DØˆL˜œÑ%Ô%€EØˆ\˜%œ,Ñ'Ô'€FØ"�l 5¤?Ñ3Ô3Ð3€Cˆ)ØˆL˜œÑ%Ô%€EØˆ<˜œ
Ñ#Ô#€DØˆL˜œÑ%Ô%€EØˆL˜œÑ%Ô%€EØˆ<˜œ
Ñ#Ô#€DØˆ|˜EœMÑ*Ô*€HØ
ˆ,�u”xÑ
 Ô
 €CØ
ˆ,�u”xÑ
 Ô
 €CØ$˜ U¤ZÑ0Ô0Ð0€EˆIð*ð *ð *ð ð  ð  ð'ð 'ð 'ð ŒJ€EØŒJ€Eðð ð ð
ð ð ð$ð $ð $ð
ð 
ð 
ð@ð @ð @ð&ð &ð &ð(ð (ð (ð (ð  ð  ð  ð;ð ;ð ;ð ˆl˜5œ=Ñ)Ô)€Gð,ð ,ð ,ð €Dð(ð (ð (ðð ð ð ˆ<˜œ	Ñ"Ô"€DØˆL˜œÑ$Ô$€Eð	ð 	ð 	ð 	ð 	ð 	r   r   )Úctx_baser   rX   ÚcmathÚ r   r   r
   r   r   r	   r   r   r   r   ú<module>ré      s¼   ðØ )Ð )Ð )Ð )Ð )Ð )à €€€Ø €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð ðqð qð qð qð qÐ#ñ qô qð qð qð qr   