U
    Q»{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&k
rà   ed	ƒZ%Y nX 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complex_r   ÚscÚexpiÚcheck)ÚdatasetÚrÚpÚz© r0   ú^/var/www/html/bwave/python/venv/lib/python3.8/site-packages/scipy/special/tests/test_mpmath.pyÚtest_expi_complex#   s    r2   z0.19c                  C   sz   g } dD ]J}t  ddd¡D ]6}t d¡�" |  ||tt ||¡ƒf¡ W 5 Q R X 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 } ddddddg}|D ]Z}|D ]P}|D ]F}|d|  }t  d¡� tt  ||¡ƒ}W 5 Q R X |  |||f¡ q(q qt | ¡} td	d
„ | dddd� ¡  d S )Ng     à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>^   s     z'test_hyp0f1_gh_1609.<locals>.<listcomp>çê-�™—q=r:   )r!   r#   r)   rI   r(   r   Úastyper=   )Z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     $$
ro   ú1.0.0c                     s|   ddg} | t tjddddg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   éÿÿÿÿrq   çffffffæ?)r   éþÿÿÿrs   rr   r   r    gffffffæ¿éüÿÿr5   )Úrepeatc                 S   sD   g | ]<\}}}}||krt |ƒ|kr|d k r|dkr||||f‘qS )r   rt   )Úround)rV   rn   rm   ÚcrB   r0   r0   r1   rW   „   s   
   ÿz.test_hyp2f1_strange_points.<locals>.<listcomp>T)Z	eliminatec                    s"   g | ]}|t tj|ˆ Žƒf ‘qS r0   ©r=   r   Úhyp2f1©rV   r.   ©Úkwr0   r1   rW   ‰   s     r   ©r   r    r   rf   ç»½×Ùß|Û=r:   )ÚlistÚ	itertoolsÚproductÚdictr!   r(   Úfloat_r   r)   ry   r+   ©Úptsr,   r0   r{   r1   Útest_hyp2f1_strange_points}   s    þÿ
r†   z0.13c                  C   s€   dddddddddd	d
ddddddddddg} dd„ | D ƒ}t j|t jd�}t jdd�� ttj|dddd� ¡  W 5 Q R X d S )N)r    r   rf   r   )çUUUUUUÕ?gUUUUUUå?g«ªªªªªê?g      ë?)ç      Ð?rE   g      è?gX¤<Ýšï?)r   rs   éýÿÿÿrf   )r   r‰   rs   rf   )r   ra   ra   rf   )gôýÔxé&ç?rq   r]   g333333Ó?)rˆ   r‡   r   ç+‡ÙÎ÷ï?)rˆ   r‡   r   rq   )r   rf   r^   ç®Gáz®ï?)rc   rD   rf   r‹   )r   rd   g      
ÀrŠ   )éøÿÿÿg*4 ]92@g|¼ÌÁOœ%@gC†Žuˆí?)éöÿÿÿé„  r`   r‹   )r�   rŽ   ç      %@r‹   )rq   r   r    ç      ð?)rq   r   r    rb   )r‰   é   r^   r�   )r‰   r‘   r^   rb   )rE   g     ØpÀrc   gmËŸïï?c                 S   s    g | ]}|t tj|Ž ƒf ‘qS r0   rx   rz   r0   r0   r1   rW   ¨   s     z0test_hyp2f1_real_some_points.<locals>.<listcomp>r   Úignore©Úinvalidr}   r5   r~   r:   )r!   r(   rƒ   Úerrstater   r)   ry   r+   r„   r0   r0   r1   Útest_hyp2f1_real_some_points�   s4    ër–   ú0.14c                     sP   dddg} 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š   r`   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   ry   rz   ©rž   r0   r1   rW   ¿   s     z-test_hyp2f1_some_points_2.<locals>.<listcomp>r   r}   r5   r~   r:   )r!   r(   rƒ   r   r)   ry   r+   r„   r0   r    r1   Útest_hyp2f1_some_points_2¯   s    ýr¡   c                  C   s¸   g } dD ]h}dD ]^}dD ]T}dD ]J}zt t ||||¡ƒ}W n tk
rT   Y q Y nX |  |||||f¡ q qqqtj| tjd�} tjdd��  t	t
j| dd	d
dd� ¡  W 5 Q R X d S )N)r�   r]   çÍÌÌÌÌÌü¿gÍÌÌÌÌÌü?r^   r   )g      Àrq   r    gš™™™™™@)r™   r¢   r^   gffffff4@)r�   g)\�Âõ(ð¿ç®Gáz®ï¿r   g333333ã?gffffffî?rc   r   r   r’   r“   r}   r5   ç•Ö&è.>T©r;   Úignore_inf_sign)r=   r   ry   Ú	Exceptionr%   r!   r(   rƒ   r•   r   r)   r+   )r,   rn   rm   rw   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^   éÒ  rc   r   r    r   rf   rq   r—   r5   r}   r¤   r:   )r!   Úzerosrƒ   ÚrandomÚseedZparetoZrandÚrandintr   Ú__version__ÚabsÚmaxr=   ry   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 5 | | t j_t j_X 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                     sN  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 5 Q R X d S )"N)r£   gmçû©ñÒá¿ç�íµ ÷Æ°>gL7‰A`åÀ?r    r    rq   rs   g333333û?g333333û¿gš™™™™™Àr   rµ   rf   é   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   rz   ©rÍ   r0   r1   rW   6  s     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“   re   r~   ç›+¡†›„=ri   )Ú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 }}z>dt
j_ttjdd„ |dddd� ttjdd„ |ddd� W 5 || t
j_t
j_X d S )Nrª   é8ÿÿÿr6   r5   r�   r   rq   r    rµ   rE   gffffffÀr‰   g33333YÀg3333³‰ÃÀr   é�  c                 S   s   t t | |¡ƒS rG   )r=   r   Úbeta©rn   rm   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"   rk   r(   Zbroadcast_arraysÚreshapeÚTr   rº   r»   r¼   r	   r)   rÖ   Zbetaln)rm   rn   ÚabrÀ   rÁ   r0   r0   r1   Ú	test_betaD  s@        û4ûû
rÜ   gš™™™™™É?c                  C   sœ   t t dddddg¡ } 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 )Ngš™™™™™¹¿g{®Gáz„¿r   g{®Gáz„?gš™™™™™¹?r   r_   r   r    c                 S   s   g | ]}|t t |¡ƒf‘qS r0   ©r&   r   Úloggamma©rV   Zz0r0   r0   r1   rW   y  s     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   ‰  s     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 5 Q R X t  |¡}ttj|dddd� ¡  d S )Nrq   éóÿÿÿrf   r   r   iVÿÿÿr    r7   c                 S   s   g | ]}|t t |¡ƒf‘qS r0   )r&   r   Úrgammarß   r0   r0   r1   rW   ¢  s     z%test_rgamma_zeros.<locals>.<listcomp>rX   r:   )r!   r¾   r"   Úcopyr½   rk   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 5 Q R X t |¡}ttj|dddd� ¡  d S )Nrc   rD   g¸…ëQ¸Î¿rq   éñÿÿÿr   r   g¸…ëQ¸Î?r   r   c                 S   s   g | ]}|t t |¡ƒf‘qS r0   ©r&   r   Údigammarß   r0   r0   r1   rW   ½  s     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 5 Q R X 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   Ñ  s     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    
&
rü   c               	   C   sŒ   t  ddd¡ } t  ddddg¡}t  | |¡\} }| d|   ¡ }t d	¡� d
d„ |D ƒ}W 5 Q R X 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   â  s     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 5 Q R X 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©rm   Ú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smallrn   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   rc   r   r   r    r   c                    s   g | ]}|ˆ |ƒf‘qS r0   r0   rß   ©r  r0   r1   rW     s     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é   rf   r   éœÿÿÿr7   r    rq   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½   rk   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é   rf   r   r
  r7   r    rE   rq   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½   rk   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_   rq   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   sR   t  |¡�> t  | ¡} t  | jt j dt j  ¡}t  t  | ¡|¡}W 5 Q R X |S r  )r   r<   ZmpcÚceilÚimagr   Úlambertwr$   )r/   r»   ZunwindrP   r0   r0   r1   Ú_mpmath_wrightomegaP  s
    
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   rq   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"   Z	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 )
Nrs   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   rg   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 )
Nrs   r    rq   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   rg   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 )
Nrq   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    
ÿr-  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ejjd3d4d5�d6d7„ ƒZd8d9„ Z ejjd3d4d5�d:d;„ ƒZ!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—„ ZOejjd3d˜�d™dš„ ƒZPd›dœ„ ZQejjd3d˜�d�dž„ ƒZReSdŸd „ ƒZTd¡d¢„ ZUd£d¤„ ZVejjd3d¥d5�d¦d§„ ƒZWd¨d©„ ZXdªd«„ ZYd¬d­„ ZZejjd3d˜�d®d¯„ ƒZ[eSd°d±„ ƒZ\ejjd3d˜�d²d³„ ƒZ]ej ^d´¡dµd¶„ ƒZ_d·d¸„ Z`d¹dº„ Zaejjd3d˜�d»d¼„ ƒZbd½d¾„ Zcd¿dÀ„ ZddÁdÂ„ ZeeSdÃdÄ„ ƒZfdÅdÆ„ Zgej ^dÇ¡dÈdÉ„ ƒZhdÊdË„ ZieSdÌdÍ„ ƒZjdÎdÏ„ ZkdÐdÑ„ ZldÒdÓ„ ZmdÔdÕ„ Znejjd3dÖd5�d×dØ„ ƒZoeSdÙdÚ„ ƒZpdÛdÜ„ ZqdÝdÞ„ Zrejjd3d˜�dßdà„ ƒZsejjd3dád5�dâdã„ ƒZtdädå„ Zuejjd3dæd5�dçdè„ ƒZvdédê„ Zwdëdì„ Zxejjdídî�dïdð„ ƒZydñ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’ejjd3�d#d5��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 r0  r1  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 r0  r1  r  r0   r0   r1   rM   ´  rN   z4TestSystematic.test_airyai_complex.<locals>.<lambda>)r   r   r7  r   r8  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    r1  r  r0   r0   r1   rM   º  rN   z2TestSystematic.test_airyai_prime.<locals>.<lambda>c                 S   s   t j| dd�S ©Nr    )Z
derivative©r   r7  r  r0   r0   r1   rM   º  s    r2  r3  r4  r:   c                 S   s   t  | ¡d S r<  r1  r  r0   r0   r1   rM   ¾  rN   c                 S   s   t j| dd�S r=  r>  r  r0   r0   r1   rM   ¾  s    r5  r6  ©r   r
   r8  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<  r1  r  r0   r0   r1   rM   Ã  rN   z:TestSystematic.test_airyai_prime_complex.<locals>.<lambda>c                 S   s   t j| dd�S r=  r>  r  r0   r0   r1   rM   Ã  s    ©r   r   r8  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  r1  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    r2  r3  r4  r:   c                 S   s   t  | ¡d S r  r1  r  r0   r0   r1   rM   Í  rN   c                 S   s
   t  | ¡S rG   rC  r  r0   r0   r1   rM   Í  s    r5  r6  r?  r8  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  r1  r  r0   r0   r1   rM   Ò  rN   z4TestSystematic.test_airybi_complex.<locals>.<lambda>c                 S   s
   t  | ¡S rG   rC  r  r0   r0   r1   rM   Ò  s    rA  r8  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 ©Nrf   r1  r  r0   r0   r1   rM   Ø  rN   z2TestSystematic.test_airybi_prime.<locals>.<lambda>c                 S   s   t j| dd�S r=  rC  r  r0   r0   r1   rM   Ø  s    r2  r3  r4  r:   c                 S   s   t  | ¡d S rF  r1  r  r0   r0   r1   rM   Ü  rN   c                 S   s   t j| dd�S r=  rC  r  r0   r0   r1   rM   Ü  s    r5  r6  r?  r8  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 rF  r1  r  r0   r0   r1   rM   á  rN   z:TestSystematic.test_airybi_prime_complex.<locals>.<lambda>c                 S   s   t j| dd�S r=  rC  r  r0   r0   r1   rM   á  s    rA  r8  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tŽS r0  )r   ÚbeiÚHYPERKWr  r0   r0   r1   rM   ç  rN   z)TestSystematic.test_bei.<locals>.<lambda>r5  r6  )r   r)   rI  r   r
   r8  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tŽS r0  )r   ÚberrJ  r  r0   r0   r1   rM   ì  rN   z)TestSystematic.test_ber.<locals>.<lambda>r5  r6  )r   r)   rL  r   r
   r8  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   rN  rÉ   rO  r0   r0   r1   rM   ñ  rN   r   iÈ2  r¤   ©r;   rA   )r   r   r8  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tŽS rG   ©r   ÚbesselirJ  rK   r0   r0   r1   rM   ÷  rN   z-TestSystematic.test_besseli.<locals>.<lambda>ç}Ã”%­I²Ôç}Ã”%­I²TgJD¼îÉçà©rj   )r   r)   Úivr   r
   r8  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)   rW  rJ   rK   r0   r0   r1   rM   ü  rN   z5TestSystematic.test_besseli_complex.<locals>.<lambda>c                 S   s   t j| |ftŽS rG   rR  rK   r0   r0   r1   rM   ý  rN   rT  rU  ©r   r   r
   r   r8  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tŽS rG   ©r   ÚbesseljrJ  rK   r0   r0   r1   rM     rN   z-TestSystematic.test_besselj.<locals>.<lambda>rT  rU  r5  r6  T©r¦   c                 S   s   t j| |ftŽS rG   r[  rK   r0   r0   r1   rM     rN   r2  r3  r4  )r¦   r;   )r   r)   Újvr   r
   r8  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)   r^  rJ   rK   r0   r0   r1   rM     rN   z5TestSystematic.test_besselj_complex.<locals>.<lambda>c                 S   s   t j| |ftŽS rG   r[  rK   r0   r0   r1   rM     rN   rY  r8  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%  r8  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 ra  )	r   r)   Úknr   re  r   r
   r!   r%  r8  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)   rd  rJ   rK   r0   r0   r1   rM     rN   z5TestSystematic.test_besselk_complex.<locals>.<lambda>c                 S   s   t j| |ftŽS rG   )r   re  rJ  rK   r0   r0   r1   rM      rN   rT  rU  rY  r8  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   sN   t tj| |ftŽƒ}t|ƒdkr0tjt |¡ }t|ƒdkrJ|dkrJtjS |S )NçºÙ‚nQ:Br   )	r=   r   ÚbesselyrJ  r°   r!   r%  ÚsignÚnan©rL   rB   r-   r0   r0   r1   Ú	mpbessely$  s    z.TestSystematic.test_bessely.<locals>.mpbesselyrT  rU  r2  r3  éˆ  rO  )r   r)   Úyvr   r
   ©r9  ro  r0   r0   r1   Útest_bessely#  s    	ýzTestSystematic.test_besselyc                 C   s,   dd„ }t dd„ t|ƒtƒ tƒ gdd� d S )Nc              	   S   sL   t tj| |ftŽƒ}t|ƒdkrHtjdd�� tjt |¡ }W 5 Q R X |S )Nrj  r’   r“   )	r&   r   rk  rJ  r°   r!   r•   r%  rl  rn  r0   r0   r1   ro  3  s
    z6TestSystematic.test_bessely_complex.<locals>.mpbesselyc                 S   s   t  | j|¡S rG   )r)   rq  rJ   rK   r0   r0   r1   rM   :  rN   z5TestSystematic.test_bessely_complex.<locals>.<lambda>i˜:  rO  rY  rr  r0   r0   r1   Útest_bessely_complex2  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 r0  )r=   r   rk  r°   r!   rm  rn  r0   r0   r1   ro  @  s    z2TestSystematic.test_bessely_int.<locals>.mpbesselyc                 S   s   t  t| ƒ|¡S rG   )r)   ZynrÉ   rK   r0   r0   r1   rM   F  rN   z1TestSystematic.test_bessely_int.<locals>.<lambda>rt   éè  r2  r3  ©r   r   r   r
   rr  r0   r0   r1   Útest_bessely_int?  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!   rm  r°   r=   r%   r   rÖ   )rn   rm   Únonzero©Ú
bad_pointsr0   r1   rÖ   M  s    (z&TestSystematic.test_beta.<locals>.betac                    s   ˆ | |dd�S ©NT)rx  r0   r×   )rÖ   r0   r1   rM   ]  rN   z*TestSystematic.test_beta.<locals>.<lambda>rÕ   T©r»   r¦   ç•dyáý¥=)r»   r¦   rj   )F)r   r)   rÖ   r
   r!   r(   r8  r0   )rz  rÖ   r1   rÜ   J  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©rn   rm   rB   r0   r0   r1   rM   k  rN   z-TestSystematic.test_betainc.<locals>.<lambda>)r   r)   r~  r   r   r
   r8  r0   r0   r1   Útest_betainci  s    þzTestSystematic.test_betaincc                    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 )Nr3  r    rg   )r°   r!   rm  r=   rv   r%   r   Úbinomial)rA   Úkrx  ry  r0   r1   r�  q  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»   rj   )F)r   r)   Zbinomr
   r!   r(   r8  r0   )rz  r�  r1   Ú
test_binomn  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tŽS rG   )r   ÚchebytrJ  r‡  r0   r0   r1   rM   �  rN   r3   rƒ  rv  r8  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tŽS rG   )r   r   r   rˆ  rJ  r‡  r0   r0   r1   rM   “  rN   z,TestSystematic.test_chebyt.<locals>.<lambda>é›ÿÿÿée   é'  rO  )r   r)   r†  r
   r8  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tŽS rG   )r   ÚchebyurJ  r‡  r0   r0   r1   rM   ˜  rN   r3   rƒ  rv  r8  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tŽS rG   )r   r   r   r‘  rJ  r‡  r0   r0   r1   rM   ž  rN   z,TestSystematic.test_chebyu.<locals>.<lambda>rŒ  r�  )r   r)   r�  r
   r8  r0   r0   r1   Útest_chebyu›  s    þzTestSystematic.test_chebyuc                 C   s8   dd„ }t |tjtƒ gƒ t |tjtdddgƒgƒ d S )Nc                 S   s   t  | ¡d S r<  ©r)   Zshichir�   r0   r0   r1   Úchi¢  s    z$TestSystematic.test_chi.<locals>.chiçíþÿÿÿU@éX   çá   V@)r   r   r•  r
   r   ©r9  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>.chir2  r3  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>.cir2  r3  )r   r   r�  r
   ©r9  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>.cir2  r3  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   rb  )	r!   r  r=   r  r   r   r   r  r
   ©r9  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   rb  )r   r   r   r  r   r8  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
   r8  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   )r9  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
   r8  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 )Nr2  r3  r}  r:   éÎÿÿÿr3   é«   r   r‰   r   é=   rµ   r   iÝÿÿÿrŽ  y                )r   r)   r«  r   r¬  r   r&   r!   r%  r#   r¾   r"   r¿   r8  r0   r0   r1   Útest_e1_complexâ  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   ÷  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   ú  rN   rX   g§Ž¨™ÂWó:r   g   ¢”mBg´�ÙyCxêDr}  r:   )r   r)   Zexprelr
   r!   rØ   r  Údoubler±   r(   r%  r   Úisinfr8  r0   r0   r1   Útest_exprelõ  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%  r8  r0   r0   r1   Útest_expm1_complexÿ  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     rN   z3TestSystematic.test_log1p_complex.<locals>.<lambda>é<   rƒ  )r   r)   Úlog1pr   r8  r0   r0   r1   Útest_log1p_complex  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     rN   z-TestSystematic.test_log1pmx.<locals>.<lambda>r½  rÑ   )r»   r;   )r   r   r
   r8  r0   r0   r1   Útest_log1pmx
  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
   r8  r0   r0   r1   Útest_ei  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 )Nr2  r3  r¤   r:   )	r   r)   r*   r   r'   r   r&   r!   r%  r8  r0   r0   r1   Útest_ei_complex  s
    ýzTestSystematic.test_ei_complexc                 C   s   t tjtjtdd�gƒ d S )Nr�   ©rm   )r   r)   Úelliper   r
   r8  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 )Nr5  r6  r�   rÃ  ©r   r)   Z	ellipeincr   rÄ  r
   r8  r0   r0   r1   Útest_ellipeinc!  s    þzTestSystematic.test_ellipeincc                 C   s   t tjtjtƒ tƒ gƒ d S rG   rÆ  r8  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 ©Nr5  r6  ©r   r)   Ú	ellipkincr   Zellipfr
   r8  r0   r0   r1   Útest_ellipf+  s    þzTestSystematic.test_ellipfc                 C   s   t tjtjtƒ tƒ gƒ d S rG   rÊ  r8  r0   r0   r1   Útest_ellipf_largephi0  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        )rn   rÕ   rƒ  )r   r)   r  r   r
   Zellipkm1r8  r0   r0   r1   Útest_ellipk5  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 r0  ©r   Zellippi©Úphir  r0   r0   r1   rË  ?  s    z0TestSystematic.test_ellipkinc.<locals>.ellipkincr5  r6  r�   rÃ  Tr]  ©r   r)   rË  r
   ©r9  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 r0  rÏ  rÐ  r0   r0   r1   rË  G  s    z9TestSystematic.test_ellipkinc_largephi.<locals>.ellipkincr�   rÃ  Tr]  rÒ  rÓ  r0   r0   r1   Útest_ellipkinc_largephiF  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Ö  O  s    z+TestSystematic.test_ellipfun_sn.<locals>.snc                 S   s   t  | |¡d S r0  r  r  r0   r0   r1   rM   Y  rN   z1TestSystematic.test_ellipfun_sn.<locals>.<lambda>ç    €„.Áç    €„.Ar   r    r×   r$  r:   r?  )r9  rÖ  r0   r0   r1   Útest_ellipfun_snN  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   a  rN   rØ  rÙ  r   r    r×   r$  r:   r?  r8  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   g  rN   z1TestSystematic.test_ellipfun_dn.<locals>.<lambda>c                 S   s   t jd| |d�S r  r×  r  r0   r0   r1   rM   h  rN   rØ  rÙ  r   r    r×   r$  r:   r?  r8  r0   r0   r1   Útest_ellipfun_dne  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   n  rN   z)TestSystematic.test_erf.<locals>.<lambda>)r   r)   r¶   r
   r8  r0   r0   r1   Útest_erfl  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   s  rN   z1TestSystematic.test_erf_complex.<locals>.<lambda>r6   rO  )r   r)   r¶   r   r8  r0   r0   r1   rÅ   q  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   x  rN   z*TestSystematic.test_erfc.<locals>.<lambda>r9   r:   )r   r)   r¹   r   r
   r8  r0   r0   r1   Ú	test_erfcv  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   rO  )r   r)   r¹   r   r   r8  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   rO  )r   r)   Úerfir   r
   r8  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   r8  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   rO  )r   r)   Úndtrr   r
   r8  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Õ   rO  )r   r)   rç  r   r&   r8  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
   r8  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&   r8  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 )Nrq   )r)   ZeulerrO  r0   r0   r1   rM      rN   z.TestSystematic.test_eulernum.<locals>.<lambda>r    rŽ  rO  )r   r   Zeulernumr   r8  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%  r8  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 r0  ©r)   Zfresnelr�   r0   r0   r1   Úfresnels«  s    z.TestSystematic.test_fresnels.<locals>.fresnels)r   r   rö  r
   )r9  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
   )r9  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
   r8  r0   r0   r1   Ú
test_gamma¸  s    þzTestSystematic.test_gammac                 C   s    t tjttjƒtƒ gdd� d S ©Nrh   r:   )r   r)   rú  r   r   r   r8  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/   rm   r0   r0   r1   rM   Å  rN   z.TestSystematic.test_gammainc.<locals>.<lambda>r   ç     ˆÃ@F©Úinclusive_ar}  rb  )r   r)   r   r
   r8  r0   r0   r1   Útest_gammaincÂ  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)rn   rÿ   rþ  )r/   rn   r0   r0   r1   rM   Ì  rN   z/TestSystematic.test_gammaincc.<locals>.<lambda>r   rÿ  Fr   r}  rb  )r   r)   Z	gammainccr
   r8  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   ÚfÒ  s    z&TestSystematic.test_gammaln.<locals>.f)r   r)   Zgammalnr   r
   )r9  r  r0   r0   r1   Útest_gammalnÐ  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
   r8  r0   r0   r1   Útest_gegenbauer×  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 )
NrU  r   r�   r    r   rq   z1e-50z0.0ç\žç4@Iþw)	r°   r!   rm  r   r  r=   rÉ   rµ  r%  ©rA   rn   rB   r-   r0   r0   r1   r  ß  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_gegenbauerú  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"   )r9  r  r  r0   r0   r1   Útest_gegenbauer_intÝ  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   rn   rB   r0   r0   r1   rM     rN   z8TestSystematic.test_gegenbauer_complex.<locals>.<lambda>r   r7   )r   r   r   r  r   r
   r   r8  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>r5  r6  )r   r   r   r  r
   r   r8  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tŽS rG   )r   Úhankel1rJ  ©rL   rB   r0   r0   r1   rM     s   
ÿz-TestSystematic.test_hankel1.<locals>.<lambda>ç@Œµx¯Äç@Œµx¯D)r   r)   r  r   r
   r8  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tŽS rG   )r   Úhankel2rJ  r  r0   r0   r1   rM   !  rN   z-TestSystematic.test_hankel2.<locals>.<lambda>r  r  )r   r)   r  r   r
   r8  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
   r8  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Ü  r.  c                    s   t j| |fˆ ŽS rG   rU   ©rn   rB   ©ZKWr0   r1   rM   1  rN   z,TestSystematic.test_hyp0f1.<locals>.<lambda>r¹  rº  r   g     jø@rp  rO  )r‚   r   r)   rI   r
   r8  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   )rn   r/   r0   r0   r1   rM   :  rN   z4TestSystematic.test_hyp0f1_complex.<locals>.<lambda>c                 S   s   t j| |ftŽS rG   )r   rI   rJ  r  r0   r0   r1   rM   ;  rN   r�   r   iˆÿÿÿrF   )r   r   r
   r   r&   r8  r0   r0   r1   Útest_hyp0f1_complex9  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   s0   zt  | ||¡W S  tk
r*   tj Y S X d S rG   )r   Úhyp1f1ÚZeroDivisionErrorr!   r%  r  r0   r0   r1   Úmpmath_hyp1f1B  s    z1TestSystematic.test_hyp1f1.<locals>.mpmath_hyp1f1r®  r3   r    Fr   r©   )rA   rc  )r   r)   r  r
   )r9  r   r0   r0   r1   Útest_hyp1f1A  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   R  rN   z4TestSystematic.test_hyp1f1_complex.<locals>.<lambda>c                 S   s   t j| ||ftŽS rG   )r   r  rJ  r  r0   r0   r1   rM   S  rN   r5  r6  iÐ  rO  )r   r   r   r
   r   r8  r0   r0   r1   Útest_hyp1f1_complexP  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)   ry   rJ   ©rn   rm   rw   rB   r0   r0   r1   rM   Z  rN   z4TestSystematic.test_hyp2f1_complex.<locals>.<lambda>c                 S   s   t j| |||ftŽS rG   )r   ry   rJ  r#  r0   r0   r1   rM   [  rN   g      YÀg      Y@r   rO  rY  r8  r0   r0   r1   Útest_hyp2f1_complexW  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tŽS rG   )r   rl   rJ  r  r0   r0   r1   rM   b  rN   z,TestSystematic.test_hyperu.<locals>.<lambda>)r   r)   rl   r   r
   r8  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_facg  s    z1TestSystematic.test_igam_fac.<locals>.mp_igam_facr   g  �Ä¼ÖBFr   r~   r:   )r   r   r
   )r9  r'  r0   r0   r1   Útest_igam_face  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 ©Nr5  r6  r2  r3  r4  r:   )r   r)   Zj0r   r
   r8  r0   r0   r1   Útest_j0o  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
   r8  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tŽS rG   ©r   ÚjacobirJ  r#  r0   r0   r1   rM   Š  rN   z,TestSystematic.test_jacobi.<locals>.<lambda>c                 S   s   t  t| ƒ|||¡S rG   ©r)   Úeval_jacobirÉ   )rA   rm   rw   rB   r0   r0   r1   rM   Œ  rN   c                 S   s   t j| |||ftŽS rG   r,  r#  r0   r0   r1   rM   �  rN   )r   r)   r/  r   r
   r   r8  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   r-  ©rA   rn   rm   rB   r0   r0   r1   r-  ’  s    z.TestSystematic.test_jacobi_int.<locals>.jacobic                 S   s   t  t| ƒ|||¡S rG   r.  r1  r0   r0   r1   rM   —  rN   z0TestSystematic.test_jacobi_int.<locals>.<lambda>c                    s   t ˆ ƒ| |||ftŽS rG   )r   rJ  r1  ©r-  r0   r1   rM   ˜  rN   é N  r3   rð  ©r   r   r
   r8  r0   r2  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tŽS )Nr   r5   )r   r   r   ÚkeirJ  r�   r0   r0   r1   r6  �  s    
z$TestSystematic.test_kei.<locals>.keiçêŒ 9Y>)ÆçêŒ 9Y>)Fru  rO  )r   r)   r6  r
   )r9  r6  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tŽS r0  )r   ÚkerrJ  r�   r0   r0   r1   rM   ¨  rN   z)TestSystematic.test_ker.<locals>.<lambda>r7  r8  ru  rO  )r   r)   r:  r   r
   r8  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tŽS rG   ©r   r   ZlaguerrerJ  r‡  r0   r0   r1   rM   ®  rN   z.TestSystematic.test_laguerre.<locals>.<lambda>)r   r   r)   Úeval_laguerrer
   r8  r0   r0   r1   Útest_laguerre«  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)   r=  rÉ   r‡  r0   r0   r1   rM   ²  rN   z2TestSystematic.test_laguerre_int.<locals>.<lambda>c                 S   s   t tjƒ| |ftŽS rG   r<  r‡  r0   r0   r1   rM   ³  rN   r3  rO  r4  r8  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   ¸  rN   z3TestSystematic.test_lambertw_real.<locals>.<lambda>c                 S   s   t  | t|jƒ¡S rG   )r   r  rÉ   rJ   r@  r0   r0   r1   rM   ¹  rN   r   r   r9   F©r;   rc  )r   r   r!   r%  r   r8  r0   r0   r1   Útest_lambertw_real¶  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��f | ˆ d ˆ  | d  }|t jkr>|t| ƒ }n0| ˆ d ˆ  d| d   }|t| ƒ }||9 }W 5 Q R X |S )Nr’   )ZoverrE   )r!   r•   r%  r   )rB   ZfacrP   ©ÚeÚgr0   r1   rú  Â  s    
z:TestSystematic.test_lanczos_sum_expg_scaled.<locals>.gammar   Fr   r9   r:   )r!   r$   r   r   rú  r
   )r9  Zmaxgammarú  r0   rC  r1   Útest_lanczos_sum_expg_scaled½  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
   r8  r0   r0   r1   Útest_legendreÒ  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)   rG  rÉ   r‡  r0   r0   r1   rM   Ù  rN   z2TestSystematic.test_legendre_int.<locals>.<lambda>c                 S   s   t tjƒ| |ftŽS rG   ©r   r   rH  rJ  r‡  r0   r0   r1   rM   Ú  rN   r3  rO  c                 S   s   t  t| ƒ|¡S rG   rJ  r‡  r0   r0   r1   rM   ß  rN   c                 S   s   t tjƒ| |ftŽS rG   rK  r‡  r0   r0   r1   rM   à  rN   rø   r  r_   )r   r   r
   r   r!   r"   r8  r0   r0   r1   Útest_legendre_intØ  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   sX   zt  || |¡d d }W n tk
r4   tj Y S X t|ƒdkrTtjt |j¡ }|S )Nr   ©rq   rq   ç)�#ÊåÈv)	r)   ZlpmnÚ
ValueErrorr!   rm  r°   r%  rl  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 )NrN  )r)   rÏ   r°   r!   r%  rl  rJ   rP  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    rq   r   rg   r   rf   ©ÚtyperN  )rÉ   r   r&  rl  r°   r!   rm  r   rÊ   r%  rJ   )rA   r  r/   ÚtyprL   r0   r0   r1   rÊ   õ  s    
z*TestSystematic.test_legenp.<locals>.legenpr
  r7   rq   r    r~   rV  r4  )r9  rQ  rR  rÊ   r0   r0   r1   Útest_legenpã  s    
þýzTestSystematic.test_legenpc                 C   s¦   dd„ }dd„ }t  ddddd	d
dddg	¡}t  ddd
dg¡}|d d …d f d|d d d …f    ¡ }t||tddddddgƒtddddddgƒt|ƒgddd� d S )Nc                 S   s@   z t j|j| j|dd�d d W S  tk
r:   tj Y S X d S )Nr   rS  r   rM  ©r)   ZclpmnrJ   rO  r!   rm  ©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 ©Nrg   r   rS  ©r°   r!   rm  r   r   rÊ   rÉ   rJ   rX  r0   r0   r1   rÊ     s    z4TestSystematic.test_legenp_complex_2.<locals>.legenprs   r£   rD   r   r4  rE   r‹   r_   ç     @Ÿ@r5  çÍÌÌÌÌÌô?r   rq   r    r   r   rÆ   r©   rP  ©r!   r(   r¿   r   r   ©r9  rY  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  ddddd	d
dddg	¡}t  ddd
dg¡}|d d …d f d|d d d …f    ¡ }t||tddddddgƒtddddddgƒt|ƒgddd� d S )Nc                 S   s@   z t j|j| j|dd�d d W S  tk
r:   tj Y S X d S )Nrf   rS  r   rM  rW  rX  r0   r0   r1   rY  /  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 )Nrg   rf   rS  r[  rX  r0   r0   r1   rÊ   5  s    z4TestSystematic.test_legenp_complex_3.<locals>.legenprs   r£   rD   r   r4  rE   r‹   r_   r\  r5  r]  r   rq   r    r   r   rÆ   r©   rP  r^  r_  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   rM  )r)   ÚlqmnrX  r0   r0   r1   ÚlqnmH  s    z(TestSystematic.test_legenq.<locals>.lqnmc                 S   s(   t |ƒdk rtjS ttjƒ| ||dd�S rZ  )r°   r!   rm  r   r   ÚlegenqrX  r0   r0   r1   re  K  s    z*TestSystematic.test_legenq.<locals>.legenqr   r7   r4  ©r9  rd  re  r0   r0   r1   Útest_legenqF  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 rb  )r)   rc  rÉ   rJ   rX  r0   r0   r1   rd  W  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 rZ  )r°   r!   rm  r   r   re  rÉ   rJ   rX  r0   r0   r1   re  Z  s    z2TestSystematic.test_legenq_complex.<locals>.legenqr   r7   rO  )r   r   r   rf  r0   r0   r1   Útest_legenq_complexU  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¨  f  s    z0TestSystematic.test_lgam1p.<locals>.param_filterc                 S   s   t  d|  ¡jS r<  r  r  r0   r0   r1   Ú	mp_lgam1pj  s    z-TestSystematic.test_lgam1p.<locals>.mp_lgam1pr9   r7   r©  )r   r   r
   )r9  r¨  rj  r0   r0   r1   Útest_lgam1pe  s      ýzTestSystematic.test_lgam1pc                 C   s&   dd„ }t tj|tƒ gdddd� d S )Nc                 S   s6   zt  | ¡}W n" tk
r0   ttjtjƒ}Y nX |S rG   )r   rÞ   rO  r&   r!   rm  )r/   rP   r0   r0   r1   Úmpmath_loggammat  s
    z5TestSystematic.test_loggamma.<locals>.mpmath_loggammaFrà   )rc  Zdistinguish_nan_and_infr;   )r   r)   rÞ   r   )r9  rl  r0   r0   r1   Útest_loggammas  s      ýzTestSystematic.test_loggammac                 C   s(   dd„ }t |tdd„ ƒtƒ tƒ gƒ d S )Nc                 S   s   t  | |¡d S r0  )r)   Zpbdvr  r0   r0   r1   Úpcfd‚  s    z&TestSystematic.test_pcfd.<locals>.pcfdc                 S   s   t j| |ftŽS rG   )r   rn  rJ  r  r0   r0   r1   rM   …  rN   z*TestSystematic.test_pcfd.<locals>.<lambda>)r   r   r
   )r9  rn  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 r0  )r)   Zpbvvr  r0   r0   r1   ÚpcfvŠ  s    z&TestSystematic.test_pcfv.<locals>.pcfvc                 S   s   t ƒ ttjƒƒ| |ftŽS rG   )r   r   r   rp  rJ  r  r0   r0   r1   rM   �  rN   z*TestSystematic.test_pcfv.<locals>.<lambda>ru  rO  r?  )r9  rp  r0   r0   r1   Ú	test_pcfvˆ  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 r0  ©r)   Zpbwar  r0   r0   r1   Úpcfw‘  s    z&TestSystematic.test_pcfw.<locals>.pcfwc                 S   s   t  | |¡d S r<  rr  r  r0   r0   r1   Údpcfw”  s    z'TestSystematic.test_pcfw.<locals>.dpcfwc                 S   s   t  t j| |fd¡S )Nr8   )r   Údiffrs  r  r0   r0   r1   Úmpmath_dpcfw—  s    z.TestSystematic.test_pcfw.<locals>.mpmath_dpcfwr]   r^   g:Œ0âŽyU>r7   rP  g•Ö&è.!>)r   r   rs  r
   )r9  rs  rt  rv  r0   r0   r1   Ú	test_pcfw�  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   ru  )r   r)   Z	polygammar   r   r   r   r
   r8  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Ààÿÿrp  FT)rA   rc  r¦   )r   r)   rê   r   r
   r!   r%  r8  r0   r0   r1   Útest_rgammaª  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   r8  r0   r0   r1   Útest_rgamma_complex´  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 )Nrp   c                 S   sN   t | | ƒt| | ƒkrBt | | ƒdkrBt | ¡} t| | ƒ|  }t | |¡S r0  )r=   rÉ   r   rµ  Úrf)rn   r  r0   r0   r1   ÚmppochÁ  s    (
z&TestSystematic.test_rf.<locals>.mppochrÕ   rƒ  )
r   Úparser   r¯   ÚVersionr{  r   r)   Zpochr
   )r9  r|  r0   r0   r1   Útest_rf¹  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›+¡†›„=rb  )r   r   r   r  r   r8  r0   r0   r1   Útest_sinpi_complexÔ  s
      ÿz!TestSystematic.test_sinpi_complexc                 C   s8   dd„ }t |tjtƒ gƒ t |tjtdddgƒgƒ d S )Nc                 S   s   t  | ¡d S r0  r”  r�   r0   r0   r1   ÚshiÙ  s    z$TestSystematic.test_shi.<locals>.shir–  r—  r˜  )r   r   r‚  r
   r   ©r9  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 r0  r”  r  r0   r0   r1   r‚  à  s    z,TestSystematic.test_shi_complex.<locals>.shir2  r3  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 r0  rœ  r�   r0   r0   r1   Úsié  s    z"TestSystematic.test_si.<locals>.si)r   r   r†  r
   ©r9  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 r0  rœ  r  r0   r0   r1   r†  î  s    z*TestSystematic.test_si_complex.<locals>.sir2  r3  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%  ©r9  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!   rm  r)   Zsph_harm)Úlr  rä   rÑ  r0   r0   r1   Ú	spherharm  s    z0TestSystematic.test_spherharm.<locals>.spherharmr   r7   r×   r   r$  ip  rR   )rj   rA   r»   )r   r   r�  r   r
   r   )r9  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
   r8  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   sV   | dk rJ||  k rJt | ƒdkrJtjj}zdtj_t | |¡W ¢S |tj_X t | |¡S )Nr   ru  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
   )r9  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_realrt   gPïâÖäKDg›+¡†›„ö<r   F)r;   rj   rc  )r   r)   r'  r
   )r9  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Ñ   FrA  )r   r)   r'  r   r8  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)rn   rm   r  r   ©rn   r  )r   r)   Úzetar   r   r
   r8  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   H  rN   z2TestSystematic.test_riemann_zeta.<locals>.<lambda>r
  r7   Frh   rb  )r   r)   rœ  r
   r8  r0   r0   r1   Útest_riemann_zetaE  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   P  s    ÿz+TestSystematic.test_zetac.<locals>.<lambda>r
  r7   Fé-   rh   )rc  r»   r;   )r   r)   Zzetacr
   r8  r0   r0   r1   Ú
test_zetacN  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 r0  ©r   rº   rµ  rØ   Zpowm1)rB   Úlmbdar0   r0   r1   Ú	mp_boxcoxW  s
    z-TestSystematic.test_boxcox.<locals>.mp_boxcoxr   Fr›  r6   r½  r9   rí  )r   r)   Zboxcoxr   r
   )r9  r¤  r0   r0   r1   Útest_boxcoxU  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_boxcox1ph  s    z1TestSystematic.test_boxcox1p.<locals>.mp_boxcox1prq   Fr›  r6   r½  r9   rí  )r   r)   Zboxcox1pr   r
   )r9  r§  r0   r0   r1   Útest_boxcox1pf  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_jny  s    
ÿ
z9TestSystematic.test_spherical_jn.<locals>.mp_spherical_jnc                 S   s   t  t| ƒ|¡S rG   )r)   Úspherical_jnrÉ   ©rA   r/   r0   r0   r1   rM   ‚  rN   z2TestSystematic.test_spherical_jn.<locals>.<lambda>r   r6   r2  r3  r÷   rƒ  rv  ©r9  r¯  r0   r0   r1   Útest_spherical_jnx  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¯  ˆ  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   ‘  rN   z:TestSystematic.test_spherical_jn_complex.<locals>.<lambda>r   r6   ©r   r   r   r   r²  r0   r0   r1   Útest_spherical_jn_complex‡  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«  rk  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ƒ  rv  ©r9  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«  rS  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„  rv  ©r9  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   re  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ƒ  rv  ©r9  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«  re  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;  r@  rB  rD  rE  rG  rH  rK  rM  rQ  rX  rZ  r_  r`  rf  rh  ri  rs  rt  rw  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+  r0  r5  r9  r;  r>  r?  rB  rF  rI  rL  rV  r`  ra  rg  rh  rk  rm  ro  rq  rw  rx  ry  rz  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   r/  ¥  sB  





		
	
0







	






3






			
	r/  )JÚ__doc__Únumpyr!   Znumpy.testingr   r   r   rÊ  r€   Z
scipy._libr   Zscipy.specialÚ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\   ro   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,  r-  r‚   rJ  r/  r0   r0   r0   r1   Ú<module>   sª   0 










7
&






