o
    ?Hhu                     @   s`  d dl Zd dlZd dlmZ d dlZd dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZU d dlVmWZW d dlXmYZY ejZ[dZ\e\]dZ^ejZ_e^Z`eae`ZbW d   n1 sw   Y  e\]dZcejZ_ecZ`eae`ZdW d   n1 sw   Y  e\]d	ZeejZ_eeZ`eae`ZfW d   n	1 s w   Y  d
d Zgdd Zhdd Zidd Zjdd Zkdd Zldd Zmdd Zndd Zodd Zpdd Zqd d! Zrd"d# Zsd$d% Ztd&d' Zud(d) Zvd*d+ Zwd,d- Zxd.d/ Zyd0d1 Zzd2d3 Z{d4d5 Z|d6d7 Z}d8d9 Z~d:d; Zd<d= Zd>d? Zd@dA ZdBdC ZdDdE ZdFdG ZdHdI ZdJdK ZdLdM ZdNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZdZd[ Zd\d] Zd^d_ Zd`da Zdbdc Zg egeodddedfdgdhegepdidjdkdgdhegepdldjdkdmdhegesdidjdkdndodpegesdldjdkdqdodpegeqdidjdkdndodpegeqdldjdkdqdodpege{didjdkdrdhege{dldjdkdsdhege|didjdkdtdhege|dldjdkdsdhegerdidjdfdtdodpegerdldjdfdudodpegetdidjdfdtdodpegetdldjdfdudodpege)dvdjdkdwdhege)dvdjdkdwdhege)dxdjdkdydhege*dzded{d|dhege*d}ded{dydhege*d~ded{dtdhege*dded{ddhege+ddedfddhege?dddfddhegedddddhege@ddd{ddhegedddddhegeddjdkdwdhegeddjdkdydhege>dddfddhegedddddhegeFdddfddhegedddddhegeGdddkddhegedddfddhegeddd ege(dd dege(dddege(dd ddsdhege(ddddwdhege(dd dddhege(dddddhege(dd dddhege(dddddhegejdd degekddjdkddhegeldd degemddjdkddhege7dd dege7ddddwdhege8dd dkd|dhege7dd dege7dddege8dd dkddhege7dd dege7ddddwdhege8dd dkege9dd dege:dd dege:dd ddd dege;dddkdwdhege;dddkddhege<dd ddwdhege<dd ddwdhege<dd dege=ddjdkege=ddjdkddhege"dd dege"dd dege"dd dege"dd dege"dd dddhege"dd dddhege"dddddhege"dddddhege"dddddhege"dddddhege"dddddhege"ddddsdhege#dd dkddhege#dd dkddhege#dd dkddhege#dd dkddhege#dd dkddhege#dd dkege$ddjd{ddhege$ddjd{dsdhege$ddjd{dsdhege$ddjd{ddhegeddjd{dwdhegeddjd{dsdhegeddjd{dsdhegeddjd{ddhege%ddjdfdwdhege%ddjdfdsdhege%ddjdfddhege%ddjdfdgdhegeddjdfdwdhegeddjdfdsdhegeddjdfddhegeddjdfdgdhegedddkddhegedddfddhegeddjdkdsdhegeddjdkegeddjdkegeddjdfdsdhegeddjdfegeddjdfege}ddjdkdtdhege~ddjdkddhegeddjdkddƍegeddedfdsdhegeddedfddƍegedd degedd dkegeddjdkddhegedddkddd̍egeddjdkddhegedddkddhegeddjdkddhegedddkddd̍egeddjdkddhegedddkddhegeddjdkddhegedddkddhegeddjdkddhegedddkddhegeddjdkddhegedddkddhegeddjdkdwdhegedddkdwdhegeddjdkdgdhegedddkddhegeddjdkddhege ddjdkddhege dddkddhege ddjdkddhege dddkddhege!ddjdkddhege!dddkddhege!ddjdkddhege!dddkddhegeddjdkddhegeddjdkddhegeddjdkddhegedddkddhegeddjdkddhegedddkddhegeddjdkddhegedddkddhegendd ddd degendd ddd degendd ddd degendd ddd dege&ddjdkdgdhege&ddjdkddhege&ddjdkdgdhege'ddjdfddhege'ddjdfddhege'ddjdfddhegeddjdkdqddegeddjdkddhegeddjdkegeddjdkddƍegeddjdfd|dhegeddjdfegeAdddfddhegeAdddfdddegedddddd dd dd dd fdeged djdkdwdhegeddjdkddhegeHddjdkdndhegeHddjdkddhege2ddjdkddhege3ddedfddhege3d	dedfddhege3d
dedfddhege3ddedfddhege3ddedfddhege3ddedfddhege4ddedfddhege4ddedfddhege4ddedfddhege4ddedfddhege4ddedfddhege5ddedfddhege5ddedfddhege5ddedfddhege5ddedfddhege5ddedfddhege6ddddddd fd Zejjejjd!eed"d#d$ ZeheId%djdkdwdwd̍eheJd%djdfdwdwd̍eheud&dedfd'dwd̍ehevd&dedd'dwd̍ehewd(dedfd'dwd̍ehexd(dedd'dwd̍eheyd(ded{d'dwd̍ehezd(dedd'dwd̍gZejjd!eed"d)d* Zeie1d+djdkeie0d,d deie.d-djdkeied.djd/ddheied.djdddheie$d0djdkddheie%d1djdkdgdheieRd2d3dddwd̍eieQd2d3d{ddwd̍eieUd4dedfdgdhg
Zejjd!eed"d5d6 Zejfd7d8ZdS (9      N)suppress_warnings)Nlpnlpmnlpmvlqnlqmnsph_harmeval_legendreeval_hermiteeval_laguerreeval_genlaguerrebinomcbrtexpm1log1pzetajnjvjvpynyvyvpivivpknkvkvpgammagammalngammainc	gammainccgammaincinvgammainccinvdigammabetabetainc
betaincinvpochellipe	ellipeincellipkellipkm1	ellipkincelliprcelliprdelliprfelliprgelliprjerferfcerfinverfcinvexp1expiexpnbdtrikbtdtriabtdtribchndtrgdtrgdtrcgdtrixgdtribnbdtrikpdtrikowens_t	mathieu_a	mathieu_bmathieu_cemmathieu_semmathieu_modcem1mathieu_modsem1mathieu_modcem2mathieu_modsem2
ellip_harmellip_harm_2spherical_jnspherical_ynwright_bessel)IntegrationWarning)FuncDatazscipy.special.tests.dataz	boost.npzzgsl.npzz	local.npzc                 O   (   | d| t| t| g|R i |S Ndataname)
setdefaultrR   DATASETS_BOOSTfuncrU   akw r\   ]/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/scipy/special/tests/test_data.pydata,      r^   c                 O   rS   rT   )rV   rR   DATASETS_GSLrX   r\   r\   r]   data_gsl1   r_   ra   c                 O   rS   rT   )rV   rR   DATASETS_LOCALrX   r\   r\   r]   
data_local6   r_   rc   c                 C      t | |  S N)r*   kr\   r\   r]   ellipk_D      rh   c                 C      t | || S re   )r,   frg   r\   r\   r]   
ellipkinc_H      rm   c                 C   rd   re   )r(   rf   r\   r\   r]   ellipe_L   ri   ro   c                 C   rj   re   )r)   rk   r\   r\   r]   
ellipeinc_P   rn   rp   c                 C   s
   t | dS N      ?)r   )xr\   r\   r]   zeta_T   s   
rt   c                 C   s   t || t|S re   )r   astypeint)numurs   r\   r\   r]   assoc_legendre_p_boost_X   s   ry   c                 C      t d| |S Nr   )r   )rw   rs   r\   r\   r]   legendre_p_via_assoc_\   ri   r|   c                 C   sN   t  }|jtd t| d|d d W  d    S 1 s w   Y  d S )Ncategorylr   )r   filterDeprecationWarningr   ru   nrs   supr\   r\   r]   lpn__   s   $r   c                 C   s   t | d|d d S )Nr   r   r   )r   ru   r   rs   r\   r\   r]   lqn_d   s   r   c                 C   sJ   t  }|jtd td| |d d W  d    S 1 sw   Y  d S )Nr}   r   r   r   )r   r   r   r   r   r\   r\   r]   legendre_p_via_lpmng   s   $r   c                 C   s   t d| |d d S )Nr   r   )r   r   r\   r\   r]   legendre_q_via_lqmnl   s   r   c                 C      t | ||d tj d S N   r   )rF   nppimqrs   r\   r\   r]   mathieu_ce_rado      r   c                 C   r   r   )rG   r   r   r   r\   r\   r]   mathieu_se_rads   r   r   c                 C       t | ||d ttjd  S Nr      )rH   r   sqrtr   r   r\   r\   r]   mathieu_mc1_scaledw   s    r   c                 C   r   r   )rI   r   r   r   r   r\   r\   r]   mathieu_ms1_scaled}       r   c                 C   r   r   )rJ   r   r   r   r   r\   r\   r]   mathieu_mc2_scaled   r   r   c                 C   r   r   )rK   r   r   r   r   r\   r\   r]   mathieu_ms2_scaled   r   r   c                 C      t | d|S Nr   r	   ru   r   r\   r\   r]   eval_legendre_ld      r   c                 C   r   Ndr   r   r\   r\   r]   eval_legendre_dd   r   r   c                 C   r   r   )r
   ru   r   r\   r\   r]   eval_hermite_ld   r   r   c                 C   r   r   r   ru   r   r\   r\   r]   eval_laguerre_ld   r   r   c                 C   r   r   r   r   r\   r\   r]   eval_laguerre_dd   r   r   c                 C      t | d||S r   r   ru   r   rZ   rs   r\   r\   r]   eval_genlaguerre_ldd      r   c                 C   r   r   r   r   r\   r\   r]   eval_genlaguerre_ddd   r   r   c                 C      t d|  ||S N   )r9   yr   pr\   r\   r]   bdtrik_comp   r   r   c                 C   r   r   )r:   )r   brs   r\   r\   r]   btdtria_comp   r   r   c                 C   s   t | d| |S r   )r;   )rZ   r   rs   r\   r\   r]   btdtrib_comp   r   r   c                 C   rz   rq   )r=   r   rs   r\   r\   r]   gdtr_   ri   r   c                 C   rz   rq   )r>   r   r\   r\   r]   gdtrc_   ri   r   c                 C   rz   rq   r?   r   r   r\   r\   r]   gdtrix_   ri   r   c                 C   s   t d| d| S Nrr   r   r   r   r\   r\   r]   gdtrix_comp   r   r   c                 C   rz   rq   r@   r   r\   r\   r]   gdtrib_   ri   r   c                 C   s   t dd|  |S r   r   r   r\   r\   r]   gdtrib_comp   r   r   c                 C   r   r   )rA   r   r\   r\   r]   nbdtrik_comp   r   r   c                 C   s   t d|  |S r   )rB   )r   r   r\   r\   r]   pdtrik_comp   rn   r   c                 C   s   dt | | S rq   r'   zr   r\   r\   r]   poch_   rn   r   c                 C   s   dt | |  S rq   r   r   r\   r\   r]   
poch_minus   r   r   c                 C   r   r   )rN   ru   r   r\   r\   r]   spherical_jn_   r   r   c                 C   r   r   )rO   ru   r   r\   r\   r]   spherical_yn_   r   r   c                 C   sL   t  }|jtd t| |||}W d    n1 sw   Y  |j|jfS )Nr}   )r   r   r   r   realimag)r   r   thetaphir   r   r\   r\   r]   	sph_harm_   s
   r   c                 C      t | d|  }|j|jfS N              ?)r   r   r   rs   r   r   r\   r\   r]   cexpm1      r   c                 C   r   r   )r   r   r   r   r\   r\   r]   clog1p   r   r   z%assoc_legendre_p_ipp-assoc_legendre_p)r   r   r      gdy=)rtolzlegendre_p_ipp-legendre_p)r   r   r   z%legendre_p_large_ipp-legendre_p_largeg [n;=gvIh%,=F)r   
vectorizedg7QU=gt0=gvIh%L=g+=g-=zbeta_exp_data_ipp-beta_exp_datagvIh%<=zbeta_med_data_ipp-beta_med_datag-a=z%ibeta_small_data_ipp-ibeta_small_data   g [n<zibeta_data_ipp-ibeta_dataz!ibeta_int_data_ipp-ibeta_int_dataz%ibeta_large_data_ipp-ibeta_large_datag|=z!ibeta_inv_data_ipp-ibeta_inv_datagh㈵>z#ibeta_inva_data_ipp-ibeta_inva_data)r   r   r   g:0y5>   )r   r   r      zbinomial_data_ipp-binomial_dataz+binomial_large_data_ipp-binomial_large_dataz,binomial_quantile_ipp-binomial_quantile_dataz>negative_binomial_quantile_ipp-negative_binomial_quantile_datag&.1>z*poisson_quantile_ipp-poisson_quantile_data)r   r   gA:)>zcbrt_data_ipp-cbrt_datar   zdigamma_data_ipp-digamma_datay                z%digamma_neg_data_ipp-digamma_neg_dataz'digamma_root_data_ipp-digamma_root_datagV瞯<z)digamma_small_data_ipp-digamma_small_datag+=zellint_k_data_ipp-ellint_k_datazellint_f_data_ipp-ellint_f_datazellint_e_data_ipp-ellint_e_dataz!ellint_e2_data_ipp-ellint_e2_datazerf_data_ipp-erf_dataz!erf_large_data_ipp-erf_large_datag+&=z!erf_small_data_ipp-erf_small_datazerf_inv_data_ipp-erf_inv_datazerfc_inv_data_ipp-erfc_inv_dataz'erfc_inv_big_data_ipp-erfc_inv_big_datac                 C      | dkS r{   r\   sr\   r\   r]   <lambda>J      r   )param_filterzexpint_1_data_ipp-expint_1_datar   zexpinti_data_ipp-expinti_dataz+expinti_data_double_ipp-expinti_data_doublez'expinti_data_long_ipp-expinti_data_longz'expint_small_data_ipp-expint_small_datazexpint_data_ipp-expint_dataztest_gamma_data_ipp-near_0ztest_gamma_data_ipp-near_1ztest_gamma_data_ipp-near_2ztest_gamma_data_ipp-near_m10ztest_gamma_data_ipp-near_m55gYLɞ=ztest_gamma_data_ipp-factorialsg&.!>g|=g|=z'igamma_small_data_ipp-igamma_small_datag+<z#igamma_med_data_ipp-igamma_med_dataz#igamma_int_data_ipp-igamma_int_dataz#igamma_big_data_ipp-igamma_big_datag-q=z%igamma_inva_data_ipp-igamma_inva_dataz3tgamma_delta_ratio_data_ipp-tgamma_delta_ratio_dataz1tgamma_delta_ratio_int_ipp-tgamma_delta_ratio_intz3tgamma_delta_ratio_int2_ipp-tgamma_delta_ratio_int2zhermite_ipp-hermitezlaguerre2_ipp-laguerre2zhyp2f1 insufficiently accurate.)knownfailurezlaguerre3_ipp-laguerre3z%log1p_expm1_data_ipp-log1p_expm1_datazbessel_i_data_ipp-bessel_i_data)r   r   gP7xf )r   atolz'bessel_i_int_data_ipp-bessel_i_int_datag&.>z3bessel_i_prime_int_data_ipp-bessel_i_prime_int_datagt@=gYnz'bessel_j_int_data_ipp-bessel_j_int_dataz+bessel_j_large_data_ipp-bessel_j_large_datagp~=zbessel_j_data_ipp-bessel_j_dataz3bessel_j_prime_int_data_ipp-bessel_j_prime_int_dataz7bessel_j_prime_large_data_ipp-bessel_j_prime_large_datagdy=z'bessel_k_int_data_ipp-bessel_k_int_datazbessel_k_data_ipp-bessel_k_dataz3bessel_k_prime_int_data_ipp-bessel_k_prime_int_datagt =z+bessel_k_prime_data_ipp-bessel_k_prime_datag(3=z#bessel_y01_data_ipp-bessel_y01_dataz!bessel_yn_data_ipp-bessel_yn_dataz!bessel_yv_data_ipp-bessel_yv_datag|=z-bessel_yv_prime_data_ipp-bessel_yv_prime_datazzeta_data_ipp-zeta_datac                 C   r   r   r\   r   r\   r\   r]   r     r   zzeta_neg_data_ipp-zeta_neg_datac                 C   r   r   r\   r   r\   r\   r]   r     r   z!zeta_1_up_data_ipp-zeta_1_up_datac                 C   r   r   r\   r   r\   r\   r]   r     r   z'zeta_1_below_data_ipp-zeta_1_below_datac                 C   r   r   r\   r   r\   r\   r]   r     r   z-gamma_inv_small_data_ipp-gamma_inv_small_dataz!gamma_inv_data_ipp-gamma_inv_dataz)gamma_inv_big_data_ipp-gamma_inv_big_datazgdtrix unflow some points)r   r   g [n<zgdtrix bad some pointsznccs_ipp-nccsgiUMu>znccs_big_ipp-nccs_biggMb@?zchndtr inaccurate some pointsz)spherical_harmonic_ipp-spherical_harmonic)r   r   r   r   )r   r   c                 C      t | jdS N?r   onesshaper   r\   r\   r]   r         c                 C   r   r   r   r   r\   r\   r]   r     r   c                 C   s   t | dt j k | dkS )Nr   r   r   logical_andr   r   r\   r\   r]   r     s    c                 C   s   t | t jk | dkS r{   r   r   r\   r\   r]   r   	  s    )r   r   z#sph_bessel_data_ipp-sph_bessel_dataz%sph_neumann_data_ipp-sph_neumann_datagV瞯=zowens_t_ipp-owens_tz)owens_t_large_data_ipp-owens_t_large_datag-=z!ellint_rc_data_ipp-ellint_rc_datagV瞯<z!ellint_rd_data_ipp-ellint_rd_datazellint_rd_0xy_ipp-ellint_rd_0xyzellint_rd_0yy_ipp-ellint_rd_0yyzellint_rd_xxx_ipp-ellint_rd_xxxzellint_rd_xxz_ipp-ellint_rd_xxzg_1k<zellint_rd_xyy_ipp-ellint_rd_xyygMg<z!ellint_rf_data_ipp-ellint_rf_datazellint_rf_xxx_ipp-ellint_rf_xxxzellint_rf_xyy_ipp-ellint_rf_xyyzellint_rf_xy0_ipp-ellint_rf_xy0zellint_rf_0yy_ipp-ellint_rf_0yyzellint_rg_ipp-ellint_rggؗ<zellint_rg_xxx_ipp-ellint_rg_xxxzellint_rg_xyy_ipp-ellint_rg_xyyg [n<zellint_rg_xy0_ipp-ellint_rg_xy0zellint_rg_00x_ipp-ellint_rg_00xz!ellint_rj_data_ipp-ellint_rj_data)r   r   r   r   g}:c                 C   s   | dkS )Ng}:r\   r   r\   r\   r]   r   W  r   )r   r   r   test)idsc                 C      t |  d S re   _test_factoryr   r\   r\   r]   
test_boost  s   r   
mathieu_abmathieu_ce_segHz>mathieu_mc_msc                 C   r   re   r   r   r\   r\   r]   test_gsl     r   ellipkinc_neg_mr+   ellipeinc_neg_mlog1p_expm1_complex)r   r   r   r    ellip)r   r   r   r   r   rP   c                 C   r   re   r   r   r\   r\   r]   
test_local  r   r  c              	   C   s   t  3}|td tjdd | j|d W d   n1 s!w   Y  W d   dS W d   dS 1 s9w   Y  dS )z
Boost testz,The occurrence of roundoff error is detectedignore)all)dtypeN)r   r   rQ   r   errstatecheck)r   r  r   r\   r\   r]   r     s   "r   )importlib.resources	importlibnumpyr   numpy.testingr   pytestscipy.specialr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   scipy.integraterQ   scipy.special._testutilsrR   	resourcesfiles_datadirjoinpath
_boost_npzas_filerl   loadrW   _gsl_npzr`   
_local_npzrb   r^   ra   rc   rh   rm   ro   rp   rt   ry   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   BOOST_TESTSmarkthread_unsafeparametrizereprr   	GSL_TESTSr   LOCAL_TESTSr  float64r   r\   r\   r\   r]   <module>   s   B 



"$&)+-/257:<?ADFIKOQTVWXYZ[\]_`abdefghijklno
pstuvwyz|}~                 	  
                                   #  $  %  &  (  )  +  -  /  1  3  5  8  ;  =  ?  A  D  E  G  I  K  M  P  R  U  V  W  X  Z  [  \  ]  _  a  c  e  h  j  k  l  m  o  q  s  t  v  w  y  z  {  |  ~       
    
    
    

                                        !    #    %    (    *    -    4    6    9    ;    O    Q    S    U    W    `    b    d    f    h    j    l    t    v    x    z    |    ~
     B



