§
    fŠtji8  ã                   ó¢  — d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dl	Z	d dl
mZ 	 d dlZn# e$ r Y nw xY w G d„ d¦  «        Z G d„ d¦  «        Z G d	„ d
¦  «        Z G d„ d¦  «        Zd„ Z G d„ d¦  «        Zd„ Zd„ Zd„ Zd„ Zd„ Z	 d dlZd ee¦  «        v Zn# e$ r dZY nw xY w G d„ de¦  «        Zdej        dfd„Zd„ Z d„ Z!d d„Z"dS )!é    N)Úzip_longest)Úassert_)Úassert_func_equalc                   óD   — e Zd ZdZej         ej        ddfd„Zd„ Zd„ ZdS )ÚArgz‚Generate a set of numbers on the real axis, concentrating on
    'interesting' regions and covering all orders of magnitude.

    Tc                 ó2  — ||k    rt          d¦  «        ‚|t          j         k    r!dt          j        t          ¦  «        j        z  }|t          j        k    r!dt          j        t          ¦  «        j        z  }||c| _        | _        ||c| _        | _	        d S )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        úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/special/_mptestutils.pyÚ__init__zArg.__init__   sƒ   € ØˆqŠ5ˆ5ÝÐBÑCÔCÐCØ•”�Š<ˆ<Ø•R”X�e‘_”_Ô(Ñ(ˆAØ•”Š;ˆ;Ø•B”H�U‘O”OÔ'Ñ'ˆAØ˜AˆˆŒ�”à-8¸+Ð*ˆÔ˜$Ô*Ð*Ð*ó    c                 óh  — |dk     rt          d¦  «        ‚|dz  dk    r|dz  }|}n
|dz  }|dz   }|dk    r<t          j        t          j        |¦  «        t          j        |¦  «        |¦  «        }�n­|dk    r|dk     rt          j        |||¦  «        }�n‰|dk    rXt          j        |d|d¬¦  «        }t          j        dt          j        |¦  «        |¦  «        }t          j        ||f¦  «        }�n+|dk    rs|dk    rmt          j        d||¦  «        }|j        dk    rt          j        |d         ¦  «        }	nd}	t          j        d|	|d¬¦  «        }t          j        ||f¦  «        }n²|dz  dk    r|dz  }
|
}n
|dz  }
|
dz   }t          j        dd|d¬¦  «        }|j        dk    rt          j        |d         ¦  «        }	nd}	t          j        d|	|
d¬¦  «        }t          j        dt          j        |¦  «        |¦  «        }t          j        |||f¦  «        }t          j        |¦  «        S )	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_valueszArg._positive_values'   s3  € ØˆqŠ5ˆ5ÝÐ3Ñ4Ô4Ð4ð ˆq‰5�AŠ:ˆ:Ø˜‘dˆGØˆGˆGà˜‘dˆGØ ‘kˆGà�Š7ˆ7å”+�bœh q™kœk­2¬8°A©;¬;¸Ñ:Ô:ˆC‰CØ�ŠUˆU�q˜2’v�vå”+˜a  AÑ&Ô&ˆC‰CØ�ŠUˆUõ ”[  B¨¸%Ð@Ñ@Ô@ˆFÝ”[ ¥B¤H¨Q¡K¤K°Ñ9Ô9ˆFÝ”)˜V VÐ,Ñ-Ô-ˆC‰CØ�!ŠVˆV˜˜Rš˜õ ”[  A wÑ/Ô/ˆFØŒ{˜QŠˆÝœ ¨¤Ñ+Ô+��à�Ý”[  e¨W¸uÐEÑEÔEˆFÝ”)˜V VÐ,Ñ-Ô-ˆCˆCð
 ˜‰{˜aÒÐØ" A™:�Ø#��à" A™:�Ø# a™<�Ý”[  B¨¸%Ð@Ñ@Ô@ˆFØŒ{˜QŠˆÝœ ¨¤Ñ+Ô+��à�Ý”k # u¨hÀÐGÑGÔGˆGÝ”k !¥R¤X¨a¡[¤[°(Ñ;Ô;ˆGÝ”)˜W f¨gÐ6Ñ7Ô7ˆCåŒw�s‰|Œ|Ðr   c                 ó>  — | j         | j        }}||k    rt          j        |¦  «        S | j        s|dz  }| j        s|dz  }|dz  dk    r|dz  }|}n
|dz  }|dz   }|dk    r|                      |||¦  «        }g }n`|dk    rg }|                      | | |¦  «         }n=|                      d||¦  «        }|                      d| |dz   ¦  «         }|dd…         }t          j        |ddd…         |f¦  «        }| j        s
|dd…         }| j        s
|dd…         }|S )z%Return an array containing n numbers.r   r   r   Néÿÿÿÿ)r   r   r   Úzerosr   r   r.   r    )	r   r#   r   r   Ún1Ún2ÚposptsÚnegptsr&   s	            r   Úvaluesz
Arg.values_   si  € àŒv�t”vˆ1ˆØ�Š6ˆ6Ý”8˜A‘;”;ÐàÔð 	Ø�‰FˆAØÔð 	Ø�‰FˆAàˆq‰5�AŠ:ˆ:Ø�A‘ˆBØˆBˆBà�A‘ˆBØ�a‘ˆBà�Š6ˆ6Ø×*Ò*¨1¨a°Ñ3Ô3ˆFØˆFˆFØ�!ŠVˆVØˆFØ×+Ò+¨Q¨B°°°AÑ6Ô6Ð6ˆFˆFà×*Ò*¨1¨a°Ñ4Ô4ˆFØ×+Ò+¨A°¨r°2¸±6Ñ:Ô:Ð:ˆFà˜A˜B˜B”ZˆFÝŒi˜   " œ vÐ.Ñ/Ô/ˆàÔð 	Ø�a�b�b”'ˆCØÔð 	Ø�c�r�c”(ˆCØˆ
r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r.   r6   © r   r   r   r      sf   € € € € € ðð ð
 œ&˜ B¤F¸È$ð 	Fð 	Fð 	Fð 	Fð6ð 6ð 6ðp#ð #ð #ð #ð #r   r   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚFixedArgc                 ó8   — t          j        |¦  «        | _        d S ©N)r   ÚasarrayÚ_values)r   r6   s     r   r   zFixedArg.__init__†   s   € Ý”z &Ñ)Ô)ˆŒˆˆr   c                 ó   — | j         S r?   )rA   )r   r#   s     r   r6   zFixedArg.values‰   s
   € ØŒ|Ðr   N©r7   r8   r9   r   r6   r;   r   r   r=   r=   …   s2   € € € € € ð*ð *ð *ðð ð ð ð r   r=   c                   ót   — e Zd Z eej         ej         ¦  «         eej        ej        ¦  «        fd„Zd„ ZdS )Ú
ComplexArgc                 ó‚   — t          |j        |j        ¦  «        | _        t          |j        |j        ¦  «        | _        d S r?   )r   ÚrealÚimag©r   r   r   s      r   r   zComplexArg.__init__Ž   s0   € Ý˜œ ¤Ñ'Ô'ˆŒ	Ý˜œ ¤Ñ'Ô'ˆŒ	ˆ	ˆ	r   c                 ó2  — t          t          j        t          j        |¦  «        ¦  «        ¦  «        }| j                             |¦  «        }| j                             |dz   ¦  «        }|d d …d f         d|d d d …f         z  z                        ¦   «         S )Nr   y              ð?)Úintr   ÚfloorÚsqrtrG   r6   rH   Úravel)r   r#   ÚmÚxÚys        r   r6   zComplexArg.values’   s‚   € Ý•”�œ ™œÑ$Ô$Ñ%Ô%ˆØŒI×Ò˜QÑÔˆØŒI×Ò˜Q ™UÑ#Ô#ˆØ�!�!�!�D�&”	˜B˜q  a a a œy™LÑ(×/Ò/Ñ1Ô1Ð1r   N)r7   r8   r9   Úcomplexr   r   r   r6   r;   r   r   rE   rE   �   s`   € € € € € Ø ˜ "¤& ¨2¬6¨'Ñ2Ô2°g°g¸b¼fÀbÄfÑ6MÔ6Mð (ð (ð (ð (ð2ð 2ð 2ð 2ð 2r   rE   c                   ó   — e Zd Zdd„Zd„ ZdS )ÚIntArgéüÿÿéè  c                 ó"   — || _         || _        d S r?   )r   r   rI   s      r   r   zIntArg.__init__š   s   € ØˆŒØˆŒˆˆr   c                 ón  — t          | j        | j        ¦  «                             t	          d|dz  z   |dz
  ¦  «        ¦  «                             t          ¦  «        }t          j        dd¦  «        }t          j	        t          j
        ||f         ¦  «        }||| j        k    || j        k     z           }|S )Nr   r   é   éûÿÿÿ)r   r   r   r6   r   ÚastyperK   r   ÚarangeÚuniqueÚr_)r   r#   Úv1Úv2Úvs        r   r6   zIntArg.valuesž   s‘   € Ý�”˜œÑ Ô ×'Ò'­¨A°°1±©H°a¸±cÑ(:Ô(:Ñ;Ô;×BÒBÅ3ÑGÔGˆÝŒY�r˜1ÑÔˆÝŒI•b”e˜B ˜F”mÑ$Ô$ˆØˆq�D”FŠ{˜q 4¤6šzÑ*Ô+ˆØˆr   N)rU   rV   rC   r;   r   r   rT   rT   ™   s7   € € € € € ðð ð ð ðð ð ð ð r   rT   c                 óÜ  — t          | t          j        ¦  «        r|                      ¦   «         }n¼t	          | ¦  «        }t          j        d„ | D ¦   «         ¦  «        }||t          |¦  «        z  z                       t          ¦  «        dz   }d„ t          | |¦  «        D ¦   «         }t          j
        t          j        t          j        |Ž Ž ¦  «                             |d¦  «        j        }|S )Nc                 ó@   — g | ]}t          |t          ¦  «        rd nd‘ŒS )g      ø?g      ð?©Ú
isinstancerE   )Ú.0Úspecs     r   ú
<listcomp>zget_args.<locals>.<listcomp>¬   s+   € ÐNÐNÐN¸d•J˜t¥ZÑ0Ô0Ð9ˆSˆS°cÐNÐNÐNr   r   c                 ó>   — g | ]\  }}|                      |¦  «        ‘ŒS r;   )r6   )rf   rg   rO   s      r   rh   zget_args.<locals>.<listcomp>°   s&   € Ð?Ð?Ð?¡7 4¨�—’˜A‘”Ð?Ð?Ð?r   r0   )re   r   ÚndarrayÚcopyÚlenr@   Úsumr[   rK   ÚzipÚarrayÚbroadcast_arraysÚix_ÚreshapeÚT)Úargspecr#   ÚargsÚnargsÚmss        r   Úget_argsrx   ¦   sÍ   € Ý�'�2œ:Ñ&Ô&ð 
RØ�|Š|‰~Œ~ˆˆå�G‘”ˆÝŒZØNÐNÀgÐNÑNÔNñ
ô 
ˆð �"•S˜‘W”W‘*‰o×%Ò%¥cÑ*Ô*¨QÑ.ˆà?Ð?­c°'¸2Ñ.>Ô.>Ð?Ñ?Ô?ˆÝŒx�Ô+­R¬V°T¨]Ð;Ñ<Ô<×DÒDÀUÈBÑOÔOÔQˆà€Kr   c                   ó*   — e Zd Z	 	 	 	 d	d„Zd„ Zd„ ZdS )
Ú
MpmathDataNçH¯¼šò×z>çYóøÂn¥FTc                 ó¢  — |€G	 t          t          j                             dd¦  «        ¦  «        }n# t          $ r d}Y nw xY w|rdnd}|| _        || _        || _        || _        || _	        || _
        || _        |	| _        |
| _        || _        t          | j        t           j        ¦  «        r/t!          j        | j        j        t           j        ¦  «        | _        n#t-          d„ | j        D ¦   «         ¦  «        | _        |
| _        || _        |r|dk    rt1          |dd ¦  «        }|r|dk    rt1          |dd ¦  «        }|| _        || _        d S )	NÚSCIPY_XSLOWÚ0Fiˆ  iô  c                 ó8   — g | ]}t          |t          ¦  «        ‘ŒS r;   rd   )rf   Úargs     r   rh   z'MpmathData.__init__.<locals>.<listcomp>Õ   s"   € ÐFÐFÐF°•˜C¥Ñ,Ô,ÐFÐFÐFr   z<lambda>r7   )rK   ÚosÚenvironÚgetr
   Ú
scipy_funcÚmpmath_funcÚarg_specÚdpsÚprecr#   ÚrtolÚatolÚignore_inf_signÚnan_okre   r   rj   Ú
issubdtypeÚdtypeÚcomplexfloatingÚ
is_complexÚanyÚdistinguish_nan_and_infÚgetattrÚnameÚparam_filter)r   r…   r†   r‡   r•   rˆ   r‰   r#   rŠ   r‹   rŒ   r“   r�   r–   Úis_xslows                  r   r   zMpmathData.__init__·   sm  € ð ˆ9ð!Ý�rœzŸ~š~¨m¸SÑAÔAÑBÔB��øÝð !ð !ð !Ø ���ð!øøøð !Ð)�� cˆAà$ˆŒØ&ˆÔØ ˆŒØˆŒØˆŒ	ØˆŒØˆŒ	ØˆŒ	Ø.ˆÔØˆŒÝ�d”m¥R¤ZÑ0Ô0ð 	Ý œm¨D¬MÔ,?ÅÔASÑTÔTˆDŒOˆOå!ØFÐF¸¼ÐFÑFÔFñô ˆDŒOð  /ˆÔØ'>ˆÔ$Øð 	9�t˜zÒ)Ð)Ý˜: z°4Ñ8Ô8ˆDØð 	:�t˜zÒ)Ð)Ý˜;¨
°DÑ9Ô9ˆDØˆŒ	Ø(ˆÔÐÐs   „-2 ²AÁ Ac                 ó°  ‡ ‡
‡— t           j                             d¦  «         t          ‰ j        ‰ j        ¦  «        }t          j        j        t          j        j	        }}	 ‰ j        �	‰ j        g}ndg}‰ j	        �‰ j	        t          j        _	        t          j
        |j        t           j        ¦  «        rt          Šd„ Š
nd„ Š
d„ Št          |¦  «        D ]¶\  }}|t          j        _        	 t          ‰ j        ˆ
ˆˆ fd„|d‰ j        ‰ j        ‰ j        ‰ j        ‰ j        ‰ j        ¬¦
  «
          n]# t.          $ rP |t1          |¦  «        d	z
  k    r7t3          j        ¦   «         \  }}}	|j        |	ur|                     |	¦  «        ‚|‚Y Œ³w xY w||ct          j        _        t          j        _	        d S # ||ct          j        _        t          j        _	        w xY w)
NiÒ  é   c                 óD   — t          j        t          | ¦  «        ¦  «        S r?   )ÚmpmathÚmpcrR   ©rP   s    r   Úmptypez MpmathData.check.<locals>.mptypeö   s   € Ý!œ:¥g¨a¡j¤jÑ1Ô1Ð1r   c                 óD   — t          j        t          | ¦  «        ¦  «        S r?   )r›   Úmpfr   r�   s    r   rž   z MpmathData.check.<locals>.mptypeù   s   € Ý!œ:¥e¨A¡h¤hÑ/Ô/Ð/r   c                 ó¢   — t          | j        ¦  «        ddt          | j        ¦  «        z   z  k    rt          j        S t          | j        ¦  «        S )Ng¼‰Ø—²Òœ<r   )ÚabsrH   rG   r   ÚnanÚ	mpf2floatr�   s    r   Úpytypez MpmathData.check.<locals>.pytypeü   s=   € Ý˜1œ6‘{”{ U¨Aµ°A´F±´©OÑ%<Ò<Ð<Ý!œv˜å(¨¬Ñ0Ô0Ð0r   c                  óF   •—  ‰ ‰j         t          ‰| ¦  «        Ž ¦  «        S r?   )r†   Úmap)r   rž   r¥   r   s    €€€r   ú<lambda>z"MpmathData.check.<locals>.<lambda>	  s$   ø€  6 6Ð*:¨$Ô*:½CÀÈ¹N¼NÐ*KÑ#LÔ#L€ r   F)Ú
vectorizedrŠ   r‹   rŒ   r“   r�   r–   r   )r   ÚrandomÚseedrx   r‡   r#   r›   Úmprˆ   r‰   rŽ   r�   r�   Úmpc2complexÚ	enumerater   r…   rŠ   r‹   rŒ   r“   r�   r–   ÚAssertionErrorrl   ÚsysÚexc_infoÚ__traceback__Úwith_traceback)r   ÚargarrÚold_dpsÚold_precÚdps_listÚjrˆ   ÚtpÚvalueÚtbrž   r¥   s   `         @@r   ÚcheckzMpmathData.checkà   sö  øøø€ Ý
Œ	�Š�tÑÔÐõ ˜$œ-¨¬Ñ0Ô0ˆõ #œIœM­6¬9¬>�ˆð4	>ØŒxÐ#Ø œH˜:��à˜4�ØŒyÐ$Ø!%¤•”	”õ
 Œ}˜Vœ\­2Ô+=Ñ>Ô>ð 1Ý$�ð2ð 2ð 2ð 2ð0ð 0ð 0ð1ð 1ð 1õ $ HÑ-Ô-ð $ð $‘��3Ø #•”	”ð$Ý%ØœØLÐLÐLÐLÐLÐLØØ#(Ø!œYØ!œYØ(,Ô(<Ø04Ô0LØ#œ{Ø%)Ô%6ðñ ô ð ð �EøÝ%ð $ð $ð $Ø�C ™MœM¨!™OÒ+Ð+å(+¬©¬™˜˜E 2Ø Ô.°bÐ8Ð8Ø"'×"6Ò"6°rÑ":Ô":Ð:Ø#˜ð ,Ð+ð$øøøð -4°XÐ)�FŒIŒM�6œ9œ>˜>˜>ø¨G°XÐ)�FŒIŒM�6œ9œ>Ð=Ð=Ð=Ð=s3   Á B
F0 Ã+AD.Ä,F0 Ä.AFÆF0 ÆFÆF0 Æ0%Gc                 ó<   — | j         rd| j        › d�S d| j        › d�S )Nz<MpmathData: z (complex)>ú>)r‘   r•   )r   s    r   Ú__repr__zMpmathData.__repr__  s2   € ØŒ?ð 	0Ø9 4¤9Ð9Ð9Ð9Ð9à/ 4¤9Ð/Ð/Ð/Ð/r   )
NNNNr{   r|   FTTN)r7   r8   r9   r   r¼   r¿   r;   r   r   rz   rz   ¶   sT   € € € € € Ø?CØ>DØ@DØ+/ð')ð ')ð ')ð ')ðR<>ð <>ð <>ð|0ð 0ð 0ð 0ð 0r   rz   c                  óF   — t          | i |¤Ž}|                     ¦   «          d S r?   )rz   r¼   )r   ÚkwÚds      r   Úassert_mpmath_equalrÃ   %  s%   € Ý�AÐ˜ÐÐ€AØ‡G‚G�I„I€I€I€Ir   c                 óR   — t          j                             d¬¦  «        | ¦  «        S )Nz8    Test not yet functional (too slow), needs more work.)Úreason)ÚpytestÚmarkÚskip)Úfuncs    r   Únonfunctional_tooslowrÊ   *  s1   € ÝŒ;×ÒØIð ñ ô à
ñô ð r   c                 óL   — t          t          j        | ddd¬¦  «        ¦  «        S )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                 ój   — t          t          | j        ¦  «        t          | j        ¦  «        ¦  «        S r?   )rR   r¤   rG   rH   r�   s    r   r­   r­   @  s&   € Ý•9˜QœVÑ$Ô$¥i°´Ñ&7Ô&7Ñ8Ô8Ð8r   c                 ó   ‡ ‡— d„ Šˆ ˆfd„}|S )Nc                 ór   — t          | t          j        ¦  «        rt          | ¦  «        S t	          | ¦  «        S r?   )re   r›   rœ   rR   r   r�   s    r   Útofloatztrace_args.<locals>.tofloatE  s-   € Ý�a�œÑ$Ô$ð 	Ý˜1‘:”:Ðå˜‘8”8ˆOr   c                  ó  •— t           j                             t          t	          ‰| ¦  «        ¦  «        ›d�¦  «         t           j                             ¦   «          	  ‰| i |¤Ž}t           j                             d|›�¦  «         t           j                             d¦  «         t           j                             ¦   «          nB# t           j                             d¦  «         t           j                             ¦   «          w xY w|S )Nú: z-> ú
)r°   ÚstderrÚwriteÚtupler§   Úflush)r   rÁ   ÚrrÉ   rÔ   s      €€r   Úwrapztrace_args.<locals>.wrapK  sÝ   ø€ ÝŒ
×Ò�E¥# g¨q¡/¤/Ñ2Ô2Ð8Ð8Ð8Ñ9Ô9Ð9ÝŒ
×ÒÑÔÐð	Ø��a�˜2��ˆAÝŒJ×Ò˜[ 1˜[˜[Ñ)Ô)Ð)åŒJ×Ò˜TÑ"Ô"Ð"ÝŒJ×ÒÑÔÐÐøõ ŒJ×Ò˜TÑ"Ô"Ð"ÝŒJ×ÒÑÔÐÐøøøØˆs   Á*C Ã?Dr;   )rÉ   rÝ   rÔ   s   ` @r   Ú
trace_argsrÞ   D  s8   øø€ ðð ð ð	ð 	ð 	ð 	ð 	ð 	ð €Kr   Ú	setitimerFc                   ó   — e Zd ZdS )ÚTimeoutErrorN)r7   r8   r9   r;   r   r   rá   rá   _  s   € € € € € Ø€Dr   rá   r	   Tc                 ó@   ‡ ‡‡— t           r|rd„ Šˆˆˆ fd„}nˆˆ fd„}|S )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                 ó   — t          ¦   «         ‚r?   )rá   )ÚsignumÚframes     r   Úsigalrm_handlerz%time_limited.<locals>.sigalrm_handlers  s   € Ý‘.”.Ð r   c                 ó   •‡ — ˆ ˆˆˆfd„}|S )Nc                  ó4  •— t          j         t           j        ‰¦  «        }t          j        t           j        ‰¦  «         	  ‰| i |¤Žt          j        t           j        d¦  «         t          j         t           j        |¦  «         S # t          $ rC ‰cY t          j        t           j        d¦  «         t          j         t           j        |¦  «         S w xY w# t          j        t           j        d¦  «         t          j         t           j        |¦  «         w xY w)Nr   )ÚsignalÚSIGALRMrß   ÚITIMER_REALrá   )r   rÁ   Úold_handlerrÉ   Ú
return_valræ   Útimeouts      €€€€r   rÝ   z(time_limited.<locals>.deco.<locals>.wrapw  sõ   ø€ Ý$œm­F¬N¸OÑLÔL�ÝÔ ¥Ô!3°WÑ=Ô=Ð=ð?Ø˜4 ˜> b˜>˜>õ Ô$¥VÔ%7¸Ñ;Ô;Ð;Ý”M¥&¤.°+Ñ>Ô>Ð>Ð>øõ	 $ð &ð &ð &Ø%Ð%Ð%åÔ$¥VÔ%7¸Ñ;Ô;Ð;Ý”M¥&¤.°+Ñ>Ô>Ð>Ð>ð	&øøøøõ Ô$¥VÔ%7¸Ñ;Ô;Ð;Ý”M¥&¤.°+Ñ>Ô>Ð>Ð>øøøs%   ÁB ÂCÂC ÃCÃC ÃA Dr;   )rÉ   rÝ   rí   ræ   rî   s   ` €€€r   Údecoztime_limited.<locals>.decov  s3   øø€ ð	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð ˆKr   c                 ó   •‡ — ˆ ˆˆfd„}|S )Nc                  óD  •‡‡— t          j         ¦   «         Šˆˆˆfd„Št          j        ‰¦  «         	  ‰| i |¤Žt          j        d ¦  «         S # t          $ r- t          j        d ¦  «         ‰cY t          j        d ¦  «         S w xY w# t          j        d ¦  «         w xY w)Nc                 óX   •— t          j         ¦   «         ‰z
  ‰k    rt          ¦   «         ‚‰S r?   )Útimerá   )rå   Úeventr�   Ú
start_timerî   Útraces      €€€r   rö   z7time_limited.<locals>.deco.<locals>.wrap.<locals>.trace‡  s(   ø€ Ý”y‘{”{ ZÑ/°'Ò9Ð9Ý*™nœnÐ,Ø �Lr   )ró   r°   Úsettracerá   )r   rÁ   rõ   rö   rÉ   rí   rî   s     @@€€€r   rÝ   z(time_limited.<locals>.deco.<locals>.wrap„  sÐ   øøø€ Ý!œY™[œ[�
ð!ð !ð !ð !ð !ð !ð !õ ”˜UÑ#Ô#Ð#ð'Ø˜4 ˜> b˜>˜>õ
 ”L Ñ&Ô&Ð&Ð&øõ	 $ð &ð &ð &Ý”L Ñ&Ô&Ð&Ø%Ð%Ð%å”L Ñ&Ô&Ð&Ð&ð	&øøøøõ ”L Ñ&Ô&Ð&Ð&øøøs#   ³A Á BÁ/B	 ÂBÂB	 Â	Br;   )rÉ   rÝ   rí   rî   s   ` €€r   rï   ztime_limited.<locals>.decoƒ  s.   øø€ ð'ð 'ð 'ð 'ð 'ð 'ð 'ð ˆKr   )ÚPOSIX)rî   rí   Úuse_sigalrmrï   ræ   s   ``  @r   Útime_limitedrú   c  sr   øøø€ õ ð !�ð !ð	!ð 	!ð 	!ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	ð" €Kr   c                 ó   ‡ — ˆ fd„}|S )z9Decorate function to return nan if it raises an exceptionc                  óN   •— 	  ‰| i |¤ŽS # t           $ r t          j        cY S w xY wr?   )Ú	Exceptionr   r£   )r   rÁ   rÉ   s     €r   rÝ   zexception_to_nan.<locals>.wrap™  s@   ø€ ð	Ø�4˜�>˜b�>�>Ð!øÝð 	ð 	ð 	Ý”6ˆMˆMˆMð	øøøs   ƒ ‹$£$r;   ©rÉ   rÝ   s   ` r   Úexception_to_nanrÿ   —  s#   ø€ ðð ð ð ð ð
 €Kr   c                 ó   ‡ — ˆ fd„}|S )z1Decorate function to return nan if it returns infc                  óX   •—  ‰| i |¤Ž}t          j        |¦  «        st           j        S |S r?   )r   Úisfiniter£   )r   rÁ   ra   rÉ   s      €r   rÝ   zinf_to_nan.<locals>.wrap£  s0   ø€ ØˆD�!ˆN�rˆNˆNˆÝŒ{˜1‰~Œ~ð 	Ý”6ˆMØˆr   r;   rþ   s   ` r   Ú
inf_to_nanr  ¡  s#   ø€ ðð ð ð ð ð
 €Kr   ç—ÔFFõg<c                 óL  — g }t          t          | |¦  «        ¦  «        D ]f\  }\  }}|�|€t          d¦  «        ‚t          j        ||z
  ¦  «        ||t          j        |¦  «        z  z   k    r|                     |||f¦  «         Œgt          |¦  «        }|dk    �rt          t          t          j
        |¦  «        ¦  «        ¦  «        }	dg}
|
                     d|› d|dz   › d�¦  «         |D ]�\  }}}t          j        ||	dd¬	¦  «        }t          j        ||	dd¬	¦  «        }|dk    rd
}n/t          j        ||z
  |z  ¦  «        }t          j        |d¦  «        }|
                     |› d|› d|› d|› d�¦  «         Œ�t          dd                     |
¦  «        ¦  «         dS dS )z|
    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Úappendrl   rK   r¢   r   r   rÐ   r   Újoin)ÚresÚstdr‹   rŠ   ÚfailuresÚkÚresvalÚstdvalÚnfailÚndigitsÚmsgÚresrepÚstdrepÚrdiffs                 r   Úmp_assert_allcloser  «  sÓ  € ð
 €HÝ(­°S¸#Ñ)>Ô)>Ñ?Ô?ð 1ð 1ÑˆÑˆF�FØˆ>˜V˜^ÝÐKÑLÔLÐLÝŒ;�v ‘Ñ'Ô'¨$°µf´kÀ&Ñ6IÔ6IÑ1IÑ*IÒIÐIØ�OŠO˜Q ¨Ð/Ñ0Ô0Ð0øå�‰MŒM€EØˆq‚y�yÝ•c�"œ( 4™.œ.Ñ)Ô)Ñ*Ô*ˆØˆdˆØ�
Š
ÐT 5ÐTÐT°!°a±%ÐTÐTÐTÑUÔUÐUØ!)ð 	Eð 	EÑˆAˆv�vÝ”[ ¨¸AÈÐKÑKÔKˆFÝ”[ ¨¸AÈÐKÑKÔKˆFØ˜Š{ˆ{Ø��åœ V¨f¡_°fÑ$<Ñ=Ô=�Ýœ E¨1Ñ-Ô-�Ø�JŠJ˜!ÐCÐC˜vÐCÐC¨6ÐCÐC¸5ÐCÐCÐCÑDÔDÐDÐDÝ��t—y’y ‘~”~Ñ&Ô&Ð&Ð&Ð&ð €yr   )r   r  )#r‚   r°   ró   Ú	itertoolsr   Únumpyr   Únumpy.testingr   rÆ   Úscipy.special._testutilsr   r›   ÚImportErrorr   r=   rE   rT   rx   rz   rÃ   rÊ   r¤   r­   rÞ   ré   Údirrø   rý   rá   r£   rú   rÿ   r  r  r;   r   r   ú<module>r     s›  ðØ 	€	€	€	Ø 
€
€
€
Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !à Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø €€€à 6Ð 6Ð 6Ð 6Ð 6Ð 6ð	Ø€M€M€M€MøØð 	ð 	ð 	Ø€Dð	øøøðlð lð lð lð lñ lô lð lð^ð ð ð ð ñ ô ð ð	2ð 	2ð 	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ðð ð ð l0ð l0ð l0ð l0ð l0ñ l0ô l0ð l0ð^ð ð ð
ð ð ð	?ð 	?ð 	?ð9ð 9ð 9ðð ð ð(Ø€M€M€MØ˜C˜C ™KœKÐ'€E€EøØð ð ð Ø€E€E€Eðøøøð	ð 	ð 	ð 	ð 	�9ñ 	ô 	ð 	ð ¨¬¸Tð 1ð 1ð 1ð 1ðhð ð ðð ð ð'ð 'ð 'ð 'ð 'ð 's   ¨- ­5´5ÂB ÂB(Â'B(