Ë
    3^(h¬  ã                   ón   — 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y)
é   )ÚStandardBaseContexté    N)Úmath2)Úfunction_docs)Úmpf_bernoulliÚto_floatÚ	int_types)Úlibmpc                   óR  — 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j2                  ZdZed„ «       Zd„ Zej>                  Zej@                  Z ejB                  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jr                  «      Z: e8ejv                  «      Z; e8ejx                  «      Z< e8ejz                  «      xZ>Z= e8ej~                  «      Z? e8ej€                  «      Z@ e8ej‚                  «      ZA e8ej„                  «      ZB e8ej†                  «      ZC e8ejˆ                  «      ZD e8ejŠ                  «      ZE e8ejŒ                  «      ZF e8ejŽ                  «      ZG e8ej�                  «      ZH e8ej’                  «      ZI e8ej”                  «      ZJ e8ej–                  «      xZLZK e8ejš                  «      ZM e8ejœ                  «      ZN e8ejž                  «      ZO e8ej                   «      ZP e8ej¢                  «      ZQ e8ej¤                  «      ZS e8ej¨                  «      ZU e8ej¬                  «      ZW e8ej°                  «      xZYZZd„ Z[d„ Z\d „ Z]e^j¾                  Z_e^jÀ                  Z`d!„ Zad"„ Zbd#„ Zcd$„ Zdd%„ Zed&„ Zfd/d'„Zgd(„ Zhd)„ Zi e8ejÔ                  «      Zjd*„ ZkelZmd+„ Znd,„ Zo e8ejà                  «      Zq e8ejä                  «      Zsd0d-„Zty.)1Ú	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| _        | j                  «        y )NF)r   Ú__init__r   ÚloggammaÚ_bernoulli_cacheÚprettyÚ_init_aliases©Úctxs    úK/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/mpmath/ctx_fp.pyr   zFPContext.__init__   s8   € Ü×$Ñ$ SÔ)ô —~‘~ˆŒØ!ˆÔØˆŒ
à×ÑÕó    c                 ó*   — t        |d   «      |d   z  S ©Nr   r   )Úfloat)ÚclsÚxs     r   ú<lambda>zFPContext.<lambda>   s   € œ%  !¡›+ a¨¡dÑ*€ r   c                  ó   — y)Né5   © r   s    r   Ú	_get_preczFPContext._get_prec    s   € ˜rr   c                  ó   — y ©Nr   ©r   Úps     r   Ú	_set_preczFPContext._set_prec!   s   € ˜6r   c                  ó   — y)Né   r   r   s    r   Ú_get_dpszFPContext._get_dps"   s   € ˜br   c                  ó   — y r"   r   r#   s     r   Ú_set_dpszFPContext._set_dps#   s   € ˜&r   Tç        ç      ð?y              ð?c                 ó’   ‡— |rˆfd„}n‰}t         j                  j                  |‰j                  «      |_        t	        | ||«       y )Nc                 óh   •— | j                   }|D �cg c]
  } ||«      ‘Œ }} ‰| g|¢­i |¤ŽS c c}w r"   )Úconvert)r   ÚargsÚkwargsr/   ÚaÚfs        €r   Ú	f_wrappedz*FPContext._wrap_specfun.<locals>.f_wrapped6   s=   ø€ ØŸ+™+�Ø,0Ö1 q™ �
Ð1�Ð1Ù˜Ð.˜tÒ. vÑ.Ð.ùò 2s   ’/)r   Ú__dict__ÚgetÚ__doc__Úsetattr)r   Únamer3   Úwrapr4   s     `  r   Ú_wrap_specfunzFPContext._wrap_specfun3   s=   ø€ áõ/ð
 ˆIÜ)×2Ñ2×6Ñ6°t¸Q¿Y¹YÓGˆ	ÔÜ��T˜9Õ%r   c                 ól   — | j                   }||v r||   S t        t        |dd«      d¬«      ||<   ||   S )Nr   ÚnT)Ústrict)r   r   r   )r   r=   Úcaches      r   Ú	bernoullizFPContext.bernoulli?   s?   € Ø×$Ñ$ˆØ�‰:Ø˜‘8ˆOÜœM¨!¨R°Ó5¸dÔ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k7  S )Nr+   r   ©r   r   s     r   Ú
is_specialzFPContext.is_specialV   s   € Ø�1‰u˜‰|Ðr   c                 ó   — ||k7  S r"   r   rB   s     r   ÚisnanzFPContext.isnanY   s   € Ø�A‰vˆr   c                 ó:   — t        |«      t        j                  k(  S r"   )Úabsr   ÚINFrB   s     r   ÚisinfzFPContext.isinf\   s   € Ü�1‹vœŸ™Ñ"Ð"r   c                 ó   — |r||z
  dk(  S y)Nr+   Fr   rB   s     r   ÚisnormalzFPContext.isnormal_   s   € ÙØ�q‘5˜C‘<ÐØr   c                 ó€   — t        |«      t        u r|j                  ry|j                  }|dk  xr t	        |«      |k(  S )NFr+   )ÚtypeÚcomplexÚimagÚrealÚroundrB   s     r   ÚisnpintzFPContext.isnpintd   s8   € Ü�‹7”gÑØ�vŠvØØ—‘ˆAØ�C‰xÒ)œE !›H¨™MÐ)r   c                 ó>   — 	 t        |«      S #  t        |«      cY S xY wr"   )r   rN   rB   s     r   r/   zFPContext.convertn   s!   € ð	Ü˜“8ˆOøð	Ü˜1“:Òús   ‚
 �c                 ól   — t        |«      }t        j                  |j                  |j                  «      S r"   )rN   ÚmathÚatan2rO   rP   ©r   Úzs     r   ÚargzFPContext.arg�   s$   € Ü�A‹JˆÜ�z‰z˜!Ÿ&™& !§&¡&Ó)Ð)r   c                 ó>   — | j                  | j                  |z  «      S r"   )ÚexpÚjrB   s     r   ÚexpjzFPContext.expj”   s   € Ø�w‰w�s—u‘u˜Q‘wÓÐr   c                 óX   — | j                  | j                  | j                  z  |z  «      S r"   )r[   r\   ÚpirB   s     r   ÚexpjpizFPContext.expjpi—   s!   € Ø�w‰w�s—u‘u˜SŸV™V‘| A‘~Ó&Ð&r   c                 óX   — |r| j                  t        |«      «      d   S | j                  S )Nr   )ÚfrexprG   ÚninfrW   s     r   ÚmagzFPContext.mag�   s&   € ÙØ—9‘9œS ›VÓ$ QÑ'Ð'Ø�x‰xˆr   c                 óx   — t        |d«      r|j                  ry|j                  }	 |t        |«      k(  S #  Y yxY w)NrO   F)ÚhasattrrO   rP   ÚintrW   s     r   ÚisintzFPContext.isint¢   s<   € Ü�1�fÔØ�vŠvØØ—‘ˆAð	Øœ˜A›‘;Ðøð	Ùús   §5 µ9c                 óÀ   — t        |d«      rt        |j                  «      }nt        |«      }||k(  r|| j                  fS || j	                  t        ||z
  «      «      fS )NrO   )rf   rQ   rP   rc   rd   rG   )r   rX   r=   s      r   Únint_distancezFPContext.nint_distance¬   sS   € Ü�1�fÔÜ�a—f‘f“‰Aä�a“ˆAØ�Š6Ø�c—h‘h�;ÐØ�#—'‘'œ#˜a ™c›(Ó#Ð#Ð#r   c                 óÎ   — t        |«      t        u r|\  }}| j                  |«      |z  dfS t        |d«      rt	        |j
                  «      }nt	        |«      }||k(  r|dfS |dfS )NÚRrO   ÚZ)rM   ÚtupleÚmpfrf   rg   rP   )r   rX   r$   ÚqÚintzs        r   Ú_convert_paramzFPContext._convert_paramµ   sh   € Ü�‹7”eÑØ‰DˆAˆqØ—7‘7˜1“: ‘> 3Ð&Ð&Ü�1�fÔÜ�q—v‘v“;‰Dä�q“6ˆDØ�Š9Ø˜�9ÐØ�#ˆvˆr   c                 óF   — t        |t        «      xs t        |t        «      S r"   )Ú
isinstancer   r	   rW   s     r   Ú_is_real_typezFPContext._is_real_typeÁ   s   € Ü˜!œUÓ#Ò?¤z°!´YÓ'?Ð?r   c                 ó"   — t        |t        «      S r"   )rt   rN   rW   s     r   Ú_is_complex_typezFPContext._is_complex_typeÄ   s   € Ü˜!œWÓ%Ð%r   c                 ó&  — t        |«      }t        |«      }t        |||z   «      }	| j                  }
dx}}d}	 |D ]  }|||   |z   z  }Œ |	D ]  }|||   |z   z  }Œ |dz  }||z  }||z  }||z  }t        |«      |
k  r|S ||kD  r| j                  ‚ŒZ)Nr,   r   r   )ÚlistÚrangeÚepsrG   ÚNoConvergence)r   r$   rp   ÚtypesÚcoeffsrX   Úmaxtermsr1   ÚnumÚdenÚtolÚsÚtÚkÚis                  r   ÚhypsumzFPContext.hypsumÇ   s¾   € Ü�f“ˆÜ�A‹hˆÜ�A�a˜‘c‹lˆØ�g‰gˆØˆˆˆAØˆØØÒ,�˜!  q¡	¨!¡Ñ,™!Ð,ØÒ,�˜!  q¡	¨!¡Ñ,™!Ð,Ø�‰FˆA�A˜‘F�A˜A ™F˜A A¨¡F AÜ�1‹v˜Š|Ø�Ø�8Š|Ø×'Ñ'Ð'ð r   c                 ó.   — t        j                  ||«      S r"   )rU   rV   )r   r   Úys      r   rV   zFPContext.atan2×   s   € Ü�z‰z˜!˜QÓÐr   c                 ó¤   — t        |«      }|dk(  r| j                  |«      S d|dz   z  | j                  |«      z  | j                  |dz   |«      z  S )Nr   éÿÿÿÿr   )rg   ÚdigammaÚfacÚzeta)r   ÚmrX   s      r   ÚpsizFPContext.psiÚ   sO   € Ü�‹FˆØ�Š6Ø—;‘;˜q“>Ð!Ø�a˜‘c‰{˜SŸW™W Q›ZÑ'¨#¯(©(°1°Q±3¸Ó*:Ñ:Ð:r   c                 ó~   — | j                  |«      }|dk(  s|dk(  r|S | j                  |dz   «      | j                  z   S r   )r/   rŒ   ÚeulerrB   s     r   ÚharmoniczFPContext.harmonicâ   s=   € Ø�K‰K˜‹NˆØ�Š6�Q˜!’VØˆHØ�{‰{˜1˜Q™3Ó #§)¡)Ñ+Ð+r   c                 ó@   — t        t        j                  ||«      «      S r"   )rg   rU   Úldexp)r   r   Úprecs      r   Úto_fixedzFPContext.to_fixedê   s   € Ü”4—:‘:˜a Ó&Ó'Ð'r   c                 ó*   — dd l }|j                  «       S )Nr   )Úrandom)r   r™   s     r   ÚrandzFPContext.randí   s   € ÛØ�}‰}‹Ðr   c                 ó–   — | j                   }d} |«       D ]0  }||z  }||z  s|rt        |«      dt        |«      z  k  r |S |dz  }Œ2 |S )Nr   g¬CÒÑ]r2<r   )ÚzerorG   )r   ÚtermsÚ
check_steprƒ   r…   Úterms         r   Úsum_accuratelyzFPContext.sum_accuratelyô   sa   € Ø�H‰HˆØˆÙ“Gò 	ˆDØ�‰IˆAØ˜
’N©Ü�t“9 ¤c¨!£f¡Ò,Øàˆð �‰F‰Að	ð ˆr   N)ip  )r   )uÚ__name__Ú
__module__Ú__qualname__r7   r   Ú_mpqr
   r|   r    r%   r(   r*   Ú_fixed_precisionÚpropertyr–   Údpsrœ   Úoner   ÚEPSr{   rH   ÚinfÚNINFrc   ÚNANÚnanr\   Úclassmethodr;   r@   r_   Úer’   Úsqrt2Úsqrt5ÚphiÚln2Úln10ÚcatalanÚkhinchinÚaperyÚglaisherrG   ÚabsminÚabsmaxrC   rE   rI   rK   rR   r   ro   rN   Úmpcr/   Ú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_intrY   r]   r`   rU   r•   rb   rd   rh   rj   rr   ru   rw   r‡   rV   r�   rŒ   r“   ÚstrÚnstrr—   rš   ÚerfÚ_erfÚerfcÚ_erfcr    r   r   r   r   r      s.  „ ñò
ñ +€Dà×'Ñ'€Mâ!Ú!Ú Ú àÐá�I˜yÓ)€DÙ
�8˜XÓ
&€Cà€DØ
€CØ
�)‰)€CØ
�)‰)€CØ�:‰:€DØ
�)‰)€CØ
€Að ñ	&ó ð	&òð 
�‰€BØ�‰€AØ�K‰K€EØ!€EØ!€EØ
€CØ
 €CØ€DØ"€EØ$€GØ$€HØ!€EØ$€HàÐ€FˆVòòò#òò
*ð €CØ
€Còñ ˜Ÿ™Ó#€EÙ˜Ÿ
™
Ó#€DÙ
�u—y‘yÓ
!€CÙ˜EŸI™IÓ&Ð&€BˆÙ
�u—y‘yÓ
!€CÙ
�u—y‘yÓ
!€CÙ
�u—y‘yÓ
!€CÙ˜5Ÿ=™=Ó)€GÙ˜Ÿ
™
Ó#€DÙ˜Ÿ
™
Ó#€DÙ˜Ÿ
™
Ó#€DÙ˜Ÿ
™
Ó#€DÙ˜Ÿ
™
Ó#€DÙ˜Ÿ
™
Ó#€DÙ˜Ÿ™Ó%€EÙ˜%Ÿ,™,Ó'€FÙ" 5§?¡?Ó3Ð3€Cˆ)Ù˜Ÿ™Ó%€EÙ˜Ÿ
™
Ó#€DÙ˜Ÿ™Ó%€EÙ˜Ÿ™Ó%€EÙ˜Ÿ
™
Ó#€DÙ˜EŸM™MÓ*€HÙ
�u—x‘xÓ
 €CÙ
�u—x‘xÓ
 €CÙ$ U§Z¡ZÓ0Ð0€EˆIò*ò ò'ð �J‰J€EØ�J‰J€Eòò
ò$ò
ò@ò&ó(ò  ò;ñ ˜5Ÿ=™=Ó)€Gò,ð €Dò(òñ ˜Ÿ	™	Ó"€DÙ˜Ÿ™Ó$€Eô	r   r   )Úctx_baser   rU   ÚcmathÚ r   r   r
   r   r   r	   r   r   r   r   ú<module>rå      s,   ðÝ )ã Û Ý å ç 5Ñ 5Ý ôqÐ#õ qr   