3
Od)V                 @   s  d dl Z d dlZd dlmZmZm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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZP d dlQmRZR d dlSmTZT ejUe jVjWe jVjXeYddZZejUe jVjWe jVjXeYdd	Z[ejUe jVjWe jVjXeYdd
Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgd d! Zhd"d# Zid$d% Zjd&d' Zkd(d) Zld*d+ Zmd,d- Znd.d/ Zod0d1 Zpd2d3 Zqd4d5 Zrd6d7 Zsd8d9 Ztd:d; Zud<d= Zvd>d? Zwd@dA ZxdBdC ZydDdE ZzdFdG Z{dHdI Z|dJdK Z}dLdM Z~dNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZdZd[ Zd\d] Zd^d_ Zd`da Zdbdc Zddde Zdfdg Ze]edhd didjdke]edhdldidjdke]edmd didndke]edmdldidndke]edod didndke]edodldidndke]efdpd didqfdrdndke]egdsd difdqdndke]egdtd difdqdudke]ejdsd difdqdvdwdxe]ejdtd difdqdudwdxe]ehdsd difdqdvdwdxe]ehdtd difdqdydwdxe]erdsd difdqdzdke]erdtd difdqd{dke]esdsd difdqd|dke]esdtd difdqd{dke]eidsd difdrd|dwdxe]eidtd difdrd}dwdxe]ekdsd difdrd|dwdxe]ekdtd difdrd}dwdxe]e'd~d difdqddke]e'd~d difdqddke]e'dd difdqe]e'dd difdqdjdke]e(dd didqfdddke]e(dd didqfddjdke]e(dd didqfdd|dke]e(dd didqfdddke]e)dd didqfdrddke]e9dd didqfdddke]e9dd didqfdddke]e9dd didqfdd|dke]e9dd didqfdddke]e:dd didqfdrddke]ezdd didqfdddke]e;ddqd difdrddke]e{ddqd difdddke]e<dd dqdifdddke]e|dd dqdifdddke]edd difdqddke]edd difdqdjdke]e8ddqd difdrddke]eyddqd difdddke]eBddqd difdrddke]eddqd difdddke]eCddid fdqddke]eddid fdrddke]eddid e]e&dd die]e&ddldie]e&dd did{dke]e&ddldiddke]e&dd diddke]e&ddldiddke]e&dd diddke]e&ddldiddke]e`dd die]eadd difdqddke]ebdd die]ecdd difdqddke]e1dd die]e1ddldiddke]e2dd dqddke]e1dd die]e1ddldie]e2dd dqddke]e1dd die]e1ddldiddke]e2dd dqe]e3dd die]e4dd die]e4dd die]e5ddidqddke]e5dddqddke]e6dd diddke]e6dd diddke]e7dd difdqe]e7dd difdqddke]e dd die]e dd die]e dd die]e dd die]e dd diddke]e dd diddke]e ddldiddke]e ddldiddke]e ddldiddke]e ddldiddke]e ddldiddke]e ddldid{dke]e!dd dqddke]e!dd dqddke]e!dd dqddke]e!dd dqddke]e!dd dqddke]e!dd dqe]e"dd difdddke]e"dd difdd{dke]e"dd difdd{dke]e"dd difdddke]e}dd difdddke]e}dd difdd{dke]e}dd difdd{dke]e}dd difdddke]e#dd difdrddke]e#dd difdrd{dke]e#dd difdrddke]e#dd difdrdndke]e~dd difdrddke]e~dd difdrd{dke]e~dd difdrddke]e~dd difdrdndke]eddid fdqddke]eddid fdrddke]edd difdqd{dke]edd difdqe]edd difdqe]edd difdrd{dke]edd difdre]edd difdre]etdd difdqd|dke]eudd difdqddke]evdd difdqddǍe]ewdd didqfdrd{dke]exdd didqfdrddǍe]edd die]edd dqe]edd difdqddke]edd dfdqddd̍e]edd difdqddke]edd dfdqddke]edd difdqddke]edd dfdqddke]edd difdqddke]edd dfdqddke]edd difdqddke]edd dfdqddke]edd difdqddke]edd dfdqddke]edd difdqddke]edd difdqddke]edd dfdqddke]edd difdqddke]edd dfdqddke]edd difdqddke]edd difdqddke]edd difdqddke]edd dfdqddke]edd difdqddke]edd dfdqddke]eedd diddۄ d܍e]eedd diddۄ d܍e]eedd diddۄ d܍e]eedd diddۄ d܍e]e$dd difdqdndke]e$dd difdqddke]e$dd difdqdndke]e%dd difdrddke]e%dd difdrddke]e%dd difdrddke]edd difdqdydde]edd difdqddke]edd difdqe]edd difdqddǍe]edd difdrddke]edd difdre]e=ddqd difdrddke]e=ddqd difdrddde]eddid drdqfddfdddۄ ddۄ ddۄ ddۄ fde]edd difdqddke]edd difdqddke]eDdd difdqdvdke]eDdd difdqddkgZejjdeeddd Ze^eEdd difdqddd̍e^eFdd difdrddd̍e^eldd didqfdrd dd̍e^emdd didqfdd dd̍e^endd didqfdrd dd̍e^eodd didqfdd dd̍e^epdd didqfdd dd̍e^eqdd didqfdd dd̍gZejjdeeddd Ze_e/dd difdqe_e.dd die_e,dd difdqe_edd difdqdrfddke_edd difddfddke_e"dd difdqddke_e#d	d difdqdndke_eNd
d didqdrdfdddd̍e_eMd
d didqdrdfdddd̍g	Zejjdeeddd ZejfddZdS (      N)arccosharcsinharctanh)suppress_warnings)Glpnlpmnlpmvlqnlqmnsph_harmeval_legendreeval_hermiteeval_laguerreeval_genlaguerrebinomcbrtexpm1log1pzetajnjvynyvivkvkngammagammalngammainc	gammainccgammaincinvgammainccinvdigammabetabetainc
betaincinvpochellipe	ellipeincellipkellipkm1	ellipkincellipjerferfcerfinverfcinvexp1expiexpnbdtrikbtdtrbtdtri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)IntegrationWarning)FuncDatadataz	boost.npzzgsl.npzz	local.npzc             O   s"   |j d| t| t| f||S )Ndataname)
setdefaultrN   DATASETS_BOOST)funcrP   akw rV   Q/var/www/html/virt/lib64/python3.6/site-packages/scipy/special/tests/test_data.pyrO   $   s    c             O   s"   |j d| t| t| f||S )NrP   )rQ   rN   DATASETS_GSL)rS   rP   rT   rU   rV   rV   rW   data_gsl)   s    rY   c             O   s"   |j d| t| t| f||S )NrP   )rQ   rN   DATASETS_LOCAL)rS   rP   rT   rU   rV   rV   rW   
data_local.   s    r[   c             C   s   t | |  S )N)r)   )krV   rV   rW   ellipk_3   s    r]   c             C   s   t | || S )N)r+   )fr\   rV   rV   rW   
ellipkinc_7   s    r_   c             C   s   t | |  S )N)r'   )r\   rV   rV   rW   ellipe_;   s    r`   c             C   s   t | || S )N)r(   )r^   r\   rV   rV   rW   
ellipeinc_?   s    ra   c             C   s   t | |  S )N)r,   )r\   rV   rV   rW   ellipj_C   s    rb   c             C   s
   t | dS )Ng      ?)r   )xrV   rV   rW   zeta_G   s    rd   c             C   s   t || jt|S )N)r   astypeint)numurc   rV   rV   rW   assoc_legendre_p_boost_K   s    ri   c             C   s   t d| |S )Nr   )r   )rg   rc   rV   rV   rW   legendre_p_via_assoc_O   s    rj   c             C   s   t | jd|d d S )Nlr      )r   re   )nrc   rV   rV   rW   lpn_R   s    ro   c             C   s   t | jd|d d S )Nrk   r   rl   rm   )r	   re   )rn   rc   rV   rV   rW   lqn_U   s    rp   c             C   s   t d| |d d S )Nr   rl   rm   )r   rm   )r   )rn   rc   rV   rV   rW   legendre_p_via_lpmnX   s    rq   c             C   s   t d| |d d S )Nr   rl   rm   )r   rm   )r
   )rn   rc   rV   rV   rW   legendre_q_via_lqmn[   s    rr   c             C   s   t | ||d tj d S )N   r   )rC   nppi)mqrc   rV   rV   rW   mathieu_ce_rad^   s    rx   c             C   s   t | ||d tj d S )Nrs   r   )rD   rt   ru   )rv   rw   rc   rV   rV   rW   mathieu_se_radb   s    ry   c             C   s    t | ||d tjtjd  S )Nr      )rE   rt   sqrtru   )rv   rw   rc   rV   rV   rW   mathieu_mc1_scaledf   s    r|   c             C   s    t | ||d tjtjd  S )Nr   rz   )rF   rt   r{   ru   )rv   rw   rc   rV   rV   rW   mathieu_ms1_scaledl   s    r}   c             C   s    t | ||d tjtjd  S )Nr   rz   )rG   rt   r{   ru   )rv   rw   rc   rV   rV   rW   mathieu_mc2_scaledp   s    r~   c             C   s    t | ||d tjtjd  S )Nr   rz   )rH   rt   r{   ru   )rv   rw   rc   rV   rV   rW   mathieu_ms2_scaledt   s    r   c             C   s   t | jd|S )Nrk   )r   re   )rn   rc   rV   rV   rW   eval_legendre_ldw   s    r   c             C   s   t | jd|S )Nd)r   re   )rn   rc   rV   rV   rW   eval_legendre_ddz   s    r   c             C   s   t | jd|S )Nrk   )r   re   )rn   rc   rV   rV   rW   eval_hermite_ld}   s    r   c             C   s   t | jd|S )Nrk   )r   re   )rn   rc   rV   rV   rW   eval_laguerre_ld   s    r   c             C   s   t | jd|S )Nr   )r   re   )rn   rc   rV   rV   rW   eval_laguerre_dd   s    r   c             C   s   t | jd||S )Nrk   )r   re   )rn   rT   rc   rV   rV   rW   eval_genlaguerre_ldd   s    r   c             C   s   t | jd||S )Nr   )r   re   )rn   rT   rc   rV   rV   rW   eval_genlaguerre_ddd   s    r   c             C   s   t d|  ||S )Nrl   )r4   )yrn   prV   rV   rW   bdtrik_comp   s    r   c             C   s   t | |d| S )Nrl   )r6   )rT   br   rV   rV   rW   btdtri_comp   s    r   c             C   s   t d|  ||S )Nrl   )r7   )r   r   rc   rV   rV   rW   btdtria_comp   s    r   c             C   s   t | d| |S )Nrl   )r8   )rT   r   rc   rV   rV   rW   btdtrib_comp   s    r   c             C   s   t d| |S )Ng      ?)r:   )r   rc   rV   rV   rW   gdtr_   s    r   c             C   s   t d| |S )Ng      ?)r;   )r   rc   rV   rV   rW   gdtrc_   s    r   c             C   s   t d| |S )Ng      ?)r<   )r   r   rV   rV   rW   gdtrix_   s    r   c             C   s   t d| d| S )Ng      ?rl   )r<   )r   r   rV   rV   rW   gdtrix_comp   s    r   c             C   s   t d| |S )Ng      ?)r=   )r   rc   rV   rV   rW   gdtrib_   s    r   c             C   s   t dd|  |S )Ng      ?rl   )r=   )r   rc   rV   rV   rW   gdtrib_comp   s    r   c             C   s   t d|  ||S )Nrl   )r>   )r   rn   r   rV   rV   rW   nbdtrik_comp   s    r   c             C   s   t d|  |S )Nrl   )r?   )r   rv   rV   rV   rW   pdtrik_comp   s    r   c             C   s   dt | | S )Ng      ?)r&   )zrv   rV   rV   rW   poch_   s    r   c             C   s   dt | |  S )Ng      ?)r&   )r   rv   rV   rV   rW   
poch_minus   s    r   c             C   s   t | jd|S )Nrk   )rK   re   )rn   rc   rV   rV   rW   spherical_jn_   s    r   c             C   s   t | jd|S )Nrk   )rL   re   )rn   rc   rV   rV   rW   spherical_yn_   s    r   c             C   s   t | |||}|j|jfS )N)r   realimag)rv   rn   thetaphir   rV   rV   rW   	sph_harm_   s    r   c             C   s   t | d|  }|j|jfS )Ny              ?)r   r   r   )rc   r   r   rV   rV   rW   cexpm1   s    r   c             C   s   t | d|  }|j|jfS )Ny              ?)r   r   r   )rc   r   r   rV   rV   rW   clog1p   s    r   zacosh_data_ipp-acosh_datarl   g-a=)rtoly                zasinh_data_ipp-asinh_datagdy=zatanh_data_ipp-atanh_dataz%assoc_legendre_p_ipp-assoc_legendre_prz      zlegendre_p_ipp-legendre_pz%legendre_p_large_ipp-legendre_p_largeg [n;=gvIh%,=F)r   Z
vectorizedg7QU=gt0=gvIh%L=g+=g-=zbeta_exp_data_ipp-beta_exp_datagvIh%<=z#beta_small_data_ipp-beta_small_datazbeta_med_data_ipp-beta_med_dataz%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㈵>gvIh%\=   gHת>z#ibeta_inva_data_ipp-ibeta_inva_datag:0y5>   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_datagA:)>zcbrt_data_ipp-cbrt_datazdigamma_data_ipp-digamma_dataz%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_data2zexpint_1_data_ipp-expint_1_datay              ?zexpinti_data_ipp-expinti_dataz+expinti_data_double_ipp-expinti_data_doublez'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_datagP7xf )r   Zatolz'bessel_i_int_data_ipp-bessel_i_int_datag&.>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_dataz'bessel_k_int_data_ipp-bessel_k_int_datazbessel_k_data_ipp-bessel_k_dataz#bessel_y01_data_ipp-bessel_y01_dataz!bessel_yn_data_ipp-bessel_yn_dataz!bessel_yv_data_ipp-bessel_yv_datag|=zzeta_data_ipp-zeta_datac             C   s   | dkS )Nrl   rV   )srV   rV   rW   <lambda>  s    r   )param_filterzzeta_neg_data_ipp-zeta_neg_datac             C   s   | dkS )Nrl   rV   )r   rV   rV   rW   r     s    z!zeta_1_up_data_ipp-zeta_1_up_datac             C   s   | dkS )Nrl   rV   )r   rV   rV   rW   r     s    z'zeta_1_below_data_ipp-zeta_1_below_datac             C   s   | dkS )Nrl   rV   )r   rV   rV   rW   r     s    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_harmonicc             C   s   t j| jdS )N?)rt   onesshape)r   rV   rV   rW   r     s    c             C   s   t j| jdS )Nr   )rt   r   r   )r   rV   rV   rW   r     s    c             C   s   t j| dt j k | dkS )Nrz   r   )rt   logical_andru   )r   rV   rV   rW   r     s    c             C   s   t j| t jk | dkS )Nr   )rt   r   ru   )r   rV   rV   rW   r     s    )r   r   z#sph_bessel_data_ipp-sph_bessel_dataz%sph_neumann_data_ipp-sph_neumann_datagV瞯=zowenst_data_ipp-owens_tzowenst_data_ipp-owens_t_alargetest)idsc             C   s   t |  d S )N)_test_factory)r   rV   rV   rW   
test_boost  s    r   Z
mathieu_abZmathieu_ce_segHz>Zmathieu_mc_msc             C   s   t |  d S )N)r   )r   rV   rV   rW   test_gsl  s    r   Zellipkinc_neg_mr*   Zellipeinc_neg_mZlog1p_expm1_complexr   r   Zellipc             C   s   t |  d S )N)r   )r   rV   rV   rW   
test_local  s    r   c             C   sF   t  6}|jtd tjdd | j|d W dQ R X W dQ R X dS )z
Boost testz,The occurrence of roundoff error is detectedignore)all)dtypeN)r   filterrM   rt   Zerrstatecheck)r   r   suprV   rV   rW   r     s    r   )osZnumpyrt   r   r   r   Znumpy.testingr   ZpytestZ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/   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   Zscipy.integraterM   Zscipy.special._testutilsrN   loadpathjoindirname__file__rR   rX   rZ   rO   rY   r[   r]   r_   r`   ra   rb   rd   ri   rj   ro   rp   rq   rr   rx   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   ZBOOST_TESTSmarkZparametrizereprr   Z	GSL_TESTSr   ZLOCAL_TESTSr   doubler   rV   rV   rV   rW   <module>   s   %


 "