a
    ˆù»j¹$ ã                   @   s\  d Z ddlZddlmZmZ ddlmZ ddlZddlZddl	m
Z
 ddlmZ ddlmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZ ddlmZm Z m!Z!m"Z"m#Z#m$Z$ zddl%Z%W n e&yÞ   ed	ƒZ%Y n0 ee%d
ƒdd„ ƒZ'ee%dƒdd„ ƒZ(ee%dƒdd„ ƒZ)ee%dƒdd„ ƒZ*ee%dƒdd„ ƒZ+ee%dƒdd„ ƒZ,ee%dƒdd„ ƒZ-ee%dƒdd„ ƒZ.ee%dƒd d!„ ƒZ/ee%d"ƒej0j1d#d$„ ƒƒZ2ee%dƒd%d&„ ƒZ3ee%d'ƒd(d)„ ƒZ4ee%d'ƒd*d+„ ƒZ5d,Z6ee%dƒd-d.„ ƒZ7ee%dƒd/d0„ ƒZ8ee%dƒej0j1d1d2„ ƒƒZ9ee%dƒej0j1d3d4„ ƒƒZ:ee%dƒd5d6„ ƒZ;ee%dƒd7d8„ ƒZ<ee%dƒej0j1d9d:„ ƒƒZ=ee%dƒej0j1d;d<„ ƒƒZ>ee%dƒd=d>„ ƒZ?ee%dƒd?d@„ ƒZ@ee%dƒdAdB„ ƒZAdCdD„ ZBej0j1ee%dƒdEdF„ ƒƒZCej0j1ee%dƒdGdH„ ƒƒZDej0j1ee%dƒdIdJ„ ƒƒZEej0j1ee%dƒdKdL„ ƒƒZFeGdMdMdN�ZHej0j1ee%dOƒG dPdQ„ dQƒƒƒZIdS )Rz4
Test SciPy functions versus mpmath, if available.

é    N)Úassert_Úassert_allclose)Úpi)Ú_pep440)ÚMissingModuleÚcheck_versionÚFuncDataÚassert_func_equal)
ÚArgÚFixedArgÚ
ComplexArgÚIntArgÚassert_mpmath_equalÚnonfunctional_tooslowÚ
trace_argsÚtime_limitedÚexception_to_nanÚ
inf_to_nan)Ú_sinpiÚ_cospiÚ_lgam1pÚ_lanczos_sum_expg_scaledÚ_log1pmxÚ	_igam_facÚmpmathz0.10c               	   C   s„   g } t  ddd¡D ]H}t  ddt j d¡D ].}|t  d| ¡ }|  |tt |¡ƒf¡ q*qt j	| t j
d�} ttj| ddƒ ¡  d S )	Ni�ÿÿÿé   é
   r   é   ù              ð?©Zdtypeé   )ÚnpÚlogspaceÚlinspacer   ÚexpÚappendÚcomplexr   ÚeiÚarrayZcdoubler   ÚscÚexpiÚcheck)ÚdatasetÚrÚpÚz© r0   úEE:\soccer\ml_env\Lib\site-packages\scipy/special/tests/test_mpmath.pyÚtest_expi_complex#   s    r2   z0.19c                  C   sŽ   g } dD ]^}t  ddd¡D ]J}t d¡�, |  ||tt ||¡ƒf¡ W d   ƒ q1 sZ0    Y  qqt  | ¡} tt	j
| dddd	� ¡  d S )
N)é2   é3   r   é   éÈ   éd   ©r   r    r   ç‚vIhÂ%<=©Úrtol)r!   r"   r   Úworkdpsr%   ÚfloatÚexpintÚasarrayr   r)   Úexpnr+   )r,   ÚnÚxr0   r0   r1   Útest_expn_large_n3   s    >
rC   c                  C   s¨   g } g d¢}|D ]n}|D ]d}|D ]Z}|d|  }t  d¡�  tt  ||¡ƒ}W d   ƒ n1 s`0    Y  |  |||f¡ q qqt | ¡} tdd„ | dddd	� ¡  d S )
N)g     àXÀg      #Àç      à¿ç      à?g      #@g     àX@r   éx   c                 S   s   t  | j|¡S ©N©r)   Úhyp0f1Úreal©Úvr/   r0   r0   r1   Ú<lambda>U   ó    z$test_hyp0f1_gh5764.<locals>.<lambda>r8   r   r9   r:   )	r   r<   r&   rI   r%   r!   r(   r   r+   )r,   ZaxisrL   rB   Úyr/   Úresr0   r0   r1   Útest_hyp0f1_gh5764D   s    .
ÿrQ   c                  C   sF   t  ddd¡} t | d¡}t  dd„ | D ƒ¡}t|| t¡dd� d S )	Né–   é´   é   rE   c                 S   s   g | ]}t  |d ¡‘qS )rE   ©r   rI   )Ú.0rL   r0   r0   r1   Ú
<listcomp>^   rN   z'test_hyp0f1_gh_1609.<locals>.<listcomp>çê-�™—q=r:   )r!   r#   r)   rI   r(   r   Úastyper=   )ÚvvÚafÚmfr0   r0   r1   Útest_hyp0f1_gh_1609Y   s    r]   z1.1.0c                  C   sÚ   g } t  dd¡D ]l}t  ddd¡D ]X}| }|  ||dtt ||d¡ƒf¡ | | d }|  ||dtt ||d¡ƒf¡ q"qdD ].}dD ]$}|  ||dtt ||d¡ƒf¡ qŠq‚t  | ¡} tt	j| dd	d
dd� 
¡  d S )Néûÿÿÿé   é   r   r    )ç      %Àç      ø¿rD   r   rE   r    r   )ç      ð¿rD   r   rE   r    ç      ø?r   ç      @©r   r    r   é   çVçž¯Ò<çê-�™—a=©r;   Úatol)r!   Úaranger#   r%   r=   r   Úhyperur(   r   r)   r+   )r,   rA   ÚbÚar0   r0   r1   Útest_hyperu_around_0f   s     $$
rp   ú1.0.0c                     sx   ddg} | t tjg d¢dd�ƒ7 } dd„ | D ƒ} tdd	�‰ ‡ fd
d„| D ƒ}tj|tjd�}ttj	|dddd� 
¡  d S )N)r   éÿÿÿÿrr   çffffffæ?)r   éþÿÿÿrt   rs   )r   r    gffffffæ¿éüÿÿr5   )Úrepeatc                 S   sD   g | ]<\}}}}||krt |ƒ|kr|d k r|dkr||||f‘qS )r   ru   )Úround)rV   ro   rn   ÚcrB   r0   r0   r1   rW   „   s   
$ÿz.test_hyp2f1_strange_points.<locals>.<listcomp>T)Z	eliminatec                    s&   g | ]}|t tj|i ˆ ¤Žƒf ‘qS r0   ©r=   r   Úhyp2f1©rV   r.   ©Úkwr0   r1   rW   ‰   rN   r   ©r   r    r   rg   ç»½×Ùß|Û=r:   )ÚlistÚ	itertoolsÚproductÚdictr!   r(   Úfloat64r   r)   rz   r+   ©Úptsr,   r0   r|   r1   Útest_hyp2f1_strange_points}   s    þÿ
r‡   z0.13c                  C   sn   g d¢} dd„ | D ƒ}t j|t jd�}t jdd��( ttj|ddd	d
� ¡  W d   ƒ n1 s`0    Y  d S )N)©r    r   rg   r   )çUUUUUUÕ?gUUUUUUå?g«ªªªªªê?g      ë?)ç      Ð?rE   g      è?gX¤<Ýšï?)r   rt   éýÿÿÿrg   )r   r‹   rt   rg   )r   rb   rb   rg   rˆ   )gôýÔxé&ç?rr   r^   g333333Ó?)rŠ   r‰   r   ç+‡ÙÎ÷ï?)rŠ   r‰   r   rr   )r   rg   r_   ç®Gáz®ï?)rd   rD   rg   r�   )r   re   g      
ÀrŒ   )éøÿÿÿg*4 ]92@g|¼ÌÁOœ%@gC†Žuˆí?)éöÿÿÿé„  ra   r�   )r�   r�   ç      %@r�   )rr   r   r    ç      ð?)rr   r   r    rc   )r‹   é   r_   r’   )r‹   r“   r_   rc   )rE   g     ØpÀrd   gmËŸïï?c                 S   s    g | ]}|t tj|Ž ƒf ‘qS r0   ry   r{   r0   r0   r1   rW   ¨   rN   z0test_hyp2f1_real_some_points.<locals>.<listcomp>r   Úignore©Úinvalidr~   r5   r   r:   )r!   r(   r„   Úerrstater   r)   rz   r+   r…   r0   r0   r1   Útest_hyp2f1_real_some_points�   s
    r˜   ú0.14c                     sN   g d¢} dd„ ‰ ‡ fdd„| D ƒ}t j|t jd�}ttj|ddd	d
� ¡  d S )N))ép   )r4   r   )é÷ÿÿÿr   gwJëÿï¿)r   é|üÿÿr‘   r�   )r   rœ   ra   r�   c                 S   s&   t | tƒrt| d ƒ| d  S | S d S )Nr   r    )Ú
isinstanceÚtupler=   ©rB   r0   r0   r1   Úfev¹   s    
z&test_hyp2f1_some_points_2.<locals>.fevc                    s*   g | ]"}t tˆ |ƒƒttj|Ž ƒf ‘qS r0   )rž   Úmapr=   r   rz   r{   ©r    r0   r1   rW   ¿   rN   z-test_hyp2f1_some_points_2.<locals>.<listcomp>r   r~   r5   r   r:   )r!   r(   r„   r   r)   rz   r+   r…   r0   r¢   r1   Útest_hyp2f1_some_points_2¯   s
    r£   c                  C   sÊ   g } dD ]f}dD ]\}dD ]R}dD ]H}zt t ||||¡ƒ}W n tyR   Y q Y n0 |  |||||f¡ q qqqtj| tjd�} tjdd��* t	t
j| dd	d
dd� ¡  W d   ƒ n1 s¼0    Y  d S )N)r�   r^   çÍÌÌÌÌÌü¿gÍÌÌÌÌÌü?r_   r   )g      Àrr   r    gš™™™™™@)r›   r¤   r_   gffffff4@)r�   g)\�Âõ(ð¿ç®Gáz®ï¿r   g333333ã?gffffffî?rd   r   r   r”   r•   r~   r5   ç•Ö&è.>T©r;   Úignore_inf_sign)r=   r   rz   Ú	Exceptionr%   r!   r(   r„   r—   r   r)   r+   )r,   ro   rn   rx   r/   rL   r0   r0   r1   Útest_hyp2f1_real_someÅ   s    
ÿrª   z0.12c                  C   sŽ  d} t  | dft j¡}t j d¡ t j d| ¡|d d …df< t j d| ¡|d d …df< t j d| ¡|d d …df< dt j | ¡ d |d d …df< |d d …df  d	t j d| ¡ 9  < |d d …df  d	t j d| ¡ 9  < |d d …df  d	t j d| ¡ 9  < |D ]j}tj	d
k �rPt
|d d… ƒ ¡ t
|d ƒk�rPt
|d d… ƒ ¡ |d< ttjt|d d… ƒŽ ƒ|d< �qttj|dddd� ¡  d S )Néô  r_   éÒ  rd   r   r    r   rg   rr   r™   r5   r~   r¦   r:   )r!   Úzerosr„   ÚrandomÚseedZparetoZrandÚrandintr   Ú__version__ÚabsÚmaxr=   rz   rž   r   r)   r+   )Znpointsr,   Zdsr0   r0   r1   Útest_hyp2f1_real_randomØ   s      &&&""r´   c               	   C   sò   t jjt jj } }zÆdt j_t t ddd¡t ddd¡¡\}}t t ddd¡t ddd¡¡\}}tj| 	¡ | 	¡ f dtj| 	¡ | 	¡ f   }t
tjd	d
„ |ddd� t
tjdd
„ |ddd� W | | t j_t j_n| | t j_t j_0 d S )NéF   r�   r    é   é   i°ÿÿÿgš™™™™™é?r   c                 S   s   t t | ¡ƒS rG   )r&   r   ÚerfrŸ   r0   r0   r1   rM      rN   z"test_erf_complex.<locals>.<lambda>Fr9   ©Ú
vectorizedr;   c                 S   s   t t | ¡ƒS rG   )r&   r   ÚerfcrŸ   r0   r0   r1   rM     rN   )r   ÚmpÚdpsÚprecr!   Úmeshgridr#   r"   Úr_Úravelr	   r)   r¸   r»   )Úold_dpsÚold_precÚx1Úy1Zx2Úy2Zpointsr0   r0   r1   Útest_erf_complexö   s    $$0ÿÿrÇ   z0.15c                     sd  g } dD ]Þ}|   dd|fdd|fdd|fdd|fdd|fdd|fdd|fdd|fdd|fdd	|fd
d|fdd	|fdd|fdd	|fd
d|fdd|fdd|fdd|fd
d|fdd|fdd|fdd|fd
d|fdd|fdd|fdd|fg¡ qdd„ ‰ ‡ fdd„| D ƒ}tj|tjd�}dd„ }tjdd��( t||dd
dd d!� ¡  W d   ƒ n1 �sV0    Y  d S )"N)r¥   gmçû©ñÒá¿ç�íµ ÷Æ°>gL7‰A`åÀ?r    r    rr   rt   g333333û?g333333û¿gš™™™™™Àr   r·   rg   é   r_   r‹   r^   rŽ   iõÿÿÿgš™™™™™ @gš™™™™™&@gš™™™™™ Àgš™™™™™&Àc                 S   s2   |t |ƒkr$|dkr$|dkr dS dS t | ||¡S ©Nr    r   )Úintr   Úlegenp)ÚnuÚmurB   r0   r0   r1   Úmplegenp-  s
    ztest_lpmv.<locals>.mplegenpc                    s*   g | ]"}|ˆ |d  |d |d ƒf ‘qS )r    r   r   r0   r{   ©rÏ   r0   r1   rW   6  rN   ztest_lpmv.<locals>.<listcomp>r   c                 S   s   t  |  t¡||¡S rG   )r)   ÚlpmvrY   rË   )rÎ   rÍ   rB   r0   r0   r1   Úevf9  s    ztest_lpmv.<locals>.evfr”   r•   rf   r   ç›+¡†›„=rj   )Úextendr!   r(   r„   r—   r   r+   )r†   rB   r,   rÒ   r0   rÐ   r1   Ú	test_lpmv  sH    æ	rÕ   c                  C   s  t j d¡ t jt  ddd¡t  ddd¡t  ddd¡t  dd	d¡t  dd	d¡d
 dddddf
 } | }t  t  |d d …d f | d d d …f ¡¡ dd¡j	}t
jjt
jj }}zPdt
j_ttjdd„ |dddd� ttjdd„ |ddd� W || t
j_t
j_n|| t
j_t
j_0 d S )Nr¬   é8ÿÿÿr6   r5   r�   r   rr   r    r·   rE   gffffffÀr‹   g33333YÀg3333³‰ÃÀr   é�  c                 S   s   t t | |¡ƒS rG   )r=   r   Úbeta©ro   rn   r0   r0   r1   rM   W  rN   ztest_beta.<locals>.<lambda>Fr   T)rº   r;   r¨   c                 S   s   t t tt | |¡ƒ¡ƒS rG   )r=   r   Úlogr²   rØ   rÙ   r0   r0   r1   rM   _  rN   r¹   )r!   r®   r¯   rÀ   r"   rl   r(   Zbroadcast_arraysÚreshapeÚTr   r¼   r½   r¾   r	   r)   rØ   Zbetaln)rn   ro   ÚabrÂ   rÃ   r0   r0   r1   Ú	test_betaD  s8    
û4ûûrÞ   gš™™™™™É?c                  C   s–   t t g d¢¡ } t ddtj d¡}t | |¡\} }| t d| ¡ }tjd| d| f  ¡ }dd„ |D ƒ}t |¡}t	t
j|ddd	d
� ¡  d S )N)gš™™™™™¹¿g{®Gáz„¿r   g{®Gáz„?gš™™™™™¹?r   r   r`   r   r    c                 S   s   g | ]}|t t |¡ƒf‘qS r0   ©r&   r   Úloggamma©rV   Zz0r0   r0   r1   rW   y  rN   z3test_loggamma_taylor_transition.<locals>.<listcomp>ç‚vIhÂ%,=r:   )ÚLOGGAMMA_TAYLOR_RADIUSr!   r(   r#   r   r¿   r$   rÀ   Úflattenr   r)   rà   r+   ©r-   ÚthetaÚdzr/   r,   r0   r0   r1   Útest_loggamma_taylor_transitionn  s    
rè   c                  C   s˜   t  dt  t¡d¡} t  ddt j d¡}t  | |¡\} }| t  d| ¡ }t jd| d| f  	¡ }dd	„ |D ƒ}t  
|¡}ttj|ddd
d� ¡  d S )Niðÿÿÿr   r   r   r`   r   r    c                 S   s   g | ]}|t t |¡ƒf‘qS r0   rß   rá   r0   r0   r1   rW   ‰  rN   z(test_loggamma_taylor.<locals>.<listcomp>râ   r:   )r!   r"   Úlog10rã   r#   r   r¿   r$   rÀ   rä   r(   r   r)   rà   r+   rå   r0   r0   r1   Útest_loggamma_taylor  s    
rê   c                  C   sÚ   t jt  ddd¡ dt  ddd¡f } |  ¡ }t  | |¡\} }| d|  }t  ddd¡ ddd¡}|t  |f|j ¡  	¡ }t
 d¡� d	d
„ |D ƒ}W d   ƒ n1 sª0    Y  t  |¡}ttj|dddd� ¡  d S )Nrr   éóÿÿÿrg   r   r   iVÿÿÿr    r7   c                 S   s   g | ]}|t t |¡ƒf‘qS r0   )r&   r   Úrgammará   r0   r0   r1   rW   ¢  rN   z%test_rgamma_zeros.<locals>.<listcomp>rX   r:   )r!   rÀ   r"   Úcopyr¿   rl   rÛ   ÚdstackÚsizerä   r   r<   r(   r   r)   rì   r+   )ÚdxÚdyrç   r­   r/   r,   r0   r0   r1   Útest_rgamma_zeros“  s    &,
rò   c               	   C   s  t  t jd¡} t| ƒg}t  t jd¡} | t| ƒ¡ t |¡}tjdt ddd¡ dt ddd¡df }| 	¡ }t 
||¡\}}|d	|  }|t |f|j ¡  ¡ }t  d
¡� dd„ |D ƒ}W d   ƒ n1 sÔ0    Y  t |¡}ttj|dddd� ¡  d S )Nrd   rD   g¸…ëQ¸Î¿rr   éñÿÿÿr   r   g¸…ëQ¸Î?r   r   c                 S   s   g | ]}|t t |¡ƒf‘qS r0   ©r&   r   Údigammará   r0   r0   r1   rW   ½  rN   z&test_digamma_roots.<locals>.<listcomp>r    rÓ   r:   )r   Zfindrootrõ   r=   r%   r!   r(   rÀ   r"   rí   r¿   rî   rï   rä   r<   r   r)   r+   )ÚrootÚrootsrð   rñ   rç   r/   r,   r0   r0   r1   Útest_digamma_roots¬  s    

*,
rø   c                     sÂ   t tjƒ‰ t ddd¡ } tjt ddd¡ dt ddd¡f }t | |¡\} }| d|   ¡ }t d¡�" ‡ fd	d
„|D ƒ}W d   ƒ n1 s’0    Y  t 	|¡}t
tj|dddd� ¡  d S )Né,  éâÿÿÿr7   r   r‹   r_   r   é(   c                    s   g | ]}|t ˆ |ƒƒf‘qS r0   )r&   rá   ©rõ   r0   r1   rW   Ñ  rN   z(test_digamma_negreal.<locals>.<listcomp>r    r9   r:   )r   r   rõ   r!   r"   rÀ   r¿   rä   r<   r?   r   r)   r+   ©rB   rO   r/   r,   r0   rü   r1   Útest_digamma_negrealÃ  s    
&0
rþ   c                  C   sœ   t  ddd¡ } t  g d¢¡}t  | |¡\} }| d|   ¡ }t d¡� dd„ |D ƒ}W d   ƒ n1 sl0    Y  t  |¡}tt	j
|d	d
dd� ¡  d S )Nrù   rú   r7   )gffffffÀgš™™™™™Àgš™™™™™@gffffff@r   r   c                 S   s   g | ]}|t t |¡ƒf‘qS r0   rô   rá   r0   r0   r1   rW   â  rN   z)test_digamma_boundary.<locals>.<listcomp>r   r    r9   r:   )r!   r"   r(   r¿   rä   r   r<   r?   r   r)   rõ   r+   rý   r0   r0   r1   Útest_digamma_boundary×  s    ,
rÿ   c                  C   s¨   d} t  d|  d|  d¡}| ¡ }t  ||¡\}}| ¡ | ¡  }}t d¡�$ dd„ t||ƒD ƒ}W d   ƒ n1 sx0    Y  t  |¡}t	t
j|ddd	d
� ¡  d S )Nr`   rE   r   r3   r7   c              
   S   s*   g | ]"\}}||t tj||d d�ƒf‘qS )T©rn   Úregularized)r=   r   Úgammainc)rV   Za0Zx0r0   r0   r1   rW   ö  s   ÿz*test_gammainc_boundary.<locals>.<listcomp>r8   rX   r:   )r!   r#   rí   r¿   rä   r   r<   Úzipr(   r   r)   r  r+   )Zsmallro   rB   r,   r0   r0   r1   Útest_gammainc_boundaryì  s    ÿ$
r  c                     sv   dd„ ‰ t  dd¡} t  ddt ¡}dt  | t  d| ¡¡  ¡ }t  ‡ fd	d
„|D ƒ¡}ttj	|dddd� 
¡  d S )Nc                 S   s   t t dd|  ¡ƒS ©Nr   r    )r&   r   Úpolylog©r/   r0   r0   r1   Úspence  s    z"test_spence_circle.<locals>.spencerE   rd   r   r   r    r   c                    s   g | ]}|ˆ |ƒf‘qS r0   r0   rá   ©r  r0   r1   rW     rN   z&test_spence_circle.<locals>.<listcomp>rÓ   r:   )r!   r#   r   Úouterr$   rä   r?   r   r)   r  r+   )r-   ræ   r/   r,   r0   r	  r1   Útest_spence_circle  s    r  c                  C   sº   t  t¡j} t jt  ddd¡ dt  ddd¡f }| ¡ }t  ||¡\}}|d|  }t  ddd¡ 	ddd¡}|t  
|f|j ¡  ¡ }t  d	d
„ |D ƒ¡}tt|ddd|  d� ¡  d S )Nr   rë   rg   r   éœÿÿÿr7   r    rr   c                 S   s   g | ]}|t t |¡ƒf‘qS r0   )r&   r   Úsinpirá   r0   r0   r1   rW     s   ÿz$test_sinpi_zeros.<locals>.<listcomp>r   r:   )r!   Úfinfor=   ÚepsrÀ   r"   rí   r¿   rl   rÛ   rî   rï   rä   r?   r   r   r+   ©r  rð   rñ   rç   r­   r/   r,   r0   r0   r1   Útest_sinpi_zeros  s    &
ÿr  c                  C   s¾   t  t¡j} t jt  ddd¡ dt  ddd¡f }| ¡ }t  ||¡\}}|d|  }t  ddd¡d  	ddd	¡}|t  
|f|j ¡  ¡ }t  d
d„ |D ƒ¡}tt|ddd|  d� ¡  d S )Nr   rë   rg   r   r  r7   r    rE   rr   c                 S   s   g | ]}|t t |¡ƒf‘qS r0   )r&   r   Úcospirá   r0   r0   r1   rW   -  s   ÿz$test_cospi_zeros.<locals>.<listcomp>r   r:   )r!   r  r=   r  rÀ   r"   rí   r¿   rl   rÛ   rî   rï   rä   r?   r   r   r+   r  r0   r0   r1   Útest_cospi_zeros$  s    &
ÿr  c            	   	   C   s¬   dd„ } dd„ }t  ddd¡}t jt  dd	d
¡ dt  d	dd
¡f }g }|D ]:}tt |¡ƒ}|D ]"}|| }| |||||ƒf¡ qbqLt  |¡}t	| |dddd� 
¡  d S )Nc                 S   s   t  | |¡d S ©Nr   ©r)   Zellipj©ÚuÚmr0   r0   r1   Údn9  s    z"test_dn_quarter_period.<locals>.dnc                 S   s   t tjd| |d�ƒS ©Nr  r  )r=   r   Úellipfunr  r0   r0   r1   Ú	mpmath_dn<  s    z)test_dn_quarter_period.<locals>.mpmath_dnr   r    r`   rr   ró   r   r8   r   r   r:   )r!   r#   rÀ   r"   r=   r   Úellipkr%   r?   r   r+   )	r  r  r  Zdur,   Zm0Zu0Zdu0r.   r0   r0   r1   Útest_dn_quarter_period7  s    &
r  c                 C   sf   t  |¡�H t  | ¡} t  | jt j dt j  ¡}t  t  | ¡|¡}W d   ƒ n1 sX0    Y  |S r  )r   r<   ZmpcÚceilÚimagr   Úlambertwr$   )r/   r½   ZunwindrP   r0   r0   r1   Ú_mpmath_wrightomegaP  s
    
0r"  c            	      C   s4  t  ddd¡ } t  t jt j¡g}t  t jt j ¡g}t  t j t j¡g}t  t j t j ¡g}tdƒD ]h}| t  |d t j¡¡ | t  |d t j ¡¡ | t  |d t j¡¡ | t  |d t j ¡¡ qht  ||||f¡}t  | |¡\} }| d|   	¡ }t  
dd„ |D ƒ¡}ttj|dd	d
d� ¡  d S )Nr   r   é   r3   rr   r   c                 S   s   g | ]}|t t|d ƒƒf‘qS ©r#  ©r&   r"  rá   r0   r0   r1   rW   i  s   ÿz+test_wrightomega_branch.<locals>.<listcomp>r    ç:Œ0âŽyE>r:   )r!   r"   Ú	nextafterr   ÚinfÚranger%   Zhstackr¿   rä   r?   r   r)   Úwrightomegar+   )	rB   Zpicut_aboveZpicut_belowZnpicut_aboveZnpicut_belowÚirO   r/   r,   r0   r0   r1   Útest_wrightomega_branchX  s"    
ÿr,  c                  C   sn   t  dd¡} t  ddt j ¡}t  | |¡\} }| d|   ¡ }t  dd„ |D ƒ¡}ttj|dddd	� 	¡  d S )
Nrt   r    r   r   c                 S   s   g | ]}|t t|d ƒƒf‘qS r$  r%  rá   r0   r0   r1   rW   x  s   ÿz,test_wrightomega_region1.<locals>.<listcomp>r   rh   r:   ©
r!   r#   r   r¿   rä   r?   r   r)   r*  r+   rý   r0   r0   r1   Útest_wrightomega_region1o  s    
ÿr.  c                  C   sn   t  dd¡} t  dt j d¡}t  | |¡\} }| d|   ¡ }t  dd„ |D ƒ¡}ttj|dddd	� 	¡  d S )
Nrt   r    rr   r   c                 S   s   g | ]}|t t|d ƒƒf‘qS r$  r%  rá   r0   r0   r1   rW   ‡  s   ÿz,test_wrightomega_region2.<locals>.<listcomp>r   rh   r:   r-  rý   r0   r0   r1   Útest_wrightomega_region2~  s    
ÿr/  c                  C   sn   t  ddd¡t  ddd¡ } }t  | |¡\} }| d|   ¡ }t  dd„ |D ƒ¡}ttj|dddd	� ¡  d S )
Nrr   r    r#  r   c                 S   s   g | ]}|t t |¡ƒf‘qS r0   )r&   r   r!  rá   r0   r0   r1   rW   ˜  s   ÿz(test_lambertw_smallz.<locals>.<listcomp>r   r9   r:   )	r!   r#   r¿   rä   r?   r   r)   r!  r+   rý   r0   r0   r1   Útest_lambertw_smallz‘  s    
ÿr0  r6   ©ZmaxprecZmaxtermsz0.17c                   @   sÄ  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zejjd5d6d7�d8d9„ ƒZ d:d;„ Z!ejjd5d6d7�d<d=„ ƒZ"d>d?„ Z#d@dA„ Z$dBdC„ Z%dDdE„ Z&dFdG„ Z'dHdI„ Z(dJdK„ Z)dLdM„ Z*dNdO„ Z+dPdQ„ Z,dRdS„ Z-dTdU„ Z.dVdW„ Z/dXdY„ Z0dZd[„ Z1d\d]„ Z2d^d_„ Z3d`da„ Z4dbdc„ Z5ddde„ Z6dfdg„ Z7dhdi„ Z8djdk„ Z9dldm„ Z:dndo„ Z;dpdq„ Z<drds„ Z=dtdu„ Z>dvdw„ Z?dxdy„ Z@dzd{„ 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—„ ZOd˜d™„ ZPejjd5dš�d›dœ„ ƒZQd�dž„ ZRejjd5dš�dŸd „ ƒZSeTd¡d¢„ ƒZUd£d¤„ ZVd¥d¦„ ZWejjd5d§d7�d¨d©„ ƒZXdªd«„ ZYd¬d­„ ZZd®d¯„ Z[ejjd5dš�d°d±„ ƒZ\eTd²d³„ ƒZ]ejjd5dš�d´dµ„ ƒZ^ej _d¶¡d·d¸„ ƒZ`d¹dº„ Zad»d¼„ Zbejjd5dš�d½d¾„ ƒZcd¿dÀ„ ZddÁdÂ„ ZedÃdÄ„ ZfeTdÅdÆ„ ƒZgdÇdÈ„ Zhej _dÉ¡dÊdË„ ƒZidÌdÍ„ ZjeTdÎdÏ„ ƒZkdÐdÑ„ ZldÒdÓ„ ZmdÔdÕ„ ZndÖd×„ Zoejjd5dØd7�dÙdÚ„ ƒZpeTdÛdÜ„ ƒZqdÝdÞ„ Zrdßdà„ Zsejjd5dš�dádâ„ ƒZtejjd5dãd7�dädå„ ƒZudædç„ Zvejjd5dèd7�dédê„ ƒZwdëdì„ Zxdídî„ Zyejjdïdð�dñdò„ ƒZzdódô„ Z{dõdö„ Z|d÷dø„ Z}dùdú„ Z~dûdü„ Zdýdþ„ Z€dÿ�d „ Z��d�d„ Z‚�d�d„ Zƒ�d�d„ Z„�d�d„ Z…�d	�d
„ Z†�d�d„ Z‡�d�d„ Zˆ�d�d„ Z‰�d�d„ ZŠ�d�d„ Z‹�d�d„ ZŒ�d�d„ Z��d�d„ ZŽ�d�d„ Z��d�d„ Z��d�d „ Z‘�d!�d"„ Z’�d#�d$„ Z“ejjd5�d%d7��d&�d'„ ƒZ”�d(S ()  ÚTestSystematicc                 C   s<   t dd„ tjtddƒgdd� t dd„ tjtdd	ƒgƒ d S )
Nc                 S   s   t  | ¡d S ©Nr   ©r)   Zairyr  r0   r0   r1   rM   «  rN   z,TestSystematic.test_airyai.<locals>.<lambda>ç    „×—Áç    „×—Açñhãˆµøä>r:   c                 S   s   t  | ¡d S r3  r4  r  r0   r0   r1   rM   ¯  rN   ç     @�Àç     @�@)r   r   Úairyair
   ©Úselfr0   r0   r1   Útest_airyai©  s    
ý
þzTestSystematic.test_airyaic                 C   s   t dd„ tjtƒ gƒ d S )Nc                 S   s   t  | ¡d S r3  r4  r  r0   r0   r1   rM   ´  rN   z4TestSystematic.test_airyai_complex.<locals>.<lambda>)r   r   r:  r   r;  r0   r0   r1   Útest_airyai_complex³  s    þz"TestSystematic.test_airyai_complexc                 C   s@   t dd„ dd„ tddƒgdd� t dd„ d	d„ td
dƒgƒ d S )Nc                 S   s   t  | ¡d S ©Nr    r4  r  r0   r0   r1   rM   º  rN   z2TestSystematic.test_airyai_prime.<locals>.<lambda>c                 S   s   t j| dd�S ©Nr    )Z
derivative©r   r:  r  r0   r0   r1   rM   º  s    r5  r6  r7  r:   c                 S   s   t  | ¡d S r?  r4  r  r0   r0   r1   rM   ¾  rN   c                 S   s   t j| dd�S r@  rA  r  r0   r0   r1   rM   ¾  s    r8  r9  ©r   r
   r;  r0   r0   r1   Útest_airyai_prime¸  s    
ý
þz TestSystematic.test_airyai_primec                 C   s   t dd„ dd„ tƒ gƒ d S )Nc                 S   s   t  | ¡d S r?  r4  r  r0   r0   r1   rM   Ã  rN   z:TestSystematic.test_airyai_prime_complex.<locals>.<lambda>c                 S   s   t j| dd�S r@  rA  r  r0   r0   r1   rM   Ã  s    ©r   r   r;  r0   r0   r1   Útest_airyai_prime_complexÂ  s    þz(TestSystematic.test_airyai_prime_complexc                 C   s@   t dd„ dd„ tddƒgdd� t dd„ d	d„ td
dƒgƒ d S )Nc                 S   s   t  | ¡d S r  r4  r  r0   r0   r1   rM   É  rN   z,TestSystematic.test_airybi.<locals>.<lambda>c                 S   s
   t  | ¡S rG   ©r   Zairybir  r0   r0   r1   rM   É  s    r5  r6  r7  r:   c                 S   s   t  | ¡d S r  r4  r  r0   r0   r1   rM   Í  rN   c                 S   s
   t  | ¡S rG   rF  r  r0   r0   r1   rM   Í  s    r8  r9  rB  r;  r0   r0   r1   Útest_airybiÇ  s    
ý
þzTestSystematic.test_airybic                 C   s   t dd„ dd„ tƒ gƒ d S )Nc                 S   s   t  | ¡d S r  r4  r  r0   r0   r1   rM   Ò  rN   z4TestSystematic.test_airybi_complex.<locals>.<lambda>c                 S   s
   t  | ¡S rG   rF  r  r0   r0   r1   rM   Ò  s    rD  r;  r0   r0   r1   Útest_airybi_complexÑ  s    þz"TestSystematic.test_airybi_complexc                 C   s@   t dd„ dd„ tddƒgdd� t dd„ d	d„ td
dƒgƒ d S )Nc                 S   s   t  | ¡d S ©Nrg   r4  r  r0   r0   r1   rM   Ø  rN   z2TestSystematic.test_airybi_prime.<locals>.<lambda>c                 S   s   t j| dd�S r@  rF  r  r0   r0   r1   rM   Ø  s    r5  r6  r7  r:   c                 S   s   t  | ¡d S rI  r4  r  r0   r0   r1   rM   Ü  rN   c                 S   s   t j| dd�S r@  rF  r  r0   r0   r1   rM   Ü  s    r8  r9  rB  r;  r0   r0   r1   Útest_airybi_primeÖ  s    
ý
þz TestSystematic.test_airybi_primec                 C   s   t dd„ dd„ tƒ gƒ d S )Nc                 S   s   t  | ¡d S rI  r4  r  r0   r0   r1   rM   á  rN   z:TestSystematic.test_airybi_prime_complex.<locals>.<lambda>c                 S   s   t j| dd�S r@  rF  r  r0   r0   r1   rM   á  s    rD  r;  r0   r0   r1   Útest_airybi_prime_complexà  s    þz(TestSystematic.test_airybi_prime_complexc                 C   s"   t tjtdd„ ƒtddƒgƒ d S )Nc                 S   s   t jd| fi t¤ŽS r3  )r   ÚbeiÚHYPERKWr  r0   r0   r1   rM   ç  rN   z)TestSystematic.test_bei.<locals>.<lambda>r8  r9  )r   r)   rL  r   r
   r;  r0   r0   r1   Útest_beiå  s    

þzTestSystematic.test_beic                 C   s"   t tjtdd„ ƒtddƒgƒ d S )Nc                 S   s   t jd| fi t¤ŽS r3  )r   ÚberrM  r  r0   r0   r1   rM   ì  rN   z)TestSystematic.test_ber.<locals>.<lambda>r8  r9  )r   r)   rO  r   r
   r;  r0   r0   r1   Útest_berê  s    

þzTestSystematic.test_berc                 C   s&   t dd„ dd„ tddƒgddd� d S )Nc                 S   s   t  t| ƒ¡t| ƒ S rG   )r)   Ú	bernoullirË   ©rA   r0   r0   r1   rM   ð  rN   z/TestSystematic.test_bernoulli.<locals>.<lambda>c                 S   s   t t t| ƒ¡ƒS rG   )r=   r   rQ  rË   rR  r0   r0   r1   rM   ñ  rN   r   iÈ2  r¦   ©r;   rA   )r   r   r;  r0   r0   r1   Útest_bernoulliï  s
    
ýzTestSystematic.test_bernoullic                 C   s*   t tjtdd„ ƒtddƒtƒ gdd� d S )Nc                 S   s   t j| |fi t¤ŽS rG   ©r   ÚbesselirM  rK   r0   r0   r1   rM   ø  rN   z-TestSystematic.test_besseli.<locals>.<lambda>ç}Ã”%­I²Ôç}Ã”%­I²TgJD¼îÉçà©rk   )r   r)   Úivr   r
   r;  r0   r0   r1   Útest_besseliõ  s    
üzTestSystematic.test_besselic                 C   s(   t dd„ tdd„ ƒtddƒtƒ gƒ d S )Nc                 S   s   t  | j|¡S rG   )r)   rZ  rJ   rK   r0   r0   r1   rM   ÿ  rN   z5TestSystematic.test_besseli_complex.<locals>.<lambda>c                 S   s   t j| |fi t¤ŽS rG   rU  rK   r0   r0   r1   rM      rN   rW  rX  ©r   r   r
   r   r;  r0   r0   r1   Útest_besseli_complexý  s
    
ýz#TestSystematic.test_besseli_complexc                 C   sZ   t tjtdd„ ƒtddƒtddƒgdd� t tjtd	d„ ƒtddƒtd
dƒgddd� d S )Nc                 S   s   t j| |fi t¤ŽS rG   ©r   ÚbesseljrM  rK   r0   r0   r1   rM     rN   z-TestSystematic.test_besselj.<locals>.<lambda>rW  rX  r8  r9  T©r¨   c                 S   s   t j| |fi t¤ŽS rG   r^  rK   r0   r0   r1   rM     rN   r5  r6  r7  )r¨   r;   )r   r)   Újvr   r
   r;  r0   r0   r1   Útest_besselj  s    
ü
ûzTestSystematic.test_besseljc                 C   s$   t dd„ tdd„ ƒtƒ tƒ gƒ d S )Nc                 S   s   t  | j|¡S rG   )r)   ra  rJ   rK   r0   r0   r1   rM     rN   z5TestSystematic.test_besselj_complex.<locals>.<lambda>c                 S   s   t j| |fi t¤ŽS rG   r^  rK   r0   r0   r1   rM     rN   r\  r;  r0   r0   r1   Útest_besselj_complex  s
    

ýz#TestSystematic.test_besselj_complexc                 C   s,   t tjtjtddƒtdtjƒgddd� d S ©NrÖ   r6   r   FrX   ©Únan_okr;   )r   r)   Úkvr   Úbesselkr
   r!   r(  r;  r0   r0   r1   Útest_besselk  s    ûzTestSystematic.test_besselkc                 C   s,   t tjtjtddƒtdtjƒgddd� d S rd  )	r   r)   Úknr   rh  r   r
   r!   r(  r;  r0   r0   r1   Útest_besselk_int%  s    ûzTestSystematic.test_besselk_intc                 C   s(   t dd„ tdd„ ƒtddƒtƒ gƒ d S )Nc                 S   s   t  | j|¡S rG   )r)   rg  rJ   rK   r0   r0   r1   rM   0  rN   z5TestSystematic.test_besselk_complex.<locals>.<lambda>c                 S   s   t j| |fi t¤ŽS rG   )r   rh  rM  rK   r0   r0   r1   rM   1  rN   rW  rX  r\  r;  r0   r0   r1   Útest_besselk_complex.  s
    
ýz#TestSystematic.test_besselk_complexc                 C   s2   dd„ }t tjt|ƒtddƒtddƒgdd� d S )	Nc                 S   sR   t tj| |fi t¤Žƒ}t|ƒdkr4tjt |¡ }t|ƒdkrN|dkrNtjS |S )NçºÙ‚nQ:Br   )	r=   r   ÚbesselyrM  r²   r!   r(  ÚsignÚnan©rL   rB   r-   r0   r0   r1   Ú	mpbessely6  s    z.TestSystematic.test_bessely.<locals>.mpbesselyrW  rX  r5  r6  éˆ  rR  )r   r)   Úyvr   r
   ©r<  rr  r0   r0   r1   Útest_bessely5  s    	üzTestSystematic.test_besselyc                 C   s,   dd„ }t dd„ t|ƒtƒ tƒ gdd� d S )Nc                 S   sd   t tj| |fi t¤Žƒ}t|ƒdkr`tjdd��  tjt |¡ }W d   ƒ n1 sV0    Y  |S )Nrm  r”   r•   )	r&   r   rn  rM  r²   r!   r—   r(  ro  rq  r0   r0   r1   rr  G  s
    .z6TestSystematic.test_bessely_complex.<locals>.mpbesselyc                 S   s   t  | j|¡S rG   )r)   rt  rJ   rK   r0   r0   r1   rM   O  rN   z5TestSystematic.test_bessely_complex.<locals>.<lambda>i˜:  rR  r\  ru  r0   r0   r1   Útest_bessely_complexF  s    
üz#TestSystematic.test_bessely_complexc                 C   s0   dd„ }t dd„ t|ƒtddƒtddƒgƒ d S )	Nc                 S   s.   t t | |¡ƒ}t|ƒdkr*|dkr*tjS |S r3  )r=   r   rn  r²   r!   rp  rq  r0   r0   r1   rr  V  s    z2TestSystematic.test_bessely_int.<locals>.mpbesselyc                 S   s   t  t| ƒ|¡S rG   )r)   ZynrË   rK   r0   r0   r1   rM   ]  rN   z1TestSystematic.test_bessely_int.<locals>.<lambda>ru   éè  r5  r6  ©r   r   r   r
   ru  r0   r0   r1   Útest_bessely_intU  s    ýzTestSystematic.test_bessely_intc                    sV   g ‰ d‡ fdd„	‰t tj‡fdd„tƒ tƒ gddd� t tjˆt ˆ ¡ddd	d
� d S )NFc                    sj   | dk s|dk rt jS | dk s&|dk r^tt| | ƒƒd dkr^|r^ˆ  t| ƒt|ƒf¡ t jS t | |¡S )Ng   ¢”mÂr   r    )r!   rp  r²   r=   r%   r   rØ   )ro   rn   Únonzero©Ú
bad_pointsr0   r1   rØ   e  s    (z&TestSystematic.test_beta.<locals>.betac                    s   ˆ | |dd�S ©NT)r{  r0   rÙ   )rØ   r0   r1   rM   v  rN   z*TestSystematic.test_beta.<locals>.<lambda>r×   T©r½   r¨   ç•dyáý¥=)r½   r¨   rk   )F)r   r)   rØ   r
   r!   r(   r;  r0   )r}  rØ   r1   rÞ   b  s"    

ûúzTestSystematic.test_betac                 C   s,   t tjtƒ tdd„ ƒƒtƒ tƒ tƒ gƒ d S )Nc                 S   s   t j| |d|dd�S )Nr   T©r  ©r   Úbetainc©ro   rn   rB   r0   r0   r1   rM   Š  rN   z-TestSystematic.test_betainc.<locals>.<lambda>)r   r)   rƒ  r   r   r
   r;  r0   r0   r1   Útest_betainc…  s    ÿÿùzTestSystematic.test_betaincc                 C   s0   t tjtƒ tdd„ ƒƒtƒ tƒ tƒ gdd� d S )Nc                 S   s   t j| ||ddd�S )Nr    Tr�  r‚  r„  r0   r0   r1   rM   •  rN   z.TestSystematic.test_betaincc.<locals>.<lambda>r×   ©r½   )r   r)   Zbetainccr   r   r
   r;  r0   r0   r1   Útest_betaincc�  s    ÿÿøzTestSystematic.test_betainccc                    sR   g ‰ d
‡ fdd„	‰t tj‡fdd„tƒ tƒ gdd� t tjˆt ˆ ¡ddd	� d S )NFc                    sx   t |ƒdt | ƒd  krtjS | |k rlt t| | ƒt t| | ƒ¡ ƒdk rl|rlˆ  t| ƒt|ƒf¡ tjS t | |¡S )Nr6  r    rh   )r²   r!   rp  r=   rw   r%   r   Úbinomial)rA   Úkr{  r|  r0   r1   rˆ  Ÿ  s    .z+TestSystematic.test_binom.<locals>.binomialc                    s   ˆ | |dd�S r~  r0   )rA   r‰  )rˆ  r0   r1   rM   °  rN   z+TestSystematic.test_binom.<locals>.<lambda>r×   r†  rÓ   ©r½   rk   )F)r   r)   Zbinomr
   r!   r(   r;  r0   )r}  rˆ  r1   Ú
test_binomœ  s    

üûzTestSystematic.test_binomc                 C   s(   t dd„ tdd„ ƒtƒ tƒ gdd� d S )Nc                 S   s   t  t| ƒ|¡S rG   )r)   Úeval_chebytrË   ©rA   rB   r0   r0   r1   rM   ¿  rN   z0TestSystematic.test_chebyt_int.<locals>.<lambda>c                 S   s   t j| |fi t¤ŽS rG   )r   ÚchebytrM  r�  r0   r0   r1   rM   À  rN   r3   r†  ry  r;  r0   r0   r1   Útest_chebyt_int½  s    

üzTestSystematic.test_chebyt_intFz'some cases in hyp2f1 not fully accurate)ÚrunÚreasonc                 C   s&   t tjdd„ tddƒtƒ gdd� d S )Nc                 S   s   t ƒ ttjƒƒ| |fi t¤ŽS rG   )r   r   r   rŽ  rM  r�  r0   r0   r1   rM   É  s   ÿþþz,TestSystematic.test_chebyt.<locals>.<lambda>é›ÿÿÿée   é'  rR  )r   r)   rŒ  r
   r;  r0   r0   r1   Útest_chebytÅ  s    úzTestSystematic.test_chebytc                 C   s(   t dd„ tdd„ ƒtƒ tƒ gdd� d S )Nc                 S   s   t  t| ƒ|¡S rG   )r)   Úeval_chebyurË   r�  r0   r0   r1   rM   Ò  rN   z0TestSystematic.test_chebyu_int.<locals>.<lambda>c                 S   s   t j| |fi t¤ŽS rG   )r   ÚchebyurM  r�  r0   r0   r1   rM   Ó  rN   r3   r†  ry  r;  r0   r0   r1   Útest_chebyu_intÐ  s    

üzTestSystematic.test_chebyu_intc                 C   s"   t tjdd„ tddƒtƒ gƒ d S )Nc                 S   s   t ƒ ttjƒƒ| |fi t¤ŽS rG   )r   r   r   r—  rM  r�  r0   r0   r1   rM   Ü  s   ÿþþz,TestSystematic.test_chebyu.<locals>.<lambda>r’  r“  )r   r)   r–  r
   r;  r0   r0   r1   Útest_chebyuØ  s
    ûzTestSystematic.test_chebyuc                 C   s6   dd„ }t |tjtƒ gƒ t |tjtg d¢ƒgƒ d S )Nc                 S   s   t  | ¡d S r?  ©r)   ZshichirŸ   r0   r0   r1   Úchiã  s    z$TestSystematic.test_chi.<locals>.chi©gíþÿÿÿU@éX   gá   V@)r   r   r›  r
   r   ©r<  r›  r0   r0   r1   Útest_chiâ  s    zTestSystematic.test_chic                 C   s8   dd„ }t |tjtttj dƒttjdƒƒgdd� d S )Nc                 S   s   t  | ¡d S r?  rš  r  r0   r0   r1   r›  ê  s    z,TestSystematic.test_chi_complex.<locals>.chir5  r6  rX   r:   )r   r   r›  r   r&   r!   r(  rž  r0   r0   r1   Útest_chi_complexé  s    üzTestSystematic.test_chi_complexc                 C   s"   dd„ }t |tjtddƒgƒ d S )Nc                 S   s   t  | ¡d S r?  ©r)   ZsicirŸ   r0   r0   r1   Úciõ  s    z"TestSystematic.test_ci.<locals>.cir5  r6  )r   r   r¢  r
   ©r<  r¢  r0   r0   r1   Útest_ciô  s    zTestSystematic.test_cic                 C   s8   dd„ }t |tjttdtj ƒtdtjƒƒgdd� d S )Nc                 S   s   t  | ¡d S r?  r¡  r  r0   r0   r1   r¢  û  s    z*TestSystematic.test_ci_complex.<locals>.cir5  r6  r&  r:   )r   r   r¢  r   r&   r!   r(  r£  r0   r0   r1   Útest_ci_complexú  s    üzTestSystematic.test_ci_complexc                 C   s,   t  t¡j}tttjtƒ gdd| d� d S ©NFr   re  )	r!   r  r=   r  r   r   r   r  r
   ©r<  r  r0   r0   r1   Ú
test_cospi  s    zTestSystematic.test_cospic                 C   s   t ttjtƒ gddd� d S )NFr9   re  )r   r   r   r  r   r;  r0   r0   r1   Útest_cospi_complex	  s    ûz!TestSystematic.test_cospi_complexc                 C   s"   t tjttjƒtƒ gddd� d S )NrX   r3   ©r;   r½   )r   r)   rõ   r   r   r
   r;  r0   r0   r1   Útest_digamma  s    ûzTestSystematic.test_digammac                 C   s,   dd„ }t tjttjƒtƒ gdd|d� d S )Nc                 S   s$   t  | jdk t  | j¡dk @ dd¡S )Nr   gìQ¸…ëñ?FT)r!   ÚwhererJ   r²   r   r  r0   r0   r1   Úparam_filter  s    z9TestSystematic.test_digamma_complex.<locals>.param_filterr9   rû   ©r;   r½   r­  )r   r)   rõ   r   r   r   )r<  r­  r0   r0   r1   Útest_digamma_complex  s    úz#TestSystematic.test_digamma_complexc                 C   s   t tjtjtƒ gdd� d S )NrÓ   r:   )r   r)   Úexp1r   Úe1r
   r;  r0   r0   r1   Útest_e1*  s    üzTestSystematic.test_e1c                 C   s¬   t tjtjtttj dƒttjdƒƒgdd� t tjtjt 	ddd¡d d …d f tj
dt d	d
d¡t d	d
d¡ f d   ¡ dd� t tjtjt 	ddd¡d dd� d S )Nr5  r6  r€  r:   éÎÿÿÿr3   é«   r   r‹   r   é=   r·   r   iÝÿÿÿr”  y                )r   r)   r°  r   r±  r   r&   r!   r(  r#   rÀ   r"   rÁ   r;  r0   r0   r1   Útest_e1_complex2  s(    ü(ÿûüzTestSystematic.test_e1_complexc                 C   s˜   t tjdd„ tt t tj¡j¡ t t tj¡j¡d�gƒ t tjdd„ t 	ddddd	tj
g¡d
d� tt t tj
¡¡ƒ tt tj
 ¡dkƒ d S )Nc                 S   s    | dkrt  | ¡|  S t  d¡S ©Nr   z1.0©r   Úexpm1ÚmpfrŸ   r0   r0   r1   rM   M  rN   z,TestSystematic.test_exprel.<locals>.<lambda>rÙ   c                 S   s    | dkrt  | ¡|  S t  d¡S r·  r¸  rŸ   r0   r0   r1   rM   S  rN   rX   g§Ž¨™ÂWó:r   g   ¢”mBg´�ÙyCxêDr€  r:   )r   r)   Zexprelr
   r!   rÚ   r  r„   r³   r(   r(  r   Úisinfr;  r0   r0   r1   Útest_exprelJ  s    ÿýüzTestSystematic.test_exprelc                 C   s.   t tjtjtttj dƒttjdƒƒgƒ d S )Nç    ÐcÁç    ÐcA)r   r)   r¹  r   r   r&   r!   r(  r;  r0   r0   r1   Útest_expm1_complexZ  s
    ýz!TestSystematic.test_expm1_complexc                 C   s   t tjdd„ tƒ gdd� d S )Nc                 S   s   t  | d ¡S r?  ©r   rÚ   rŸ   r0   r0   r1   rM   e  rN   z3TestSystematic.test_log1p_complex.<locals>.<lambda>é<   r†  )r   r)   Úlog1pr   r;  r0   r0   r1   Útest_log1p_complexb  s    üz!TestSystematic.test_log1p_complexc                 C   s   t tdd„ tƒ gddd� d S )Nc                 S   s   t  | d ¡|  S r?  rÀ  rŸ   r0   r0   r1   rM   m  rN   z-TestSystematic.test_log1pmx.<locals>.<lambda>rÁ  rÓ   )r½   r;   )r   r   r
   r;  r0   r0   r1   Útest_log1pmxj  s    ûzTestSystematic.test_log1pmxc                 C   s   t tjtjtƒ gdd� d S )Nr€  r:   )r   r)   r*   r   r'   r
   r;  r0   r0   r1   Útest_eis  s    zTestSystematic.test_eic                 C   s2   t tjtjtttj dƒttjdƒƒgdd� d S )Nr5  r6  r¦   r:   )	r   r)   r*   r   r'   r   r&   r!   r(  r;  r0   r0   r1   Útest_ei_complexv  s    üzTestSystematic.test_ei_complexc                 C   s   t tjtjtdd�gƒ d S )Nr’   ©rn   )r   r)   Úelliper   r
   r;  r0   r0   r1   Útest_ellipe  s    zTestSystematic.test_ellipec                 C   s$   t tjtjtddƒtdd�gƒ d S )Nr8  r9  r’   rÇ  ©r   r)   Z	ellipeincr   rÈ  r
   r;  r0   r0   r1   Útest_ellipeinc‚  s    zTestSystematic.test_ellipeincc                 C   s   t tjtjtƒ tƒ gƒ d S rG   rÊ  r;  r0   r0   r1   Útest_ellipeinc_largephi…  s    z&TestSystematic.test_ellipeinc_largephic                 C   s    t tjtjtddƒtƒ gƒ d S ©Nr8  r9  ©r   r)   Ú	ellipkincr   Zellipfr
   r;  r0   r0   r1   Útest_ellipfˆ  s    zTestSystematic.test_ellipfc                 C   s   t tjtjtƒ tƒ gƒ d S rG   rÎ  r;  r0   r0   r1   Útest_ellipf_largephi‹  s    z#TestSystematic.test_ellipf_largephic                 C   s:   t tjtjtdd�gƒ t tjdd„ tdd�gdd� d S )	Nr’   rÇ  c                 S   s   t  d|  ¡S r?  )r   r  )r  r0   r0   r1   rM   ’  rN   z,TestSystematic.test_ellipk.<locals>.<lambda>g        )ro   r×   r†  )r   r)   r  r   r
   Zellipkm1r;  r0   r0   r1   Útest_ellipkŽ  s    
üzTestSystematic.test_ellipkc                 C   s.   dd„ }t tj|tddƒtdd�gdd� d S )	Nc                 S   s   t  d| |¡S r3  ©r   Zellippi©Úphir  r0   r0   r1   rÏ  ˜  s    z0TestSystematic.test_ellipkinc.<locals>.ellipkincr8  r9  r’   rÇ  Tr`  ©r   r)   rÏ  r
   ©r<  rÏ  r0   r0   r1   Útest_ellipkinc—  s    üzTestSystematic.test_ellipkincc                 C   s*   dd„ }t tj|tƒ tdd�gdd� d S )Nc                 S   s   t  d| |¡S r3  rÓ  rÔ  r0   r0   r1   rÏ  ¢  s    z9TestSystematic.test_ellipkinc_largephi.<locals>.ellipkincr’   rÇ  Tr`  rÖ  r×  r0   r0   r1   Útest_ellipkinc_largephi¡  s    üz&TestSystematic.test_ellipkinc_largephic                 C   s2   dd„ }t dd„ |tddƒtddd	�gd
d� d S )Nc                 S   s    | dkrdS t jd| |d�S d S )Nr   Úsnr  ©r   r  r  r0   r0   r1   rÚ  ¬  s    z+TestSystematic.test_ellipfun_sn.<locals>.snc                 S   s   t  | |¡d S r3  r  r  r0   r0   r1   rM   ·  rN   z1TestSystematic.test_ellipfun_sn.<locals>.<lambda>ç    €„.Áç    €„.Ar   r    rÙ   r&  r:   rB  )r<  rÚ  r0   r0   r1   Útest_ellipfun_sn«  s    
üzTestSystematic.test_ellipfun_snc                 C   s.   t dd„ dd„ tddƒtddd�gd	d
� d S )Nc                 S   s   t  | |¡d S r?  r  r  r0   r0   r1   rM   À  rN   z1TestSystematic.test_ellipfun_cn.<locals>.<lambda>c                 S   s   t jd| |d�S )NZcnr  rÛ  r  r0   r0   r1   rM   Á  rN   rÜ  rÝ  r   r    rÙ   r&  r:   rB  r;  r0   r0   r1   Útest_ellipfun_cn½  s    üzTestSystematic.test_ellipfun_cnc                 C   s.   t dd„ dd„ tddƒtddd�gd	d
� d S )Nc                 S   s   t  | |¡d S r  r  r  r0   r0   r1   rM   É  rN   z1TestSystematic.test_ellipfun_dn.<locals>.<lambda>c                 S   s   t jd| |d�S r  rÛ  r  r0   r0   r1   rM   Ê  rN   rÜ  rÝ  r   r    rÙ   r&  r:   rB  r;  r0   r0   r1   Útest_ellipfun_dnÆ  s    üzTestSystematic.test_ellipfun_dnc                 C   s   t tjdd„ tƒ gƒ d S )Nc                 S   s
   t  | ¡S rG   ©r   r¸   r  r0   r0   r1   rM   Ð  rN   z)TestSystematic.test_erf.<locals>.<lambda>)r   r)   r¸   r
   r;  r0   r0   r1   Útest_erfÏ  s    zTestSystematic.test_erfc                 C   s   t tjdd„ tƒ gdd� d S )Nc                 S   s
   t  | ¡S rG   rá  r  r0   r0   r1   rM   Ó  rN   z1TestSystematic.test_erf_complex.<locals>.<lambda>r6   rR  )r   r)   r¸   r   r;  r0   r0   r1   rÇ   Ò  s    zTestSystematic.test_erf_complexc                 C   s"   t tjtdd„ ƒtƒ gdd� d S )Nc                 S   s
   t  | ¡S rG   ©r   r»   r  r0   r0   r1   rM   Ø  rN   z*TestSystematic.test_erfc.<locals>.<lambda>r9   r:   )r   r)   r»   r   r
   r;  r0   r0   r1   Ú	test_erfcÕ  s    
üzTestSystematic.test_erfcc                 C   s"   t tjtdd„ ƒtƒ gdd� d S )Nc                 S   s
   t  | ¡S rG   rã  r  r0   r0   r1   rM   à  rN   z2TestSystematic.test_erfc_complex.<locals>.<lambda>r6   rR  )r   r)   r»   r   r   r;  r0   r0   r1   Útest_erfc_complexÝ  s    
üz TestSystematic.test_erfc_complexc                 C   s   t tjtjtƒ gdd� d S ©Nr6   rR  )r   r)   Úerfir   r
   r;  r0   r0   r1   Ú	test_erfiå  s    zTestSystematic.test_erfic                 C   s   t tjtjtƒ gdd� d S ræ  )r   r)   rç  r   r   r;  r0   r0   r1   Útest_erfi_complexè  s    z TestSystematic.test_erfi_complexc                 C   s"   t tjtdd„ ƒtƒ gdd� d S )Nc                 S   s
   t  | ¡S rG   )r   Úncdfr  r0   r0   r1   rM   î  rN   z*TestSystematic.test_ndtr.<locals>.<lambda>r6   rR  )r   r)   Úndtrr   r
   r;  r0   r0   r1   Ú	test_ndtrë  s    
üzTestSystematic.test_ndtrc                 C   s0   t tjdd„ ttddƒtddƒd�gdd� d S )Nc                 S   s   t  |  t d¡ ¡d S ©Ng       @)r   r»   r!   Úsqrtr  r0   r0   r1   rM   ö  rN   z2TestSystematic.test_ndtr_complex.<locals>.<lambda>éðØÿÿr”  rÙ   r×   rR  )r   r)   rë  r   r&   r;  r0   r0   r1   Útest_ndtr_complexó  s    üz TestSystematic.test_ndtr_complexc                 C   s&   t tjtdd„ ƒtƒ gdddd� d S )Nc                 S   s   t  t  | ¡¡S rG   )r   rÚ   rê  r  r0   r0   r1   rM   þ  rN   z.TestSystematic.test_log_ndtr.<locals>.<lambda>iX  rù   r9   ©rA   r½   r;   )r   r)   Úlog_ndtrr   r
   r;  r0   r0   r1   Útest_log_ndtrû  s
    
ýzTestSystematic.test_log_ndtrc                 C   s6   t tjtdd„ ƒttddƒtddƒd�gdd	d
� d S )Nc                 S   s    t  t  |  t d¡ ¡d ¡S rí  )r   rÚ   r»   r!   rî  r  r0   r0   r1   rM     rN   z6TestSystematic.test_log_ndtr_complex.<locals>.<lambda>rï  r  r”  r7   rÙ   r6   rù   ©rA   r½   )r   r)   rò  r   r   r&   r;  r0   r0   r1   Útest_log_ndtr_complex  s    
üz$TestSystematic.test_log_ndtr_complexc                 C   s"   t dd„ tjtddƒgdd� d S )Nc                 S   s   t  | ¡d S )Nrr   )r)   ZeulerrR  r0   r0   r1   rM     rN   z.TestSystematic.test_eulernum.<locals>.<lambda>r    r”  rR  )r   r   Zeulernumr   r;  r0   r0   r1   Útest_eulernum
  s    
üzTestSystematic.test_eulernumc                 C   s,   t tjtjtddƒtdtjƒgddd� d S )Nr   r6   r9   é    rª  )	r   r)   r@   r   r>   r   r
   r!   r(  r;  r0   r0   r1   Útest_expint  s    ûzTestSystematic.test_expintc                 C   s   dd„ }t |tjtƒ gƒ d S )Nc                 S   s   t  | ¡d S r3  ©r)   ZfresnelrŸ   r0   r0   r1   Úfresnels  s    z.TestSystematic.test_fresnels.<locals>.fresnels)r   r   rú  r
   )r<  rú  r0   r0   r1   Útest_fresnels  s    zTestSystematic.test_fresnelsc                 C   s   dd„ }t |tjtƒ gƒ d S )Nc                 S   s   t  | ¡d S r?  rù  rŸ   r0   r0   r1   Úfresnelc!  s    z.TestSystematic.test_fresnelc.<locals>.fresnelc)r   r   rü  r
   )r<  rü  r0   r0   r1   Útest_fresnelc   s    zTestSystematic.test_fresnelcc                 C   s   t tjttjƒtƒ gƒ d S rG   )r   r)   Úgammar   r   r
   r;  r0   r0   r1   Ú
test_gamma%  s    zTestSystematic.test_gammac                 C   s    t tjttjƒtƒ gdd� d S ©Nri   r:   )r   r)   rþ  r   r   r   r;  r0   r0   r1   Útest_gamma_complex(  s    üz!TestSystematic.test_gamma_complexc                 C   s0   t tjdd„ tdddd�tddƒgddd� d S )	Nc                 S   s   t j| |dd�S )NTr   ©r   r  )r/   rn   r0   r0   r1   rM   4  rN   z.TestSystematic.test_gammainc.<locals>.<lambda>r   ç     ˆÃ@F©Úinclusive_ar€  re  )r   r)   r  r
   r;  r0   r0   r1   Útest_gammainc0  s    ûzTestSystematic.test_gammaincc                 C   s0   t tjdd„ tdddd�tddƒgddd� d S )	Nc                 S   s   t j| |dd�S )NT)ro   r  r  )r/   ro   r0   r0   r1   rM   >  rN   z/TestSystematic.test_gammaincc.<locals>.<lambda>r   r  Fr  r€  re  )r   r)   Z	gammainccr
   r;  r0   r0   r1   Útest_gammaincc:  s    ûzTestSystematic.test_gammainccc                 C   s"   dd„ }t tjt|ƒtƒ gƒ d S )Nc                 S   s   t  | ¡jS rG   ©r   rà   rJ   r  r0   r0   r1   ÚfF  s    z&TestSystematic.test_gammaln.<locals>.f)r   r)   Zgammalnr   r
   )r<  r	  r0   r0   r1   Útest_gammalnD  s    zTestSystematic.test_gammaln)r�  c                 C   s(   t tjttjƒtddƒtƒ tƒ gƒ d S rÍ  )r   r)   Úeval_gegenbauerr   r   Ú
gegenbauerr
   r;  r0   r0   r1   Útest_gegenbauerK  s
    ýzTestSystematic.test_gegenbauerc                 C   st   dd„ }dd„ }t |t|ƒtddƒtddƒtƒ gd	dd
dd� t |t|ƒtddƒtƒ tt ddd¡ƒgdd
d� d S )Nc                 S   s¶   t |ƒdkrtjS | dkr d}n$| dkr6d| | }nt | ||¡}t|ƒdkr |dk r t|ƒtt|ƒƒkr t | |t d¡ |¡}t |ƒt d¡k r t d¡}t |ƒd	kr²tjS |S )
NrX  r   r’   r    r   rr   z1e-50z0.0ç\žç4@Iþw)	r²   r!   rp  r   r  r=   rË   rº  r(  ©rA   ro   rB   r-   r0   r0   r1   r  U  s    (
z6TestSystematic.test_gegenbauer_int.<locals>.gegenbauerc                 S   s(   t  t| ƒ||¡}t|ƒdkr$tjS |S )Nr  )r)   r  rË   r²   r!   r(  r  r0   r0   r1   Úsc_gegenbauerp  s    z9TestSystematic.test_gegenbauer_int.<locals>.sc_gegenbauerr   r7   g    eÍÍÁg    eÍÍAi@œ  TrÈ   )rA   r½   r¨   r;   rú   éüÿÿÿr   r  )r   r   r   r
   r   r!   r"   )r<  r  r  r0   r0   r1   Útest_gegenbauer_intS  s    üüz"TestSystematic.test_gegenbauer_intc                 C   s*   t dd„ ttjƒtddƒtƒ tƒ gƒ d S )Nc                 S   s   t  t| ƒ|j|¡S rG   )r)   r  rË   rJ   ©rA   ro   rB   r0   r0   r1   rM   ˆ  rN   z8TestSystematic.test_gegenbauer_complex.<locals>.<lambda>r   r7   )r   r   r   r  r   r
   r   r;  r0   r0   r1   Útest_gegenbauer_complex…  s
    ýz&TestSystematic.test_gegenbauer_complexc                 C   s*   t dd„ ttjƒtddƒtƒ tƒ gƒ d S )Nc                 S   s   t  | j|j|¡S rG   )r)   r  rJ   r  r0   r0   r1   rM   �  rN   z@TestSystematic.test_gegenbauer_complex_general.<locals>.<lambda>r8  r9  )r   r   r   r  r
   r   r;  r0   r0   r1   Útest_gegenbauer_complex_general�  s
    ýz.TestSystematic.test_gegenbauer_complex_generalc                 C   s&   t tjtdd„ ƒtddƒtƒ gƒ d S )Nc                 S   s   t j| |fi t¤ŽS rG   )r   Úhankel1rM  ©rL   rB   r0   r0   r1   rM   ˜  rN   z-TestSystematic.test_hankel1.<locals>.<lambda>ç@Œµx¯Äç@Œµx¯D)r   r)   r  r   r
   r;  r0   r0   r1   Útest_hankel1•  s
    
ýzTestSystematic.test_hankel1c                 C   s&   t tjtdd„ ƒtddƒtƒ gƒ d S )Nc                 S   s   t j| |fi t¤ŽS rG   )r   Úhankel2rM  r  r0   r0   r1   rM   Ÿ  rN   z-TestSystematic.test_hankel2.<locals>.<lambda>r  r  )r   r)   r  r   r
   r;  r0   r0   r1   Útest_hankel2œ  s
    
ýzTestSystematic.test_hankel2z%issues at intermediately large ordersc                 C   s&   t dd„ ttjƒtddƒtƒ gƒ d S )Nc                 S   s   t  t| ƒ|¡S rG   )r)   Zeval_hermiterË   r�  r0   r0   r1   rM   ¦  rN   z-TestSystematic.test_hermite.<locals>.<lambda>r   r”  )r   r   r   Zhermiter   r
   r;  r0   r0   r1   Útest_hermite£  s
    ýzTestSystematic.test_hermitec                    s:   t ddd�‰ ttj‡ fdd„tddƒtdd	ƒgd
d� d S )Nr×   iÜ  r1  c                    s   t j| |fi ˆ ¤ŽS rG   rU   ©ro   rB   ©ZKWr0   r1   rM   ³  rN   z,TestSystematic.test_hyp0f1.<locals>.<lambda>r½  r¾  r   g     jø@rs  rR  )rƒ   r   r)   rI   r
   r;  r0   r  r1   Útest_hyp0f1­  s    
üzTestSystematic.test_hyp0f1c              	   C   s8   t dd„ tdd„ ƒtddƒttddƒtddƒƒgƒ d S )Nc                 S   s   t  | j|¡S rG   rH   )ro   r/   r0   r0   r1   rM   ¾  rN   z4TestSystematic.test_hyp0f1_complex.<locals>.<lambda>c                 S   s   t j| |fi t¤ŽS rG   )r   rI   rM  r  r0   r0   r1   rM   ¿  rN   r�   r   iˆÿÿÿrF   )r   r   r
   r   r&   r;  r0   r0   r1   Útest_hyp0f1_complex¼  s
    
ýz"TestSystematic.test_hyp0f1_complexc              	   C   s<   dd„ }t tj|tddƒtdddd�tddƒgddd	� d S )
Nc                 S   s.   zt  | ||¡W S  ty(   tj Y S 0 d S rG   )r   Úhyp1f1ÚZeroDivisionErrorr!   r(  r„  r0   r0   r1   Úmpmath_hyp1f1Ç  s    z1TestSystematic.test_hyp1f1.<locals>.mpmath_hyp1f1r³  r3   r    Fr  r«   )rA   rf  )r   r)   r"  r
   )r<  r$  r0   r0   r1   Útest_hyp1f1Æ  s    ûzTestSystematic.test_hyp1f1c                 C   s8   t tdd„ ƒtdd„ ƒtddƒtddƒtƒ gdd� d S )Nc                 S   s   t  | j|j|¡S rG   )r)   r"  rJ   r„  r0   r0   r1   rM   Ø  rN   z4TestSystematic.test_hyp1f1_complex.<locals>.<lambda>c                 S   s   t j| ||fi t¤ŽS rG   )r   r"  rM  r„  r0   r0   r1   rM   Ù  rN   r8  r9  iÐ  rR  )r   r   r   r
   r   r;  r0   r0   r1   Útest_hyp1f1_complexÕ  s    

üz"TestSystematic.test_hyp1f1_complexc                 C   s<   t dd„ tdd„ ƒtddƒtddƒtddƒtƒ gdd� d S )Nc                 S   s   t  | j|j|j|¡S rG   )r)   rz   rJ   ©ro   rn   rx   rB   r0   r0   r1   rM   â  rN   z4TestSystematic.test_hyp2f1_complex.<locals>.<lambda>c                 S   s   t j| |||fi t¤ŽS rG   )r   rz   rM  r'  r0   r0   r1   rM   ã  rN   g      YÀg      Y@r   rR  r\  r;  r0   r0   r1   Útest_hyp2f1_complexÞ  s    
üz"TestSystematic.test_hyp2f1_complexc                 C   s&   t tjtdd„ ƒtƒ tƒ tƒ gƒ d S )Nc                 S   s   t j| ||fi t¤ŽS rG   )r   rm   rM  r„  r0   r0   r1   rM   ì  rN   z,TestSystematic.test_hyperu.<locals>.<lambda>)r   r)   rm   r   r
   r;  r0   r0   r1   Útest_hyperuè  s
    
ýzTestSystematic.test_hyperuz:mpmath issue gh-342: unsupported operand mpz, long for powc                 C   s0   dd„ }t t|tdddd�tddƒgdd� d S )	Nc                 S   s"   t  || ¡t  | ¡ t  | ¡ S rG   )r   Úpowerr$   rþ  r  r0   r0   r1   Úmp_igam_facó  s    z1TestSystematic.test_igam_fac.<locals>.mp_igam_facr   g  �Ä¼ÖBFr  r   r:   )r   r   r
   )r<  r+  r0   r0   r1   Útest_igam_facð  s    üzTestSystematic.test_igam_facc                 C   s8   t tjtjtddƒgƒ t tjtjtddƒgdd� d S ©Nr8  r9  r5  r6  r7  r:   )r   r)   Zj0r   r
   r;  r0   r0   r1   Útest_j0ý  s    zTestSystematic.test_j0c                 C   s8   t tjtjtddƒgƒ t tjtjtddƒgdd� d S r-  )r   r)   Zj1r   r
   r;  r0   r0   r1   Útest_j1  s    zTestSystematic.test_j1c                 C   sR   t tjtdd„ ƒtƒ tƒ tƒ tƒ gƒ t dd„ tdd„ ƒtƒ tƒ tƒ tƒ gƒ d S )Nc                 S   s   t j| |||fi t¤ŽS rG   ©r   ÚjacobirM  r'  r0   r0   r1   rM     rN   z,TestSystematic.test_jacobi.<locals>.<lambda>c                 S   s   t  t| ƒ|||¡S rG   ©r)   Úeval_jacobirË   )rA   rn   rx   rB   r0   r0   r1   rM     rN   c                 S   s   t j| |||fi t¤ŽS rG   r0  r'  r0   r0   r1   rM     rN   )r   r)   r3  r   r
   r   r;  r0   r0   r1   Útest_jacobi  s    
ý
ýzTestSystematic.test_jacobic                    s:   dd„ ‰ t dd„ ‡ fdd„tƒ tƒ tƒ tƒ gddd� d S )	Nc                 S   s   | dkrdS t  | |||¡S )Nr   r’   )r   r1  ©rA   ro   rn   rB   r0   r0   r1   r1    s    z.TestSystematic.test_jacobi_int.<locals>.jacobic                 S   s   t  t| ƒ|||¡S rG   r2  r5  r0   r0   r1   rM      rN   z0TestSystematic.test_jacobi_int.<locals>.<lambda>c                    s   t ˆ ƒ| |||fi t¤ŽS rG   )r   rM  r5  ©r1  r0   r1   rM   !  rN   é N  r3   rô  ©r   r   r
   r;  r0   r6  r1   Útest_jacobi_int  s    
ûzTestSystematic.test_jacobi_intc                 C   s&   dd„ }t tj|tddƒgdd� d S )Nc                 S   s*   | dkrt  d S ttjƒd| fi t¤ŽS )Nr   r5   )r   r   r   ÚkeirM  rŸ   r0   r0   r1   r:  (  s    
z$TestSystematic.test_kei.<locals>.keiçêŒ 9Y>)ÆçêŒ 9Y>)Frx  rR  )r   r)   r:  r
   )r<  r:  r0   r0   r1   Útest_kei'  s    zTestSystematic.test_keic                 C   s&   t tjtdd„ ƒtddƒgdd� d S )Nc                 S   s   t jd| fi t¤ŽS r3  )r   ÚkerrM  rŸ   r0   r0   r1   rM   2  rN   z)TestSystematic.test_ker.<locals>.<lambda>r;  r<  rx  rR  )r   r)   r>  r   r
   r;  r0   r0   r1   Útest_ker/  s    

üzTestSystematic.test_kerc                 C   s"   t ttjƒdd„ tƒ tƒ gƒ d S )Nc                 S   s   t tjƒ| |fi t¤ŽS rG   ©r   r   ZlaguerrerM  r�  r0   r0   r1   rM   ;  rN   z.TestSystematic.test_laguerre.<locals>.<lambda>)r   r   r)   Úeval_laguerrer
   r;  r0   r0   r1   Útest_laguerre7  s
    
ýzTestSystematic.test_laguerrec                 C   s$   t dd„ dd„ tƒ tƒ gdd� d S )Nc                 S   s   t  t| ƒ|¡S rG   )r)   rA  rË   r�  r0   r0   r1   rM   A  rN   z2TestSystematic.test_laguerre_int.<locals>.<lambda>c                 S   s   t tjƒ| |fi t¤ŽS rG   r@  r�  r0   r0   r1   rM   B  rN   r7  rR  r8  r;  r0   r0   r1   Útest_laguerre_int?  s    
üz TestSystematic.test_laguerre_intzsee gh-3551 for bad pointsc                 C   s4   t dd„ dd„ ttj tjƒtddƒgddd� d S )	Nc                 S   s   t  | t|jƒ¡S rG   )r)   r!  rË   rJ   ©rB   r‰  r0   r0   r1   rM   J  rN   z3TestSystematic.test_lambertw_real.<locals>.<lambda>c                 S   s   t  | t|jƒ¡S rG   )r   r!  rË   rJ   rD  r0   r0   r1   rM   K  rN   r   r   r9   F©r;   rf  )r   r   r!   r(  r   r;  r0   r0   r1   Útest_lambertw_realG  s    üz!TestSystematic.test_lambertw_realc                    sB   d}t  d¡‰ d‰‡ ‡fdd„}t|tjtd|dd�gd	d
� d S )NgGöaåúse@r    g  €¹E@c                    s�   t jdd��p | ˆ d ˆ  | d  }|t jkr>|t| ƒ }n0| ˆ d ˆ  d| d   }|t| ƒ }||9 }W d   ƒ n1 s‚0    Y  |S )Nr”   )ZoverrE   )r!   r—   r(  r   )rB   ZfacrP   ©ÚeÚgr0   r1   rþ  U  s    
&z:TestSystematic.test_lanczos_sum_expg_scaled.<locals>.gammar   Fr  r9   r:   )r!   r$   r   r   rþ  r
   )r<  Zmaxgammarþ  r0   rG  r1   Útest_lanczos_sum_expg_scaledP  s    
üz+TestSystematic.test_lanczos_sum_expg_scaledc                 C   s   t tjtjtƒ tƒ gƒ d S rG   )r   r)   Úeval_legendrer   Úlegendrer
   r;  r0   r0   r1   Útest_legendreg  s    zTestSystematic.test_legendrec              
   C   sL   t dd„ dd„ tƒ tƒ gdd� t dd„ dd„ tƒ tt dd	d
¡ƒgƒ d S )Nc                 S   s   t  t| ƒ|¡S rG   ©r)   rK  rË   r�  r0   r0   r1   rM   m  rN   z2TestSystematic.test_legendre_int.<locals>.<lambda>c                 S   s   t tjƒ| |fi t¤ŽS rG   ©r   r   rL  rM  r�  r0   r0   r1   rM   n  rN   r7  rR  c                 S   s   t  t| ƒ|¡S rG   rN  r�  r0   r0   r1   rM   u  rN   c                 S   s   t tjƒ| |fi t¤ŽS rG   rO  r�  r0   r0   r1   rM   v  rN   rú   r  r`   )r   r   r
   r   r!   r"   r;  r0   r0   r1   Útest_legendre_intk  s    
üýz TestSystematic.test_legendre_intc                 C   sd   dd„ }dd„ }dd„ }t ||tddƒtddƒtƒ gƒ t ||tddƒtddƒtd	d
ƒgdd� d S )Nc                 S   sV   zt  || |¡d d }W n ty2   tj Y S 0 t|ƒdkrRtjt |j¡ }|S )Nr   ©rr   rr   ç)�#ÊåÈv)	r)   ZlpmnÚ
ValueErrorr!   rp  r²   r(  ro  rJ   ©rA   r  r/   rL   r0   r0   r1   Úlpnm{  s    z(TestSystematic.test_legenp.<locals>.lpnmc                 S   s0   t  || |¡}t|ƒdkr,tjt |j¡ }|S )NrR  )r)   rÑ   r²   r!   r(  ro  rJ   rT  r0   r0   r1   Úlpnm_2…  s    z*TestSystematic.test_legenp.<locals>.lpnm_2c                 S   sª   |dks|dkrLt | ƒ| krL|dkrH| dk r6|  d } t t |¡| ¡S dS t|ƒdk r^tjS t|ƒdk rndnd}ttjƒ| |||d�}t|ƒdkr¦tj	t |j
¡ }|S )	Nr    rr   r   rh   r   rg   ©ÚtyperR  )rË   r   r*  ro  r²   r!   rp  r   rÌ   r(  rJ   )rA   r  r/   ÚtyprL   r0   r0   r1   rÌ   Œ  s    
z*TestSystematic.test_legenp.<locals>.legenpr  r7   rr   r    r   rY  r8  )r<  rU  rV  rÌ   r0   r0   r1   Útest_legenpz  s    
 üzTestSystematic.test_legenpc                 C   s„   dd„ }dd„ }t  g d¢¡}t  g d¢¡}|d d …d f d|d d d …f    ¡ }t||tg d¢ƒtg d¢ƒt|ƒgd	d
d� d S )Nc                 S   s>   z t j|j| j|dd�d d W S  ty8   tj Y S 0 d S )Nr   rW  r   rQ  ©r)   ZclpmnrJ   rS  r!   rp  ©rA   r  r/   r0   r0   r1   Úclpnm®  s     z3TestSystematic.test_legenp_complex_2.<locals>.clpnmc                 S   s4   t |ƒdk rtjS ttjƒt| jƒt|jƒ|dd�S ©Nrh   r   rW  ©r²   r!   rp  r   r   rÌ   rË   rJ   r\  r0   r0   r1   rÌ   ´  s    z4TestSystematic.test_legenp_complex_2.<locals>.legenp©	rt   r¥   rD   r   r7  rE   r�   r`   g     @Ÿ@©r8  rD   rE   gÍÌÌÌÌÌô?r   ©rt   rr   r   r    r   r   rÈ   r«   rS  ©r!   r(   rÁ   r   r   ©r<  r]  rÌ   rB   rO   r/   r0   r0   r1   Útest_legenp_complex_2­  s    (

þùz$TestSystematic.test_legenp_complex_2c                 C   s„   dd„ }dd„ }t  g d¢¡}t  g d¢¡}|d d …d f d|d d d …f    ¡ }t||tg d¢ƒtg d¢ƒt|ƒgd	d
d� d S )Nc                 S   s>   z t j|j| j|dd�d d W S  ty8   tj Y S 0 d S )Nrg   rW  r   rQ  r[  r\  r0   r0   r1   r]  Ê  s     z3TestSystematic.test_legenp_complex_3.<locals>.clpnmc                 S   s4   t |ƒdk rtjS ttjƒt| jƒt|jƒ|dd�S )Nrh   rg   rW  r_  r\  r0   r0   r1   rÌ   Ð  s    z4TestSystematic.test_legenp_complex_3.<locals>.legenpr`  ra  r   rb  rÈ   r«   rS  rc  rd  r0   r0   r1   Útest_legenp_complex_3É  s    (

þùz$TestSystematic.test_legenp_complex_3z*apparently picks wrong function at |z| > 1c                 C   s4   dd„ }dd„ }t ||tddƒtddƒtƒ gƒ d S )Nc                 S   s   t  || |¡d d S ©Nr   rQ  )r)   Úlqmnr\  r0   r0   r1   Úlqnmç  s    z(TestSystematic.test_legenq.<locals>.lqnmc                 S   s(   t |ƒdk rtjS ttjƒ| ||dd�S r^  )r²   r!   rp  r   r   Úlegenqr\  r0   r0   r1   rj  ê  s    z*TestSystematic.test_legenq.<locals>.legenqr   r7   r8  ©r<  ri  rj  r0   r0   r1   Útest_legenqå  s    ýzTestSystematic.test_legenqc                 C   s8   dd„ }dd„ }t ||tddƒtddƒtƒ gdd� d S )Nc                 S   s"   t  t|jƒt| jƒ|¡d d S rg  )r)   rh  rË   rJ   r\  r0   r0   r1   ri  ø  s    z0TestSystematic.test_legenq_complex.<locals>.lqnmc                 S   s4   t |ƒdk rtjS ttjƒt| jƒt|jƒ|dd�S r^  )r²   r!   rp  r   r   rj  rË   rJ   r\  r0   r0   r1   rj  û  s    z2TestSystematic.test_legenq_complex.<locals>.legenqr   r7   rR  )r   r   r   rk  r0   r0   r1   Útest_legenq_complexö  s    üz"TestSystematic.test_legenq_complexc                 C   s,   dd„ }dd„ }t t|tƒ gdd|d� d S )Nc                 S   s    t  t  | ¡| k| dk@ dd¡S )Nr   FT)r!   r¬  ÚfloorrŸ   r0   r0   r1   r­  	  s    z0TestSystematic.test_lgam1p.<locals>.param_filterc                 S   s   t  d|  ¡jS r?  r  r  r0   r0   r1   Ú	mp_lgam1p  s    z-TestSystematic.test_lgam1p.<locals>.mp_lgam1pr9   r7   r®  )r   r   r
   )r<  r­  ro  r0   r0   r1   Útest_lgam1p  s    úzTestSystematic.test_lgam1pc                 C   s&   dd„ }t tj|tƒ gdddd� d S )Nc                 S   s4   zt  | ¡}W n  ty.   ttjtjƒ}Y n0 |S rG   )r   rà   rS  r&   r!   rp  )r/   rP   r0   r0   r1   Úmpmath_loggamma  s
    z5TestSystematic.test_loggamma.<locals>.mpmath_loggammaFrâ   )rf  Zdistinguish_nan_and_infr;   )r   r)   rà   r   )r<  rq  r0   r0   r1   Útest_loggamma  s    úzTestSystematic.test_loggammac                 C   s(   dd„ }t |tdd„ ƒtƒ tƒ gƒ d S )Nc                 S   s   t  | |¡d S r3  )r)   Zpbdvr  r0   r0   r1   Úpcfd-  s    z&TestSystematic.test_pcfd.<locals>.pcfdc                 S   s   t j| |fi t¤ŽS rG   )r   rs  rM  r  r0   r0   r1   rM   1  rN   z*TestSystematic.test_pcfd.<locals>.<lambda>)r   r   r
   )r<  rs  r0   r0   r1   Ú	test_pcfd+  s    

ýzTestSystematic.test_pcfdzHit's not the same as the mpmath function --- maybe different definition?c                 C   s(   dd„ }t |dd„ tƒ tƒ gdd� d S )Nc                 S   s   t  | |¡d S r3  )r)   Zpbvvr  r0   r0   r1   Úpcfv8  s    z&TestSystematic.test_pcfv.<locals>.pcfvc                 S   s   t ƒ ttjƒƒ| |fi t¤ŽS rG   )r   r   r   ru  rM  r  r0   r0   r1   rM   <  rN   z*TestSystematic.test_pcfv.<locals>.<lambda>rx  rR  rB  )r<  ru  r0   r0   r1   Ú	test_pcfv5  s    
üzTestSystematic.test_pcfvc                 C   sb   dd„ }dd„ }dd„ }t |tjtddƒtddƒgd	d
d� t ||tddƒtddƒgdd
d� d S )Nc                 S   s   t  | |¡d S r3  ©r)   Zpbwar  r0   r0   r1   ÚpcfwB  s    z&TestSystematic.test_pcfw.<locals>.pcfwc                 S   s   t  | |¡d S r?  rw  r  r0   r0   r1   ÚdpcfwE  s    z'TestSystematic.test_pcfw.<locals>.dpcfwc                 S   s   t  t j| |fd¡S )Nr8   )r   Údiffrx  r  r0   r0   r1   Úmpmath_dpcfwH  s    z.TestSystematic.test_pcfw.<locals>.mpmath_dpcfwr^   r_   g:Œ0âŽyU>r7   rS  g•Ö&è.!>)r   r   rx  r
   )r<  rx  ry  r{  r0   r0   r1   Ú	test_pcfwA  s"    ûûzTestSystematic.test_pcfwzCissues at large arguments (atol OK, rtol not) and <eps-close to z=0c                 C   s*   t tjtƒ ttjƒƒtddƒtƒ gƒ d S )Nr   rx  )r   r)   Z	polygammar   r   r   r   r
   r;  r0   r0   r1   Útest_polygamma]  s
    ýzTestSystematic.test_polygammac                 C   s&   t tjtjtdtjƒgdddd� d S )NiÀàÿÿrs  FT)rA   rf  r¨   )r   r)   rì   r   r
   r!   r(  r;  r0   r0   r1   Útest_rgammag  s    úzTestSystematic.test_rgammac                 C   s    t tjttjƒtƒ gdd� d S r   )r   r)   rì   r   r   r   r;  r0   r0   r1   Útest_rgamma_complexq  s    üz"TestSystematic.test_rgamma_complexzNsee gh-3551 for bad points on 32 bit systems and gh-8095 for another bad point)r‘  c                 C   sD   t  tj¡t  d¡krtj}ndd„ }ttj|t	ƒ t	ƒ gdd� d S )Nrq   c                 S   sN   t | | ƒt| | ƒkrBt | | ƒdkrBt | ¡} t| | ƒ|  }t | |¡S r3  )r=   rË   r   rº  Úrf)ro   r  r0   r0   r1   Úmppoch�  s    (
z&TestSystematic.test_rf.<locals>.mppochr×   r†  )
r   Úparser   r±   ÚVersionr€  r   r)   Zpochr
   )r<  r�  r0   r0   r1   Útest_rfy  s    	zTestSystematic.test_rfc                 C   s,   t  t¡j}tttjtƒ gdd| d� d S r¦  )	r!   r  r=   r  r   r   r   r  r
   r§  r0   r0   r1   Ú
test_sinpiŒ  s    ûzTestSystematic.test_sinpic                 C   s   t ttjtƒ gddd� d S )NFg›+¡†›„=re  )r   r   r   r  r   r;  r0   r0   r1   Útest_sinpi_complex–  s    ûz!TestSystematic.test_sinpi_complexc                 C   s6   dd„ }t |tjtƒ gƒ t |tjtg d¢ƒgƒ d S )Nc                 S   s   t  | ¡d S r3  rš  rŸ   r0   r0   r1   Úshi   s    z$TestSystematic.test_shi.<locals>.shirœ  )r   r   r‡  r
   r   ©r<  r‡  r0   r0   r1   Útest_shiŸ  s    zTestSystematic.test_shic                 C   s8   dd„ }t |tjtttj dƒttjdƒƒgdd� d S )Nc                 S   s   t  | ¡d S r3  rš  r  r0   r0   r1   r‡  §  s    z,TestSystematic.test_shi_complex.<locals>.shir5  r6  rX   r:   )r   r   r‡  r   r&   r!   r(  rˆ  r0   r0   r1   Útest_shi_complex¦  s    üzTestSystematic.test_shi_complexc                 C   s   dd„ }t |tjtƒ gƒ d S )Nc                 S   s   t  | ¡d S r3  r¡  rŸ   r0   r0   r1   Úsi²  s    z"TestSystematic.test_si.<locals>.si)r   r   r‹  r
   ©r<  r‹  r0   r0   r1   Útest_si±  s    zTestSystematic.test_sic                 C   s8   dd„ }t |tjttdtj ƒtdtjƒƒgdd� d S )Nc                 S   s   t  | ¡d S r3  r¡  r  r0   r0   r1   r‹  ·  s    z*TestSystematic.test_si_complex.<locals>.sir5  r6  rX   r:   )r   r   r‹  r   r&   r!   r(  rŒ  r0   r0   r1   Útest_si_complex¶  s    üzTestSystematic.test_si_complexc                 C   s,   dd„ }t tjt|ƒtdtjƒgdd� d S )Nc                 S   s   t  dd|  ¡S r  ©r   r  rŸ   r0   r0   r1   ÚdilogÃ  s    z)TestSystematic.test_spence.<locals>.dilogr   rÓ   r:   )r   r)   r  r   r
   r!   r(  ©r<  r�  r0   r0   r1   Útest_spenceÁ  s    üzTestSystematic.test_spencec                 C   s&   dd„ }t tjt|ƒtƒ gdd� d S )Nc                 S   s   t  dd|  ¡S r  r�  r  r0   r0   r1   r�  Î  s    z1TestSystematic.test_spence_complex.<locals>.dilogrÓ   r:   )r   r)   r  r   r   r‘  r0   r0   r1   Útest_spence_complexÍ  s    üz"TestSystematic.test_spence_complexc              
   C   sJ   dd„ }t |tjtddƒtddƒtdtd�tddt d�gddd	d
� d S )Nc                 S   s   || krt jS t || ||¡S rG   )r!   rp  r)   Zsph_harm)Úlr  ræ   rÕ  r0   r0   r1   Ú	spherharmØ  s    z0TestSystematic.test_spherharm.<locals>.spherharmr   r7   rÙ   r   r&  ip  rR   )rk   rA   r½   )r   r   r•  r   r
   r   )r<  r•  r0   r0   r1   Útest_spherharm×  s    *úzTestSystematic.test_spherharmc                 C   s,   t tjttjƒtddƒtddƒgdd� d S )Nç     ˆÃÀr  r   ç•Ö&è.>r:   )r   r)   Zstruver   r   Zstruvehr
   r;  r0   r0   r1   Útest_struvehå  s    üzTestSystematic.test_struvehc                 C   s4   dd„ }t tjt|ƒtddƒtddƒgddd� d S )	Nc                 S   s\   | dk rP||  k rPt | ƒdkrPtjj}zdtj_t | |¡W |tj_S |tj_0 t | |¡S )Nr   rx  rù   )r²   r   r¼   r½   Zstruvel)rL   r/   rÂ   r0   r0   r1   Ú
mp_struvelî  s    þ
z/TestSystematic.test_struvel.<locals>.mp_struvelr—  r  r   r˜  Tr§   )r   r)   Z	modstruver   r
   )r<  rš  r0   r0   r1   Útest_struvelí  s    ûzTestSystematic.test_struvelc                 C   s*   dd„ }t tj|tddƒgdddd� d S )	Nc                 S   s   t  t  | ¡t  d¡¡S )Nz-0.5)r   r!  r$   rº  rŸ   r0   r0   r1   Úmpmath_wrightomega_real  s    zETestSystematic.test_wrightomega_real.<locals>.mpmath_wrightomega_realru   gPïâÖäKDg›+¡†›„ö<r   F)r;   rk   rf  )r   r)   r*  r
   )r<  rœ  r0   r0   r1   Útest_wrightomega_real  s    
úz$TestSystematic.test_wrightomega_realc                 C   s    t tjdd„ tƒ gddd� d S )Nc                 S   s
   t | dƒS )Nr#  )r"  r  r0   r0   r1   rM     rN   z1TestSystematic.test_wrightomega.<locals>.<lambda>rÓ   FrE  )r   r)   r*  r   r;  r0   r0   r1   Útest_wrightomega  s    ûzTestSystematic.test_wrightomegac                 C   s.   t tjttjƒtdddd�tddd�gƒ d S )Nr    ç    _ BF)ro   rn   r  r   ©ro   r  )r   r)   Úzetar   r   r
   r;  r0   r0   r1   Útest_hurwitz_zeta  s
    ýz TestSystematic.test_hurwitz_zetac                 C   s$   t tjdd„ tddƒgddd� d S )Nc                 S   s   | dkrt  | ¡S t jS r?  ©r   r¡  r(  rŸ   r0   r0   r1   rM   $  rN   z2TestSystematic.test_riemann_zeta.<locals>.<lambda>r  r7   Fri   re  )r   r)   r¡  r
   r;  r0   r0   r1   Útest_riemann_zeta!  s    
ûz TestSystematic.test_riemann_zetac                 C   s&   t tjdd„ tddƒgdddd� d S )	Nc                 S   s   | dkrt  | ¡d S t jS r?  r£  rŸ   r0   r0   r1   rM   -  rN   z+TestSystematic.test_zetac.<locals>.<lambda>r  r7   Fé-   ri   )rf  r½   r;   )r   r)   Zzetacr
   r;  r0   r0   r1   Ú
test_zetac*  s    
úzTestSystematic.test_zetacc                 C   s4   dd„ }t tjt|ƒtddd�tƒ gdddd	� d S )
Nc                 S   sB   t j | ¡} t j |¡}|dkr,t j | ¡S t j | |¡| S d S r3  ©r   r¼   rº  rÚ   Zpowm1)rB   Úlmbdar0   r0   r1   Ú	mp_boxcox6  s
    z-TestSystematic.test_boxcox.<locals>.mp_boxcoxr   Fr   r6   rÁ  r9   rñ  )r   r)   Zboxcoxr   r
   )r<  r©  r0   r0   r1   Útest_boxcox4  s    úzTestSystematic.test_boxcoxc                 C   s4   dd„ }t tjt|ƒtddd�tƒ gdddd	� d S )
Nc                 S   sV   t j | ¡} t j |¡}t j d¡}|dkr<t j ||  ¡S t j ||  |¡| S d S rÊ   r§  )rB   r¨  Úoner0   r0   r1   Úmp_boxcox1pI  s    z1TestSystematic.test_boxcox1p.<locals>.mp_boxcox1prr   Fr   r6   rÁ  r9   rñ  )r   r)   Zboxcox1pr   r
   )r<  r¬  r0   r0   r1   Útest_boxcox1pG  s    	úzTestSystematic.test_boxcox1pc                 C   s4   dd„ }t dd„ t|ƒtddƒtddƒgd	d
� d S )Nc                 S   sP   t  |¡}t  | t  d¡d  |¡t  d| t j ¡ }|jdkrH|jS |S d S ©Nr    r   r   ©r   Ú	mpmathifyr_  rº  rî  r   r   rJ   ©rA   r/   ÚargÚoutr0   r0   r1   Úmp_spherical_jn\  s    
ÿ
z9TestSystematic.test_spherical_jn.<locals>.mp_spherical_jnc                 S   s   t  t| ƒ|¡S rG   )r)   Úspherical_jnrË   ©rA   r/   r0   r0   r1   rM   f  rN   z2TestSystematic.test_spherical_jn.<locals>.<lambda>r   r6   r5  r6  rù   r†  ry  ©r<  r´  r0   r0   r1   Útest_spherical_jn[  s    	üz TestSystematic.test_spherical_jnc                 C   s,   dd„ }t dd„ t|ƒtddƒtƒ gƒ d S )Nc                 S   sP   t  |¡}t  | t  d¡d  |¡t  d| t j ¡ }|jdkrH|jS |S d S r®  r¯  r±  r0   r0   r1   r´  m  s    
ÿ
zATestSystematic.test_spherical_jn_complex.<locals>.mp_spherical_jnc                 S   s   t  t| jƒ|¡S rG   )r)   rµ  rË   rJ   r¶  r0   r0   r1   rM   w  rN   z:TestSystematic.test_spherical_jn_complex.<locals>.<lambda>r   r6   ©r   r   r   r   r·  r0   r0   r1   Útest_spherical_jn_complexl  s    	ýz(TestSystematic.test_spherical_jn_complexc                 C   s4   dd„ }t dd„ t|ƒtddƒtddƒgd	d
� d S )Nc                 S   sP   t  |¡}t  | t  d¡d  |¡t  d| t j ¡ }|jdkrH|jS |S d S r®  ©r   r°  rn  rº  rî  r   r   rJ   r±  r0   r0   r1   Úmp_spherical_yn}  s    
ÿ
z9TestSystematic.test_spherical_yn.<locals>.mp_spherical_ync                 S   s   t  t| ƒ|¡S rG   )r)   Úspherical_ynrË   r¶  r0   r0   r1   rM   ‡  rN   z2TestSystematic.test_spherical_yn.<locals>.<lambda>r   r6   g    _ ÂrŸ  r7   r†  ry  ©r<  r¼  r0   r0   r1   Útest_spherical_yn|  s    	üz TestSystematic.test_spherical_ync                 C   s,   dd„ }t dd„ t|ƒtddƒtƒ gƒ d S )Nc                 S   sP   t  |¡}t  | t  d¡d  |¡t  d| t j ¡ }|jdkrH|jS |S d S r®  r»  r±  r0   r0   r1   r¼  Ž  s    
ÿ
zATestSystematic.test_spherical_yn_complex.<locals>.mp_spherical_ync                 S   s   t  t| jƒ|¡S rG   )r)   r½  rË   rJ   r¶  r0   r0   r1   rM   ˜  rN   z:TestSystematic.test_spherical_yn_complex.<locals>.<lambda>r   r6   r¹  r¾  r0   r0   r1   Útest_spherical_yn_complex�  s    	ýz(TestSystematic.test_spherical_yn_complexc                 C   s2   dd„ }t dd„ t|ƒtddƒtƒ gddd� d S )	Nc                 S   sP   t  |¡}t  | t  d¡d  |¡t  d| t j ¡ }|jdkrH|jS |S d S r®  ©r   r°  rV  rº  rî  r   r   rJ   r±  r0   r0   r1   Úmp_spherical_inž  s    
ÿ
z9TestSystematic.test_spherical_in.<locals>.mp_spherical_inc                 S   s   t  t| ƒ|¡S rG   )r)   Úspherical_inrË   r¶  r0   r0   r1   rM   ¨  rN   z2TestSystematic.test_spherical_in.<locals>.<lambda>r   r6   gÿÿ‘è¨°6rŠ  ry  ©r<  rÂ  r0   r0   r1   Útest_spherical_in�  s    	ûz TestSystematic.test_spherical_inc                 C   s,   dd„ }t dd„ t|ƒtddƒtƒ gƒ d S )Nc                 S   sP   t  |¡}t  | t  d¡d  |¡t  d| t j ¡ }|jdkrH|jS |S d S r®  rÁ  r±  r0   r0   r1   rÂ  °  s    
ÿ
zATestSystematic.test_spherical_in_complex.<locals>.mp_spherical_inc                 S   s   t  t| jƒ|¡S rG   )r)   rÃ  rË   rJ   r¶  r0   r0   r1   rM   º  rN   z:TestSystematic.test_spherical_in_complex.<locals>.<lambda>r   r6   r¹  rÄ  r0   r0   r1   Útest_spherical_in_complex¯  s    	ýz(TestSystematic.test_spherical_in_complexc                 C   s0   dd„ }t dd„ t|ƒtddƒtƒ gdd� d S )	Nc                 S   sR   t  | t  d¡d  |¡t  t jdt  |¡  ¡ }t  |¡jdkrJ|jS |S d S r®  )r   rh  rº  rî  r   r°  r   rJ   )rA   r/   r³  r0   r0   r1   Úmp_spherical_knÀ  s    ÿz9TestSystematic.test_spherical_kn.<locals>.mp_spherical_knc                 S   s   t  t| ƒ|¡S rG   )r)   Úspherical_knrË   r¶  r0   r0   r1   rM   É  rN   z2TestSystematic.test_spherical_kn.<locals>.<lambda>r   rR   r7   r†  ry  ©r<  rÇ  r0   r0   r1   Útest_spherical_kn¿  s    üz TestSystematic.test_spherical_knz.Accuracy issues near z = -1 inherited from kv.c                 C   s0   dd„ }t dd„ t|ƒtddƒtƒ gdd� d S )Nc                 S   sP   t  |¡}t  | t  d¡d  |¡t  d| t j ¡ }|jdkrH|jS |S d S r®  )r   r°  rh  rº  rî  r   r   rJ   r±  r0   r0   r1   rÇ  Ò  s    
ÿ
zATestSystematic.test_spherical_kn_complex.<locals>.mp_spherical_knc                 S   s   t  t| jƒ|¡S rG   )r)   rÈ  rË   rJ   r¶  r0   r0   r1   rM   Ü  rN   z:TestSystematic.test_spherical_kn_complex.<locals>.<lambda>r   r6   r†  r¹  rÉ  r0   r0   r1   Útest_spherical_kn_complexÏ  s    	üz(TestSystematic.test_spherical_kn_complexN)•Ú__name__Ú
__module__Ú__qualname__r=  r>  rC  rE  rG  rH  rJ  rK  rN  rP  rT  r[  r]  rb  rc  ri  rk  rl  rv  rw  rz  rÞ   r…  r‡  r‹  r�  ÚpytestÚmarkZxfailr•  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ÿ  r  r  r  r
  r  r  r  r   r  r  r  r  r   r!  r%  r&  r(  r)  Zxfail_on_32bitr,  r.  r/  r4  r9  r=  r?  rB  rC  rF  rJ  rM  rP  rZ  re  rf  rl  rm  rp  rr  rt  rv  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   r0   r0   r1   r2  ¥  sL  



		#!


						

			


2


	


	


	




3


	

ÿ



	

		
ÿr2  )JÚ__doc__Únumpyr!   Znumpy.testingr   r   r   rÏ  r�   Z
scipy._libr   Zscipy.specialZspecialr)   Zscipy.special._testutilsr   r   r   r	   Zscipy.special._mptestutilsr
   r   r   r   r   r   r   r   r   r   Zscipy.special._ufuncsr   r   r   r   r   r   r   ÚImportErrorr2   rC   rQ   r]   rp   r‡   r˜   r£   rª   rÐ  Zslowr´   rÇ   rÕ   rÞ   rã   rè   rê   rò   rø   rþ   rÿ   r  r  r  r  r  r"  r,  r.  r/  r0  rƒ   rM  r2  r0   r0   r0   r1   Ú<module>   sª   0 










7
&






