§
    fŠtjÃ.  ã                   óª   — 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 g d¢Z G d„ d¦  «        Zd„ Zd„ Z	 	 	 	 dd„Z G d„ d¦  «        ZdS )é    N)Ú_pep440)Úassert_)Úwith_special_errorsÚassert_func_equalÚFuncDatac                   ó   — e Zd Zd„ ZdS )ÚMissingModulec                 ó   — || _         d S ©N)Úname)Úselfr   s     úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/special/_testutils.pyÚ__init__zMissingModule.__init__   s   € ØˆŒ	ˆ	ˆ	ó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r	   r	      s#   € € € € € ðð ð ð ð r   r	   c                 ó0  — t          | ¦  «        t          u r(t          j                             | j        › d�¬¦  «        S t          j                             t          j        | j	        ¦  «        t          j
        |¦  «        k     | j        › d|› d�¬¦  «        S )Nz is not installed©Úreasonz version >= z	 required)Útyper	   ÚpytestÚmarkÚskipr   Úskipifr   ÚparseÚ__version__ÚVersionr   )ÚmoduleÚmin_vers     r   Úcheck_versionr"      s‹   € ÝˆF�|„|•}Ð$Ð$ÝŒ{×Ò¨&¬+Ð'HÐ'HÐ'HÐÑIÔIÐIÝŒ;×ÒÝŒ�fÔ(Ñ)Ô)­G¬O¸GÑ,DÔ,DÒDØ”/ÐAÐA¨wÐAÐAÐAð ñ ô ð r   c                 óF   ‡ — t          j        ‰ ¦  «        ˆ fd„¦   «         }|S )zc
    Enable special function errors (such as underflow, overflow,
    loss of precision, etc.)
    c                  ór   •— t          j        d¬¦  «        5   ‰| i |¤Ž}d d d ¦  «         n# 1 swxY w Y   |S )NÚraise©Úall)ÚscÚerrstate)ÚaÚkwÚresÚfuncs      €r   Úwrapperz$with_special_errors.<locals>.wrapper*   s�   ø€ åŒ[˜WÐ%Ñ%Ô%ð 	!ð 	!Ø�$˜�.˜R�.�.ˆCð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!àˆ
s   —	,¬0³0)Ú	functoolsÚwraps)r-   r.   s   ` r   r   r   %   s:   ø€ õ
 „_�TÑÔðð ð ð ñ Ôðð €Nr   TFc                 óò  — t          |d¦  «        rt          |¦  «        }t          j        |¦  «        }|j        dk    r|d d …d f         }|j        d         }t          |d¦  «        r|}d }|}n>t          j        ||f         }t          t          ||j        d         ¦  «        ¦  «        }d }t          | |t          t          |¦  «        ¦  «        |||||||	||
|¬¦  «        }| 	                    ¦   «          d S )NÚnexté   r   )
Úresult_columnsÚresult_funcÚrtolÚatolÚparam_filterÚknownfailureÚnan_okÚ
vectorizedÚignore_inf_signÚdistinguish_nan_and_inf)
ÚhasattrÚlistÚnpÚasarrayÚndimÚshapeÚc_Úranger   Úcheck)r-   ÚresultsÚpointsr6   r7   r8   r9   r;   Údtyper:   r<   r=   ÚnparamsÚdatar4   r5   Úfdatas                    r   r   r   7   s  € õ ˆv�vÑÔð å�f‘”ˆåŒZ˜ÑÔ€FØ„{�aÒÐØ˜˜˜˜$˜”ˆØŒl˜1Œo€Gåˆw˜
Ñ#Ô#ð 	àˆØˆØˆˆõ Œu�V˜W�_Ô%ˆÝ�e G¨T¬Z¸¬]Ñ;Ô;Ñ<Ô<ˆØˆå�T˜4¥¥e¨G¡n¤nÑ!5Ô!5Ø$2ÀØ T¸Ø".°vÈ*Ø%4Ø-DðFñ Fô F€Eð 
‡K‚K�M„M€M€M€Mr   c                   ó6   — e Zd ZdZ	 	 	 	 d	d„Zd„ Zd
d„Zd„ ZdS )r   aí  
    Data set for checking a special function.

    Parameters
    ----------
    func : function
        Function to test
    data : numpy array
        columnar data to use for testing
    param_columns : int or tuple of ints
        Columns indices in which the parameters to `func` lie.
        Can be imaginary integers to indicate that the parameter
        should be cast to complex.
    result_columns : int or tuple of ints, optional
        Column indices for expected results from `func`.
    result_func : callable, optional
        Function to call to obtain results.
    rtol : float, optional
        Required relative tolerance. Default is 5*eps.
    atol : float, optional
        Required absolute tolerance. Default is 5*tiny.
    param_filter : function, or tuple of functions/Nones, optional
        Filter functions to exclude some parameter ranges.
        If omitted, no filtering is done.
    knownfailure : str, optional
        Known failure error message to raise when the test is run.
        If omitted, no exception is raised.
    nan_ok : bool, optional
        If nan is always an accepted result.
    vectorized : bool, optional
        Whether all functions passed in are vectorized.
    ignore_inf_sign : bool, optional
        Whether to ignore signs of infinities.
        (Doesn't matter for complex-valued functions.)
    distinguish_nan_and_inf : bool, optional
        If True, treat numbers which contain nans or infs as
        equal. Sets ignore_inf_sign to be True.

    NFTc                 óî  — || _         || _        |
| _        t          |d¦  «        s|f}t	          |¦  «        | _        |�;t          |d¦  «        s|f}t	          |¦  «        | _        |�d}t          |¦  «        ‚n|�d | _        nt          d¦  «        ‚|| _        || _	        || _
        t          |d¦  «        s|f}|| _        |	| _        || _        || _        || _        || _        | j        s	d| _        d S d S )NÚ__len__z5Only result_func or result_columns should be providedz7Either result_func or result_columns should be providedT)r-   rK   Údatanamer>   ÚtupleÚparam_columnsr4   Ú
ValueErrorr5   r6   r7   r8   r9   r:   r;   r<   r=   )r   r-   rK   rR   r4   r5   r6   r7   r8   r9   rP   r:   r;   r<   r=   Úmessages                   r   r   zFuncData.__init__�   s3  € ð ˆŒ	ØˆŒ	Ø ˆŒÝ�} iÑ0Ô0ð 	-Ø*Ð,ˆMÝ" =Ñ1Ô1ˆÔØÐ%Ý˜>¨9Ñ5Ô5ð 3Ø"0Ð!2�Ý"'¨Ñ"7Ô"7ˆDÔØÐ&ØQ�Ý  Ñ)Ô)Ð)ð 'ð Ð$Ø"&ˆDÔÐåÐVÑWÔWÐWØ&ˆÔØˆŒ	ØˆŒ	Ý�| YÑ/Ô/ð 	+Ø(˜?ˆLØ(ˆÔØ(ˆÔØˆŒØ$ˆŒØ.ˆÔØ'>ˆÔ$ØÔ+ð 	(Ø#'ˆDÔ Ð Ð ð	(ð 	(r   c                 óî   — t          j        |t           j        ¦  «        st          j        t          ¦  «        }t          j        |¦  «        }| j        | j        }}|€
d|j        z  }|€
d|j	        z  }||fS )Né   )
r@   Ú
issubdtypeÚinexactrI   ÚfloatÚfinfor6   r7   ÚepsÚtiny)r   rI   Úinfor6   r7   s        r   Úget_toleranceszFuncData.get_tolerances¤   si   € ÝŒ}˜U¥B¤JÑ/Ô/ð 	$Ý”H�U‘O”OˆEÝŒx˜‰ŒˆØ”Y ¤	ˆdˆØˆ<Ø�T”X‘:ˆDØˆ<Ø�T”Y‘;ˆDØ�TˆzÐr   c                 ó†  ‡ ‡‡)‡*— t          j        dt          ¦  «        }‰ j        rt	          j        ‰ j        ¬¦  «         ‰€‰ j        Š|€‰j        }n‰                     |¦  «        Š‰  	                    |¦  «        \  }}‰ j
        rzt          j        ‰j        d         ft          j        ¦  «        }t          ‰ j        ‰ j
        ¦  «        D ],\  Š)}|r%|t#           |‰dd…‰)f         ¦  «        ¦  «        z  }Œ-‰|         Šg Š*t%          ‰ j        ¦  «        D ]Ò\  }	Š)t          j        ‰)¦  «        rLt)          ‰)j        ¦  «        Š)‰*                     ‰dd…‰)f                              t.          ¦  «        ¦  «         Œe|rL|	t1          |¦  «        k     r9‰*                     ‰dd…‰)f                              ||	         ¦  «        ¦  «         Œ³‰*                     ‰dd…‰)f         ¦  «         ŒÓdˆ*ˆ fd„	}
 |
‰ j        ¦  «        }‰ j        �!t7          ˆfd„‰ j        D ¦   «         ¦  «        }nHd}‰ j        r-t1          |¦  «        dk    rt          j        |d         ¦  «        } |
‰ j        |¬¦  «        }t?          t1          |¦  «        t1          |¦  «        k    ¦  «         t%          t          ||¦  «        ¦  «        D �]\  }\  }}t          j         |j        t          j!        ¦  «        s‰ j"        rQt          j#        |¦  «        }t          j#        |¦  «        }t          j#        |¦  «        }t          j#        |¦  «        }nPt          j$        |¦  «        }t          j$        |¦  «        }t          j%        |¦  «        }t          j%        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          j&        d	¬
¦  «        5  t          j'        |¦  «        }d|t          j(        |¦  «         <   t          j'        ||z
  ¦  «        }d|t          j(        |¦  «         <   |t          j'        |¦  «        z  }d|t          j(        |¦  «         <   ddd¦  «         n# 1 swxY w Y   ||||z  z   k    }||k    }||k    }||k    }||z  |z  |z   }|j)        }‰ j        r&|| z  }|| z  }|||z   *                    ¦   «         z  }‰ j+        sW‰ j        sPt          j#        |¦  «        } t          j#        |¦  «        }!| |z  ||!z  z  }"||" z  }||" *                    ¦   «         z  }t          j,        |¦  «        �rdg}#|#                     d||          -                    ¦   «         d›�¦  «         |#                     d||          -                    ¦   «         d›�¦  «         |#                     dt          j*        |¦  «        › d|› d|› d�¦  «         t          j.        |¦  «        d         D ]«Š)t)          ‰)¦  «        Š)ˆ)fd„}$d /                    ta          |$‰*¦  «        ¦  «        }%d /                    ta          |$|¦  «        ¦  «        }&d /                    ta          |$|¦  «        ¦  «        }' |$|¦  «        }(|#                     |%› d|&› d|'› d|(› d�¦  «         Œ¬t?          dd /                    |#¦  «        ¦  «         �ŒdS )z,Check the special function against the data.Úerrisinstancer   Nr   c                 ó¶  •‡— ‰j         r | ‰Ž }n±g }t          t          ‰d         ¦  «        ¦  «        D ]xŠ|�(|‰         r |                     t          j        ¦  «         Œ,|                      | t          ˆˆfd„t          t          ‰¦  «        ¦  «        D ¦   «         ¦  «        Ž ¦  «         Œyt	          j        |¦  «        }t          |t          ¦  «        s|f}|S )Nr   c                 ó,   •— g | ]}‰|         ‰         ‘ŒS r   r   )Ú.0ÚiÚjÚparamss     €€r   ú
<listcomp>z?FuncData.check.<locals>.eval_func_at_params.<locals>.<listcomp>ß   s!   ø€ Ð+UÐ+UÐ+U¸Q¨F°1¬I°a¬LÐ+UÐ+UÐ+Ur   )	r;   rE   ÚlenÚappendr@   ÚnanrQ   rA   Ú
isinstance)r-   Ú	skip_maskÚgotre   rf   r   s      @€€r   Úeval_func_at_paramsz+FuncData.check.<locals>.eval_func_at_paramsÖ   sÞ   øø€ ØŒð 	&Ø�d˜F�m��à�Ý�s 6¨!¤9™~œ~Ñ.Ô.ð Yð Y�AØ Ð,°¸1´Ð,ØŸ
š
¥2¤6Ñ*Ô*Ð*Ø Ø—J’J˜t˜t¥UÐ+UÐ+UÐ+UÐ+UÐ+UÅ%ÍÈFÉÌÑBTÔBTÐ+UÑ+UÔ+UÑ%VÔ%VÐWÑXÔXÐXÐXÝ”j ‘o”o�Ý˜c¥5Ñ)Ô)ð Ø�f�ØˆJr   c                 ó(   •— g | ]}‰d d …|f         ‘ŒS r   r   )rc   ÚicolrK   s     €r   rg   z"FuncData.check.<locals>.<listcomp>ë   s%   ø€ ÐIÐIÐI¨T˜D    4 œLÐIÐIÐIr   r3   )rl   Úignorer&   Ú zMax |adiff|: ÚgzMax |rdiff|: zBad results (z out of z&) for the following points (in output z):c                 ó@   •— t          j        | ‰         d¬¦  «        d›S )Né   )Ú	precisionÚ30s)r@   Úarray2string)Úxre   s    €r   ÚfmtzFuncData.check.<locals>.fmt.  s"   ø€ Ý"$¤/°!°A´$À"Ð"EÑ"EÔ"EÐKÐKÐKr   z  z => z != z	  (rdiff ú)Fú
r   )1ÚoperatorÚmethodcallerÚAssertionErrorr9   r   ÚxfailrK   rI   Úastyper^   r8   r@   ÚonesrC   Úbool_ÚziprR   r?   Ú	enumerateÚiscomplexobjÚintÚimagri   Úcomplexrh   r-   r4   rQ   r:   Úisnanr5   r   rW   Úcomplexfloatingr<   ÚisinfÚisposinfÚisneginfr)   ÚabsoluteÚisfiniteÚsizeÚsumr=   ÚanyÚmaxÚnonzeroÚjoinÚmap)+r   rK   rI   ÚdtypesÚ__tracebackhide__r6   r7   Ú
param_maskÚfilterÚidxrn   rm   Úwantedrl   Ú
output_numry   ÚyÚpinf_xÚpinf_yÚminf_xÚminf_yÚnan_xÚnan_yÚabs_yÚdiffÚrdiffÚtol_maskÚ	pinf_maskÚ	minf_maskÚnan_maskÚbad_jÚpoint_countÚinf_xÚinf_yÚboth_nonfiniteÚmsgrz   r*   ÚbÚcÚdre   rf   s+   ``                                       @@r   rF   zFuncData.check¯   s  øøøø€ å$Ô1Ø�^ñ
ô 
Ðð Ôð 	3ÝŒL Ô 1Ð2Ñ2Ô2Ð2àˆ<Ø”9ˆDàˆ=Ø”JˆEˆEà—;’;˜uÑ%Ô%ˆDà×(Ò(¨Ñ/Ô/‰
ˆˆdð Ôð 	$Ýœ $¤*¨Q¤-Ð!1µ2´8Ñ<Ô<ˆJÝ  Ô!3°TÔ5FÑGÔGð :ð :‘	��6Øð :Ø¥$ v v¨d°1°1°1°Q°3¬iÑ'8Ô'8Ñ"9Ô"9Ñ9�JøØ˜
Ô#ˆDð ˆÝ Ô 2Ñ3Ô3ð 	)ð 	)‰FˆC�ÝŒ˜qÑ!Ô!ð )Ý˜œ‘K”K�Ø—’˜d 1 1 1 Q 3œi×.Ò.­wÑ7Ô7Ñ8Ô8Ð8Ð8Øð )˜C¥# f¡+¤+Ò-Ð-Ø—’˜d 1 1 1 a 4œj×/Ò/°°s´Ñ<Ô<Ñ=Ô=Ð=Ð=à—’˜d 1 1 1 Q 3œiÑ(Ô(Ð(Ð(ð	ð 	ð 	ð 	ð 	ð 	ð 	ð  "Ð! $¤)Ñ,Ô,ˆð ÔÐ*åÐIÐIÐIÐI°TÔ5HÐIÑIÔIÑJÔJˆFˆFð ˆIØŒ{ð -�s 3™xœx¨1š}˜}åœH S¨¤VÑ,Ô,�	Ø(Ð(¨Ô)9ÀYÐOÑOÔOˆFõ 	•�C‘”�C ™KœKÒ'Ñ(Ô(Ð(å"+­C°°VÑ,<Ô,<Ñ"=Ô"=ð >	/ñ >	/ÑˆJ™˜˜AÝŒ}˜QœW¥bÔ&8Ñ9Ô9ð 	(¸TÔ=Qð 	(Ýœ !™œ�Ýœ !™œ�Ýœ !™œ�Ýœ !™œ��åœ Q™œ�Ýœ Q™œ�Ýœ Q™œ�Ýœ Q™œ�Ý”H˜Q‘K”KˆEÝ”H˜Q‘K”KˆEå” Ð*Ñ*Ô*ð /ð /Ýœ A™œ�Ø-.�•r”{ 5Ñ)Ô)Ð)Ñ*Ý”{ 1 q¡5Ñ)Ô)�Ø+,�•b”k $Ñ'Ô'Ð'Ñ(à�rœ{¨1™~œ~Ñ-�Ø-.�•r”{ 5Ñ)Ô)Ð)Ñ*ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð   t¨E¡zÑ 1Ò1ˆHØ 6Ò)ˆIØ 6Ò)ˆIà šˆHà Ñ*¨YÑ6¸ÑAÐBˆEàœ*ˆKØŒ{ð 5Ø˜%˜‘�Ø˜%˜‘�Ø ¨¡×2Ò2Ñ4Ô4Ñ4�àÔ/ð 4¸¼ð 4åœ ™œ�Ýœ ™œ�Ø"'¨%¡-°E¸E±MÑ!B�Ø˜.˜Ñ(�Ø˜~×1Ò1Ñ3Ô3Ñ3�åŒv�e‰}Œ}ñ /à�d�Ø—
’
Ð@¨4°¬;¯?ª?Ñ+<Ô+<Ð@Ð@Ð@ÑAÔAÐAØ—
’
ÐA¨5°¬<×+;Ò+;Ñ+=Ô+=ÐAÐAÐAÑBÔBÐBØ—
’
ð 8­2¬6°%©=¬=ð 8ð 8Ø)ð8ð 8à)3ð8ð 8ð 8ñ 9ô 9ð 9õ œ EÑ*Ô*¨1Ô-ð Bð B�AÝ˜A™œ�AðLð Lð Lð Lð LàŸ	š	¥# c¨6Ñ"2Ô"2Ñ3Ô3�AØŸ	š	¥# c¨3¡-¤-Ñ0Ô0�AØŸ	š	¥# c¨6Ñ"2Ô"2Ñ3Ô3�AØ˜˜E™
œ
�AØ—J’J !Ð@Ð@¨Ð@Ð@°Ð@Ð@¸AÐ@Ð@Ð@ÑAÔAÐAÐAÝ˜˜tŸyšy¨™~œ~Ñ.Ô.Ð.ùð}>	/ð >	/s   ÏBQ$Ñ$Q(	Ñ+Q(	c                 ó(  — t          j        t          t          t           j        | j        ¦  «        ¦  «        ¦  «        rd}nd}| j        r7d| j        j        › |› dt          j
                             | j        ¦  «        › d�S d| j        j        › |› d�S )zPretty-printingz
 (complex)rr   z
<Data for z: ú>)r@   r“   r?   r—   r†   rR   rP   r-   r   ÚosÚpathÚbasename)r   Ú
is_complexs     r   Ú__repr__zFuncData.__repr__7  s¦   € åŒ6•$•s�2œ?¨DÔ,>Ñ?Ô?Ñ@Ô@ÑAÔAð 	Ø%ˆJˆJàˆJØŒ=ð 	Bð: ¤Ô!3ð :°Zð :ð :Ý”w×'Ò'¨¬Ñ6Ô6ð:ð :ð :ð ;ð B ¤	Ô 2ÐA°JÐAÐAÐAÐAr   )NNNNNNNFTFT)NNN)r   r   r   Ú__doc__r   r^   rF   r¼   r   r   r   r   r   X   s€   € € € € € ð&ð &ðP BFØFJØLPØ@Dð!(ð !(ð !(ð !(ðF	ð 	ð 	ðF/ð F/ð F/ð F/ðP
Bð 
Bð 
Bð 
Bð 
Br   r   )	NNNNTNFFT)r¸   r/   r}   Ú
scipy._libr   Únumpyr@   Únumpy.testingr   r   Úscipy.specialÚspecialr(   Ú__all__r	   r"   r   r   r   r   r   r   ú<module>rÄ      s)  ðØ 	€	€	€	Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø €€€à Ð Ð Ð Ð Ð à
BÐ
BÐ
B€ðð ð ð ð ñ ô ð ð
ð ð ð
ð 
ð 
ð$ >BØ6:Ø:?ØEIðð ð ð ðBiBð iBð iBð iBð iBñ iBô iBð iBð iBð iBr   