ó
    pñ:ii8  ã                   ó†  • S SK r S SKrS SKrS SKJr  S SKrS SKJr  S SK	r	S SK
Jr   S SKr " S S5      r " S S5      r " S	 S
5      r " S S5      rS r " S S5      rS rS rS rS rS r S SKrS\" \5      ;   r " S S\5      rS\R<                  S4S jrS r S r!SS jr"g! \ a     N…f = f! \ a    Sr N?f = f) é    N)Úzip_longest)Úassert_)Úassert_func_equalc                   ó`   • \ rS rSrSr\R                  * \R                  SS4S jrS rS r	Sr
g)	ÚArgé   zzGenerate a set of numbers on the real axis, concentrating on
'interesting' regions and covering all orders of magnitude.

Tc                 óJ  • X:”  a  [        S5      eU[        R                  * :X  a'  S[        R                  " [        5      R
                  -  nU[        R                  :X  a'  S[        R                  " [        5      R
                  -  nXsU l        U l        X4sU l        U l	        g )Nz#a should be less than or equal to bg      à¿ç      à?)
Ú
ValueErrorÚnpÚinfÚfinfoÚfloatÚmaxÚaÚbÚinclusive_aÚinclusive_b)Úselfr   r   r   r   s        Ú]/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/scipy/special/_mptestutils.pyÚ__init__ÚArg.__init__   sx   € Ø‹5ÜÐBÓCÐCØ”—‘�‹<Ø”R—X’Xœe“_×(Ñ(Ñ(ˆAØ”—‘‹;Ø”B—H’HœU“O×'Ñ'Ñ'ˆAØˆˆŒ�”à-8Ð*ˆÔ˜$Õ*ó    c                 óŽ  • US:  a  [        S5      eUS-  S:X  a  US-  nUnO
US-  nUS-   nUS:¼  aB  [        R                  " [        R                  " U5      [        R                  " U5      U5      nGO¼US:”  a  US:  a  [        R                  " XU5      nGO—US:”  a\  [        R                  " USUSS9n[        R                  " S[        R                  " U5      U5      n[        R
                  " Xx45      nGO5US:X  aw  US::  aq  [        R                  " SX%5      nUR                  S:”  a  [        R                  " US   5      n	OSn	[        R                  " SX”SS9n[        R
                  " X‡45      nO¸US-  S:X  a  US-  n
U
nO
US-  n
U
S-   n[        R                  " SSUSS9nUR                  S:”  a  [        R                  " US   5      n	OSn	[        R                  " SXšSS9n[        R                  " S[        R                  " U5      U5      n[        R
                  " XÇU45      n[        R                  " U5      $ )	Nr   za should be positiveé   é   é
   F)Úendpointiâÿÿÿ)r   r   ÚlogspaceÚlog10ÚlinspaceÚhstackÚsizeÚsort)r   r   r   ÚnÚnlogptsÚnlinptsÚptsÚlinptsÚlogptsÚrightÚnlogpts1Únlogpts2Úlogpts1Úlogpts2s                 r   Ú_positive_valuesÚArg._positive_values'   så  € Øˆq‹5ÜÐ3Ó4Ð4ð ˆq‰5�A‹:Ø˜‘dˆGØ‰Gà˜‘dˆGØ ‘kˆGà�‹7ä—+’+œbŸhšh q›k¬2¯8ª8°A«;¸Ó:ŠCØ�‹U�q˜2“vä—+’+˜a AÓ&ŠCØ�‹Uô —[’[  B¨¸%Ñ@ˆFÜ—[’[ ¤B§H¢H¨Q£K°Ó9ˆFÜ—)’)˜VÐ,Ó-ŠCØ�!‹V˜˜R›ô —[’[  AÓ/ˆFØ�{‰{˜Q‹ÜŸš ¨¡Ó+‘à�Ü—[’[  e¸uÑEˆFÜ—)’)˜VÐ,Ó-‰Cð
 ˜‰{˜aÓØ" A™:�Ø#‘à" A™:�Ø# a™<�Ü—[’[  B¨¸%Ñ@ˆFØ�{‰{˜Q‹ÜŸš ¨¡Ó+‘à�Ü—k’k # uÀÑGˆGÜ—k’k !¤R§X¢X¨a£[°(Ó;ˆGÜ—)’)˜W¨gÐ6Ó7ˆCä�wŠw�s‹|Ðr   c                 ó^  • U R                   U R                  p2X#:X  a  [        R                  " U5      $ U R                  (       d  US-  nU R
                  (       d  US-  nUS-  S:X  a  US-  nUnO
US-  nUS-   nUS:¼  a  U R                  X#U5      n/ nONUS::  a  / nU R                  U* U* U5      * nO/U R                  SX45      nU R                  SU* US-   5      * nUSS n[        R                  " USSS2   U45      nU R                  (       d  USS nU R
                  (       d  USS nU$ )z%Return an array containing n numbers.r   r   r   Néÿÿÿÿ)r   r   r   Úzerosr   r   r0   r"   )	r   r%   r   r   Ún1Ún2ÚposptsÚnegptsr(   s	            r   ÚvaluesÚ
Arg.values_   s:  € à�v‰v�t—v‘vˆ1Ø‹6Ü—8’8˜A“;Ðà××Ø�‰FˆAØ××Ø�‰FˆAàˆq‰5�A‹:Ø�A‘ˆBØ‰Bà�A‘ˆBØ�a‘ˆBà�‹6Ø×*Ñ*¨1°Ó3ˆFØ‰FØ�!‹VØˆFØ×+Ñ+¨Q¨B°°°AÓ6Ð6‰Fà×*Ñ*¨1¨aÓ4ˆFØ×+Ñ+¨A°¨r°2¸±6Ó:Ð:ˆFà˜A˜B�ZˆFÜ�iŠi˜¡ " ™ vÐ.Ó/ˆà××Ø�a�b�'ˆCØ××Ø�c�r�(ˆCØˆ
r   )r   r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r0   r9   Ú__static_attributes__© r   r   r   r      s-   † ñð
 Ÿ&™&˜ B§F¡F¸È$ô 	Fò6õp#r   r   c                   ó    • \ rS rSrS rS rSrg)ÚFixedArgé…   c                 ó:   • [         R                  " U5      U l        g ©N)r   ÚasarrayÚ_values)r   r9   s     r   r   ÚFixedArg.__init__†   s   € Ü—z’z &Ó)ˆ�r   c                 ó   • U R                   $ rF   ©rH   )r   r%   s     r   r9   ÚFixedArg.values‰   s   € Ø�|‰|Ðr   rK   N©r;   r<   r=   r>   r   r9   r@   rA   r   r   rC   rC   …   s   † ò*õr   rC   c                   ó˜   • \ rS rSr\" \R                  * \R                  * 5      \" \R                  \R                  5      4S jrS rSr	g)Ú
ComplexArgé�   c                 ó˜   • [        UR                  UR                  5      U l        [        UR                  UR                  5      U l        g rF   )r   ÚrealÚimag©r   r   r   s      r   r   ÚComplexArg.__init__Ž   s.   € Ü˜Ÿ™ §¡Ó'ˆŒ	Ü˜Ÿ™ §¡Ó'ˆ�	r   c                 ó"  • [        [        R                  " [        R                  " U5      5      5      nU R                  R                  U5      nU R                  R                  US-   5      nUS S 2S 4   SUS S S 24   -  -   R                  5       $ )Nr   y              ð?)Úintr   ÚfloorÚsqrtrR   r9   rS   Úravel)r   r%   ÚmÚxÚys        r   r9   ÚComplexArg.values’   sq   € Ü”—’œŸš ›Ó$Ó%ˆØ�I‰I×Ñ˜QÓˆØ�I‰I×Ñ˜Q ™UÓ#ˆØ’!�D�&‘	˜B˜q ¢a ™y™LÑ(×/Ñ/Ó1Ð1r   )rS   rR   N)
r;   r<   r=   r>   Úcomplexr   r   r   r9   r@   rA   r   r   rO   rO   �   s3   † Ù  "§&¡& ¨2¯6©6¨'Ó2±g¸b¿f¹fÀbÇfÁfÓ6Mô (õ2r   rO   c                   ó$   • \ rS rSrSS jrS rSrg)ÚIntArgé™   c                 ó   • Xl         X l        g rF   ©r   r   rT   s      r   r   ÚIntArg.__init__š   s   € ØŒØ�r   c                 ón  • [        U R                  U R                  5      R                  [	        SUS-  -   US-
  5      5      R                  [        5      n[        R                  " SS5      n[        R                  " [        R                  X#4   5      nXDU R                  :¬  X@R                  :  -     nU$ )Nr   r   é   éûÿÿÿ)r   r   r   r9   r   ÚastyperW   r   ÚarangeÚuniqueÚr_)r   r%   Úv1Úv2Úvs        r   r9   ÚIntArg.valuesž   s‡   € Ü�—‘˜Ÿ™Ó ×'Ñ'¬¨A°°1±©H°a¸±cÓ(:Ó;×BÑBÄ3ÓGˆÜ�YŠY�r˜1ÓˆÜ�IŠI”b—e‘e˜B˜F‘mÓ$ˆØ�D—F‘F‰{˜q§6¡6™zÑ*Ñ+ˆØˆr   rd   N)iüÿÿiè  rM   rA   r   r   ra   ra   ™   s   † ôõr   ra   c           	      ó\  • [        U [        R                  5      (       a  U R                  5       nU$ [	        U 5      n[        R
                  " U  Vs/ s H  n[        U[        5      (       a  SOSPM     sn5      nX[        U5      -  -  R                  [        5      S-   n[        X5       VVs/ s H  u  pFUR                  U5      PM     nnn[        R                  " [        R                  " [        R                  " U6 6 5      R                  US5      R                   nU$ s  snf s  snnf )Ng      ø?g      ð?r   r3   )Ú
isinstancer   ÚndarrayÚcopyÚlenrG   rO   Úsumri   rW   Úzipr9   ÚarrayÚbroadcast_arraysÚix_ÚreshapeÚT)Úargspecr%   ÚargsÚnargsÚspecÚmsr[   s          r   Úget_argsr‚   ¦   sì   € Ü�'œ2Ÿ:™:×&Ñ&Ø�|‰|‹~ˆð €Kô �G“ˆÜ�ZŠZÙFMÓNÂg¸d”J˜t¤Z×0Ñ0‰S°cÒ9ÁgÑNó
ˆð ”S˜“W‘*‰o×%Ñ%¤cÓ*¨QÑ.ˆä.1°'Ô.>Ô?Ò.>¡7 4�—‘˜A–Ñ.>ˆÑ?Ü�xŠxœ×+Ò+¬R¯VªV°T¨]Ð;Ó<×DÑDÀUÈBÓO×QÑQˆà€Kùò Oùó @s   Á#D#Â/D(c                   ó2   • \ rS rSr    SS jrS rS rSrg)Ú
MpmathDataé¶   Nc           	      óö  • Uc5   [        [        R                  R                  SS5      5      nU(       a  SOSnXl        X l        X0l        XPl        X`l	        Xpl
        X€l        X�l        X l        XÀl        [        U R                  [         R"                  5      (       a?  [         R$                  " U R                  R&                  [         R(                  5      U l        O9[-        U R                   Vs/ s H  n[        U[.        5      PM     sn5      U l        X l        X°l        U(       a  US:X  a  [3        USS 5      nU(       a  US:X  a  [3        USS 5      nX@l        XÐl        g ! [         a    Sn GNDf = fs  snf )NÚSCIPY_XSLOWÚ0Fiˆ  iô  z<lambda>r;   )rW   ÚosÚenvironÚgetr   Ú
scipy_funcÚmpmath_funcÚarg_specÚdpsÚprecr%   ÚrtolÚatolÚignore_inf_signÚnan_okrr   r   rs   Ú
issubdtypeÚdtypeÚcomplexfloatingÚ
is_complexÚanyrO   Údistinguish_nan_and_infÚgetattrÚnameÚparam_filter)r   rŒ   r�   rŽ   rœ   r�   r�   r%   r‘   r’   r“   rš   r”   r�   Úis_xslowÚargs                   r   r   ÚMpmathData.__init__·   s*  € ð ‰9ð!ÜœrŸz™zŸ~™~¨m¸SÓAÓB�ö !‘ cˆAà$ŒØ&ÔØ ŒØŒØŒ	ØŒØŒ	ØŒ	Ø.ÔØŒÜ�d—m‘m¤R§Z¡Z×0Ñ0Ü Ÿmšm¨D¯M©M×,?Ñ,?Ä×ASÑASÓTˆD�Oä!Ø8<¿ºÓFº°”˜C¤Ö,¹ÑFóˆDŒOð  /ÔØ'>Ô$Þ�t˜zÓ)Ü˜: z°4Ó8ˆDÞ�t˜zÓ)Ü˜;¨
°DÓ9ˆDØŒ	Ø(Õøô9 ó !Ø “ð!üò& Gs   …)E# Ã0E6Å#E3Å2E3c                 óŠ  ^ ^
^• [         R                  R                  S5        [        T R                  T R
                  5      n[        R                  R                  [        R                  R                  p2 T R                  b  T R                  /nOS/nT R                  b  T R                  [        R                  l	        [         R                  " UR                  [         R                  5      (       a
  [        mS m
OS m
S m[        U5       Hy  u  pVU[        R                  l         [        T R                   U
UU 4S jUST R"                  T R$                  T R&                  T R(                  T R*                  T R,                  S9
    O   X#s[        R                  l        [        R                  l	        g ! [.         aQ    U[1        U5      S	-
  :¼  a:  [2        R4                  " 5       u  pxn	UR6                  U	La  UR9                  U	5      eUe GM  f = f! X#s[        R                  l        [        R                  l	        f = f)
NiÒ  é   c                 ó@   • [         R                  " [        U 5      5      $ rF   )ÚmpmathÚmpcr_   ©r\   s    r   ÚmptypeÚ MpmathData.check.<locals>.mptypeö   s   € Ü!Ÿ:š:¤g¨a£jÓ1Ð1r   c                 ó@   • [         R                  " [        U 5      5      $ rF   )r¤   Úmpfr   r¦   s    r   r§   r¨   ù   s   € Ü!Ÿ:š:¤e¨A£hÓ/Ð/r   c                 ó°   • [        U R                  5      SS[        U R                  5      -   -  :”  a  [        R                  $ [        U R                  5      $ )Ng¼‰Ø—²Òœ<r   )ÚabsrS   rR   r   ÚnanÚ	mpf2floatr¦   s    r   ÚpytypeÚ MpmathData.check.<locals>.pytypeü   s;   € Ü˜1Ÿ6™6“{ U¨A´°A·F±F³©OÑ%<Ó<Ü!Ÿv™v˜ä(¨¯©Ó0Ð0r   c                  óB   >• T" TR                   " [        TU 5      6 5      $ rF   )r�   Úmap)r   r§   r¯   r   s    €€€r   Ú<lambda>Ú"MpmathData.check.<locals>.<lambda>	  s   ø€ ¡6¨$×*:Ò*:¼CÀÈ»NÐ*KÔ#Lr   F)Ú
vectorizedr‘   r’   r“   rš   r”   r�   r   )r   ÚrandomÚseedr‚   rŽ   r%   r¤   Úmpr�   r�   r•   r–   r—   Úmpc2complexÚ	enumerater   rŒ   r‘   r’   r“   rš   r”   r�   ÚAssertionErrorru   ÚsysÚexc_infoÚ__traceback__Úwith_traceback)r   ÚargarrÚold_dpsÚold_precÚdps_listÚjr�   ÚtpÚvalueÚtbr§   r¯   s   `         @@r   ÚcheckÚMpmathData.checkà   s§  ú€ Ü
�	‰	�‰�tÔô ˜$Ÿ-™-¨¯©Ó0ˆô #ŸI™IŸM™M¬6¯9©9¯>©>�ð4	>Ø�x‰xÑ#Ø ŸH™H˜:‘à˜4�Ø�y‰yÑ$Ø!%§¡”—	‘	”ô
 �}Š}˜VŸ\™\¬2×+=Ñ+=×>Ñ>Ü$�ó2ò0ò1ô $ HÖ-‘�Ø #”—	‘	”ð$Ü%ØŸ™ÞLØØ#(Ø!ŸY™YØ!ŸY™YØ(,×(<Ñ(<Ø04×0LÑ0LØ#Ÿ{™{Ø%)×%6Ñ%6òñ ñ! .ð2 -4Ð)ŒF�I‰IŒMœ6Ÿ9™9�>øô &ó $ØœC ›M¨!™OÓ+ä(+¯ª«™˜ 2Ø ×.Ñ.°bÒ8Ø"'×"6Ñ"6°rÓ":Ð:Ø#˜ó ,ð$ûð -4Ð)ŒF�I‰IŒMœ6Ÿ9™9�>ús3   Á7B3H Ä+AF8Æ	H Æ8AHÈH ÈHÈH È,Ic                 ód   • U R                   (       a  SU R                   S3$ SU R                   S3$ )Nz<MpmathData: z (complex)>Ú>)r˜   rœ   )r   s    r   Ú__repr__ÚMpmathData.__repr__  s/   € Ø�?�?Ø" 4§9¡9 +¨[Ð9Ð9à" 4§9¡9 +¨QÐ/Ð/r   )rŽ   r’   rš   r�   r“   r˜   r�   r%   rœ   r”   r�   r�   r‘   rŒ   )
NNNNgH¯¼šò×z>gYóøÂn¥FTTN)r;   r<   r=   r>   r   rÈ   rÌ   r@   rA   r   r   r„   r„   ¶   s   † Ø?CØ>DØ@DØ+/ô')òR<>õ|0r   r„   c                  ó:   • [        U 0 UD6nUR                  5         g rF   )r„   rÈ   )r   ÚkwÚds      r   Úassert_mpmath_equalrÑ   %  s   € Ü�AÐ˜Ñ€AØ‡G�G…Ir   c                 óH   • [         R                  R                  SS9" U 5      $ )Nz8    Test not yet functional (too slow), needs more work.)Úreason)ÚpytestÚmarkÚskip)Úfuncs    r   Únonfunctional_tooslowrØ   *  s)   € Ü�;‰;×ÑØIð ñ à
óð r   c           	      óB   • [        [        R                  " U SSSS95      $ )zÍ
Convert an mpf to the nearest floating point number. Just using
float directly doesn't work because of results like this:

with mp.workdps(50):
    float(mpf("0.99999999999999999")) = 0.9999999999999999

é   r   ©Ú	min_fixedÚ	max_fixed)r   r¤   Únstrr¦   s    r   r®   r®   4  s   € ô ”—’˜Q ¨a¸1Ñ=Ó>Ð>r   c                 óf   • [        [        U R                  5      [        U R                  5      5      $ rF   )r_   r®   rR   rS   r¦   s    r   r¹   r¹   @  s!   € Ü”9˜QŸV™VÓ$¤i°·±Ó&7Ó8Ð8r   c                 ó   ^ ^• S mU U4S jnU$ )Nc                 ól   • [        U [        R                  5      (       a  [        U 5      $ [	        U 5      $ rF   )rr   r¤   r¥   r_   r   r¦   s    r   ÚtofloatÚtrace_args.<locals>.tofloatE  s&   € Ü�aœŸ™×$Ñ$Ü˜1“:Ðä˜“8ˆOr   c                  ó  >• [         R                  R                  [        [	        TU 5      5      < S35        [         R                  R                  5          T" U 0 UD6n[         R                  R                  SU< 35        [         R                  R                  S5        [         R                  R                  5         U$ ! [         R                  R                  S5        [         R                  R                  5         f = f)Nú: z-> Ú
)r¼   ÚstderrÚwriteÚtupler²   Úflush)r   rÏ   Úrr×   râ   s      €€r   ÚwrapÚtrace_args.<locals>.wrapK  s¯   ø€ Ü�
‰
×ÑœE¤# g¨q£/Ó2Ñ5°RÐ8Ô9Ü�
‰
×ÑÔð	Ù�a�˜2‘ˆAÜ�J‰J×Ñ˜s 1¡%˜[Ô)ä�J‰J×Ñ˜TÔ"Ü�J‰J×ÑÔØˆøô �J‰J×Ñ˜TÔ"Ü�J‰J×ÑÕús   Á+C Ã?D rA   )r×   rì   râ   s   ` @r   Ú
trace_argsrî   D  s   ù€ òö	ð €Kr   Ú	setitimerFc                   ó   • \ rS rSrSrg)ÚTimeoutErrori_  rA   N)r;   r<   r=   r>   r@   rA   r   r   rñ   rñ   _  s   † Úr   rñ   r
   Tc                 óX   ^ ^^• [         (       a  U(       a  S mUUU 4S jnU$ UU 4S jnU$ )aê  
Decorator for setting a timeout for pure-Python functions.

If the function does not return within `timeout` seconds, the
value `return_val` is returned instead.

On POSIX this uses SIGALRM by default. On non-POSIX, settrace is
used. Do not use this with threads: the SIGALRM implementation
does probably not work well. The settrace implementation only
traces the current thread.

The settrace implementation slows down execution speed. Slowdown
by a factor around 10 is probably typical.
c                 ó   • [        5       erF   )rñ   )ÚsignumÚframes     r   Úsigalrm_handlerÚ%time_limited.<locals>.sigalrm_handlers  s
   € Ü“.Ð r   c                 ó   >^ • U UUU4S jnU$ )Nc                  ó”  >• [         R                   " [         R                  T5      n[         R                  " [         R                  T5         T" U 0 UD6[         R                  " [         R                  S5        [         R                   " [         R                  U5        $ ! [         aO    Ts [         R                  " [         R                  S5        [         R                   " [         R                  U5        $ f = f! [         R                  " [         R                  S5        [         R                   " [         R                  U5        f = f)Nr   )ÚsignalÚSIGALRMrï   ÚITIMER_REALrñ   )r   rÏ   Úold_handlerr×   Ú
return_valrö   Útimeouts      €€€€r   rì   Ú(time_limited.<locals>.deco.<locals>.wrapw  sÑ   ø€ Ü$Ÿmšm¬F¯N©N¸OÓL�Ü× Ò ¤×!3Ñ!3°WÔ=ð?Ù ˜> b™>ô ×$Ò$¤V×%7Ñ%7¸Ô;Ü—M’M¤&§.¡.°+Õ>øô	 $ó &Ø%Ñ%ä×$Ò$¤V×%7Ñ%7¸Ô;Ü—M’M¤&§.¡.°+Õ>ð	&ûô ×$Ò$¤V×%7Ñ%7¸Ô;Ü—M’M¤&§.¡.°+Õ>ús%   ÁB ÂC8Â+C; Ã7C8Ã8C; Ã;AErA   )r×   rì   rþ   rö   rÿ   s   ` €€€r   ÚdecoÚtime_limited.<locals>.decov  s   ù€ ÷	?ð 	?ð ˆKr   c                 ó   >^ • U UU4S jnU$ )Nc                  ó^  >^^• [         R                   " 5       mUUU4S jm[        R                  " T5         T" U 0 UD6[        R                  " S 5        $ ! [         a1    [        R                  " S 5        Ts [        R                  " S 5        $ f = f! [        R                  " S 5        f = f)Nc                 óT   >• [         R                   " 5       T-
  T:”  a
  [        5       eT$ rF   )Útimerñ   )rõ   ÚeventrŸ   Ú
start_timerÿ   Útraces      €€€r   r	  Ú7time_limited.<locals>.deco.<locals>.wrap.<locals>.trace‡  s#   ø€ Ü—y’y“{ ZÑ/°'Ó9Ü*›nÐ,Ø �Lr   )r  r¼   Úsettracerñ   )r   rÏ   r  r	  r×   rþ   rÿ   s     @@€€€r   rì   r   „  s}   ú€ Ü!ŸYšY›[�
÷!ô —’˜UÔ#ð'Ù ˜> b™>ô
 —L’L Õ&øô	 $ó &Ü—L’L Ô&Ø%Ñ%ä—L’L Õ&ð	&ûô —L’L Õ&ús#   ¸A Á"BÁ8B ÂBÂB ÂB,rA   )r×   rì   rþ   rÿ   s   ` €€r   r  r  ƒ  s   ù€ ÷'ð ˆKr   )ÚPOSIX)rÿ   rþ   Úuse_sigalrmr  rö   s   ``  @r   Útime_limitedr  c  s)   ú€ ÷ ‚u–ò	!÷	ð< €Kö#	ð" €Kr   c                 ó   ^ • U 4S jnU$ )z9Decorate function to return nan if it raises an exceptionc                  óV   >•  T" U 0 UD6$ ! [          a    [        R                  s $ f = frF   )Ú	Exceptionr   r­   )r   rÏ   r×   s     €r   rì   Úexception_to_nan.<locals>.wrap™  s.   ø€ ð	Ù˜�>˜b‘>Ð!øÜó 	Ü—6‘6ŠMð	ús   ƒ ‹(§(rA   ©r×   rì   s   ` r   Úexception_to_nanr  —  s   ø€ õð
 €Kr   c                 ó   ^ • U 4S jnU$ )z1Decorate function to return nan if it returns infc                  ón   >• T" U 0 UD6n[         R                  " U5      (       d  [         R                  $ U$ rF   )r   Úisfiniter­   )r   rÏ   ro   r×   s      €r   rì   Úinf_to_nan.<locals>.wrap£  s+   ø€ Ù�!ˆN�r‰NˆÜ�{Š{˜1�~‰~Ü—6‘6ˆMØˆr   rA   r  s   ` r   Ú
inf_to_nanr  ¡  s   ø€ õð
 €Kr   c                 ó  • / n[        [        X5      5       Hc  u  nu  pgUb  Uc  [        S5      e[        R                  " Xg-
  5      X#[        R                  " U5      -  -   :”  d  MP  UR                  XVU45        Me     [        U5      nUS:”  aò  [        [        [        R                  " U5      5      5      n	S/n
U
R                  SU SWS-    S35        U HŠ  u  pVn[        R                  " XiSSS	9n[        R                  " XySSS	9nUS:X  a  S
nO2[        R                  " Xg-
  U-  5      n[        R                  " US5      nU
R                  U SU SU SU S35        MŒ     [        SSR                  U
5      5        gg)zp
Compare lists of mpmath.mpf's or mpmath.mpc's directly so that it
can be done to higher precision than double.
Nz,Lengths of inputs res and std are not equal.r   Ú zBad results (z out of r   z) for the following points:rÛ   r   é   rå   z != z (rdiff Ú)Fræ   )rº   r   r   r¤   ÚfabsÚappendru   rW   r¬   r   r    rÞ   r   Újoin)ÚresÚstdr’   r‘   ÚfailuresÚkÚresvalÚstdvalÚnfailÚndigitsÚmsgÚresrepÚstdrepÚrdiffs                 r   Úmp_assert_allcloser-  «  sb  € ð
 €HÜ(¬°SÓ)>Ö?ÑˆÑˆFØ‰>˜V™^ÜÐKÓLÐLÜ�;Š;�v‘Ó'¨$´f·k²kÀ&Ó6IÑ1IÑ*IÕIØ�O‰O˜Q¨Ð/Ö0ñ	  @ô �‹M€EØˆqƒyÜ”cœ"Ÿ(š( 4›.Ó)Ó*ˆØˆdˆØ�
‰
�] 5 '¨°!°a±%°Ð8SÐTÔUÛ!)ÑˆA�vÜ—[’[ ¸AÈÑKˆFÜ—[’[ ¸AÈÑKˆFØ˜‹{Ø‘äŸš V¡_°fÑ$<Ó=�ÜŸš E¨1Ó-�Ø�J‰J˜!˜˜B˜v˜h d¨6¨(°(¸5¸'ÀÐCÖDñ "*ô 	��t—y‘y “~Õ&ð r   )r   g—ÔFFõg<)#r‰   r¼   r  Ú	itertoolsr   Únumpyr   Únumpy.testingr   rÔ   Úscipy.special._testutilsr   r¤   ÚImportErrorr   rC   rO   ra   r‚   r„   rÑ   rØ   r®   r¹   rî   rú   Údirr  r  rñ   r­   r  r  r  r-  rA   r   r   Ú<module>r4     sê   ðÛ 	Û 
Û Ý !ã Ý !Û å 6ð	Û÷lñ l÷^ñ ÷	2ñ 	2÷
ñ 
ò÷ l0ñ l0ò^ò
ò	?ò9òð(ÛØ™C ›KÑ'€Eô
	�9ô 	ð ¨¯©¸Tô 1òhòõ'øð{ ó 	Ùð	ûðZ
 ó Ø‚Eðús#   ¨B) Á1B5 Â)B2Â1B2Â5C Â?C 